From cca8da4046873e4edaf4ba0c1c47acf4d56a06c1 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Thu, 8 Feb 2024 18:12:09 +0800 Subject: [PATCH] update --- README.md | 24 +++++++++++++++++++++--- app/src/board/board.h | 2 +- app/src/board/board_battery_state.c | 2 +- app/src/board/board_light_ctrl.c | 2 +- app/src/device_ctrl_service.c | 16 +++++++++------- app/src/heart_wave_sample_service.c | 8 ++++---- app/src/heart_wave_sample_service_cfg.h | 20 ++++++++++++-------- libznordic | 2 +- 8 files changed, 50 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index ae285ee..3183424 100644 --- a/README.md +++ b/README.md @@ -33,15 +33,14 @@ MainPage: 添加一条新的开始采集指令,支持定时参数。(或者使用旧的开始采集指令)OK 导联断开检测触发后,上报事件(不停止采集)。OK -电量过低上报低电量事件。电量不足%1时,设备自动断开连接,并关机。 +电量过低上报低电量事件。电量不足%1时,设备自动断开连接,并关机。 OK Final: -修改休眠周期为30秒 +修改休眠周期为30秒 OK TODO2: 添加指令上传最新一条记录 - ... 设备充电时不进入休眠(无法实现,无法检测当前设备是否正在充电) OK @@ -49,6 +48,25 @@ TODO2: ``` +``` + 1. 30s自动休眠 OK + 2. 开机低电量检测 OK + 3. 按下按键唤醒设备 OK + 4. 充电插入唤醒设备 OK + 5. 蓝牙连接 OK + 6. 指令测试 OK + 7. 采集中导联脱落蜂鸣器响 OK + 8. 采集中导联脱落事件上报 OK + + 2. 采集上报测试 (OK1/2) + 3. 未采集,蓝牙断开,自动休眠测试 + 3. 蓝牙连接,5分钟没有收到任何消息,自动休眠 + 4. 电池电量检测测试 + 5. 记录读取测试 + + +``` + ``` 规范: diff --git a/app/src/board/board.h b/app/src/board/board.h index 2256e83..6c74863 100644 --- a/app/src/board/board.h +++ b/app/src/board/board.h @@ -76,6 +76,6 @@ #define APP_LOW_BATTERY_POWER_ON_LIMIT 8 // 是否能开机判定阈值 #define APP_LOW_BATTERY_WARNING_LIMIT 10 // 低电量事件上报阈值 -#define BLE_UNCONNECTED_OVERTIME_S 300 // 蓝牙未连接_心跳超时判定时间 +#define BLE_UNCONNECTED_OVERTIME_S 300 // 蓝牙未连接_心跳超时判定时间 300s #define ENABLE_AUTO_STOP_WHEN_BLE_DISCONNECTED 1 // 蓝牙断开自动停止采集 \ No newline at end of file diff --git a/app/src/board/board_battery_state.c b/app/src/board/board_battery_state.c index 21cb7b2..d1e486e 100644 --- a/app/src/board/board_battery_state.c +++ b/app/src/board/board_battery_state.c @@ -47,6 +47,6 @@ int16_t BoardBattery_get_battery_level() { // } else { // percent_int = percent_int / 10 * 10; // } - return 10; + return percent_int; // return percent_int; } diff --git a/app/src/board/board_light_ctrl.c b/app/src/board/board_light_ctrl.c index d158ef6..3f3e256 100644 --- a/app/src/board/board_light_ctrl.c +++ b/app/src/board/board_light_ctrl.c @@ -6,7 +6,7 @@ #define BLINK_CNT 1 #define BLINK_PERIOD_MS (100) #define QUICK_BLINK_PERIOD_MS (100) -#define SLOW_BLINK_PERIOD_MS (3000) +#define SLOW_BLINK_PERIOD_MS (2000) #define LIGHT_PWM_DRIVER 1 // LED_GREEN_PIN diff --git a/app/src/device_ctrl_service.c b/app/src/device_ctrl_service.c index ac6fd29..36c4a31 100644 --- a/app/src/device_ctrl_service.c +++ b/app/src/device_ctrl_service.c @@ -69,12 +69,12 @@ static void poweroff() { // hwss_unload(); DeviceCtrl_change_to_state(kdevice_state_standby); zble_module_stop_adv(); + zble_module_disconnect(); + // sd_ble_gap_disconnect() BoardLight_setGreenLightEffect(kLightEffect_close); - + app_timer_stop_all(); // 进入深度睡眠前,使能唤醒引脚 BoardButton_enable_sense(); - app_timer_stop_all(); - // 系统进入深度睡眠 sd_power_system_off(); NVIC_SystemReset(); m_ispoweron = false; @@ -163,7 +163,9 @@ static void app_event_listener(void* p_event_data, uint16_t event_size) { // *******************************************************************************/ // ZLOGI("state %d", m_device_state); if (m_device_state == kdevice_state_standby) { - // 休眠模式现在是深度睡眠,所以永远不会触发这个回调 + if (DeviceCtrl_cur_state_haspassed_ms() > 1500) { + } + NVIC_SystemReset(); } // @@ -261,9 +263,9 @@ static void app_event_listener(void* p_event_data, uint16_t event_size) { // } } -void DeviceCtrl_startSample(int duration_ms) { - ZLOGI("start sample %d", duration_ms); - m_sample_duration_ms = duration_ms; +void DeviceCtrl_startSample(int duration_s) { + ZLOGI("start sample %d", duration_s); + m_sample_duration_ms = duration_s * 1000; static app_event_t event; event.eventType = kevent_start_sample_cmd_event; AppEvent_pushEvent(&event); diff --git a/app/src/heart_wave_sample_service.c b/app/src/heart_wave_sample_service.c index 50743ab..10f0dd6 100644 --- a/app/src/heart_wave_sample_service.c +++ b/app/src/heart_wave_sample_service.c @@ -17,10 +17,10 @@ #define SENSOR_LOD_ERROR_OFF_00 0 #define SENSOR_LOD_ERROR_OFF_01 1 -#define SENSOR_LOD_ERROR_OFF_10 8 -#define SENSOR_LOD_ERROR_OFF_11 9 -#define SENSOR_LOD_ERROR_OFF_20 10 -#define SENSOR_LOD_ERROR_OFF_21 11 +#define SENSOR_LOD_ERROR_OFF_10 2 +#define SENSOR_LOD_ERROR_OFF_11 3 +#define SENSOR_LOD_ERROR_OFF_20 8 +#define SENSOR_LOD_ERROR_OFF_21 9 #define FRAME_FILTER_INDEX_NUM 10 // 过滤帧数,每次启动采集后,过滤掉的帧数 #define GPIO_IRQ_TRIGGER_MODE 1 diff --git a/app/src/heart_wave_sample_service_cfg.h b/app/src/heart_wave_sample_service_cfg.h index 9a3ff60..15706d7 100644 --- a/app/src/heart_wave_sample_service_cfg.h +++ b/app/src/heart_wave_sample_service_cfg.h @@ -5,12 +5,16 @@ typedef struct { uint8_t data; } adscfg_t; -static adscfg_t m_prvads0cfg[] = {{0x00, 0x00}, {0x01, 0x19}, {0x02, 0x11}, {0x03, 0x00}, {0x04, 0x00}, {0x05, 0x00}, {0x06, 0x00}, {0x07, 0x0f}, {0x08, 0xff}, {0x09, 0x00}, {0x0a, 0x07}, {0x0b, 0x07}, {0x0c, 0x74}, {0x0d, 0x01}, {0x0e, 0x02}, {0x0f, 0x03}, {0x10, 0x04}, - {0x11, 0x00}, {0x12, 0x05}, {0x13, 0x39}, {0x14, 0x36}, {0x15, 0x06}, {0x16, 0x00}, {0x17, 0x05}, {0x18, 0x00}, {0x19, 0x00}, {0x1a, 0x00}, {0x1b, 0x00}, {0x1c, 0x00}, {0x1d, 0x00}, {0x21, 0x01}, {0x22, 0x20}, {0x23, 0x20}, {0x24, 0x02}, - {0x25, 0x00}, {0x26, 0x00}, {0x27, 0x08}, {0x28, 0x08}, {0x29, 0x00}, {0x2a, 0x00}, {0x2b, 0x00}, {0x2c, 0x00}, {0x2d, 0x00}, {0x2e, 0x33}, {0x2f, 0x30}, {0x30, 0x00}, {0x31, 0x00}, {0x32, 0x00}, {0x33, 0x00}, {0x34, 0x00}, {0x35, 0x00}, - {0x36, 0x00}, {0x37, 0x00}, {0x38, 0x00}, {0x39, 0x00}, {0x3a, 0x00}, {0x3b, 0x00}, {0x3c, 0x00}, {0x3d, 0x00}, {0x3e, 0x00}, {0x3f, 0x00}, {0x40, 0xff}, {0x50, 0x00}, {0x60, 0x00}, {0x62, 0x00}}; +static adscfg_t m_prvads0cfg[] = { + {0x00, 0x00}, {0x01, 0x19}, {0x02, 0x11}, {0x03, 0x00}, {0x04, 0x00}, {0x05, 0x00}, {0x06, 0x00}, {0x07, 0x0f}, {0x08, 0x01}, {0x09, 0x00}, {0x0a, 0x07}, {0x0b, 0x07}, {0x0c, 0x74}, {0x0d, 0x01}, {0x0e, 0x02}, {0x0f, 0x03}, {0x10, 0x04}, + {0x11, 0x00}, {0x12, 0x05}, {0x13, 0x39}, {0x14, 0x36}, {0x15, 0x06}, {0x16, 0x00}, {0x17, 0x05}, {0x18, 0x00}, {0x19, 0x00}, {0x1a, 0x00}, {0x1b, 0x00}, {0x1c, 0x00}, {0x1d, 0x00}, {0x21, 0x01}, {0x22, 0x20}, {0x23, 0x20}, {0x24, 0x02}, + {0x25, 0x00}, {0x26, 0x06}, {0x27, 0x08}, {0x28, 0x08}, {0x29, 0x00}, {0x2a, 0x00}, {0x2b, 0x00}, {0x2c, 0x00}, {0x2d, 0x00}, {0x2e, 0x33}, {0x2f, 0x30}, {0x30, 0x00}, {0x31, 0x00}, {0x32, 0x00}, {0x33, 0x00}, {0x34, 0x00}, {0x35, 0x00}, + {0x36, 0x00}, {0x37, 0x00}, {0x38, 0x00}, {0x39, 0x00}, {0x3a, 0x00}, {0x3b, 0x00}, {0x3c, 0x00}, {0x3d, 0x00}, {0x3e, 0x00}, {0x3f, 0x00}, {0x40, 0xff}, {0x50, 0x00}, {0x60, 0x00}, {0x62, 0x00}, +}; -static adscfg_t m_prvads1cfg[] = {{0x00, 0x00}, {0x01, 0x0c}, {0x02, 0x14}, {0x03, 0x00}, {0x04, 0x00}, {0x05, 0x00}, {0x06, 0x00}, {0x07, 0x0f}, {0x08, 0xff}, {0x09, 0x00}, {0x0a, 0x00}, {0x0b, 0x07}, {0x0c, 0x78}, {0x0d, 0x00}, {0x0e, 0x00}, {0x0f, 0x00}, {0x10, 0x04}, - {0x11, 0x00}, {0x12, 0x07}, {0x13, 0x3b}, {0x14, 0x24}, {0x15, 0x04}, {0x16, 0x00}, {0x17, 0x05}, {0x18, 0x00}, {0x19, 0x00}, {0x1a, 0x00}, {0x1b, 0x00}, {0x1c, 0x00}, {0x1d, 0x00}, {0x21, 0x01}, {0x22, 0x20}, {0x23, 0x20}, {0x24, 0x02}, - {0x25, 0x00}, {0x26, 0x00}, {0x27, 0x08}, {0x28, 0x40}, {0x29, 0x00}, {0x2a, 0x00}, {0x2b, 0x00}, {0x2c, 0x00}, {0x2d, 0x00}, {0x2e, 0x33}, {0x2f, 0x30}, {0x30, 0x00}, {0x31, 0x00}, {0x32, 0x00}, {0x33, 0x00}, {0x34, 0x00}, {0x35, 0x00}, - {0x36, 0x00}, {0x37, 0x00}, {0x38, 0x00}, {0x39, 0x00}, {0x3a, 0x00}, {0x3b, 0x00}, {0x3c, 0x00}, {0x3d, 0x00}, {0x3e, 0x00}, {0x3f, 0x00}, {0x40, 0xff}, {0x50, 0x00}, {0x60, 0x00}, {0x62, 0x00}}; +static adscfg_t m_prvads1cfg[] = { + {0x00, 0x00}, {0x01, 0x0c}, {0x02, 0x14}, {0x03, 0x00}, {0x04, 0x00}, {0x05, 0x00}, {0x06, 0x00}, {0x07, 0x03}, {0x08, 0x01}, {0x09, 0x00}, {0x0a, 0x00}, {0x0b, 0x07}, {0x0c, 0x78}, {0x0d, 0x00}, {0x0e, 0x00}, {0x0f, 0x00}, {0x10, 0x04}, + {0x11, 0x00}, {0x12, 0x07}, {0x13, 0x3b}, {0x14, 0x24}, {0x15, 0x04}, {0x16, 0x00}, {0x17, 0x05}, {0x18, 0x00}, {0x19, 0x00}, {0x1a, 0x00}, {0x1b, 0x00}, {0x1c, 0x00}, {0x1d, 0x00}, {0x21, 0x01}, {0x22, 0x20}, {0x23, 0x20}, {0x24, 0x02}, + {0x25, 0x00}, {0x26, 0x04}, {0x27, 0x00}, {0x28, 0x40}, {0x29, 0x00}, {0x2a, 0x00}, {0x2b, 0x00}, {0x2c, 0x00}, {0x2d, 0x00}, {0x2e, 0x33}, {0x2f, 0x30}, {0x30, 0x00}, {0x31, 0x00}, {0x32, 0x00}, {0x33, 0x00}, {0x34, 0x00}, {0x35, 0x00}, + {0x36, 0x00}, {0x37, 0x00}, {0x38, 0x00}, {0x39, 0x00}, {0x3a, 0x00}, {0x3b, 0x00}, {0x3c, 0x00}, {0x3d, 0x00}, {0x3e, 0x00}, {0x3f, 0x00}, {0x40, 0xff}, {0x50, 0x00}, {0x60, 0x00}, {0x62, 0x00}, +}; diff --git a/libznordic b/libznordic index a0a8566..1263772 160000 --- a/libznordic +++ b/libznordic @@ -1 +1 @@ -Subproject commit a0a8566a64d4a417f93884b8cd28089a8dc03262 +Subproject commit 1263772874368d62efa76fe69a2af9e34ee3f608