# one_lead_ecg ``` V3: 1. 添加心率检测 2. 添加心率波形自动放大 3. 添加充电检测 4. 调整UI显示效果 5. 调慢心跳动速度 V4: 1. 修改单手唤醒改为双手唤醒 V5: 1. 在系统启动的初期就初始化看门狗 2. 优化静态功耗到300ua V6: 1. 优化显示心电波形效果 2. 优化电池电量显示 V7: 1. 优化电池电量显示 V8: 1. 优化心电波形显示 2. 优化心率显示 3. 解决存储不自动清空的BUG。 4. 解决偶尔关机时,设备启动失败的异常。 5. 优化电池电量范围 V9: 1.读取头部信息包添加checksum字段,向前兼容 2.修正文件系统读取时,读取的数据长度不正确的问题 3.修正数据上传时,数据长度不正确的问题 V10: 1.修改ify_hrs_protocol版本 2.更新SDK版本 测试: 1. 电池电量测试 2. 充电插入检测 3. 检查各个延时时间是否正确 ... ``` 代码修改思路: 临时版本: 1. 开机初始化ads129x 2. 永不进入深度休眠 3. ECG连接状态一直标注为1 4. 不存储数据 ECG连接状态一直标注为1 board_init 1. 没有深度睡眠 poweroff app_power_state_change_to poweroff poweron app_power_state_change_to poweron 服务本身没有低功耗的概念,所有低功耗的操作,均直接对硬件进行操作。 服务内部调用方法,都假设初始化已经均完成。 指示灯初始化 onStateChange onState README: 外设 ---> 初始化 使用 app_board(在状态切换的时候,切换) -------> 切换状态 实时切换状态并使用 依然归类到整机状态中去 ------> 1. 外设状态 <---> 系统状态绑定 外设临时状态切换 调用方法 1. 外设的切换发生在系统状态机的切换: 1. 外设再被调用时,检查自己的状态,如果状态不满足打印警报或者错误日志。 2. 外设再被调用时,检查自己的状态,如果状态不满足,但允许自行切换状态,则自行进行状态切换 3. 服务本身不负责状态的切换。 ```