diff --git a/app/src/basic_service/app_event.h b/app/src/basic_service/app_event.h index 5b59483..793b18a 100644 --- a/app/src/basic_service/app_event.h +++ b/app/src/basic_service/app_event.h @@ -49,7 +49,8 @@ typedef enum { kdevice_state_sampling_complete, // 采集异常 kdevice_state_sampling_error, - + // 测试模式 + kdevice_state_test_mode, } device_state_t; static const char* device_state_to_str(device_state_t ds) { @@ -74,4 +75,3 @@ static const char* device_state_to_str(device_state_t ds) { return "unknow"; } } - diff --git a/app/src/basic_service/device_state.c b/app/src/basic_service/device_state.c index 08cc3f0..0791c4e 100644 --- a/app/src/basic_service/device_state.c +++ b/app/src/basic_service/device_state.c @@ -1,8 +1,8 @@ #include "device_state.h" -#include "znordic.h" #include "basic_service/app_event_distribute.h" +#include "znordic.h" /*********************************************************************************************************************** * 状态机 * ***********************************************************************************************************************/ @@ -53,3 +53,12 @@ void sample_capture_state_reset() { // void sample_capture_state_set_is_over30s(bool over30s) { // m_sample_capture_state.is_over30s = over30s; } + +/*********************************************************************************************************************** + * global_state * + ***********************************************************************************************************************/ + +global_state_t m_global_state; +global_state_t* global_state_get() { return &m_global_state; } +void global_state_set_preview_state(bool is_preview) { m_global_state.preivew_state = is_preview; } + diff --git a/app/src/basic_service/device_state.h b/app/src/basic_service/device_state.h index 48ad08a..872cfae 100644 --- a/app/src/basic_service/device_state.h +++ b/app/src/basic_service/device_state.h @@ -20,3 +20,10 @@ sample_capture_state_t* sample_capture_state_get(); void sample_capture_state_reset(); void sample_capture_state_set_is_over30s(bool over30s); + +typedef struct { + bool preivew_state; +} global_state_t; + +global_state_t* global_state_get(); +void global_state_set_preview_state(bool is_preview); \ No newline at end of file diff --git a/app/src/one_conduction_main.c b/app/src/one_conduction_main.c index bb0f588..6a830f7 100644 --- a/app/src/one_conduction_main.c +++ b/app/src/one_conduction_main.c @@ -292,7 +292,7 @@ static void app_event_listener(void* p_event_data, uint16_t event_size) { *******************************************************************************/ if (p_event->eventType == kevent_capture_little_data_block_event) { // 单帧实时上报 - ble_cmder_try_report_one_sample_data(p_event); + if (global_state_get()->preivew_state) ble_cmder_try_report_one_sample_data(p_event); } /******************************************************************************* @@ -363,6 +363,20 @@ static void app_event_listener(void* p_event_data, uint16_t event_size) { ble_cmder_report_sample_finish_event(); } } + + /****************************************************************************************************************** + * 测试模式 * + ******************************************************************************************************************/ + + else if (ds_now_state() == kdevice_state_test_mode) { + /** + * @brief 测试模式下永远不退出,当前模式 + */ + + if (p_event->eventType == kevent_capture_little_data_block_event) { + ble_cmder_try_report_one_sample_data(p_event); + } + } } /******************************************************************************* * MAIN_CODE * @@ -381,6 +395,6 @@ void one_conduction_main() { hwss_init(); ds_init(on_state_change); - // ds_change_to_state(kdevice_state_poweron); + ds_change_to_state(kdevice_state_test_mode); znordic_loop(); } diff --git a/app/src/service/ble_cmd_processer/ble_cmd_process_service.c b/app/src/service/ble_cmd_processer/ble_cmd_process_service.c index 3ab5960..254b75d 100644 --- a/app/src/service/ble_cmd_processer/ble_cmd_process_service.c +++ b/app/src/service/ble_cmd_processer/ble_cmd_process_service.c @@ -16,7 +16,6 @@ APP_TIMER_DEF(m_record_upload_tmr); // APP_TIMER_DEF(m_record_upload_finish_packet_report_tmr); // 数据上报完成上报定时器 static uint8_t txbuf[250]; static uint8_t reportbuf[250]; -static bool m_realtime_report_state = false; static int m_upload_record_state = 0; static uint32_t m_upload_data_state_enter_tp = 0; @@ -30,12 +29,12 @@ int ble_stop_upload_record(); * 广播控制 * *******************************************************************************/ void ble_cmder_start_adv() { - m_realtime_report_state = false; + global_state_set_preview_state(false); zble_module_start_adv(); } void ble_cmder_stop_adv() { zble_module_stop_adv(); - m_realtime_report_state = false; + global_state_set_preview_state(false); } /******************************************************************************* @@ -53,19 +52,8 @@ void ble_cmder_uninit() {} /******************************************************************************* * 实时上报控制 * *******************************************************************************/ -int ble_start_realtime_report() { - m_realtime_report_state = true; - return 0; -} -int ble_stop_realtime_report() { - m_realtime_report_state = false; - return 0; -} -void ble_cmder_try_report_one_sample_data(app_event_t* event) { - if (!m_realtime_report_state) { - return; - } +void ble_cmder_try_report_one_sample_data(app_event_t* event) { heartrate_report_packet_t* reportpacket = (heartrate_report_packet_t*)reportbuf; reportpacket->cmd = ify_hrs_report_heartrate_data; reportpacket->frame_index = 0; @@ -324,7 +312,7 @@ void ble_cmder_process_rx(uint8_t* rx, int len) { receipt->drop_state0 = (0); receipt->drop_state1 = 0x00; receipt->device_state0.sampling_state = (ds_now_state() == kdevice_state_sampling); - receipt->device_state0.report_state = m_realtime_report_state; + receipt->device_state0.report_state = global_state_get()->preivew_state; receipt->device_state0.low_battery = (BoardBattery_get_battery_level() < APP_LOW_BATTERY_WARNING_LIMIT); receipt->device_state0.full_storge = (sample_data_mgr_storage_is_full()); @@ -367,22 +355,13 @@ void ble_cmder_process_rx(uint8_t* rx, int len) { } else if (cmd == ify_hrs_cmd_start_realtime_preview) { - // unsupport cmd - int ecode = ble_start_realtime_report(); - if (ecode == 0) { - send_success_receipt(rxheader, 8); // 凑8个字节,使这个回执的字节长度同上报包长度一致,方便调试 - } else { - send_error_receipt(rxheader, ecode); - } + global_state_set_preview_state(true); + send_success_receipt(rxheader, 0); } else if (cmd == ify_hrs_cmd_stop_realtime_preview) { - int ecode = ble_stop_realtime_report(); - if (ecode == 0) { - send_success_receipt(rxheader, 0); - } else { - send_error_receipt(rxheader, ecode); - } + global_state_set_preview_state(false); + send_success_receipt(rxheader, 0); } else if (cmd == ify_hrs_cmd_read_records_info) { diff --git a/app/src/service/heart_wave_sample_service/heart_wave_sample_service.c b/app/src/service/heart_wave_sample_service/heart_wave_sample_service.c index 3bdd4a0..702edce 100644 --- a/app/src/service/heart_wave_sample_service/heart_wave_sample_service.c +++ b/app/src/service/heart_wave_sample_service/heart_wave_sample_service.c @@ -17,19 +17,30 @@ typedef enum { static capture_state_t m_prepare_capture_state = kidle; static uint32_t m_start_capture_tp; -static void on_ads129x_ready_irq(app_board_irq_event_t event) { + +/** + * @brief 处理ads129x数据,并上报 + * + * @param event + */ +static void on_ads129x_ready_irq(app_board_irq_event_t event) { +#if 1 static ads129x_capture_data_t capture_data; ads129x_read_data(&capture_data); hwsd_mgr_push_one_frame(capture_data.ch1data); - // static int32_t data; - // data += 1000; - // if (data >= 60000) { - // data = -60000; - // } - // hwsd_mgr_push_one_frame(data); +#else + static int32_t data; + data += 1000; + if (data >= 60000) { + data = -60000; + } + hwsd_mgr_push_one_frame(data); +#endif } -void hwss_init(void) { app_board_reg_irq_listener(kon_irq_ads1291_ready_pin, on_ads129x_ready_irq); } +void hwss_init(void) { // + app_board_reg_irq_listener(kon_irq_ads1291_ready_pin, on_ads129x_ready_irq); +} void hwss_start_prepare_capture(void) { m_start_capture_tp = znordic_getpower_on_s(); diff --git a/app/src/service/heart_wave_sample_service/heart_wave_sample_service.h b/app/src/service/heart_wave_sample_service/heart_wave_sample_service.h index 561ea7d..e143635 100644 --- a/app/src/service/heart_wave_sample_service/heart_wave_sample_service.h +++ b/app/src/service/heart_wave_sample_service/heart_wave_sample_service.h @@ -16,6 +16,4 @@ float hwss_read_heart_rate(void); int hwss_has_captured_time_ms(); void hwss_start_prepare_capture(void); - - bool hwss_lead_get_state_connected_state(); \ No newline at end of file