From f500fb564cd6896855a79ee5c90ae08f837d4ce0 Mon Sep 17 00:00:00 2001 From: YunHorn Technology Date: Wed, 11 Dec 2024 11:06:32 +0800 Subject: [PATCH] workable L8 fall sensor with debug --- LoRaWAN/App/lora_app.c | 18 +-------- STM32CubeIDE/Release/WLE5CC_NODE_STS.bin | Bin 189968 -> 188356 bytes STM32CubeIDE/Release/WLE5CC_NODE_STS.elf | Bin 281304 -> 276844 bytes STS/Core/Src/yunhorn_sts_process.c | 46 ++++++++++++----------- STS/TOF/App/app_tof.c | 17 +++++---- 5 files changed, 35 insertions(+), 46 deletions(-) diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index 8aa1b36..d7e078e 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -612,36 +612,24 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { case BUT1_Pin: /* Note: when "EventType == TX_ON_TIMER" this GPIO is not initialized */ - - HAL_Delay(150); __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); - sts_hall1_read = HALL1_STATE; - // 1) record event start/stop time OnSensor1StateChanged(); - // 2) change lamp bar color if (sts_hall1_read == STS_Status_Door_Close) { sts_lamp_bar_color = STS_OCCUPANCY_NORMAL_COLOR; sts_status_color = STS_OCCUPANCY_NORMAL_COLOR; - - APP_LOG(TS_OFF, VLEVEL_M,"\r\n EXIT_CALLBACK, Door CLOSED: sts status color =%d, lampbar_color=%d \r\n", sts_status_color, sts_lamp_bar_color); - - //printf("\r\n Door Closed sts status color =%d", sts_status_color); - + //APP_LOG(TS_OFF, VLEVEL_M,"\r\n EXIT_CALLBACK, Door CLOSED: sts status color =%d, lampbar_color=%d \r\n", sts_status_color, sts_lamp_bar_color); } else { - //sts_lamp_bar_color = prev_color; sts_status_color = STS_VACANT_COLOR; sts_lamp_bar_color = STS_VACANT_COLOR; APP_LOG(TS_OFF, VLEVEL_M,"\r\n EXIT_CALLBACK, Door Open: sts status color =%d, lampbar_color=%d \r\n", sts_status_color, sts_lamp_bar_color); } - - // 3) combine states and colors //STS_YunhornSTSEventP1_Process(); //STS_Combined_Status_Processing(); @@ -656,9 +644,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) #endif UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); - last_sts_hall1_read = sts_hall1_read; - break; #ifndef STS_R4 @@ -666,7 +652,6 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) case BUT2_Pin: HAL_Delay(100); __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin); - sts_hall2_read = HALL2_STATE; //printf("\r\n HALL 2 state =%d \r\n", sts_hall2_read); // 1) record event start/stop time @@ -701,7 +686,6 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); last_sts_hall2_read = sts_hall2_read; - break; #endif #endif diff --git a/STM32CubeIDE/Release/WLE5CC_NODE_STS.bin b/STM32CubeIDE/Release/WLE5CC_NODE_STS.bin index e08268506248155dd5a78553f24f03a0e4d64402..7ca45e965db0ec91ca5c820e47501266bd9f6e14 100644 GIT binary patch delta 16015 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 B%HIG0 delta 17401 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 diff --git a/STM32CubeIDE/Release/WLE5CC_NODE_STS.elf b/STM32CubeIDE/Release/WLE5CC_NODE_STS.elf index 45a4994527ea728400ea500d8359911fed26daae..d2c7d3f16285b9250f92a93c554c1518ce503575 100644 GIT binary patch delta 61161 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%0A2~P=X^ICST8UnD|Q^ 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 W!d1Ou8zfEd5bGU7Vt>*H^80@%QFV|2 delta 62719 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 LzC>alTP6P=i&U9o diff --git a/STS/Core/Src/yunhorn_sts_process.c b/STS/Core/Src/yunhorn_sts_process.c index d990125..867f57d 100644 --- a/STS/Core/Src/yunhorn_sts_process.c +++ b/STS/Core/Src/yunhorn_sts_process.c @@ -136,7 +136,8 @@ volatile sts_cfg_nvm_t sts_cfg_nvm = { fhmos_cfg.th_motionless_long_15sec = 20; // 20*15 = 300 sec, 5 min. fhmos_cfg.th_occupancy_overstay_15sec = 100; // 80*15 = 1200 sec, 20 min. - fhmos_cfg.th_motion_power = 50; + fhmos_cfg.th_gesture_mask_off_height_cm = 50; + fhmos_cfg.th_fhmos_cfg_reserve1 = 0; */ 0x46, // uint8_t fhmos_cfg_1; head level height cm @@ -801,12 +802,15 @@ void USER_APP_Parse_CMD_P(uint8_t *parse_buffer, uint8_t parse_buffer_size) case 6: fhmos_cfg.th_occupancy_overstay_15sec = sts_fhmos_cfg_value; break; + case 7: fhmos_cfg.th_gesture_mask_off_height_cm = sts_fhmos_cfg_value; break; + case 8: fhmos_cfg.th_fhmos_cfg_reserve1 = sts_fhmos_cfg_value;; break; + case 9: // cmd for upload messages fhmos_cmd.cmd_index = sts_fhmos_cfg_index; fhmos_cmd.cmd_value = sts_fhmos_cfg_value; @@ -2312,7 +2316,7 @@ void YunhornSTSDurationCheckTimer(void) fhmos_data.state_occupancy = STS_FHMOS_OCCUPANCY_OVERSTAY; sts_o7_sensorData.over_stay_state = 1; sts_o7_sensorData.over_stay_duration = sts_o7_sensorData.event_sensor1_duration; -#if 1 +#if 0 APP_LOG(TS_OFF, VLEVEL_M, "\r\nSensor 1 Over Stay State=%d, Duration= %d Sec, Threshold =%u \r\n", sts_o7_sensorData.over_stay_state, (sts_o7_sensorData.over_stay_duration), @@ -2320,9 +2324,9 @@ void YunhornSTSDurationCheckTimer(void) #endif sts_lamp_bar_color = STS_OCCUPANCY_OVERSTAY_COLOR; - APP_LOG(TS_OFF, VLEVEL_M, "\r\nSensor1 overstay set color to %d color:%s\r\n",sts_lamp_bar_color, (char*)code2color[sts_lamp_bar_color]); +// APP_LOG(TS_OFF, VLEVEL_M, "\r\nSensor1 overstay set color to %d color:%s\r\n",sts_lamp_bar_color, (char*)code2color[sts_lamp_bar_color]); over_threshold |= 1<<1; - APP_LOG(TS_OFF, VLEVEL_M, "\r\n 1<<1 Over Threshold =0x%02x \r\n", over_threshold); +// APP_LOG(TS_OFF, VLEVEL_M, "\r\n 1<<1 Over Threshold =0x%02x \r\n", over_threshold); } @@ -2361,7 +2365,7 @@ void YunhornSTSDurationCheckTimer(void) //sts_o7_sensorData.over_stay_duration = sts_o7_sensorData.event_sensor2_duration; // over_threshold |= 1<<2; - APP_LOG(TS_OFF, VLEVEL_M, "\r\n 1<<2 Over Threshold =0x%02x \r\n", over_threshold); + // APP_LOG(TS_OFF, VLEVEL_M, "\r\n 1<<2 Over Threshold =0x%02x \r\n", over_threshold); // to be defiend later for SOS threshold TODO XXXX } else { @@ -2391,7 +2395,7 @@ void YunhornSTSDurationCheckTimer(void) &&(sts_o7_sensorData.event_sensor3_no_movement_duration > fhmos_cfg.th_motionless_long_15sec*15)) // th_occupancy_overstay_15sec*15) { fhmos_data.state_human_movement = STS_FHMOS_HUMAN_MOVEMENT_MOTIONLESS_LONG; -#if 1 +#if 0 APP_LOG(TS_OFF, VLEVEL_M, "\r\nSensor 3 Human Movement =%d, Duration= %d Sec, Threshold =%u \r\n", fhmos_data.state_human_movement, sts_o7_sensorData.event_sensor3_no_movement_duration, @@ -2406,14 +2410,14 @@ void YunhornSTSDurationCheckTimer(void) #endif over_threshold |= 1<<3; - APP_LOG(TS_OFF, VLEVEL_M, "\r\n 1<<3 Over Threshold =0x%02x \r\n", over_threshold); +// APP_LOG(TS_OFF, VLEVEL_M, "\r\n 1<<3 Over Threshold =0x%02x \r\n", over_threshold); } else if ((sts_o7_sensorData.event_sensor3_no_movement_duration >= fhmos_cfg.th_motionless_short_15sec*15) && (sts_o7_sensorData.event_sensor3_no_movement_duration < fhmos_cfg.th_motionless_long_15sec*15) && (STS_FHMOS_HUMAN_MOVEMENT_NORMAL == fhmos_data.state_human_movement)) { fhmos_data.state_human_movement = STS_FHMOS_HUMAN_MOVEMENT_MOTIONLESS_SHORT; -#if 1 +#if 0 APP_LOG(TS_OFF, VLEVEL_M, "\r\nSensor 3 Human Movement =%d, Duration= %d Sec, Threshold =%u \r\n", fhmos_data.state_human_movement, sts_o7_sensorData.event_sensor3_no_movement_duration, @@ -2426,7 +2430,7 @@ void YunhornSTSDurationCheckTimer(void) #endif over_threshold |= 1<<4; - APP_LOG(TS_OFF, VLEVEL_M, "\r\n 1<<4 Over Threshold =0x%02x \r\n", over_threshold); +// APP_LOG(TS_OFF, VLEVEL_M, "\r\n 1<<4 Over Threshold =0x%02x \r\n", over_threshold); } } else if ((STS_Status_PIR_Motion_Detected == sts_pir_read)&&(sts_hall1_read ==STS_Status_Door_Close )) @@ -2440,7 +2444,7 @@ void YunhornSTSDurationCheckTimer(void) fhmos_data.color_human_movement =STS_OCCUPY_COLOR; over_threshold |= 1<<5; - APP_LOG(TS_OFF, VLEVEL_M, "\r\n 1<<5 Over Threshold =0x%02x \r\n", over_threshold); +// APP_LOG(TS_OFF, VLEVEL_M, "\r\n 1<<5 Over Threshold =0x%02x \r\n", over_threshold); //last_sensor3_state = fhmos_data.state_human_movement; //sts_lamp_bar_color = STS_HUMAN_MOVEMENT_MOTIONLESS_NORMAL; } else @@ -2465,12 +2469,12 @@ void YunhornSTSDurationCheckTimer(void) sts_o7_sensorData.event_sensor3_fall_duration = current_time.Seconds - sts_o7_sensorData.event_sensor3_fall_start_time; //fhmos_data.head_low_level_duration = current_time.Seconds - fhmos_data.head_low_level_start_time; - +#if 0 APP_LOG(TS_OFF, VLEVEL_M, "\r\n Head Low duration =%d \r\n Potential threshold=%d sec \r\n Confirm threshold=%d sec", sts_o7_sensorData.event_sensor3_fall_duration, fhmos_cfg.th_fall_duration_potential_15sec*15, fhmos_cfg.th_fall_duration_confirm_15sec*15); - +#endif if ((sts_o7_sensorData.event_sensor3_fall_duration >= fhmos_cfg.th_fall_duration_confirm_15sec*15) && (STS_FHMOS_FALL_STATE_POTENTIAL ==fhmos_data.state_fall)) { @@ -2478,13 +2482,13 @@ void YunhornSTSDurationCheckTimer(void) fhmos_data.state_fall = STS_FHMOS_FALL_STATE_CONFIRMED; fhmos_data.time_stamp_fall_confirmed = time_stamp; - APP_LOG(TS_OFF, VLEVEL_M, "\r\n 003 fall state set to %d \r\n",fhmos_data.state_fall); +// APP_LOG(TS_OFF, VLEVEL_M, "\r\n 003 fall state set to %d \r\n",fhmos_data.state_fall); // no lamp bar color change // sts_lamp_bar_color = STS_FALL_CONFIRMED_COLOR; // APP_LOG(TS_OFF, VLEVEL_M, "\r\nSensor L8 set FALL CONFIRM color to %d color:%s\r\n",sts_lamp_bar_color, (char*)code2color[sts_lamp_bar_color]); over_threshold |= 1<<6; - APP_LOG(TS_OFF, VLEVEL_M, "\r\n 1<<6 Over Threshold =0x%02x \r\n", over_threshold); +// APP_LOG(TS_OFF, VLEVEL_M, "\r\n 1<<6 Over Threshold =0x%02x \r\n", over_threshold); if (sts_fhmos_bitmap_pending == 0) { @@ -2499,12 +2503,12 @@ void YunhornSTSDurationCheckTimer(void) { // stay this state until > long threshold fhmos_data.state_fall = STS_FHMOS_FALL_STATE_POTENTIAL; - APP_LOG(TS_OFF, VLEVEL_M, "\r\n 002 Fall State =%d \r\n", fhmos_data.state_fall); +// APP_LOG(TS_OFF, VLEVEL_M, "\r\n 002 Fall State =%d \r\n", fhmos_data.state_fall); // sts_lamp_bar_color = STS_FALL_SUSPICIOUS_COLOR; // APP_LOG(TS_OFF, VLEVEL_M, "\r\nSensor L8 set FALL POTENTIAL color to %d color:%s \r\n",sts_lamp_bar_color, (char*) code2color[sts_lamp_bar_color]); over_threshold |= 1<<7; - APP_LOG(TS_OFF, VLEVEL_M, "\r\n 1<<7 Over Threshold =0x%02x \r\n", over_threshold); +// APP_LOG(TS_OFF, VLEVEL_M, "\r\n 1<<7 Over Threshold =0x%02x \r\n", over_threshold); } } else { @@ -2623,7 +2627,7 @@ void YunhornSTSDurationCheckTimer(void) // APP_LOG(TS_OFF, VLEVEL_M, "\r\n Over_threshold=0x%02x, sts cmb result =0x%02x, last_cmb_result=0x%02x \r\n", over_threshold, sts_cmb_result, last_sts_cmb_result); if ((over_threshold != 0 ) && (last_sts_cmb_result != sts_cmb_result)) { - APP_LOG(TS_OFF, VLEVEL_M, "\r\n Over Threshold =0x%02x \r\n", over_threshold); +// APP_LOG(TS_OFF, VLEVEL_M, "\r\n Over Threshold =0x%02x \r\n", over_threshold); last_sts_cmb_result = sts_cmb_result; UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); @@ -2970,7 +2974,7 @@ void OnSensor4StateChanged(void) void OnSensorL8AStateChanged(void) { //sensor_event_time = SysTimeGetMcuTime(); - APP_LOG(TS_OFF, VLEVEL_M, "\r\n L8A \r\n"); + //APP_LOG(TS_OFF, VLEVEL_M, "\r\n L8A \r\n"); @@ -2982,7 +2986,7 @@ void OnSensorL8AStateChanged(void) fhmos_data.head_low_level_start_time = sensor_event_time.Seconds; - APP_LOG(TS_OFF, VLEVEL_M, "\r\n Head Level Low -------- state =%d last =%d \r\n", sts_head_level_low, last_head_level_low_state); + // APP_LOG(TS_OFF, VLEVEL_M, "\r\n Head Level Low -------- state =%d last =%d \r\n", sts_head_level_low, last_head_level_low_state); sts_o7_sensorData.event_sensor3_fall_start_time = sensor_event_time.Seconds; @@ -2992,7 +2996,7 @@ void OnSensorL8AStateChanged(void) { fhmos_data.head_low_level_stop_time = sensor_event_time.Seconds; fhmos_data.state_fall = STS_FHMOS_FALL_STATE_NORMAL; - APP_LOG(TS_OFF, VLEVEL_M, "\r\n Head Level Rise up ++++++++++ \r\n"); +// APP_LOG(TS_OFF, VLEVEL_M, "\r\n Head Level Rise up ++++++++++ \r\n"); sts_fhmos_state_changed = 1; } } @@ -3005,7 +3009,7 @@ void OnSensorL8BStateChanged(void) { //sensor_event_time = SysTimeGetMcuTime(); APP_LOG(TS_OFF, VLEVEL_M, "\r\n L8B \r\n"); - printf("\r\n L8B \r\n"); +// printf("\r\n L8B \r\n"); } diff --git a/STS/TOF/App/app_tof.c b/STS/TOF/App/app_tof.c index b12fad3..eac7f78 100644 --- a/STS/TOF/App/app_tof.c +++ b/STS/TOF/App/app_tof.c @@ -197,7 +197,7 @@ void STS_LMZ_Ambient_Height_Scan_Process(void) STS_TOF_L8_Process(); - APP_LOG(TS_OFF, VLEVEL_M, "\r\n ----------------------" + APP_LOG(TS_OFF, VLEVEL_H, "\r\n ----------------------" "\r\n------BGHM in 2cm-----" "\r\n------Threshold %d cm--\r\n", fhmos_cfg.th_gesture_mask_off_height_cm); @@ -582,8 +582,8 @@ static void print_result(RANGING_SENSOR_Result_t *Result) } //int32_t roi_distance =(uint32_t)center_range_distance/4; - uint16_t factor1 = sts_sensor_install_height + 50; // 50mm min body height - uint16_t factor2 = (sts_sensor_install_height - 10*fhmos_cfg.th_head_level_height_cm); + uint16_t factor1_floor_level = sts_sensor_install_height - 50; // 50mm min body height + uint16_t factor2_head_level = (sts_sensor_install_height - 10*fhmos_cfg.th_head_level_height_cm); sts_head_level_low = 0; for (i=0; i<64; i++) @@ -595,13 +595,14 @@ static void print_result(RANGING_SENSOR_Result_t *Result) } } /* state tree */ +#if 0 printf("\r\n Factor1_install_height=%d mm, F2 th_high=%d, th_head=%d, Factor2 (gap)=%d \r\n", - factor1, (int)sts_high_threshold, (int)10*fhmos_cfg.th_head_level_height_cm, factor2); - - if ((head_distance <= factor1) && (head_distance >= factor2)) + factor1_floor_level, (int)sts_high_threshold, (int)10*fhmos_cfg.th_head_level_height_cm, factor2_head_level); +#endif + if ((head_distance <= factor1_floor_level) && (head_distance >= factor2_head_level)) { - printf("\r\n YELLOW OR RED Distance=%d \r\n", head_distance); + // printf("\r\n YELLOW OR RED Distance=%d \r\n", head_distance); sts_head_level_low = 1; #if 0 fhmos_data.state_fall = STS_FHMOS_FALL_STATE_POTENTIAL; @@ -611,7 +612,7 @@ static void print_result(RANGING_SENSOR_Result_t *Result) //sts_fhmos_state_changed |=1; - } else if ((head_distance < (factor2 - 150))) // TODO XXX 50mm gap to avoid flapping back and forth + } else if ((head_distance < (factor2_head_level - 150))) // TODO XXX 50mm gap to avoid flapping back and forth { sts_head_level_low = 0; fhmos_data.state_fall = STS_FHMOS_FALL_STATE_NORMAL;