Browse Source

update

3lead_uart_test_ok_version
zhaohe 1 year ago
parent
commit
1f964de69a
  1. 160
      .vscode/c_cpp_properties.json
  2. 40
      app/src/basic/heart_rate_sensor_protocol.h
  3. 52
      app/src/one_conduction/ble_cmd_process_service.c
  4. 71
      ble_app_uart_c/ble_app_uart_c_pca10100_s122.uvguix.h_zha

160
.vscode/c_cpp_properties.json

@ -3,20 +3,18 @@
{
"name": "nrf52833_xxaa",
"includePath": [
"sdk\\components\\ble\\nrf_ble_gq\\",
"sdk\\components\\softdevice\\mbr\\headers\\",
"sdk\\components\\ble\\common\\",
"sdk\\components\\ble\\ble_db_discovery\\",
"sdk\\components\\toolchain\\cmsis\\include\\",
"ble_app_uart_c\\config",
"sdk\\components\\libraries\\util\\",
"sdk\\modules\\nrfx\\mdk\\",
"sdk\\components\\softdevice\\s140\\headers",
"ble_app_uart_c\\config",
"libznordic\\include",
"sdk/external/fatfs/src/",
"sdk/external/fatfs/src/",
"sdk/external/fatfs/port/",
"sdk/components/libraries/block_dev/sdc/",
"sdk/components/libraries/block_dev/",
"sdk\\config",
"app\\src",
"sdk\\components",
"sdk\\components\\ble\\ble_advertising",
"sdk\\components\\ble\\ble_db_discovery",
"sdk\\components\\ble\\ble_dtm",
"sdk\\components\\ble\\ble_link_ctx_manager",
"sdk\\components\\ble\\ble_racp",
"sdk\\components\\ble\\ble_services\\ble_ancs_c",
"sdk\\components\\ble\\ble_services\\ble_ans_c",
@ -43,13 +41,12 @@
"sdk\\components\\ble\\ble_services\\ble_tps",
"sdk\\components\\ble\\common",
"sdk\\components\\ble\\nrf_ble_gatt",
"sdk\\components\\ble\\nrf_ble_gq",
"sdk\\components\\ble\\nrf_ble_qwr",
"sdk\\components\\ble\\nrf_ble_scan",
"sdk\\components\\ble\\peer_manager",
"sdk\\components\\boards",
"sdk\\components\\libraries\\atomic",
"sdk\\components\\libraries\\atomic_fifo",
"sdk\\components\\libraries\\atomic_flags",
"sdk\\components\\libraries\\balloc",
"sdk\\components\\libraries\\bootloader\\ble_dfu",
"sdk\\components\\libraries\\bsp",
@ -133,8 +130,8 @@
"sdk\\components\\nfc\\t4t_parser\\hl_detection_procedure",
"sdk\\components\\nfc\\t4t_parser\\tlv",
"sdk\\components\\softdevice\\common",
"sdk\\components\\softdevice\\s122\\headers",
"sdk\\components\\softdevice\\s122\\headers\\nrf52",
"sdk\\components\\softdevice\\s140\\headers",
"sdk\\components\\softdevice\\s140\\headers\\nrf52",
"sdk\\external\\fprintf",
"sdk\\external\\segger_rtt",
"sdk\\external\\utf_converter",
@ -143,21 +140,24 @@
"sdk\\modules\\nrfx",
"sdk\\modules\\nrfx\\drivers\\include",
"sdk\\modules\\nrfx\\hal",
"config",
"ble_app_uart_c",
"app\\config\\",
"app\\config",
"app",
"sdk\\modules\\nrfx\\soc",
"sdk\\modules\\nrfx\\drivers\\src",
"sdk\\modules\\nrfx\\drivers\\src\\prs"
"sdk\\modules\\nrfx\\drivers\\src\\prs",
"sdk\\modules\\nrfx\\mdk\\",
"sdk\\components\\toolchain\\cmsis\\include\\"
],
"defines": [
"APP_TIMER_V2",
"APP_TIMER_V2_RTC1_ENABLED",
"BOARD_QING_FENG_NRF52833",
"BOARD_PCA10100",
"CONFIG_GPIO_AS_PINRESET",
"FLOAT_ABI_HARD",
"NRF52833_XXAA",
"NRF_SD_BLE_API_VERSION=8",
"S122",
"NRF_SD_BLE_API_VERSION=7",
"S140",
"SOFTDEVICE_PRESENT",
"__HEAP_SIZE=2048",
"__STACK_SIZE=2048",
@ -235,124 +235,6 @@
"__vfp_status(x,y)=0"
],
"intelliSenseMode": "${default}"
},
{
"name": "flash_s122_nrf52_8.0.0_softdevice",
"includePath": [
"ble_app_uart_c\\config",
"config",
"ble_app_uart_c",
"sdk\\components\\boards",
"sdk\\components\\libraries\\bsp",
"sdk\\external\\utf_converter",
"sdk\\components\\ble\\common",
"sdk\\components\\ble\\ble_db_discovery",
"sdk\\components\\ble\\nrf_ble_gatt",
"sdk\\components\\ble\\nrf_ble_gq",
"sdk\\components\\ble\\nrf_ble_scan",
"sdk\\integration\\nrfx\\legacy",
"sdk\\modules\\nrfx\\soc",
"sdk\\modules\\nrfx\\drivers\\src",
"sdk\\modules\\nrfx\\drivers\\src\\prs",
"sdk\\components\\libraries\\button",
"sdk\\components\\libraries\\util",
"sdk\\components\\libraries\\fifo",
"sdk\\components\\libraries\\scheduler",
"sdk\\components\\libraries\\timer",
"sdk\\components\\libraries\\uart",
"sdk\\components\\libraries\\hardfault",
"sdk\\components\\libraries\\atomic_fifo",
"sdk\\components\\libraries\\atomic",
"sdk\\components\\libraries\\balloc",
"sdk\\external\\fprintf",
"sdk\\components\\libraries\\memobj",
"sdk\\components\\libraries\\pwr_mgmt",
"sdk\\components\\libraries\\queue",
"sdk\\components\\libraries\\ringbuf",
"sdk\\components\\libraries\\experimental_section_vars",
"sdk\\components\\libraries\\sortlist",
"sdk\\components\\libraries\\strerror",
"sdk\\components\\libraries\\log\\src",
"sdk\\external\\segger_rtt",
"sdk\\components\\softdevice\\common"
],
"defines": [
"__HEAP_SIZE=2048",
"__STACK_SIZE=2048",
"__CC_ARM",
"__arm__",
"__align(x)=",
"__ALIGNOF__(x)=",
"__alignof__(x)=",
"__asm(x)=",
"__forceinline=",
"__restrict=",
"__global_reg(n)=",
"__inline=",
"__int64=long long",
"__INTADDR__(expr)=0",
"__irq=",
"__packed=",
"__pure=",
"__smc(n)=",
"__svc(n)=",
"__svc_indirect(n)=",
"__svc_indirect_r7(n)=",
"__value_in_regs=",
"__weak=",
"__writeonly=",
"__declspec(x)=",
"__attribute__(x)=",
"__nonnull__(x)=",
"__register=",
"__breakpoint(x)=",
"__cdp(x,y,z)=",
"__clrex()=",
"__clz(x)=0U",
"__current_pc()=0U",
"__current_sp()=0U",
"__disable_fiq()=",
"__disable_irq()=",
"__dmb(x)=",
"__dsb(x)=",
"__enable_fiq()=",
"__enable_irq()=",
"__fabs(x)=0.0",
"__fabsf(x)=0.0f",
"__force_loads()=",
"__force_stores()=",
"__isb(x)=",
"__ldrex(x)=0U",
"__ldrexd(x)=0U",
"__ldrt(x)=0U",
"__memory_changed()=",
"__nop()=",
"__pld(...)=",
"__pli(...)=",
"__qadd(x,y)=0",
"__qdbl(x)=0",
"__qsub(x,y)=0",
"__rbit(x)=0U",
"__rev(x)=0U",
"__return_address()=0U",
"__ror(x,y)=0U",
"__schedule_barrier()=",
"__semihost(x,y)=0",
"__sev()=",
"__sqrt(x)=0.0",
"__sqrtf(x)=0.0f",
"__ssat(x,y)=0",
"__strex(x,y)=0U",
"__strexd(x,y)=0",
"__strt(x,y)=",
"__swp(x,y)=0U",
"__usat(x,y)=0U",
"__wfe()=",
"__wfi()=",
"__yield()=",
"__vfp_status(x,y)=0"
],
"intelliSenseMode": "${default}"
}
],
"version": 4

