Browse Source

update

master
zhaohe 1 year ago
parent
commit
f88677f022
  1. 1
      app/src/app_basic_service/basic/event.h
  2. 2
      app/src/app_basic_service/device_version_info_mgr.c
  3. 8
      app/src/app_service/ecg_service/ecg_service.c
  4. 1
      app/src/app_service/ecg_service/ecg_service.h
  5. 4
      app/src/aproject_config/config.h
  6. 6
      app/src/ble_data_processer_utils.c
  7. 6
      app/src/one_conduction_main.c
  8. 2
      ify_hrs_protocol

1
app/src/app_basic_service/basic/event.h

@ -34,7 +34,6 @@ typedef struct {
union {
struct {
uint32_t frameIndex;
uint8_t leadoffstate;
ecg_report_data_t* ecgData;
} ecg_data_report_event;
} val;

2
app/src/app_basic_service/device_version_info_mgr.c

@ -74,7 +74,7 @@ uint16_t device_info_read_firmware_version(void) { return FIRMWARE_VERSION; }
uint16_t device_info_read_hardware_version(void) { return HARDWARE_VERSION; }
void device_info_write_active_flag(bool val) {
uint32_t data;
uint32_t data = 0x12345678;
nrf_fstorage_write(&fstorage, fstorage.start_addr, &data, sizeof(data), NULL);
}
bool device_info_get_active_flag() {

8
app/src/app_service/ecg_service/ecg_service.c

@ -13,6 +13,7 @@
static nrf_drv_spi_t ads129x_spi = NRF_DRV_SPI_INSTANCE(ADS1291_SPI_INSTANCE); // global
static nrf_drv_spi_config_t ads129x_spi_config;
static bool m_testmode_flag;
static bool m_report_data_in_raw_mode_flag;
/***********************************************************************************************************************
* PRIVATE_FUNC *
@ -200,8 +201,11 @@ static void ads1291_ready_pin_irq(nrfx_gpiote_pin_t pin, nrf_gpiote_polarity_t a
// Éϱ¨
one_frame_t frame;
if (m_report_data_in_raw_mode_flag) {
frame.data = capture_data.ch1data;
} else {
frame.data = ecg_algo_get_report_data();
// frame.data = capture_data.ch1data;
}
frame.leadoff = capture_data.loffstate;
ecg_data_mgr_push_one_frame(frame);
}
@ -348,3 +352,5 @@ void ecg_service_set_in_test_mode(bool testmode) {
ZLOGI("ecg_service_set_in_test_mode %d", testmode);
m_testmode_flag = testmode;
}
void ecg_service_set_report_data_in_raw_mode(bool rawmode) { m_report_data_in_raw_mode_flag = rawmode; }

1
app/src/app_service/ecg_service/ecg_service.h

@ -36,3 +36,4 @@ void ecg_service_subic_write_reg(uint8_t addr, uint8_t val);
uint8_t ecg_service_subic_read_reg(uint8_t addr);
void ecg_service_set_in_test_mode(bool testmode);
void ecg_service_set_report_data_in_raw_mode(bool rawmode);

4
app/src/aproject_config/config.h

@ -7,7 +7,7 @@
#define CATEGORY "M1003" // 单导联
#define MANUFACTURER_NAME "iflytop"
#define FIRMWARE_VERSION (10)
#define FIRMWARE_VERSION (1)
#define BLESTACK_VERSION 1
#define BOOTLOADER_VERSION 1
#define HARDWARE_VERSION (1)
@ -32,7 +32,7 @@
#define MAX_STORAGE_SIZE (MAX_STORAGE_TIMEOUT_S * 400) // 存储最大限制为 (256-8)kbyte
#define MAX_FILE_NUM 10 // 最多存储条目数
#define SAMPLE_RATE 500 // 采样率
#define SAMPLE_PRECISION 12 // 采样精度
#define SAMPLE_PRECISION 16 // 采样精度
#define AUTOMATIC_SLEEP_TIME 30000 // 开机后自动休眠时间
#define SAMPLE_MIN_TIME_S (30.0) // 采样最小时间
#define LITTLE_DATA_BLOCK_FRAME_NUM 50 // 每次多少帧上报一次

6
app/src/ble_data_processer_utils.c

@ -42,12 +42,16 @@ void report_ecg_data(app_event_t* data) {
reportpacket->frame_index = 0;
reportpacket->frame_type = kifyhrs_pt_report;
reportpacket->sample_data_index = data->val.ecg_data_report_event.frameIndex;
reportpacket->leadoff_state = data->val.ecg_data_report_event.leadoffstate;
reportpacket->sample_data_num = ECG_DATA_REPORT_FRAME_NUM;
for (int i = 0; i < ECG_DATA_REPORT_FRAME_NUM; i++) {
reportpacket->frame[i] = data->val.ecg_data_report_event.ecgData->frame[i].data;
}
uint8_t leadoffstate = 0;
for (int i = 0; i < ECG_DATA_REPORT_FRAME_NUM; i++) {
leadoffstate |= data->val.ecg_data_report_event.ecgData->frame[i].leadoff;
}
zdatachannel_data_send2(blereportbuf, //
sizeof(m1003_heartrate_report_packet_t) + ECG_DATA_REPORT_FRAME_NUM * sizeof(reportpacket->frame[0]));
}

6
app/src/one_conduction_main.c

@ -190,6 +190,12 @@ void one_conduction_process_rx_packet(uint8_t* rx, int len) {
send_success_receipt(rxheader, 0);
}
else if (cmd == ify_hrs_cmd_set_ecg_report_data_in_raw_mode) {
int32_t testmode = *(int32_t*)rxheader->data;
ecg_service_set_report_data_in_raw_mode(testmode);
send_success_receipt(rxheader, 0);
}
else {
send_error_receipt(rxheader, kifyhrs_ecode_cmd_not_support);
}

2
ify_hrs_protocol

@ -1 +1 @@
Subproject commit a1fda58c30f6bb892c9f503280b3896c67e00dda
Subproject commit a532e43847aa8dd525f86748104a496ec561e841
Loading…
Cancel
Save