1.8.0.21 [20220530]
1. 支持最新的八通道硬件设备X8PI
2. 增加若干新的API，支持最新的支持离线报文录制播放的设备X4R，X2R
3. 新增C++多通道并行接收例程multichannel_rx_cpp，演示如何进行高效率的报文接收
4. 新增x8pi_spi_test例程，演示如何通过树莓派的40Pin接口来控制X8PI设备
5. BMAPI在linux上部分重构，CPU占用率大幅降低，对外接口保持不变
6. 若干小问题修复

1.7.1.20 [20220216]
1. 支持Python2.7.18
2. Python-can新增send_multiple API以及对应的example，可以达到与C API一致的超高发送帧率，但是请注意这个API在python-can标准版本中并不存在
3. 更新raspbian64平台的各个二进制文件
4. 在python-can中自带了aenum package，避免新手第一次运行时出现找不到aenum的情况
5. 更新udsoncan的download_hex_file例程，现已支持加载CANoe格式的security DLL来自动进行27解锁

1.7.0.19
1. Qt/C#/pyqt示例程序从此版本起支持多通道操作了，可在通道下拉列表中勾选需要的通道，同时可以通过独立的下拉框选择发送通道
2. 新增演示基础接收操作的C/C++例程: bmapi_receive_only
3. 新增演示基础发送操作的C/C++例程: bmapi_transmit_only
4. 修复Unix系统下，同时打开多通道时，使用非首个通道发送数据时的卡死问题
5. 修复udsoncan例程的UDS36服务实现中，首个请求的序号未从01开始的错误
6. 优化python-can对多平台兼容性的自适应能力
7. 增加在udsoncan中使用CANoe DLL进行UDS 27解锁的演示操作

1.6.0.18
1. 修复1.5.4版本引入的远程帧无法实时发送的问题
2. Python-can创建bus对象时允许指定采样点位置（未指定则默认最常见的75%）
3. BM_ReadIsotp支持同时侦听指定的UDS Request ID和功能寻址地址
4. BM_ReadIsotp在上一次ISOTP会话意外中断时，尽量不影响下一次ISOTP的发起
5. 修复BM_Reset在多线程环境频繁创建销毁的情况下句柄资源没有正确释放的问题
（仍然建议您在BM_OpenEx/BM_Close/BM_Reset时确保没有其他后台线程正在读写报文）

1.6.0.17 [Alpha]
1. 新增BM_GetVersion接口，用于获取动态库（*.dll|*.so）的实际编译版本
2. 新增BM_GetLogLevel和BM_SetLogLevel接口，用于配置动态库在Linux下的命令行调试信息输出等级，默认仅打印BM_LOG_ERR及更高，可通过配置为BM_LOG_NONE禁用全部调试信息输出用于量产环境

1.5.4.16 [20210813]
1. 针对X1PRO和X1设备修正了BM_OpenEx时正在接收报文导致设备无法正确配置的bug
2. 修正Debian下BM_ClearBuffer递归锁导致程序阻塞的问题
3. udsoncan增加example.run.sh作为启动器，客户朋友如需发布自己的程序也可基于此启动器简单修改
4. 暂时移除问题较多的python-can的asyncio demo，待优化后重新发布
5. 修正BM_WriteIsotp和BM_ReadIsotp的首个CF帧的序列号不对的问题

---------------------------------------
1.5.4.16以前的历史版本，变更记录位于Busmaster上位机安装包的changelist中。
---------------------------------------