技术栈:BLE低功耗蓝牙;canvas画板;sqlite数据库;
框架:uni-app;
编译器:HBuilder-X;
重难点:
- 蓝牙设备的自动连接、断开等操作逻辑实现(开启蓝牙、开启notify监听、根据uuid搜索过滤设备、连接与断开设备、存储连接过设备信息并尝试自动连接、搜索蓝牙设备显示已连接情况、ui及时更新最新连接情况);
- 蓝牙协议理解基础上,数据的读写以及数据的格式转换(ArrayBuffer、十六进制与十进制保持正负的转换、大小端颠倒、hec校验);
- 实时波形绘制(canvas的使用、绘制的基本逻辑实现、丢包的处理、绘制卡顿的处理、绘制结果的微信分享);
- 历史数据的数据库处理(表格设计、批量写入、去重、防止重复录入、缺失包重新录入);
- ui优化等(国际化处理、旋转固定、传输动态加载、滑动切换下一页、头部样式与按钮配置);
- 跨平台优化处理(ios中数据库可以频繁单条写入,不需要做批量化写入优化,但安卓不行、安卓连接成功后,需要重新配置mtu,苹果不需要,产生原因未知)