#include "hal/dm/libhttpclient.h"
+#ifdef __MMI_CUSTOM_HENGAI_HEALTH_UPLOAD_USE_TCP__
+
+static HENGAI_HEALTH_SEND_TYPE_ENUM s_hengai_bp_send_code = HENGAI_HEALTH_SEND_NONE; //
+
+// measure data
+void mmi_hengai_tcp_bp_measure_raw_data_send(void)
+{
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+#if 0
+ char * data_ptr = NULL;
+ uint32_t data_len = 0;
+ char * encode_str = NULL;
+ uint32_t encode_len = 0;
+ char * encode_header_str = NULL;
+ uint32_t encode_header_len = 0;
+ uint32_t output_len = 0;
+ uint32_t output_header_len = 0;
+ int temp_len = 0;
+ int json_data_len = 512; // MMI_HENGAI_BP_RAW_DATA_LEN * 11 + 256;
+ char * json_data = NULL;
+
+ // json body
+ json_data = lv_mem_alloc(json_data_len);
+ if(NULL == json_data)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(json_data, json_data_len);
+
+ temp_len = 0;
+ temp_len += sprintf(json_data + temp_len, "{\"app_key\":\"%s\",", HENGAI_HTTP_POST_APP_KEY);
+
+ char imei[16 + 1] = {0};
+ app_adp_get_imei_req(imei);
+ temp_len += sprintf(json_data + temp_len, "\"mac\":\"%s\",", imei);
+
+ temp_len += sprintf(json_data + temp_len, "\"begin_time\":\"%s\",", "2024-03-27 10:57:16");
+
+ temp_len += sprintf(json_data + temp_len, "\"end_time\":\"%s\",", "2024-03-27 10:58:16");
+
+ temp_len += sprintf(json_data + temp_len, "\"pulse_wave\":[10,11,12],");
+
+ temp_len += sprintf(json_data + temp_len, "\"sample_rate\":%d}", MMI_HENGAI_BP_RAW_DATA_SAMPLE_RATE);
+
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, temp_len);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, json_data);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, json_data + 90);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, json_data + 180);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, json_data + 270);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, json_data + 360);
+
+
+ // base64 body
+ encode_len = temp_len * 3 / 2;
+ encode_str = lv_mem_alloc(encode_len);
+ if(NULL == encode_str)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(encode_str, encode_len);
+ if(0 != mbedtls_base64_encode(encode_str, encode_len, &output_len, json_data, temp_len))
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: base64 encode failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, output_len);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, encode_str);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, encode_str + 90);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, encode_str + 180);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, encode_str + 270);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, encode_str + 360);
+
+
+ // json header
+ _lv_memset_00(json_data, json_data_len);
+
+ temp_len = 0;
+ temp_len += sprintf(json_data + temp_len, "{\"headers\":[");
+
+ temp_len += sprintf(json_data + temp_len, "{\"key\":\"token\",");
+
+ char * token = mmi_hengai_health_token_get();
+ temp_len += sprintf(json_data + temp_len, "\"value\":\"%s\"}", token);
+
+ temp_len += sprintf(json_data + temp_len, "]}");
+
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, temp_len);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, json_data);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, json_data + 90);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, json_data + 180);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, json_data + 270);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, json_data + 360);
+
+
+ // base64 header
+ encode_header_len = temp_len * 3 / 2;
+ encode_header_str = lv_mem_alloc(encode_header_len);
+ if(NULL == encode_header_str)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(encode_header_str, encode_header_len);
+ if(0 != mbedtls_base64_encode(encode_header_str, encode_header_len, &output_header_len, json_data, temp_len))
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: base64 encode failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, output_header_len);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, encode_header_str);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, encode_header_str + 90);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, encode_header_str + 180);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, encode_header_str + 270);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, encode_header_str + 360);
+
+
+ // content
+ data_len = output_len + output_header_len + 128;
+ data_ptr = lv_mem_alloc(data_len);
+ if(NULL == data_ptr)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(data_ptr, data_len);
+
+#if 1
+ sprintf(data_ptr, ",POST,%s%s,%s,%s", HENGAI_HTTP_POST_URL_COMMON_PREFIX, "/health/bp/measurement", encode_header_str, encode_str);
+#else
+ sprintf(data_ptr, "POST,%s%s,%s,%s", HENGAI_HTTP_POST_URL_COMMON_PREFIX, "/health/bp/measurement", encode_header_str, encode_str);
+#endif
+ data_len = strlen(data_ptr);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, data_len);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, data_ptr);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, data_ptr + 90);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, data_ptr + 180);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, data_ptr + 270);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%d]: %s\n", __LINE__, data_ptr + 360);
+
+
+ s_hengai_bp_send_code = HENGAI_HEALTH_SEND_MEASURE_DATA;
+ mmi_protocol_fzd_action_tcp_http(data_ptr, data_len);
+
+#else
+
+ char * data_ptr = NULL;
+ uint32_t data_len = 0;
+ char * encode_str = NULL;
+ uint32_t encode_len = 0;
+ char * encode_header_str = NULL;
+ uint32_t encode_header_len = 0;
+ uint32_t output_len = 0;
+ uint32_t output_header_len = 0;
+ int temp_len = 0;
+ int json_data_len = MMI_HENGAI_BP_RAW_DATA_LEN * 11 + 256;
+ char * json_data = NULL;
+
+ // json body
+ json_data = lv_mem_alloc(json_data_len);
+ if(NULL == json_data)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(json_data, json_data_len);
+
+ temp_len = 0;
+ temp_len += sprintf(json_data + temp_len, "{\"app_key\":\"%s\",", HENGAI_HTTP_POST_APP_KEY);
+
+ char imei[16 + 1] = {0};
+ app_adp_get_imei_req(imei);
+ temp_len += sprintf(json_data + temp_len, "\"mac\":\"%s\",", imei);
+
+ char * begin_time_str = mmi_hengai_bp_measure_action_time_string_get(1);
+ temp_len += sprintf(json_data + temp_len, "\"begin_time\":\"%s\",", begin_time_str);
+
+ char * end_time_str = mmi_hengai_bp_measure_action_time_string_get(0);
+ temp_len += sprintf(json_data + temp_len, "\"end_time\":\"%s\",", end_time_str);
+
+ uint16_t i = 0;
+ int * temp_int_ptr = mmi_hengai_bp_raw_data_ptr_get();
+ int temp_int_len = mmi_hengai_bp_raw_data_len_get();
+ temp_len += sprintf(json_data + temp_len, "\"pulse_wave\":[");
+ for(i = 0; i < temp_int_len; i++)
+ {
+ if(i == (temp_int_len - 1))
+ {
+ temp_len += sprintf(json_data + temp_len, "%d],", temp_int_ptr[i]);
+ }
+ else
+ {
+ temp_len += sprintf(json_data + temp_len, "%d,", temp_int_ptr[i]);
+ }
+ }
+
+ temp_len += sprintf(json_data + temp_len, "\"sample_rate\":%d}", MMI_HENGAI_BP_RAW_DATA_SAMPLE_RATE);
+
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, temp_len);
+
+ // base64 body
+ encode_len = temp_len * 3 / 2;
+ encode_str = lv_mem_alloc(encode_len);
+ if(NULL == encode_str)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(encode_str, encode_len);
+ if(0 != mbedtls_base64_encode(encode_str, encode_len, &output_len, json_data, temp_len))
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: base64 encode failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+
+ // json header
+ _lv_memset_00(json_data, json_data_len);
+
+ temp_len = 0;
+ temp_len += sprintf(json_data + temp_len, "{\"headers\":[");
+
+ temp_len += sprintf(json_data + temp_len, "{\"key\":\"token\",");
+
+ char * token = mmi_hengai_health_token_get();
+ temp_len += sprintf(json_data + temp_len, "\"value\":\"%s\"}", token);
+
+ temp_len += sprintf(json_data + temp_len, "]}");
+
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, temp_len);
+
+ // base64 header
+ encode_header_len = temp_len * 3 / 2;
+ encode_header_str = lv_mem_alloc(encode_header_len);
+ if(NULL == encode_header_str)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(encode_header_str, encode_header_len);
+ if(0 != mbedtls_base64_encode(encode_header_str, encode_header_len, &output_header_len, json_data, temp_len))
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: base64 encode failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+
+ // content
+ data_len = output_len + output_header_len + 128;
+ data_ptr = lv_mem_alloc(data_len);
+ if(NULL == data_ptr)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(data_ptr, data_len);
+
+ #if 1
+ sprintf(data_ptr, ",POST,%s%s,%s,%s", HENGAI_HTTP_POST_URL_COMMON_PREFIX, "/health/bp/measurement", encode_header_str, encode_str);
+ #else
+ sprintf(data_ptr, "POST,%s%s,%s,%s", HENGAI_HTTP_POST_URL_COMMON_PREFIX, "/health/bp/measurement", encode_header_str, encode_str);
+ #endif
+ data_len = strlen(data_ptr);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, data_len);
+
+ s_hengai_bp_send_code = HENGAI_HEALTH_SEND_MEASURE_DATA;
+ mmi_protocol_fzd_action_tcp_http(data_ptr, data_len);
+#endif
+
+FREE_AND_EXIT:
+ if(NULL != json_data)
+ {
+ lv_mem_free(json_data);
+ json_data = NULL;
+ }
+ if(NULL != encode_str)
+ {
+ lv_mem_free(encode_str);
+ encode_str = NULL;
+ }
+ if(NULL != encode_header_str)
+ {
+ lv_mem_free(encode_header_str);
+ encode_header_str = NULL;
+ }
+ if(NULL != data_ptr)
+ {
+ lv_mem_free(data_ptr);
+ data_ptr = NULL;
+ }
+}
+
+// calibrate mode
+void mmi_hengai_tcp_bp_calibrate_model_send(void)
+{
+ char * data_ptr = NULL;
+ uint32_t data_len = 0;
+ char * encode_str = NULL;
+ uint32_t encode_len = 0;
+ char * encode_header_str = NULL;
+ uint32_t encode_header_len = 0;
+ uint32_t output_len = 0;
+ uint32_t output_header_len = 0;
+ int temp_len = 0;
+ int json_data_len = 256;
+ char * json_data = NULL;
+
+ // json body
+ json_data = lv_mem_alloc(json_data_len);
+ if(NULL == json_data)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(json_data, json_data_len);
+
+ temp_len = 0;
+ temp_len += sprintf(json_data + temp_len, "{\"app_key\":\"%s\",", HENGAI_HTTP_POST_APP_KEY);
+
+ char imei[16 + 1] = {0};
+ app_adp_get_imei_req(imei);
+ temp_len += sprintf(json_data + temp_len, "\"mac\":\"%s\"}", imei);
+
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, temp_len);
+
+ // base64 body
+ encode_len = temp_len * 3 / 2;
+ encode_str = lv_mem_alloc(encode_len);
+ if(NULL == encode_str)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(encode_str, encode_len);
+ if(0 != mbedtls_base64_encode(encode_str, encode_len, &output_len, json_data, temp_len))
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: base64 encode failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+
+ // json header
+ _lv_memset_00(json_data, json_data_len);
+
+ temp_len = 0;
+ temp_len += sprintf(json_data + temp_len, "{\"headers\":[");
+
+ temp_len += sprintf(json_data + temp_len, "{\"key\":\"token\",");
+
+ char * token = mmi_hengai_health_token_get();
+ temp_len += sprintf(json_data + temp_len, "\"value\":\"%s\"}", token);
+
+ temp_len += sprintf(json_data + temp_len, "]}");
+
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, temp_len);
+
+ // base64 header
+ encode_header_len = temp_len * 3 / 2;
+ encode_header_str = lv_mem_alloc(encode_header_len);
+ if(NULL == encode_header_str)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(encode_header_str, encode_header_len);
+ if(0 != mbedtls_base64_encode(encode_header_str, encode_header_len, &output_header_len, json_data, temp_len))
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: base64 encode failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+
+ // content
+ data_len = output_len + output_header_len + 128;
+ data_ptr = lv_mem_alloc(data_len);
+ if(NULL == data_ptr)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(data_ptr, data_len);
+
+#if 1
+ sprintf(data_ptr, ",POST,%s%s,%s,%s", HENGAI_HTTP_POST_URL_COMMON_PREFIX, "/health/bp/model", encode_header_str, encode_str);
+#else
+ sprintf(data_ptr, "POST,%s%s,%s,%s", HENGAI_HTTP_POST_URL_COMMON_PREFIX, "/health/bp/model", encode_header_str, encode_str);
+#endif
+ data_len = strlen(data_ptr);
+
+ s_hengai_bp_send_code = HENGAI_HEALTH_SEND_CALIBRATE_MODEL;
+ mmi_protocol_fzd_action_tcp_http(data_ptr, data_len);
+
+FREE_AND_EXIT:
+ if(NULL != json_data)
+ {
+ lv_mem_free(json_data);
+ json_data = NULL;
+ }
+ if(NULL != encode_str)
+ {
+ lv_mem_free(encode_str);
+ encode_str = NULL;
+ }
+ if(NULL != encode_header_str)
+ {
+ lv_mem_free(encode_header_str);
+ encode_header_str = NULL;
+ }
+ if(NULL != data_ptr)
+ {
+ lv_mem_free(data_ptr);
+ data_ptr = NULL;
+ }
+}
+
+void mmi_hengai_tcp_bp_calibrate_raw_data_send(uint8_t calibrate_times, uint16_t bp_value_high, uint16_t bp_value_low)
+{
+ char * data_ptr = NULL;
+ uint32_t data_len = 0;
+ char * encode_str = NULL;
+ uint32_t encode_len = 0;
+ char * encode_header_str = NULL;
+ uint32_t encode_header_len = 0;
+ uint32_t output_len = 0;
+ uint32_t output_header_len = 0;
+ int temp_len = 0;
+ int json_data_len = MMI_HENGAI_BP_RAW_DATA_LEN * 11 + 256;
+ char * json_data = NULL;
+
+ // json body
+ json_data = lv_mem_alloc(json_data_len);
+ if(NULL == json_data)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(json_data, json_data_len);
+
+ temp_len += sprintf(json_data + temp_len, "{\"app_key\":\"%s\",", HENGAI_HTTP_POST_APP_KEY);
+
+ char imei[16 + 1] = {0};
+ app_adp_get_imei_req(imei);
+ temp_len += sprintf(json_data + temp_len, "\"mac\":\"%s\",", imei);
+
+ char * begin_time_str = mmi_hengai_bp_measure_action_time_string_get(1);
+ temp_len += sprintf(json_data + temp_len, "\"begin_time\":\"%s\",", begin_time_str);
+
+ char * end_time_str = mmi_hengai_bp_measure_action_time_string_get(0);
+ temp_len += sprintf(json_data + temp_len, "\"end_time\":\"%s\",", end_time_str);
+
+ uint16_t i = 0;
+ int * temp_int_ptr = mmi_hengai_bp_raw_data_ptr_get();
+ int temp_int_len = mmi_hengai_bp_raw_data_len_get();
+ temp_len += sprintf(json_data + temp_len, "\"pulse_wave\":[");
+ for(i = 0; i < temp_int_len; i++)
+ {
+ if(i == (temp_int_len - 1))
+ {
+ temp_len += sprintf(json_data + temp_len, "%d],", temp_int_ptr[i]);
+ }
+ else
+ {
+ temp_len += sprintf(json_data + temp_len, "%d,", temp_int_ptr[i]);
+ }
+ }
+
+ temp_len += sprintf(json_data + temp_len, "\"sample_rate\":%d,", MMI_HENGAI_BP_RAW_DATA_SAMPLE_RATE);
+
+ temp_len += sprintf(json_data + temp_len, "\"sbp\":%d,", bp_value_high);
+
+ temp_len += sprintf(json_data + temp_len, "\"dbp\":%d,", bp_value_low);
+
+ temp_len += sprintf(json_data + temp_len, "\"category\":%d}", calibrate_times);
+
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, temp_len);
+
+ // base64 body
+ encode_len = temp_len * 3 / 2;
+ encode_str = lv_mem_alloc(encode_len);
+ if(NULL == encode_str)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(encode_str, encode_len);
+ if(0 != mbedtls_base64_encode(encode_str, encode_len, &output_len, json_data, temp_len))
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: base64 encode failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+
+ // json header
+ _lv_memset_00(json_data, json_data_len);
+
+ temp_len = 0;
+ temp_len += sprintf(json_data + temp_len, "{\"headers\":[");
+
+ temp_len += sprintf(json_data + temp_len, "{\"key\":\"token\",");
+
+ char * token = mmi_hengai_health_token_get();
+ temp_len += sprintf(json_data + temp_len, "\"value\":\"%s\"}", token);
+
+ temp_len += sprintf(json_data + temp_len, "]}");
+
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, temp_len);
+
+ // base64 header
+ encode_header_len = temp_len * 3 / 2;
+ encode_header_str = lv_mem_alloc(encode_header_len);
+ if(NULL == encode_header_str)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(encode_header_str, encode_header_len);
+ if(0 != mbedtls_base64_encode(encode_header_str, encode_header_len, &output_header_len, json_data, temp_len))
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: base64 encode failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+
+ // content
+ data_len = output_len + output_header_len + 128;
+ data_ptr = lv_mem_alloc(data_len);
+ if(NULL == data_ptr)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(data_ptr, data_len);
+
+#if 1
+ sprintf(data_ptr, ",POST,%s%s,%s,%s", HENGAI_HTTP_POST_URL_COMMON_PREFIX, "/health/bp/calibration", encode_header_str, encode_str);
+#else
+ sprintf(data_ptr, "POST,%s%s,%s,%s", HENGAI_HTTP_POST_URL_COMMON_PREFIX, "/health/bp/calibration", encode_header_str, encode_str);
+#endif
+ data_len = strlen(data_ptr);
+
+ s_hengai_bp_send_code = HENGAI_HEALTH_SEND_CALIBRATE_DATA;
+ mmi_protocol_fzd_action_tcp_http(data_ptr, data_len);
+
+FREE_AND_EXIT:
+ if(NULL != json_data)
+ {
+ lv_mem_free(json_data);
+ json_data = NULL;
+ }
+ if(NULL != encode_str)
+ {
+ lv_mem_free(encode_str);
+ encode_str = NULL;
+ }
+ if(NULL != encode_header_str)
+ {
+ lv_mem_free(encode_header_str);
+ encode_header_str = NULL;
+ }
+ if(NULL != data_ptr)
+ {
+ lv_mem_free(data_ptr);
+ data_ptr = NULL;
+ }
+}
+
+void mmi_hengai_tcp_health_lib_activation_feedback(void)
+{
+ char * data_ptr = NULL;
+ uint32_t data_len = 0;
+ char * encode_str = NULL;
+ uint32_t encode_len = 0;
+ uint32_t output_len = 0;
+ int temp_len = 0;
+ int json_data_len = 256;
+ char * json_data = NULL;
+
+ // json body
+ json_data = lv_mem_alloc(json_data_len);
+ if(NULL == json_data)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(json_data, json_data_len);
+
+ temp_len += sprintf(json_data + temp_len, "{\"app_key\":\"%s\",", HENGAI_HTTP_POST_APP_KEY);
+
+ temp_len += sprintf(json_data + temp_len, "\"firm\":\"%s\",", "HENGAI");
+
+ char imei[16 + 1] = {0};
+ app_adp_get_imei_req(imei);
+ temp_len += sprintf(json_data + temp_len, "\"mac\":\"%s\"}", imei);
+
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, temp_len);
+
+ // base64 body
+ encode_len = temp_len * 3 / 2;
+ encode_str = lv_mem_alloc(encode_len);
+ if(NULL == encode_str)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(encode_str, encode_len);
+ if(0 != mbedtls_base64_encode(encode_str, encode_len, &output_len, json_data, temp_len))
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: base64 encode failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+
+ // content
+ data_len = output_len + 128;
+ data_ptr = lv_mem_alloc(data_len);
+ if(NULL == data_ptr)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(data_ptr, data_len);
+
+#if 1
+ sprintf(data_ptr, ",POST,%s%s,,%s", HENGAI_HTTP_POST_URL_COMMON_PREFIX, "/sinklib/activation/feedback", encode_str);
+#else
+ sprintf(data_ptr, "POST,%s%s,,%s", HENGAI_HTTP_POST_URL_COMMON_PREFIX, "/sinklib/activation/feedback", encode_str);
+#endif
+ data_len = strlen(data_ptr);
+
+ s_hengai_bp_send_code = HENGAI_HEALTH_SEND_ACTIVE_FEEDBACK;
+ mmi_protocol_fzd_action_tcp_http(data_ptr, data_len);
+
+FREE_AND_EXIT:
+ if(NULL != json_data)
+ {
+ lv_mem_free(json_data);
+ json_data = NULL;
+ }
+ if(NULL != encode_str)
+ {
+ lv_mem_free(encode_str);
+ encode_str = NULL;
+ }
+ if(NULL != data_ptr)
+ {
+ lv_mem_free(data_ptr);
+ data_ptr = NULL;
+ }
+}
+
+void mmi_hengai_tcp_health_lib_activation_check_action(void)
+{
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ if(0 == mmi_hengai_health_lib_activated_flag_get())
+ {
+ char * data_ptr = NULL;
+ uint32_t data_len = 0;
+ char * encode_str = NULL;
+ uint32_t encode_len = 0;
+ uint32_t output_len = 0;
+ int temp_len = 0;
+ int json_data_len = 512;
+ char * json_data = NULL;
+
+ // json body
+ json_data = lv_mem_alloc(json_data_len);
+ if(NULL == json_data)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(json_data, json_data_len);
+
+ temp_len += sprintf(json_data + temp_len, "{\"app_key\":\"%s\",", HENGAI_HTTP_POST_APP_KEY);
+
+ temp_len += sprintf(json_data + temp_len, "\"name\":\"%s\",", "Z5");
+
+ temp_len += sprintf(json_data + temp_len, "\"firm\":\"%s\",", "HENGAI");
+
+ char imei[16 + 1] = {0};
+ app_adp_get_imei_req(imei);
+ temp_len += sprintf(json_data + temp_len, "\"mac\":\"%s\",", imei);
+
+ temp_len += sprintf(json_data + temp_len, "\"model\":\"%s\",", "Z5_HA_K18");
+
+ temp_len += sprintf(json_data + temp_len, "\"sensor\":{\"fs\":%d,\"model\":\"%s\"},", MMI_HENGAI_BP_RAW_DATA_SAMPLE_RATE, "VC9202");
+
+ temp_len += sprintf(json_data + temp_len, "\"sinklib_version\":\"%s\",", "v0.1.0.020623");
+
+ char * req_code = mmi_hengai_health_lib_req_code_get();
+ temp_len += sprintf(json_data + temp_len, "\"request_code\":\"%s\"}", req_code);
+
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, temp_len);
+
+ // base64 body
+ encode_len = temp_len * 3 / 2;
+ encode_str = lv_mem_alloc(encode_len);
+ if(NULL == encode_str)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(encode_str, encode_len);
+ if(0 != mbedtls_base64_encode(encode_str, encode_len, &output_len, json_data, temp_len))
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: base64 encode failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+
+ // content
+ data_len = output_len + 128;
+ data_ptr = lv_mem_alloc(data_len);
+ if(NULL == data_ptr)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(data_ptr, data_len);
+
+ #if 1
+ sprintf(data_ptr, ",POST,%s%s,,%s", HENGAI_HTTP_POST_URL_COMMON_PREFIX, "/sinklib/activation", encode_str);
+ #else
+ sprintf(data_ptr, "POST,%s%s,,%s", HENGAI_HTTP_POST_URL_COMMON_PREFIX, "/sinklib/activation", encode_str);
+ #endif
+ data_len = strlen(data_ptr);
+
+ s_hengai_bp_send_code = HENGAI_HEALTH_SEND_ACTIVE;
+ mmi_protocol_fzd_action_tcp_http(data_ptr, data_len);
+
+ FREE_AND_EXIT:
+ if(NULL != json_data)
+ {
+ lv_mem_free(json_data);
+ json_data = NULL;
+ }
+ if(NULL != encode_str)
+ {
+ lv_mem_free(encode_str);
+ encode_str = NULL;
+ }
+ if(NULL != data_ptr)
+ {
+ lv_mem_free(data_ptr);
+ data_ptr = NULL;
+ }
+ }
+}
+
+void mmi_hengai_tcp_algorithm_interface_login_action(void)
+{
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+
+ char * token = mmi_hengai_health_token_get();
+ if(0 == strlen(token))
+ {
+ char * data_ptr = NULL;
+ uint32_t data_len = 0;
+ char * encode_str = NULL;
+ uint32_t encode_len = 0;
+ uint32_t output_len = 0;
+ int temp_len = 0;
+ int json_data_len = 512;
+ char * json_data = NULL;
+
+ // json body
+ json_data = lv_mem_alloc(json_data_len);
+ if(NULL == json_data)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(json_data, json_data_len);
+
+ temp_len += sprintf(json_data + temp_len, "{\"app_key\":\"%s\",", HENGAI_HTTP_POST_APP_KEY);
+
+ temp_len += sprintf(json_data + temp_len, "\"account_type\":\"%d\",", 3);
+
+ char imei[16 + 1] = {0};
+ app_adp_get_imei_req(imei);
+ temp_len += sprintf(json_data + temp_len, "\"account\":\"%s\",", imei);
+
+ temp_len += sprintf(json_data + temp_len, "\"name\":\"%s\",", imei);
+
+ temp_len += sprintf(json_data + temp_len, "\"password\":\"%s\",", imei);
+
+ temp_len += sprintf(json_data + temp_len, "\"gender\":\"%d\",", 3);
+
+ temp_len += sprintf(json_data + temp_len, "\"birthday\":\"%s\",", "2000-10-01");
+
+ temp_len += sprintf(json_data + temp_len, "\"height\":\"%d\",", 180);
+
+ temp_len += sprintf(json_data + temp_len, "\"weight\":\"%d\"}", 80);
+
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, temp_len);
+
+ // base64 body
+ encode_len = temp_len * 3 / 2;
+ encode_str = lv_mem_alloc(encode_len);
+ if(NULL == encode_str)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(encode_str, encode_len);
+ if(0 != mbedtls_base64_encode(encode_str, encode_len, &output_len, json_data, temp_len))
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: base64 encode failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+
+ // content
+ data_len = output_len + 128;
+ data_ptr = lv_mem_alloc(data_len);
+ if(NULL == data_ptr)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc failed\n", __FUNCTION__, __LINE__);
+ goto FREE_AND_EXIT;
+ }
+ _lv_memset_00(data_ptr, data_len);
+
+ #if 1
+ sprintf(data_ptr, ",POST,%s%s,,%s", HENGAI_HTTP_POST_URL_COMMON_PREFIX, "/entrance/user/login", encode_str);
+ #else
+ sprintf(data_ptr, "POST,%s%s,,%s", HENGAI_HTTP_POST_URL_COMMON_PREFIX, "/entrance/user/login", encode_str);
+ #endif
+ data_len = strlen(data_ptr);
+
+ s_hengai_bp_send_code = HENGAI_HEALTH_SEND_LOGIN;
+ mmi_protocol_fzd_action_tcp_http(data_ptr, data_len);
+
+ FREE_AND_EXIT:
+ if(NULL != json_data)
+ {
+ lv_mem_free(json_data);
+ json_data = NULL;
+ }
+ if(NULL != encode_str)
+ {
+ lv_mem_free(encode_str);
+ encode_str = NULL;
+ }
+ if(NULL != data_ptr)
+ {
+ lv_mem_free(data_ptr);
+ data_ptr = NULL;
+ }
+ }
+ else
+ {
+ mmi_hengai_tcp_health_lib_activation_check_action();
+ }
+}
+
+bool mmi_hengai_health_data_parse(unsigned char * next_buff, unsigned int next_buff_len)
+{
+ if(NULL == next_buff || 0 == next_buff_len)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ return false;
+ }
+
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, next_buff_len);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG]: %s\n", next_buff);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG]: %s\n", next_buff + 90);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG]: %s\n", next_buff + 180);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG]: %s\n", next_buff + 270);
+
+ uint32_t output_len = 0;
+ char * t_decode_str = lv_mem_alloc(next_buff_len);
+ if(NULL == t_decode_str)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: memory alloc fail\n", __FUNCTION__, __LINE__);
+ return false;
+ }
+ _lv_memset_00(t_decode_str, next_buff_len);
+
+ int ret_value = mbedtls_base64_decode(t_decode_str, next_buff_len, &output_len, next_buff, next_buff_len);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, ret_value);
+ if(0 != ret_value)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
+ lv_mem_free(t_decode_str);
+ return false;
+ }
+
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, strlen(t_decode_str));
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG]: %s\n", t_decode_str);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG]: %s\n", t_decode_str + 90);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG]: %s\n", t_decode_str + 180);
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG]: %s\n", t_decode_str + 270);
+
+ cJSON * json_recv = cJSON_Parse(t_decode_str);
+ if(NULL != json_recv)
+ {
+ switch(s_hengai_bp_send_code)
+ {
+ case HENGAI_HEALTH_SEND_LOGIN:
+ if(cJSON_IsTrue(cJSON_GetObjectItem(json_recv, "status")))
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: true\n", __FUNCTION__, __LINE__);
+ //if(cJSON_HasObjectItem(json_recv, "data"))
+ cJSON * json_data = cJSON_GetObjectItem(json_recv, "data");
+ //if(cJSON_HasObjectItem(json_data, "token")) // login
+ char * token = cJSON_GetStringValue(cJSON_GetObjectItem(json_data, "token"));
+
+ mmi_hengai_health_token_set(token);
+
+ mmi_hengai_tcp_health_lib_activation_check_action();
+ }
+ break;
+
+ case HENGAI_HEALTH_SEND_ACTIVE:
+ if(cJSON_IsTrue(cJSON_GetObjectItem(json_recv, "status")))
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: true\n", __FUNCTION__, __LINE__);
+ cJSON * json_data = cJSON_GetObjectItem(json_recv, "data");
+ char * act_code = cJSON_GetStringValue(cJSON_GetObjectItem(json_data, "activation_code"));
+
+ mmi_hengai_health_lib_act_code_set(act_code);
+ }
+ break;
+
+ case HENGAI_HEALTH_SEND_ACTIVE_FEEDBACK:
+ break;
+
+ case HENGAI_HEALTH_SEND_CALIBRATE_DATA:
+ if(cJSON_IsTrue(cJSON_GetObjectItem(json_recv, "status")))
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: true\n", __FUNCTION__, __LINE__);
+ cJSON * json_data = cJSON_GetObjectItem(json_recv, "data");
+ if(2 == cJSON_GetIntValue(cJSON_GetObjectItem(json_data, "category")))
+ {
+ mmi_hengai_tcp_bp_calibrate_model_send();
+ }
+ }
+ else
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: false\n", __FUNCTION__, __LINE__);
+ //if(2 == calibrate_times)
+ //mmi_ui_msg_action_hengai_bp_calibrate_result(false);
+ }
+ break;
+
+ case HENGAI_HEALTH_SEND_CALIBRATE_MODEL:
+ bool status_value = cJSON_IsTrue(cJSON_GetObjectItem(json_recv, "status"));
+
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: %d\n", __FUNCTION__, __LINE__, status_value);
+ mmi_ui_msg_action_hengai_bp_calibrate_result(status_value);
+ break;
+
+ case HENGAI_HEALTH_SEND_MEASURE_DATA:
+ if(cJSON_IsTrue(cJSON_GetObjectItem(json_recv, "status")))
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: true\n", __FUNCTION__, __LINE__);
+
+ cJSON * json_data = cJSON_GetObjectItem(json_recv, "data");
+ uint16_t bp_value_high = cJSON_GetIntValue(cJSON_GetObjectItem(json_data, "sbp"));
+ uint16_t bp_value_low = cJSON_GetIntValue(cJSON_GetObjectItem(json_data, "dbp"));
+ //char * description = cJSON_GetStringValue(cJSON_GetObjectItem(json_data, "description"));
+
+ // update
+ mmi_ui_msg_action_hengai_bp_measure_result(true, bp_value_high, bp_value_low);
+ }
+ else
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: false\n", __FUNCTION__, __LINE__);
+ // update
+ mmi_ui_msg_action_hengai_bp_measure_result(false, 0, 0);
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+ else
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: not json file\n", __FUNCTION__, __LINE__);
+ }
+
+ if(NULL != json_recv)
+ {
+ HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: free json root\n", __FUNCTION__, __LINE__);
+ cJSON_Delete(json_recv);
+ json_recv = NULL;
+ }
+ if(NULL != t_decode_str)
+ {
+ lv_mem_free(t_decode_str);
+ t_decode_str = NULL;
+ }
+
+ return true;
+}
+
+#else
+
static struct http_client * s_hengai_http_client = NULL;
static struct http_client_list * s_hengai_http_client_list_header = NULL;
static uint8_t s_hengai_http_post_try_count = 0;
}
}
}
-
+#endif
HENGAI_HEALTH_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: ret=%d\n", __FUNCTION__, __LINE__, ret);
if(ret)
{
+ #ifdef __MMI_CUSTOM_HENGAI_HEALTH_UPLOAD_USE_TCP__
+ mmi_hengai_tcp_health_lib_activation_feedback();
+ #else
mmi_hengai_health_lib_activation_feedback();
+ #endif
}
}