zhaohe 1 year ago
parent
commit
2551f01cd0
  1. 5
      README.md
  2. 14
      app/src/app_ble_service.c
  3. 14
      app/src/device_ctrl_service.c
  4. 5
      app/src/heart_wave_sample_service.c
  5. 15483
      release/V26/three_lead_ecg_v26.hex
  6. BIN
      release/V26/three_lead_ecg_v26.zip

5
README.md

@ -1,6 +1,11 @@
# three_lead_ecg_v2 # three_lead_ecg_v2
``` ```
V26:
1.添加导联线插入检测,导联线未插入,无法启动预览
2.修复部分BUG
V25: V25:
1.针对协议V1.8进行修改 1.针对协议V1.8进行修改

14
app/src/app_ble_service.c

@ -253,6 +253,10 @@ int RecordUpload_start(sample_data_filename_t* recordid) {
return 0; return 0;
} }
int RecordUpload_stop_upload() { int RecordUpload_stop_upload() {
if (!m_isupload_data_state) {
return 0;
}
m_isupload_data_state = false; m_isupload_data_state = false;
SampleDataMgr_changeToExtMode(); SampleDataMgr_changeToExtMode();
app_timer_stop(m_record_upload_tmr); app_timer_stop(m_record_upload_tmr);
@ -365,6 +369,11 @@ static void prvf_process_ble_rx_data(void* p_event_data, uint16_t len) {
#if 1 #if 1
else if (cmd == ify_hrs_cmd_start_realtime_preview) { else if (cmd == ify_hrs_cmd_start_realtime_preview) {
if (m_isupload_data_state) {
send_error_receipt(rxheader, kifyhrs_ecode_device_busy);
return;
}
uint8_t ecode = DeviceCtrl_StartPreview(); uint8_t ecode = DeviceCtrl_StartPreview();
if (ecode == 0) { if (ecode == 0) {
send_success_receipt(rxheader, 0); send_success_receipt(rxheader, 0);
@ -374,6 +383,11 @@ static void prvf_process_ble_rx_data(void* p_event_data, uint16_t len) {
} }
else if (cmd == ify_hrs_cmd_stop_realtime_preview) { else if (cmd == ify_hrs_cmd_stop_realtime_preview) {
if (m_isupload_data_state) {
send_error_receipt(rxheader, kifyhrs_ecode_device_busy);
return;
}
uint8_t ecode = DeviceCtrl_StopPreview(); uint8_t ecode = DeviceCtrl_StopPreview();
if (ecode == 0) { if (ecode == 0) {
send_success_receipt(rxheader, 0); send_success_receipt(rxheader, 0);

14
app/src/device_ctrl_service.c

@ -277,6 +277,9 @@ static void app_event_listener(void* p_event_data, uint16_t event_size) { //
} else if (BoardBattery_get_battery_level() < APP_LOW_BATTERY_LIMIT) { } else if (BoardBattery_get_battery_level() < APP_LOW_BATTERY_LIMIT) {
ZLOGI("stop sample because low battery"); ZLOGI("stop sample because low battery");
stopcapture = true; stopcapture = true;
} else if (!hwss_line_detect_get_state()) {
ZLOGI("stop sample because electrode is not inserted");
stopcapture = true;
} }
if (stopcapture) { if (stopcapture) {
@ -296,6 +299,13 @@ static void app_event_listener(void* p_event_data, uint16_t event_size) { //
event.eventType = kevent_sample_stop_event; event.eventType = kevent_sample_stop_event;
AppEvent_pushEvent(&event); AppEvent_pushEvent(&event);
} }
m_IsRealtimeReport = false;
m_isStoraging = false;
m_hasStoragedTimeS = 0;
m_settingStorageTimeS = 0;
m_startStorageTimeTicket = 0;
BoardBeepCtrl_setEffect(kBoardBeepEffect_oneShortLongBeep); BoardBeepCtrl_setEffect(kBoardBeepEffect_oneShortLongBeep);
} }
} }
@ -360,6 +370,10 @@ uint8_t DeviceCtrl_StartPreview() {
return kifyhrs_ecode_invalid_state; return kifyhrs_ecode_invalid_state;
} }
if (!hwss_line_detect_get_state()) {
return kifyhrs_ecode_electrode_is_not_inserted;
}
if (m_device_state == kdevice_state_ready) { if (m_device_state == kdevice_state_ready) {
static app_event_t event; static app_event_t event;
event.eventType = kevent_start_sample_cmd_event; event.eventType = kevent_start_sample_cmd_event;

5
app/src/heart_wave_sample_service.c

@ -541,11 +541,13 @@ void hwss_load(void) {
ZERROR_CHECK(nrfx_gpiote_in_init(ADS1293_READY_PIN, &inConfig, ads1293_ready_pin_irq)); ZERROR_CHECK(nrfx_gpiote_in_init(ADS1293_READY_PIN, &inConfig, ads1293_ready_pin_irq));
} }
ads1293_init(); ads1293_init();
nrf_gpio_cfg_input(LINE_DET_PIN, NRF_GPIO_PIN_PULLUP);
} }
void hwss_unload(void) { void hwss_unload(void) {
ads1293_uninit(); ads1293_uninit();
nrfx_gpiote_uninit(); nrfx_gpiote_uninit();
nrf_gpio_cfg_default(ADS1293_READY_PIN); nrf_gpio_cfg_default(ADS1293_READY_PIN);
nrf_gpio_cfg_default(LINE_DET_PIN);
} }
uint32_t hwss_started_has_passed_s(void) { return znordic_getpower_on_s() - m_capture_start_s; } uint32_t hwss_started_has_passed_s(void) { return znordic_getpower_on_s() - m_capture_start_s; }
@ -554,7 +556,6 @@ uint8_t hwss_read_cfg_type() { return m_cfg_type; }
void hwss_start_capture(void) { void hwss_start_capture(void) {
ZASSERT(!DeviceExceptionMgr_has_error()); ZASSERT(!DeviceExceptionMgr_has_error());
nrf_gpio_cfg_input(LINE_DET_PIN, NRF_GPIO_PIN_PULLUP);
m_drop_state_triggered = false; m_drop_state_triggered = false;
m_work_flag = true; m_work_flag = true;
@ -638,8 +639,6 @@ void hwss_stop_capture(void) {
nrf_gpio_pin_set(ADS1293_SPI_CS1_PIN); nrf_gpio_pin_set(ADS1293_SPI_CS1_PIN);
#endif #endif
} }
nrf_gpio_cfg_default(LINE_DET_PIN);
} }
bool hwss_is_capturing(void) { return m_work_flag; } bool hwss_is_capturing(void) { return m_work_flag; }

15483
release/V26/three_lead_ecg_v26.hex
File diff suppressed because it is too large
View File

BIN
release/V26/three_lead_ecg_v26.zip

Loading…
Cancel
Save