diff --git a/README.md b/README.md index 2f4b554..43ff7f4 100644 --- a/README.md +++ b/README.md @@ -3,24 +3,25 @@ ``` # TODO: - 1. 修改蓝牙测试Server程序,测试程序蓝牙名称过滤标志为 iflytop_ble_test_device OK - 2. 修改蓝牙名称生成规则,规则为,当device_id为0或者全F,蓝牙名称为iflytop_ble_test_device,否则蓝牙名称为产品SN码 OK - 3. 手机端可以看到设备的软件版本信息。OK - 3. 心率采集改成由IO中断驱动。OK +修改蓝牙测试Server程序,测试程序蓝牙名称过滤标志为 iflytop_ble_test_device OK +修改蓝牙名称生成规则,规则为,当device_id为0或者全F,蓝牙名称为iflytop_ble_test_device,否则蓝牙名称为产品SN码 OK +手机端可以看到设备的软件版本信息。OK +心率采集改成由IO中断驱动。OK - 8. 开机,蜂鸣器响一声,开始采集,蜂鸣器响一声,结束采集,蜂鸣器响一声。 - - 7. 修正回执包错误码 - 8. 添加心跳检测,1分钟内没有收到心跳包,设备自动断开蓝牙连接。 - 9. 设备断开连接后,停止采集(临时代码) - 10. 添加一条新的开始采集指令,支持定时参数。(或者使用旧的开始采集指令) - 11. 导联断开检测触发后,上报事件(不停止采集),蜂鸣器响三声。 - 12. 低电量进入关机模式而非休眠模式 - 13. 添加指令上传最新一条记录 - - 4. 修改电量检测,电量过低时,指示灯闪烁三下后进入低功耗。 - 5. 电量过低上报低电量事件。电量不足%1时,设备自动断开连接,并关机。 - 6. 设备充电时候,不允许采集。 +开机,蜂鸣器响一声,开始采集,蜂鸣器响一声,结束采集,蜂鸣器响一声。 +修正回执包错误码. + +添加心跳检测,1分钟内没有收到心跳包,设备自动断开蓝牙连接。 +设备断开连接后,停止采集(临时代码) + +添加一条新的开始采集指令,支持定时参数。(或者使用旧的开始采集指令) +导联断开检测触发后,上报事件(不停止采集),蜂鸣器响三声。 +低电量进入关机模式 +添加指令上传最新一条记录 + +修改电量检测,电量过低时,指示灯闪烁三下后进入低功耗。 +电量过低上报低电量事件。电量不足%1时,设备自动断开连接,并关机。 +设备充电时候,不允许采集。 ``` diff --git a/app/src/basic/device_version_info_mgr.c b/app/src/basic/device_version_info_mgr.c index 4bdca3c..55034a7 100644 --- a/app/src/basic/device_version_info_mgr.c +++ b/app/src/basic/device_version_info_mgr.c @@ -1,3 +1,5 @@ +#include "device_version_info_mgr.h" + #include "app_ble_service.h" #include "app_event_distribute.h" #include "basic/ads1293/ads1293.h" @@ -5,30 +7,27 @@ #include "device_ctrl_service.h" #include "zble_module.h" #include "zdatachannel_service.h" -#include "device_version_info_mgr.h" // -#include "znordic.h" #include "version.h" -void device_info_read_sn(sn_t *sn) -{ - uint32_t lot = NRF_UICR->CUSTOMER[0]; - uint32_t id = NRF_UICR->CUSTOMER[1]; +#include "znordic.h" +void device_info_read_sn(sn_t *sn) { + uint32_t lot = NRF_UICR->CUSTOMER[0]; + uint32_t id = NRF_UICR->CUSTOMER[1]; static char sn_str[15]; sprintf(sn_str, CATEGORY "%04d%05d", lot, id); - if (lot == 0 || id == 0 || lot == 0xffffffff || id == 0xffffffff) - { + if (lot == 0 || id == 0 || lot == 0xffffffff || id == 0xffffffff) { sprintf(sn_str, "iflytop_test", 0, 0); } memcpy(sn->sn, sn_str, sizeof(sn->sn)); } -const char *device_info_read_sn_str() -{ +const char *device_info_read_sn_str() { static char sn_str[15]; device_info_read_sn((sn_t *)sn_str); return sn_str; } -uint16_t device_info_read_blestack_version(void) { return 1; } -uint16_t device_info_read_bootloader_version(void) { return 1; } -uint16_t device_info_read_firmware_version(void) { return 1; } -uint16_t device_info_read_hardware_version(void) { return 1; } \ No newline at end of file + +uint16_t device_info_read_blestack_version(void) { return BLESTACK_VERSION; } +uint16_t device_info_read_bootloader_version(void) { return BOOTLOADER_VERSION; } +uint16_t device_info_read_firmware_version(void) { return FIRMWARE_VERSION; } +uint16_t device_info_read_hardware_version(void) { return HARDWARE_VERSION; } \ No newline at end of file diff --git a/app/src/board/board.h b/app/src/board/board.h index 8a97ae2..005cf65 100644 --- a/app/src/board/board.h +++ b/app/src/board/board.h @@ -40,14 +40,12 @@ /******************************************************************************* * 按键 * *******************************************************************************/ -// #define BUTTON_PIN 18 -#define BUTTON_PIN 0 +#define BUTTON_PIN 18 /******************************************************************************* * 蜂鸣器 * *******************************************************************************/ -// #define BEEP_PIN 0 -#define BEEP_PIN 18 +#define BEEP_PIN 0 /******************************************************************************* * 电池电量 * diff --git a/app/src/board/board_beep_ctrl.c b/app/src/board/board_beep_ctrl.c index 1892875..4d8e02c 100644 --- a/app/src/board/board_beep_ctrl.c +++ b/app/src/board/board_beep_ctrl.c @@ -1,5 +1,6 @@ #include "board_beep_ctrl.h" #define BEEP_TIMER_INTERVAL (150) +#if 1 APP_TIMER_DEF(m_beep_tmr); // static nrf_drv_pwm_t m_beep_pwm0 = NRF_DRV_PWM_INSTANCE(BEEP_PWM_INSTANCE); @@ -70,17 +71,20 @@ static void beep_tmr_handler(void *context) { m_beep_cnt++; } -void BoardBeepCtrl_init(void) { app_timer_create(&m_beep_tmr, APP_TIMER_MODE_REPEATED, beep_tmr_handler); } -void BoardBeepCtrl_load() { APP_ERROR_CHECK(nrfx_pwm_init(&m_beep_pwm0, &m_beep_pwm0_config0, NULL)); } +void BoardBeepCtrl_init(void) { + APP_ERROR_CHECK(nrfx_pwm_init(&m_beep_pwm0, &m_beep_pwm0_config0, NULL)); + app_timer_create(&m_beep_tmr, APP_TIMER_MODE_REPEATED, beep_tmr_handler); +} +void BoardBeepCtrl_load() {} void BoardBeepCtrl_unload() { BoardBeepCtrl_set(0); - nrfx_pwm_uninit(&m_beep_pwm0); + // nrfx_pwm_uninit(&m_beep_pwm0); } void BoardBeepCtrl_set(uint8_t state) { if (state) { - m_beep_pwm0_seq_values.channel_0 = m_beep_pwm0_config0.top_value / 2; // 设置占空比,数值最大不超过 top_value + m_beep_pwm0_seq_values.channel_0 = m_beep_pwm0_config0.top_value / 4; // 设置占空比,数值最大不超过 top_value nrfx_pwm_simple_playback(&m_beep_pwm0, &m_beep_pwm0_seq, 1, NRF_DRV_PWM_FLAG_LOOP); } else { nrfx_pwm_stop(&m_beep_pwm0, true); @@ -100,3 +104,15 @@ void BoardBeepCtrl_setEffect(BoardBeepEffect_t effect) { app_timer_start(m_beep_tmr, APP_TIMER_TICKS(BEEP_TIMER_INTERVAL), NULL); } } + +#else + +void BoardBeepCtrl_init(void) {} +void BoardBeepCtrl_load() {} + +void BoardBeepCtrl_unload() {} + +void BoardBeepCtrl_set(uint8_t state) {} + +void BoardBeepCtrl_setEffect(BoardBeepEffect_t effect) {} +#endif \ No newline at end of file diff --git a/app/src/device_ctrl_service.c b/app/src/device_ctrl_service.c index 315ac9d..e8ef0c4 100644 --- a/app/src/device_ctrl_service.c +++ b/app/src/device_ctrl_service.c @@ -281,11 +281,6 @@ void DeviceCtrl_init() { // 切换到待机状态 prvf_change_to_ready_state(); - - // BoardBeepCtrl_init(); - // BoardBeepCtrl_load(); - // BoardBeepCtrl_setEffect(kBoardBeepEffect_continuousShortBeep); - ZERROR_CHECK(app_timer_create(&m_state_machine_driver_tmr, APP_TIMER_MODE_REPEATED, state_machine_driver_tmr_cb)); ZERROR_CHECK(app_timer_start(m_state_machine_driver_tmr, APP_TIMER_TICKS(100), NULL)); // 200HZ采样 } diff --git a/dynamic_electrocardiograph_ble_server b/dynamic_electrocardiograph_ble_server index e777a46..0f6adf0 160000 --- a/dynamic_electrocardiograph_ble_server +++ b/dynamic_electrocardiograph_ble_server @@ -1 +1 @@ -Subproject commit e777a461dddc3fc3756c9eaf9a1f27c473d3c7fb +Subproject commit 0f6adf0cac84c8f4f23eb7aca53fcc751bcb113b