40
app/src/basic/heart_rate_sensor_protocol.h

@ -23,10 +23,10 @@ typedef enum {
} ify_hrs_error_code_t;
typedef enum {
kifyhrs_pt_cmd = 0,
kifyhrs_pt_cmd_receipt = 1,
kifyhrs_pt_report = 2,
kifyhrs_pt_error_receipt = 3,
kifyhrs_pt_cmd = 1,
kifyhrs_pt_cmd_receipt = 2,
kifyhrs_pt_report = 3,
kifyhrs_pt_error_receipt = 4,
} ify_hrs_packet_type_t;
typedef enum {
@ -85,35 +85,9 @@ typedef struct {
} sensor_info_receipt_t;
typedef struct {
struct {
uint8_t drop0 : 1; // 0
uint8_t drop1 : 1; // 1
uint8_t drop2 : 1; // 2
uint8_t drop3 : 1; // 3
uint8_t drop4 : 1; // 4
uint8_t drop5 : 1; // 5
uint8_t drop6 : 1; // 6
uint8_t drop7 : 1; // 7
} drop0_state;
struct {
uint8_t drop0 : 1;
uint8_t drop1 : 1;
uint8_t drop2 : 1;
uint8_t drop3 : 1;
uint8_t drop4 : 1;
uint8_t drop5 : 1;
uint8_t drop6 : 1;
uint8_t drop7 : 1;
} drop1_state;
struct {
uint8_t sample_state : 1;
uint8_t report_state : 1;
uint8_t lowbattery_state : 1;
uint8_t full_storage : 1;
uint8_t placeholder : 4;
} device_state0;
uint8_t drop_state0;
uint8_t drop_state1;
uint8_t device_state0;
uint8_t device_state1; //
uint8_t powerlevel; //
uint8_t storage_item_num; //

52
app/src/one_conduction/ble_cmd_process_service.c

@ -49,8 +49,8 @@ static void send_success_receipt(ify_hrs_packet_t* rxpacket) {
void ble_cmder_process_rx(uint8_t* rx, int len) {
ify_hrs_packet_t* rxheader = (ify_hrs_packet_t*)rx;
ify_hrs_packet_t* txheader = (ify_hrs_packet_t*)txbuf;
ify_hrs_cmd_t cmd = (ify_hrs_cmd_t)rxheader->cmd;
ify_hrs_cmd_t cmd = (ify_hrs_cmd_t)rxheader->cmd;
memset(txbuf, 0, sizeof(txbuf));
txheader->cmd = rxheader->cmd;
txheader->frame_index = rxheader->frame_index;
@ -59,8 +59,6 @@ void ble_cmder_process_rx(uint8_t* rx, int len) {
ZLOGI("rx cmd:%d index:%d datalen:%d", cmd, rxheader->frame_index, len - sizeof(ify_hrs_packet_t));
NRF_LOG_HEXDUMP_INFO(rxheader->data, len - sizeof(ify_hrs_packet_t));
memset(txbuf, 0, sizeof(txbuf));
if (cmd == ify_hrs_cmd_read_device_version) {
device_version_info_receipt_t* receipt = (device_version_info_receipt_t*)txheader->data;
uint16_t sendlen = sizeof(ify_hrs_packet_t) + sizeof(device_version_info_receipt_t);
@ -72,7 +70,7 @@ void ble_cmder_process_rx(uint8_t* rx, int len) {
zdatachannel_data_send2(txbuf, sendlen);
}
else if (ify_hrs_cmd_read_sensor_info) {
else if (cmd == ify_hrs_cmd_read_sensor_info) {
sensor_info_receipt_t* receipt = (sensor_info_receipt_t*)txheader->data;
uint16_t sendlen = sizeof(ify_hrs_packet_t) + sizeof(sensor_info_receipt_t);
@ -86,22 +84,24 @@ void ble_cmder_process_rx(uint8_t* rx, int len) {
zdatachannel_data_send2(txbuf, sendlen);
}
else if (ify_hrs_cmd_read_device_state) {
else if (cmd == ify_hrs_cmd_read_device_state) {
device_state_receipt_t* receipt = (device_state_receipt_t*)txheader->data;
uint16_t sendlen = sizeof(ify_hrs_packet_t) + sizeof(device_state_receipt_t);
receipt->drop0_state.drop0 = 0;
receipt->device_state0.sample_state = 1;
receipt->device_state0.report_state = 1;
receipt->device_state0.lowbattery_state = 0;
receipt->device_state0.full_storage = sample_data_mgr_storage_is_full();
receipt->powerlevel = SingleLeadECG_battery_val();
receipt->storage_item_num = sample_data_mgr_get_file_num();
receipt->drop_state0 |= 0x01;
receipt->drop_state1 = 0x00;
receipt->device_state0 = (0x01 << 0 /*设备采集*/) | //
(0x01 << 1 /*设备上报*/) | //
(0x00 << 2 /*低电量*/) | //
(0x01 << 3 /*存储满*/);
receipt->device_state1 = 0;
receipt->powerlevel = SingleLeadECG_battery_val();
receipt->storage_item_num = sample_data_mgr_get_file_num();
zdatachannel_data_send2(txbuf, sendlen);
}
else if (ify_hrs_cmd_read_time) {
else if (cmd == ify_hrs_cmd_read_time) {
read_time_receipt_t* receipt = (read_time_receipt_t*)txheader->data;
uint16_t sendlen = sizeof(ify_hrs_packet_t) + sizeof(read_time_receipt_t);
static ztm_t ztm;
@ -116,7 +116,7 @@ void ble_cmder_process_rx(uint8_t* rx, int len) {
zdatachannel_data_send2(txbuf, sendlen);
}
else if (ify_hrs_cmd_sync_time) {
else if (cmd == ify_hrs_cmd_sync_time) {
sync_time_cmd_t* cmd = (sync_time_cmd_t*)rxheader->data;
uint16_t sendlen = sizeof(ify_hrs_packet_t);
@ -124,15 +124,15 @@ void ble_cmder_process_rx(uint8_t* rx, int len) {
zdatachannel_data_send2(txbuf, sendlen);
}
else if (ify_hrs_cmd_start_capture) {
else if (cmd == ify_hrs_cmd_start_capture) {
send_error_receipt(rxheader, kifyhrs_ecode_cmd_not_support);
}
else if (ify_hrs_cmd_stop_capture) {
else if (cmd == ify_hrs_cmd_stop_capture) {
send_error_receipt(rxheader, kifyhrs_ecode_cmd_not_support);
}
else if (ify_hrs_cmd_start_realtime_report) {
else if (cmd == ify_hrs_cmd_start_realtime_report) {
// unsupport cmd
int ecode = ble_start_realtime_report();
if (ecode == 0) {
@ -142,7 +142,7 @@ void ble_cmder_process_rx(uint8_t* rx, int len) {
}
}
else if (ify_hrs_cmd_stop_realtime_report) {
else if (cmd == ify_hrs_cmd_stop_realtime_report) {
int ecode = ble_stop_realtime_report();
if (ecode == 0) {
send_success_receipt(rxheader);
@ -151,7 +151,7 @@ void ble_cmder_process_rx(uint8_t* rx, int len) {
}
}
else if (ify_hrs_cmd_read_records_info) {
else if (cmd == ify_hrs_cmd_read_records_info) {
// send_error_receipt(rxheader, kifyhrs_ecode_cmd_not_support);
read_record_info_cmd_t* cmd = (read_record_info_cmd_t*)rxheader->data;
read_record_info_receipt_t* receipt = (read_record_info_receipt_t*)txheader->data;
@ -166,7 +166,7 @@ void ble_cmder_process_rx(uint8_t* rx, int len) {
sample_data_fileinfo_t* fileinfo = recordlist->fileinfo[recordoff];
memcpy(receipt->record_id, fileinfo->filename, 6);
receipt->frameNum = fileinfo->size / 16; // 16 bytes per frame
receipt->frameNum = fileinfo->size / 2; // 2byte per frame
receipt->dataSize = fileinfo->size;
receipt->sensorNum = 1;
receipt->captureRate = SAMPLE_RATE / 10;
@ -177,7 +177,7 @@ void ble_cmder_process_rx(uint8_t* rx, int len) {
}
else if (ify_hrs_cmd_del_record) {
else if (cmd == ify_hrs_cmd_del_record) {
del_record_cmd_t* cmd = (del_record_cmd_t*)rxheader->data;
static sample_data_filename_t filename;
@ -192,7 +192,7 @@ void ble_cmder_process_rx(uint8_t* rx, int len) {
}
}
else if (ify_hrs_cmd_start_upload_record) {
else if (cmd == ify_hrs_cmd_start_upload_record) {
start_upload_record_cmd_t* cmd = (start_upload_record_cmd_t*)rxheader->data;
static sample_data_filename_t filename;
@ -207,18 +207,18 @@ void ble_cmder_process_rx(uint8_t* rx, int len) {
}
}
else if (ify_hrs_cmd_enter_ota) {
else if (cmd == ify_hrs_cmd_enter_ota) {
send_error_receipt(rxheader, kifyhrs_ecode_cmd_not_support);
}
else if (ify_hrs_cmd_read_sn) {
else if (cmd == ify_hrs_cmd_read_sn) {
read_sn_receipt_t* receipt = (read_sn_receipt_t*)txheader->data;
uint16_t sendlen = sizeof(ify_hrs_packet_t) + sizeof(read_sn_receipt_t);
device_info_read_sn((sn_t*)&receipt->sn);
zdatachannel_data_send2(txbuf, sendlen);
}
else if (ify_hrs_cmd_reset) {
else if (cmd == ify_hrs_cmd_reset) {
NVIC_SystemReset();
}
//

71
ble_app_uart_c/ble_app_uart_c_pca10100_s122.uvguix.h_zha
File diff suppressed because it is too large
View File

Loading…
Cancel
Save