if(time_cnt >= 3)\r
{\r
time_cnt = 0;\r
-#ifdef SUPPORT_PPG_BLE_SERVICE\r
+#ifdef SUPPORT_PPG_BLE_SERVICE \r
+#if 1\r
+\r
if(uapi_dev_runtime_get_hrs_ble_status())\r
{\r
uint8_t ble_data = (uint8_t)avg_hrs;\r
ble_ppgtest_server_send_input_report(&ble_data,1);\r
}\r
-#endif\r
-\r
-// #ifdef SUPPORT_PPG_BLE_SERVICE\r
-// if(uapi_dev_runtime_get_hrs_ble_status())\r
-// {\r
-// uint8_t encoded_hrm[17] = {0};//PPG_DATA_LEN_MAX>17会导致APP连接提示定义设备与所选类型不匹配\r
-// uint8_t red_bit = 0;\r
-// uint8_t ir_bit = 0;\r
-// uint8_t green_bit = 0;\r
-// // HRS_CAL_SET_T cal= get_hrs_agc_status();\r
+#else\r
+ if(uapi_dev_runtime_get_hrs_ble_status())\r
+ {\r
+ uint8_t encoded_hrm[17] = {0};//PPG_DATA_LEN_MAX>17会导致APP连接提示定义设备与所选类型不匹配\r
+ uint8_t red_bit = 0;\r
+ uint8_t ir_bit = 0;\r
+ uint8_t green_bit = 0;\r
+ // HRS_CAL_SET_T cal= get_hrs_agc_status();\r
\r
-// for(int ii=0; ii<data_count; ii++)\r
-// {\r
-// // c\r
-// if(ppg_sensor_dat->led_data[0].data_val[ii]<0)\r
-// {\r
-// red_bit = 0x80;\r
-// ppg_sensor_dat->led_data[0].data_val[ii] = -ppg_sensor_dat->led_data[0].data_val[ii];\r
-// }\r
-// // ppg_sensor_dat->led_data[2].data_val[ii]\r
-// if(ppg_sensor_dat->led_data[3].data_val[ii]<0)\r
-// {\r
-// ir_bit = 0x80;\r
-// ppg_sensor_dat->led_data[3].data_val[ii] = -ppg_sensor_dat->led_data[3].data_val[ii];\r
-// }\r
+ for(int ii=0; ii<data_count; ii++)\r
+ {\r
+ // c\r
+ if(ppg_sensor_dat->led_data[0].data_val[ii]<0)\r
+ {\r
+ red_bit = 0x80;\r
+ ppg_sensor_dat->led_data[0].data_val[ii] = -ppg_sensor_dat->led_data[0].data_val[ii];\r
+ }\r
+ // ppg_sensor_dat->led_data[2].data_val[ii]\r
+ if(ppg_sensor_dat->led_data[3].data_val[ii]<0)\r
+ {\r
+ ir_bit = 0x80;\r
+ ppg_sensor_dat->led_data[3].data_val[ii] = -ppg_sensor_dat->led_data[3].data_val[ii];\r
+ }\r
\r
-// encoded_hrm[0] = 0x55;//心率标志位,一定要设置正确\r
-// encoded_hrm[1] = (uint8_t)(hrs_result.data_cnt - data_count + ii) % 256;//原始data_cnt会一直自加,但是这里只有一个字节,0-255循环\r
-// encoded_hrm[2] = (uint8_t)(hrs_result.hr_result & 0xFF);//心率值\r
+ encoded_hrm[0] = 0x55;//心率标志位,一定要设置正确\r
+ encoded_hrm[1] = (uint8_t)(hrs_result.data_cnt - data_count + ii) % 256;//原始data_cnt会一直自加,但是这里只有一个字节,0-255循环\r
+ encoded_hrm[2] = (uint8_t)(hrs_result.hr_result & 0xFF);//心率值\r
\r
-// encoded_hrm[3] = (uint8_t)((ppg_sensor_dat->led_data[0].data_val[ii] & 0xFF0000) >> 16) | red_bit; //绿灯原始数据\r
-// encoded_hrm[4] = (uint8_t)((ppg_sensor_dat->led_data[0].data_val[ii] & 0xFF00) >> 8); //绿灯原始数据\r
-// encoded_hrm[5] = (uint8_t)(ppg_sensor_dat->led_data[0].data_val[ii] & 0xFF); //绿灯原始数据\r
+ encoded_hrm[3] = (uint8_t)((ppg_sensor_dat->led_data[0].data_val[ii] & 0xFF0000) >> 16) | red_bit; //绿灯原始数据\r
+ encoded_hrm[4] = (uint8_t)((ppg_sensor_dat->led_data[0].data_val[ii] & 0xFF00) >> 8); //绿灯原始数据\r
+ encoded_hrm[5] = (uint8_t)(ppg_sensor_dat->led_data[0].data_val[ii] & 0xFF); //绿灯原始数据\r
\r
-// encoded_hrm[6] = (uint8_t)((ppg_sensor_dat->led_data[3].data_val[ii] & 0xFF0000) >> 16) | ir_bit; //ir原始数据\r
-// encoded_hrm[7] = (uint8_t)((ppg_sensor_dat->led_data[3].data_val[ii] & 0xFF00) >> 8); //ir原始数据\r
-// encoded_hrm[8] = (uint8_t)(ppg_sensor_dat->led_data[3].data_val[ii] & 0xFF); //ir原始数据\r
+ encoded_hrm[6] = (uint8_t)((ppg_sensor_dat->led_data[3].data_val[ii] & 0xFF0000) >> 16) | ir_bit; //ir原始数据\r
+ encoded_hrm[7] = (uint8_t)((ppg_sensor_dat->led_data[3].data_val[ii] & 0xFF00) >> 8); //ir原始数据\r
+ encoded_hrm[8] = (uint8_t)(ppg_sensor_dat->led_data[3].data_val[ii] & 0xFF); //ir原始数据\r
\r
-// encoded_hrm[9] = (uint8_t)((gsen_data_x_fifo[ii]&0xFF00)>>8);//模拟x,1234换成填入自己的x数据\r
-// encoded_hrm[10] = (uint8_t)(gsen_data_x_fifo[ii]&0xFF);\r
-// encoded_hrm[11] = (uint8_t)((gsen_data_y_fifo[ii]&0xFF00)>>8);//模拟y,-1234换成填入自己的y数据\r
-// encoded_hrm[12] = (uint8_t)(gsen_data_y_fifo[ii]&0xFF);\r
-// encoded_hrm[13] = (uint8_t)((gsen_data_z_fifo[ii]&0xFF00)>>8);//模拟z,3987换成填入自己的z数据\r
-// encoded_hrm[14] = (uint8_t)(gsen_data_z_fifo[ii]&0xFF); \r
+ encoded_hrm[9] = (uint8_t)((gsen_data_x_fifo[ii]&0xFF00)>>8);//模拟x,1234换成填入自己的x数据\r
+ encoded_hrm[10] = (uint8_t)(gsen_data_x_fifo[ii]&0xFF);\r
+ encoded_hrm[11] = (uint8_t)((gsen_data_y_fifo[ii]&0xFF00)>>8);//模拟y,-1234换成填入自己的y数据\r
+ encoded_hrm[12] = (uint8_t)(gsen_data_y_fifo[ii]&0xFF);\r
+ encoded_hrm[13] = (uint8_t)((gsen_data_z_fifo[ii]&0xFF00)>>8);//模拟z,3987换成填入自己的z数据\r
+ encoded_hrm[14] = (uint8_t)(gsen_data_z_fifo[ii]&0xFF); \r
\r
-// encoded_hrm[15] = ppg_sensor_dat->led_data[0].led_current;//绿灯电流\r
-// encoded_hrm[16] = wear_status;//红外电流\r
+ encoded_hrm[15] = ppg_sensor_dat->led_data[0].led_current;//绿灯电流\r
+ encoded_hrm[16] = wear_status;//红外电流\r
\r
-// ble_ppgtest_server_send_input_report(encoded_hrm,17);\r
-// }\r
+ ble_ppgtest_server_send_input_report(encoded_hrm,17);\r
+ }\r
\r
-// }\r
-// #endif \r
+ }\r
+#endif \r
+#endif\r
}\r
break;\r
}\r
errcode_t ble_ppgtest_server_send_input_report(const uint8_t *data, uint8_t len)\r
{\r
// printf("ble_hid_server_send_input_report:%d %d %d",data[0],data[1],len);\r
+#if 1\r
gatts_ntf_ind_t param = {0};\r
param.attr_handle = (uint16_t)g_ppgtest_notify_report_att_hdl;\r
- // param.value_len = len;\r
- // param.value = bt_os_new(len);\r
param.value_len = len + 1;\r
param.value = bt_os_new(param.value_len);\r
if (param.value == NULL) {\r
printf( "[ppgtest][ERROR]send input report new fail\r\n");\r
return ERRCODE_BT_MALLOC_FAIL;\r
}\r
- // if (memcpy_s(param.value, param.value_len, data, len) != EOK) \r
+\r
if (memcpy_s(param.value + 1, param.value_len, data, len) != EOK)\r
{\r
printf( "[ppgtest][ERROR]send input report memcpy fail\r\n");\r
bt_os_free(param.value);\r
return ERRCODE_BT_FAIL;\r
}\r
+#else\r
+ gatts_ntf_ind_t param = {0};\r
+ param.attr_handle = (uint16_t)g_ppgtest_notify_report_att_hdl;\r
+ param.value_len = len;\r
+ param.value = bt_os_new(len);\r
+ if (param.value == NULL) {\r
+ printf( "[ppgtest][ERROR]send input report new fail\r\n");\r
+ return ERRCODE_BT_MALLOC_FAIL;\r
+ }\r
+ if (memcpy_s(param.value, param.value_len, data, len) != EOK) \r
+ {\r
+ printf( "[ppgtest][ERROR]send input report memcpy fail\r\n");\r
+ bt_os_free(param.value);\r
+ return ERRCODE_BT_FAIL;\r
+ }\r
+\r
+\r
+#endif\r
+\r
errcode_t ret = 0;\r
\r
// if(g_ble_conn_id==0)\r