From fc6b9a37cb8e32bb9034afe9fef5b00b2159aff6 Mon Sep 17 00:00:00 2001 From: YunHorn Technology Date: Sun, 28 Apr 2024 19:21:09 +0800 Subject: [PATCH] reformat output --- Core/Inc/sys_conf.h | 2 +- Core/Inc/yunhorn_sts_sensors.h | 8 ++- Core/Src/sts_lamp_bar.c | 41 +++++++++++---- Core/Src/yunhorn_sts_presence_rss.c | 2 + Core/Src/yunhorn_sts_presence_sensor.c | 56 ++++++++++++++++++--- LoRaWAN/App/lora_app.c | 67 +++++++++++-------------- STM32CubeIDE/.cproject | 2 +- STM32CubeIDE/Debug/makefile | 2 +- STM32CubeIDE/Release/STS_O7.bin | Bin 253568 -> 253800 bytes 9 files changed, 118 insertions(+), 62 deletions(-) diff --git a/Core/Inc/sys_conf.h b/Core/Inc/sys_conf.h index 871fadc..bcb45b4 100644 --- a/Core/Inc/sys_conf.h +++ b/Core/Inc/sys_conf.h @@ -47,7 +47,7 @@ extern "C" { /** * @brief Verbose level for all trace logs */ -#define VERBOSE_LEVEL VLEVEL_M +#define VERBOSE_LEVEL VLEVEL_L /** * @brief Enable trace logs diff --git a/Core/Inc/yunhorn_sts_sensors.h b/Core/Inc/yunhorn_sts_sensors.h index de4ea83..89ffce9 100644 --- a/Core/Inc/yunhorn_sts_sensors.h +++ b/Core/Inc/yunhorn_sts_sensors.h @@ -169,10 +169,14 @@ typedef struct STS_OO_SensorStatusDataTypeDef uint8_t state_sensor4_on_off; /* reserved_sensor_on_off sensor state */ uint16_t rss_presence_distance; // in mm uint16_t rss_presence_score; // in 1000*score + uint8_t unconcious_state; + uint16_t unconcious_threshold; + uint16_t unconcious_duration; uint8_t fall_state; // FALL DETECION NONE, FALL DOWN, RISE UP, LAYDOWN_STILL uint8_t fall_speed; // speed of fall down measure uint8_t fall_gravity; // gravity of fall down measure uint8_t overtime; // occupancy over time or not 0:1 + uint16_t over_stay_duration; // time lenght of overstay in seconds uint8_t battery_Pct; /* % of battery two digits, 88% (00-99)% */ uint8_t dutycycletimelevel; /* level=0,255 */ uint8_t sts_service_mask; /* sts service mask */ @@ -528,7 +532,7 @@ enum nvm_order { //39, P[27] NVM_FALL_DETECTION_ACC_THRESHOLD=40, //40 NVM_FALL_DETECTION_DEPTH_THRESHOLD, //41 - NVM_FALL_DETECTION_RESERVE, //42 + NVM_FALL_UNCONCIOUS_THRESHOLD, //42 NVM_OCCUPANCY_OVERTIME_THRESHOLD, //43 NVM_AC_CODE_START=44 //STORED, NO UPLOAD //63, 20 bytes for AC code @@ -550,7 +554,7 @@ typedef struct sts_cfg_nvm { uint8_t p[STS_O7_CFG_PCFG_SIZE]; uint8_t fall_detection_acc_threshold; // 0 - 9: 0:disable: 1-9 accelaration mg/s2 uint8_t fall_detection_depth_threshold; // 0 - 9: 0:disable: 1-9 fall down depth * 10 cm - uint8_t fall_detection_reserve; + uint8_t fall_unconcious_threshold; //motion level *10 uint8_t occupancy_overtime_threshold; // 0 - 9: 0:disable, 1-9 occupy over time threshold * 10 min uint8_t ac[YUNHORN_STS_AC_CODE_SIZE]; // authorization code, 20 bytes MCU UUID coded } sts_cfg_nvm_t; diff --git a/Core/Src/sts_lamp_bar.c b/Core/Src/sts_lamp_bar.c index efba2ce..38506a4 100644 --- a/Core/Src/sts_lamp_bar.c +++ b/Core/Src/sts_lamp_bar.c @@ -60,18 +60,18 @@ volatile uint8_t sts_status_color = STS_DARK; volatile uint8_t sts_lamp_bar_color = STS_GREEN; //puColor volatile uint8_t sts_cloud_netcolor = STS_GREEN; //netColor volatile uint8_t sts_occupancy_status; -volatile uint8_t sts_reed_hall_changed_flag = 1; + volatile uint8_t sts_reed_hall_result =0, sts_emergency_button_pushed=0; // inital 0 = close -volatile uint8_t sts_hall1_read=0,sts_hall2_read=0; +volatile uint8_t sts_hall1_read=0,sts_hall2_read=0; // Above hall1_read == reed_hall_result, hall2_read == emergency_button volatile uint8_t sts_tof_result_changed_flag = 0; volatile uint8_t sts_water_leakage_result=0; volatile uint8_t sts_water_leakage_changed_flag=0; -volatile uint8_t sts_rss_result_changed_flag = 0; +volatile uint8_t sts_rss_result_changed_flag = 0, sts_hall1_changed_flag=0, sts_hall2_changed_flag=0, sts_reed_hall_changed_flag = 0; volatile uint8_t sts_rss_result = STS_RESULT_NO_MOTION; volatile uint8_t sts_rss_2nd_result = STS_RESULT_NO_MOTION; //2nd RSS sensor status volatile uint8_t sts_tof_result = STS_RESULT_NO_MOTION; -volatile uint8_t last_sts_rss_result; +volatile uint8_t last_sts_rss_result, last_sts_hall1_result, last_sts_hall2_result; volatile uint8_t last_sts_reed_hall_result = 2; //Initial state, not 0, not 1 volatile uint8_t last_lamp_bar_color; extern volatile uint8_t sts_presence_fall_detection; @@ -107,14 +107,17 @@ void STS_YunhornSTSEventP2_Process(void) { STS_RSS_Smart_Presence_Detection(); STS_Reed_Hall_Presence_Detection(); - +#if 0 if (sts_rss_result == last_sts_rss_result) { sts_rss_result_changed_flag =0; } else { sts_rss_result_changed_flag =1; last_sts_rss_result = sts_rss_result; } - +#endif + sts_rss_result_changed_flag = (sts_rss_result == last_sts_rss_result)? 0:1; + last_sts_rss_result = sts_rss_result; +#if 0 if (sts_reed_hall_result == last_sts_reed_hall_result) { sts_reed_hall_changed_flag = 0; @@ -123,6 +126,15 @@ void STS_YunhornSTSEventP2_Process(void) { sts_reed_hall_changed_flag = 1; } +#endif + sts_hall1_changed_flag = (sts_hall1_read == last_sts_hall1_result)? 0:1; + last_sts_hall1_result = sts_hall1_read; + sts_hall2_changed_flag = (sts_hall2_read == last_sts_hall2_result)? 0:1; + last_sts_hall2_result = sts_hall2_read; + sts_reed_hall_changed_flag = sts_hall1_changed_flag|sts_hall2_changed_flag; + sts_reed_hall_result = last_sts_hall2_result|last_sts_hall1_result; + sts_reed_hall_changed_flag = (sts_reed_hall_result == last_sts_reed_hall_result)? 0:1; + if (sts_service_mask > 0 ) { sts_rss_result_changed_flag =0; sts_reed_hall_changed_flag = 0; @@ -403,7 +415,7 @@ void STS_Combined_Status_Processing(void) event_start_time = mems_event_time.Seconds; event_stop_time = 0; - APP_LOG(TS_OFF, VLEVEL_L, "\r\n Event Started at %6u Seconds \r\n", event_start_time); + APP_LOG(TS_OFF, VLEVEL_M, "\r\n Event Started at %6u Seconds \r\n", event_start_time); } @@ -415,7 +427,7 @@ void STS_Combined_Status_Processing(void) event_start_time = 0; - APP_LOG(TS_OFF, VLEVEL_L, "\r\n Event Stop at %6u Seconds \r\n", event_stop_time); + APP_LOG(TS_OFF, VLEVEL_M, "\r\n Event Stop at %6u Seconds \r\n", event_stop_time); } } @@ -447,9 +459,12 @@ void STS_Combined_Status_Processing(void) { sts_status_color = STS_GREEN; - } else if ((sts_rss_result == STS_RESULT_MOTION) || (sts_reed_hall_result == STS_Status_Door_Close )) + } else if ((sts_rss_result == STS_RESULT_MOTION) || (sts_reed_hall_result == STS_Status_Door_Close )||(sts_emergency_button_pushed ==STS_Status_Door_Close)) { sts_status_color = STS_RED; + if (sts_emergency_button_pushed) { + sts_status_color = STS_RED_BLUE; + } } break; case STS_REMOTE_REED_RSS_MODE: @@ -509,14 +524,17 @@ void STS_Combined_Status_Processing(void) break; } - +#if 0 if (sts_status_color == STS_RED_BLUE) { //STS_Lamp_Bar_Set_STS_RGB_Color(sts_lamp_bar_color, luminance_level); STS_Lamp_Bar_Set_STS_RGB_Color(STS_RED, luminance_level); HAL_Delay(100); STS_Lamp_Bar_Set_STS_RGB_Color(STS_BLUE, luminance_level); + HAL_Delay(100); + STS_Lamp_Bar_Set_STS_RGB_Color(STS_RED_BLUE, luminance_level); } +#endif if ((sts_work_mode == STS_WIRED_MODE) || (sts_service_mask > STS_SERVICE_MASK_L0)) { sts_status_color = STS_DARK; @@ -541,7 +559,7 @@ void STS_Combined_Status_Processing(void) last_lamp_bar_color = sts_lamp_bar_color; } } - +#if 1 if ((sts_rss_result_changed_flag)|| (sts_reed_hall_changed_flag) || (sts_tof_result_changed_flag) || (sts_water_leakage_changed_flag)) { sensor_data_ready = 1; @@ -551,6 +569,7 @@ void STS_Combined_Status_Processing(void) sts_tof_result_changed_flag =0; sts_water_leakage_changed_flag=0; } +#endif } void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) diff --git a/Core/Src/yunhorn_sts_presence_rss.c b/Core/Src/yunhorn_sts_presence_rss.c index 0250d25..d0fe90f 100644 --- a/Core/Src/yunhorn_sts_presence_rss.c +++ b/Core/Src/yunhorn_sts_presence_rss.c @@ -82,6 +82,8 @@ extern volatile uint8_t sts_fall_detection_acc_threshold, sts_fall_detection_depth_threshold, sts_occupancy_overtime_threshold; +volatile uint8_t sts_unconcious_state=0; +volatile uint16_t sts_unconcious_threshold=1280, sts_unconcious_duration=0; extern volatile uint8_t sts_rss_result, sts_rss_config_updated_flag; extern volatile float sts_distance_rss_distance; volatile float sts_presence_rss_distance, sts_presence_rss_score; diff --git a/Core/Src/yunhorn_sts_presence_sensor.c b/Core/Src/yunhorn_sts_presence_sensor.c index 31ce6aa..27f1376 100644 --- a/Core/Src/yunhorn_sts_presence_sensor.c +++ b/Core/Src/yunhorn_sts_presence_sensor.c @@ -45,10 +45,13 @@ extern volatile float sts_presence_rss_distance, sts_presence_rss_score; extern volatile uint8_t sts_hall1_read,sts_hall2_read; volatile uint8_t sts_rss_config_updated_flag = 0; extern volatile uint8_t mems_int1_detected, link_wakeup, link_sleep; -volatile uint32_t event_start_time, event_stop_time, sensor_data_ready; +volatile uint32_t event_start_time=0, event_stop_time=0, sensor_data_ready; +extern volatile uint8_t sts_occupancy_overtime_state; extern volatile STS_OO_RSS_SensorTuneDataTypeDef sts_presence_rss_config; extern volatile sts_cfg_nvm_t sts_cfg_nvm; extern volatile uint8_t sts_fall_detection_acc_threshold, sts_fall_detection_depth_threshold, sts_occupancy_overtime_threshold; +extern volatile uint8_t sts_unconcious_state; +extern volatile uint16_t sts_unconcious_threshold, sts_unconcious_duration; extern volatile uint8_t sts_reed_hall_result, sts_emergency_button_pushed, sts_rss_result, sts_rss_2nd_result,sts_tof_result, sts_status_color, sts_lamp_bar_color, sts_work_mode, sts_service_mask; extern volatile distance_measure_cfg_t distance_cfg; extern uint8_t sts_fall_rising_detected_result; @@ -262,6 +265,9 @@ void STS_PRESENCE_SENSOR_Init_Send_Data(void) sts_o7_sensorData.event_start_time = 0x0; sts_o7_sensorData.event_stop_time = 0x0; sts_o7_sensorData.overtime = 0x0; + sts_o7_sensorData.over_stay_duration = 0x0; + sts_o7_sensorData.unconcious_state = 0x0; + sts_o7_sensorData.unconcious_duration = 0x0; sts_o7_sensorData.battery_Pct = 99; // 99% as init value sts_o7_sensorData.dutycycletimelevel = 1; @@ -271,14 +277,23 @@ void STS_PRESENCE_SENSOR_Prepare_Send_Data(void) { sts_o7_sensorData.lamp_bar_color = sts_lamp_bar_color; sts_o7_sensorData.workmode = sts_work_mode; - sts_o7_sensorData.state_sensor1_on_off = sts_reed_hall_result; + sts_o7_sensorData.state_sensor1_on_off = sts_reed_hall_result; // sts_hall1_read sts_o7_sensorData.state_sensor2_on_off = sts_rss_result; - sts_o7_sensorData.state_sensor3_on_off = sts_emergency_button_pushed; + sts_o7_sensorData.state_sensor3_on_off = sts_emergency_button_pushed; //sts_hall2_read sts_o7_sensorData.state_sensor4_on_off = sts_rss_2nd_result; if (sts_rss_result == STS_RESULT_MOTION) { sts_o7_sensorData.rss_presence_distance = (uint16_t)(sts_presence_rss_distance)&0xFFFF; sts_o7_sensorData.rss_presence_score = (uint16_t)(sts_presence_rss_score)&0xFFFF; + // uint8_t sts_unconcious_state; + // uint16_t sts_unconcious_threshold, sts_unconcious_threshold_duration; + if (sts_presence_rss_score < sts_unconcious_threshold) + { + sts_o7_sensorData.unconcious_state = sts_presence_rss_score; + } else + { + sts_o7_sensorData.unconcious_state = 0; + } } else { sts_o7_sensorData.rss_presence_distance = 0x0; sts_o7_sensorData.rss_presence_score = 0x0; @@ -290,11 +305,32 @@ void STS_PRESENCE_SENSOR_Prepare_Send_Data(void) sts_o7_sensorData.fall_gravity = (uint8_t)sts_roc_acc_standard_variance; } - sts_o7_sensorData.overtime = (event_stop_time - event_start_time)> (sts_occupancy_overtime_threshold*60)? 1:0; - sts_o7_sensorData.event_start_time = event_start_time; - sts_o7_sensorData.event_stop_time = event_stop_time; -} + // For occupancy over time process + SysTime_t occupy_check_time = SysTimeGetMcuTime(); + if ((sts_occupancy_overtime_threshold != 0) && (event_start_time !=0)) + { + uint32_t check_time_tmp = occupy_check_time.Seconds - event_start_time; + //APP_LOG(TS_OFF, VLEVEL_L, "\r\n Check time at %6u Seconds, time lag =%6u, Started at %6u \r\n", occupy_check_time.Seconds, check_time_tmp, event_start_time); + + if (check_time_tmp > sts_occupancy_overtime_threshold*60) + { + sts_occupancy_overtime_state = 1U; + sts_o7_sensorData.overtime = sts_occupancy_overtime_state; + sts_o7_sensorData.over_stay_duration = check_time_tmp; + + sts_status_color = STS_RED_BLUE; + sts_lamp_bar_color = STS_RED_BLUE; + + STS_Lamp_Bar_Refresh(); + } + } else + { + sts_occupancy_overtime_state = 0U; + } + +} +#if 0 void STS_PRESENCE_SENSOR_Read(STS_OO_SensorStatusDataTypeDef *oo_data) { oo_data->lamp_bar_color = (uint8_t)sts_o7_sensorData.lamp_bar_color; @@ -306,15 +342,17 @@ void STS_PRESENCE_SENSOR_Read(STS_OO_SensorStatusDataTypeDef *oo_data) oo_data->state_sensor4_on_off = (uint8_t)sts_o7_sensorData.state_sensor4_on_off; oo_data->rss_presence_distance = (uint16_t)sts_o7_sensorData.rss_presence_distance; oo_data->rss_presence_score = (uint16_t)sts_o7_sensorData.rss_presence_score; + oo_data->fall_state = (uint8_t)sts_o7_sensorData.fall_state; oo_data->event_start_time = (uint32_t)sts_o7_sensorData.event_start_time; oo_data->event_stop_time = (uint32_t)sts_o7_sensorData.event_stop_time; oo_data->overtime = (uint8_t)sts_o7_sensorData.overtime; + oo_data->over_stay_duration = (uint16_t)sts_o7_sensorData.over_stay_duration; oo_data->battery_Pct = (uint8_t)sts_o7_sensorData.battery_Pct; oo_data->dutycycletimelevel = (uint8_t)sts_o7_sensorData.dutycycletimelevel; } - +#endif void STS_PRESENCE_SENSOR_GetValue(void) { @@ -349,6 +387,8 @@ void STS_PRESENCE_SENSOR_Init(void) sts_o7_sensorData.dutycycletimelevel = 1; sts_o7_sensorData.event_start_time = 0; sts_o7_sensorData.event_stop_time = 0; + sts_o7_sensorData.overtime = 0; + sts_o7_sensorData.over_stay_duration = 0; STS_SENSOR_Power_ON(0); STS_PRESENCE_SENSOR_REEDSWITCH_HALL_Init(); diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index 9c186d6..8143dcb 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -52,9 +52,9 @@ extern hmac_result_t hmac_result; extern volatile uint8_t sts_reed_hall_ext_int; extern volatile uint8_t sts_hall1_read, sts_hall2_read; extern volatile uint8_t sts_work_mode, sts_cloud_netcolor, sts_lamp_bar_color, sts_status_color; - volatile uint8_t sts_fall_detection_acc_threshold = 10, sts_fall_detection_depth_threshold=30, sts_occupancy_overtime_threshold=20; extern volatile uint32_t event_start_time, event_stop_time; +extern volatile uint16_t sts_unconcious_threshold; volatile uint8_t sts_occupancy_overtime_state = 0; volatile uint8_t sts_presence_fall_detection=1; volatile uint32_t SamplingPeriodicity = 1000; //unit ms @@ -110,7 +110,7 @@ volatile sts_cfg_nvm_t sts_cfg_nvm = { // below 4 bytes 0x01, //fall_detection_acc_threshold = *10 acceleration measure 0x03, //fall detection_depth_threshold *10cm - 0x00, //reserve + 0x80, //fall unconcious threshold * 10, 1280 motion level 0x02, //occupancy over time threshold *10 minutes // below 20 bytes {0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0} @@ -632,7 +632,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) case HALL1_Pin: //sts_reed_hall_ext_int = 1; sts_hall1_read = HALL1_STATE; - UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), CFG_SEQ_Prio_0); + //UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), CFG_SEQ_Prio_0); /* Note: when "EventType == TX_ON_TIMER" this GPIO is not initialized */ // if (EventType == TX_ON_EVENT) { @@ -642,7 +642,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) case HALL2_Pin: sts_hall2_read = HALL2_STATE; - UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), CFG_SEQ_Prio_0); + // UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), CFG_SEQ_Prio_0); UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); break; @@ -780,33 +780,15 @@ static uint8_t PrepareSendTxData(void) uint8_t i = 0; uint8_t batteryLevel = GetBatteryLevel(); uint16_t batteryLevelmV = SYS_GetBatteryLevel(); - SysTime_t occupy_check_time = SysTimeGetMcuTime(); + //SysTime_t occupy_check_time = SysTimeGetMcuTime(); //sensor_t sensor_data; - //STS_OO_SensorStatusDataTypeDef o7_data; + STS_PRESENCE_SENSOR_Prepare_Send_Data(); - //STS_PRESENCE_SENSOR_Read(&o7_data); + sts_o7_sensorData.battery_Pct = (uint8_t)(99*batteryLevel/254); - // For occupancy over time process - if ((sts_occupancy_overtime_threshold != 0) && (event_start_time !=0)) - { - uint32_t check_time_tmp = occupy_check_time.Seconds - event_start_time; - - APP_LOG(TS_OFF, VLEVEL_L, "\r\n Check time at %6u Seconds, time lag =%6u, Started at %6u \r\n", occupy_check_time.Seconds, check_time_tmp, event_start_time); - - if (check_time_tmp > sts_occupancy_overtime_threshold*60) - { - sts_occupancy_overtime_state = 1U; - sts_status_color = STS_RED_BLUE; - sts_lamp_bar_color = STS_RED_BLUE; - STS_Lamp_Bar_Refresh(); - } - } else - { - sts_occupancy_overtime_state = 0U; - } // For occupancy over time process @@ -888,11 +870,19 @@ static uint8_t PrepareSendTxData(void) AppData.Buffer[i++] = (uint8_t)(0xFF & sts_o7_sensorData.rss_presence_score >>8); //09 MSB score AppData.Buffer[i++] = (uint8_t)(0xFF & sts_o7_sensorData.rss_presence_score); //10 LSB score } - AppData.Buffer[i++] = (uint8_t)(0xFF & sts_occupancy_overtime_state); //11 occupancy over time or not + AppData.Buffer[i++] = (uint8_t)(0xFF & sts_o7_sensorData.unconcious_state); //11 unconcious state detected or not + AppData.Buffer[i++] = (uint8_t)(0xFF & sts_o7_sensorData.fall_state); //12 fall detected or not + AppData.Buffer[i++] = (uint8_t)(0xFF & sts_o7_sensorData.overtime); //13 occupancy over time or not + AppData.Buffer[i++] = (uint8_t)(0xFF & sts_o7_sensorData.over_stay_duration>>8); //13 occupancy over time or not + AppData.Buffer[i++] = (uint8_t)(0xFF & sts_o7_sensorData.over_stay_duration); //13 occupancy over time or not APP_LOG(TS_OFF, VLEVEL_L, - "\r\n######| Color | Mode | S1-Open | S2-Motion | S3-Open | S4 |Distance(mm) | MotionScore|" - "\r\n######|%10s | %15s | %1d | %1d | %1d | %1d | %04d | %04d |\r\n", - (char *)sts_lamp_color_code[(uint8_t)(AppData.Buffer[0])], (char*)sts_work_mode_code[AppData.Buffer[1]],AppData.Buffer[2], AppData.Buffer[3],AppData.Buffer[4], AppData.Buffer[5], (uint16_t)sts_o7_sensorData.rss_presence_distance,(uint16_t)sts_o7_sensorData.rss_presence_score); + "\r\n######| Color | Mode |\r\n######| %4s | %5s |\r\n",(char *)sts_lamp_color_code[(uint8_t)(AppData.Buffer[0])], (char*)sts_work_mode_code[AppData.Buffer[1]]); + APP_LOG(TS_OFF, VLEVEL_L, + "\r\n######| S1-DoorOpen | S2-Motion | S3-No_Emergency | S4 |Distance(mm) | MotionScore| Unconcious | Over_Stay| Fall Detected|" + "\r\n######| %1d | %1d | %1d | %1d | %04d | %04d | %1d | %1d | %1d |\r\n", + AppData.Buffer[2], AppData.Buffer[3],AppData.Buffer[4], AppData.Buffer[5], + (uint16_t)sts_o7_sensorData.rss_presence_distance,(uint16_t)sts_o7_sensorData.rss_presence_score, + sts_o7_sensorData.unconcious_state, sts_o7_sensorData.unconcious_duration, sts_o7_sensorData.fall_state ); default: break; } @@ -1827,19 +1817,20 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD5]; STS_Combined_Status_Processing(); - } else if (tlv_buf_size == 7 && tlv_buf[CFG_CMD4]=='F') // Change fall detection, occupancy overtime threshold + } else if (tlv_buf_size == 8 && tlv_buf[CFG_CMD4]=='F') // Change fall detection, occupancy overtime threshold { - invalid_flag = 0; // P 1 1 F A B C + invalid_flag = 0; // P 1 1 F A B C D if (((tlv_buf[CFG_CMD5] >='0') && (tlv_buf[CFG_CMD5]<='9')) && ((tlv_buf[CFG_CMD6]<='9') && (tlv_buf[CFG_CMD6]>='0')) - && ((tlv_buf[CFG_CMD7]<='9') && (tlv_buf[CFG_CMD7]>='0'))) + && ((tlv_buf[CFG_CMD7]<='9') && (tlv_buf[CFG_CMD7]>='0'))&& ((tlv_buf[CFG_CMD8]<='9') && (tlv_buf[CFG_CMD8]>='0'))) { sts_fall_detection_acc_threshold = (uint8_t)(tlv_buf[CFG_CMD5] - 0x30)*10; //acc *10 mg/s2 sts_fall_detection_depth_threshold = (uint8_t)(tlv_buf[CFG_CMD6] - 0x30)*10; //depth *10 in cm - sts_occupancy_overtime_threshold = (uint8_t)(tlv_buf[CFG_CMD7] - 0x30)*10; // overtime *10 min + sts_unconcious_threshold = (uint8_t)(tlv_buf[CFG_CMD7] - 0x30+10)*10; //motion level over 1000 , less than 1900 *10 in cm + sts_occupancy_overtime_threshold = (uint8_t)(tlv_buf[CFG_CMD8] - 0x30)*10; // overtime *10 min sts_cfg_nvm.fall_detection_acc_threshold = (uint8_t)(tlv_buf[CFG_CMD5] - 0x30); sts_cfg_nvm.fall_detection_depth_threshold = (uint8_t)(tlv_buf[CFG_CMD6] - 0x30); - sts_cfg_nvm.fall_detection_reserve = 0x0; - sts_cfg_nvm.occupancy_overtime_threshold = (uint8_t)(tlv_buf[CFG_CMD7] - 0x30); + sts_cfg_nvm.fall_unconcious_threshold = (uint8_t)(tlv_buf[CFG_CMD7] - 0x30+10); + sts_cfg_nvm.occupancy_overtime_threshold = (uint8_t)(tlv_buf[CFG_CMD8] - 0x30); if ((sts_fall_detection_acc_threshold ==0)&&(sts_fall_detection_depth_threshold==0)) { @@ -1856,7 +1847,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD5]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD6]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD7]; - + outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD8]; STS_Combined_Status_Processing(); } @@ -2140,7 +2131,7 @@ void OnStoreSTSCFGContextRequest(void) nvm_store_value[i++] = sts_cfg_nvm.fall_detection_acc_threshold; nvm_store_value[i++] = sts_cfg_nvm.fall_detection_depth_threshold; - nvm_store_value[i++] = sts_cfg_nvm.fall_detection_reserve; + nvm_store_value[i++] = sts_cfg_nvm.fall_unconcious_threshold; nvm_store_value[i++] = sts_cfg_nvm.occupancy_overtime_threshold; for (j = 0; j < YUNHORN_STS_AC_CODE_SIZE; j++) { @@ -2218,7 +2209,7 @@ void STS_REBOOT_CONFIG_Init(void) sts_cfg_nvm.fall_detection_acc_threshold = (uint8_t)nvm_stored_value[NVM_FALL_DETECTION_ACC_THRESHOLD]; sts_cfg_nvm.fall_detection_depth_threshold = (uint8_t)nvm_stored_value[NVM_FALL_DETECTION_DEPTH_THRESHOLD]; - sts_cfg_nvm.fall_detection_reserve = (uint8_t)nvm_stored_value[NVM_FALL_DETECTION_RESERVE]; + sts_cfg_nvm.fall_unconcious_threshold = (uint8_t)nvm_stored_value[NVM_FALL_UNCONCIOUS_THRESHOLD]; sts_cfg_nvm.occupancy_overtime_threshold = (uint8_t)nvm_stored_value[NVM_OCCUPANCY_OVERTIME_THRESHOLD]; for (uint8_t j=0; j< YUNHORN_STS_AC_CODE_SIZE; j++) { diff --git a/STM32CubeIDE/.cproject b/STM32CubeIDE/.cproject index 8b4bee5..b70228a 100644 --- a/STM32CubeIDE/.cproject +++ b/STM32CubeIDE/.cproject @@ -43,7 +43,7 @@ diff --git a/STM32CubeIDE/Debug/makefile b/STM32CubeIDE/Debug/makefile index 508b8c7..6ab2205 100644 --- a/STM32CubeIDE/Debug/makefile +++ b/STM32CubeIDE/Debug/makefile @@ -68,7 +68,7 @@ main-build: STS_O7.elf secondary-outputs # Tool invocations STS_O7.elf STS_O7.map: $(OBJS) $(USER_OBJS) D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\YUNHORN_STS_E5CC_AS923_POC\STM32CubeIDE\STM32WLE5CCUX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS) - arm-none-eabi-gcc -o "STS_O7.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\YUNHORN_STS_E5CC_AS923_POC\STM32CubeIDE\STM32WLE5CCUX_FLASH.ld" --specs=nosys.specs -Wl,-Map="STS_O7.map" -Wl,--gc-sections -static -L"D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\STS_O7\STM32CubeIDE\rss\lib" -Xlinker -no-enum-size-warning --specs=nano.specs -mfloat-abi=soft -mthumb -Wl,--start-group -lc -lm -Wl,--end-group + arm-none-eabi-gcc -o "STS_O7.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\YUNHORN_STS_E5CC_AS923_POC\STM32CubeIDE\STM32WLE5CCUX_FLASH.ld" --specs=nosys.specs -Wl,-Map="STS_O7.map" -Wl,--gc-sections -static -L"D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\STS_O7\STM32CubeIDE\rss\lib" -Xlinker -no-enum-size-warning -z noexecstack --specs=nano.specs -mfloat-abi=soft -mthumb -Wl,--start-group -lc -lm -Wl,--end-group @echo 'Finished building target: $@' @echo ' ' diff --git a/STM32CubeIDE/Release/STS_O7.bin b/STM32CubeIDE/Release/STS_O7.bin index cc4abc13a1a52a6579f40f232a1ac501f0aa4055..1cb6d3169260e34571f3bcaaf555d2967be83efa 100644 GIT binary patch delta 58441 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

^AoTGe3dfSNQ#gUnTU##%f6#bha>0+3yX) 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 delta 57674 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

-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 NyZarXb3`)X{{WWrxe@>X