Browse Source

update

master
zhaohe 1 year ago
parent
commit
9a9fb9c41e
  1. 3
      .vscode/settings.json
  2. 88
      app/src/app_ble_service.c
  3. 7
      app/src/app_event.h
  4. 2
      app/src/board/board_light_ctrl.c
  5. 8
      app/src/device_ctrl_service.c

3
.vscode/settings.json

@ -106,7 +106,8 @@
"app_event_distribute.h": "c",
"board_beep_ctrl.h": "c",
"nrf_soc.h": "c",
"sample_data_manager_service.h": "c"
"sample_data_manager_service.h": "c",
"app_event.h": "c"
},
"files.encoding": "gbk"
}

88
app/src/app_ble_service.c

@ -1,6 +1,8 @@
#include "app_ble_service.h"
#include "../../ify_hrs_protocol/heart_rate_sensor_protocol.h"
#include "app_event.h"
#include "app_event_distribute.h"
#include "app_scheduler.h"
#include "board/board.h"
#include "board/board_battery_state.h"
@ -81,6 +83,70 @@ static void send_success_receipt(ify_hrs_packet_t* rxpacket, int32_t emptydatasi
zdatachannel_data_send2(m_txbuf, sendlen);
}
static void prvf_try_report_sensor_drop_event(uint8_t dropstate0, uint8_t dropstate1) {
sensor_drop_event_report_packet_t* reportpacket = (sensor_drop_event_report_packet_t*)m_reportbuf;
reportpacket->cmd = ify_hrs_report_sensor_drop_detect;
reportpacket->frame_index = 0;
reportpacket->frame_type = kifyhrs_pt_report;
reportpacket->drop_state0 = dropstate0;
reportpacket->drop_state1 = dropstate1;
uint16_t sendlen = sizeof(sensor_drop_event_report_packet_t);
zdatachannel_data_send2(m_reportbuf, sendlen);
return;
}
static void prvf_try_report_sample_end_event() {
sensor_drop_event_report_packet_t* reportpacket = (ify_hrs_packet_t*)m_reportbuf;
reportpacket->cmd = ify_hrs_report_sample_finish_end;
reportpacket->frame_index = 0;
reportpacket->frame_type = kifyhrs_pt_report;
uint16_t sendlen = sizeof(ify_hrs_packet_t);
zdatachannel_data_send2(m_reportbuf, sendlen);
return;
}
void prvf_report_sample_data(uint32_t frameIndex, uint32_t data, uint32_t data2, uint32_t data3) {
if (!m_realtime_report_state) {
return;
}
heartrate_report_packet_t* reportpacket = (heartrate_report_packet_t*)m_reportbuf;
reportpacket->cmd = ify_hrs_report_heartrate_data;
reportpacket->frame_index = 0;
reportpacket->frame_type = kifyhrs_pt_report;
reportpacket->sample_data_index = frameIndex;
/**
* @brief
*/
reportpacket->data[0] = (data >> 0) & 0xFF;
reportpacket->data[1] = (data >> 8) & 0xFF;
reportpacket->data[2] = (data >> 16) & 0xFF;
reportpacket->data[3] = 0;
/**
* @brief
*/
reportpacket->data[4] = (data2 >> 0) & 0xFF;
reportpacket->data[5] = (data2 >> 8) & 0xFF;
reportpacket->data[6] = (data2 >> 16) & 0xFF;
reportpacket->data[7] = 0;
/**
* @brief
*/
reportpacket->data[8] = (data3 >> 0) & 0xFF;
reportpacket->data[9] = (data3 >> 8) & 0xFF;
reportpacket->data[10] = (data3 >> 16) & 0xFF;
reportpacket->data[11] = 0;
uint16_t sendlen = sizeof(heartrate_report_packet_t) + 4 * 3;
zdatachannel_data_send2(reportbuf, sendlen);
return;
}
/*******************************************************************************
* *
*******************************************************************************/
@ -271,8 +337,6 @@ static void prvf_process_ble_rx_data(void* p_event_data, uint16_t len) {
}
}
void AppBleService_onServiceInitCB() {
ZLOGI("init zdatachannel service");
static zdatachannel_init_t zdatachannle_init;
@ -281,6 +345,22 @@ void AppBleService_onServiceInitCB() {
ZERROR_CHECK(zdatachannel_init(&m_zhrs, &zdatachannle_init));
}
void AppBleService_init() {
//
static void app_event_listener(void* p_event_data, uint16_t event_size) { //
app_event_t* event = (app_event_t*)p_event_data;
if (event->eventType == kevent_sensor_drop) {
prvf_try_report_sensor_drop_event(event->val.sensor_drop.drop0, event->val.sensor_drop.drop1);
} else if (event->eventType == kevent_sample_stop_event) {
prvf_try_report_sample_end_event();
} else if (event->eventType == kevent_capture_little_data_block_event) {
//
if (m_realtime_report_state) {
//
prvf_report_sample_data(event->val.little_data_block.frameIndex, //
event->val.little_data_block.data[0].data0, //
event->val.little_data_block.data[0].data1, //
event->val.little_data_block.data[0].data2);
}
}
}
void AppBleService_init() { AppEvent_regListener(app_event_listener); }

7
app/src/app_event.h

@ -12,8 +12,11 @@ typedef enum {
kevent_button_push_event, //
kevent_button_release_event, //
kevent_start_sample_event, //
kevent_stop_sample_event, //
kevent_start_sample_cmd_event, //
kevent_stop_sample_cmd_event, //
kevent_sample_start_event, //
kevent_sample_stop_event, //
kevent_ble_connect_event, //
kevent_ble_disconnect_event, //

2
app/src/board/board_light_ctrl.c

@ -28,7 +28,7 @@ static void BoardLight_effect_tmr_handler(void *p_context) { //
BoardLight_setGreenLightState(false);
}
} else {
if (BLINK_PERIOD_MS * m_blink_cnt >= 3000) {
if (BLINK_PERIOD_MS * m_blink_cnt >= 1000) {
m_blink_cnt = 0;
return;
}

8
app/src/device_ctrl_service.c

@ -154,7 +154,7 @@ static void app_event_listener(void* p_event_data, uint16_t event_size) { //
prvf_change_to_standby_state();
}
if (event->eventType == kevent_start_sample_event) {
if (event->eventType == kevent_start_sample_cmd_event) {
// SD卡连接到单片机
SampleDataMgr_changeToLocalMode();
//
@ -185,7 +185,7 @@ static void app_event_listener(void* p_event_data, uint16_t event_size) { //
if (SampleDataMgr_getFileSizeByFd(m_sample_data_fd) > SDCARD_MAX_FILE_SIZE) {
ZLOGI("stop sample because file size is too large");
stopcapture = true;
} else if (event->eventType == kevent_stop_sample_event) {
} else if (event->eventType == kevent_stop_sample_cmd_event) {
ZLOGI("stop sample because stop sample event");
stopcapture = true;
}
@ -206,13 +206,13 @@ static void app_event_listener(void* p_event_data, uint16_t event_size) { //
void DeviceCtrl_startSample() {
ZLOGI("start sample");
static app_event_t event;
event.eventType = kevent_start_sample_event;
event.eventType = kevent_start_sample_cmd_event;
AppEvent_pushEvent(&event);
}
void DeviceCtrl_stopSample() {
ZLOGI("stop sample");
static app_event_t event;
event.eventType = kevent_stop_sample_event;
event.eventType = kevent_stop_sample_cmd_event;
AppEvent_pushEvent(&event);
}

Loading…
Cancel
Save