P11LOV, P11SL2/L3 for lamp bar color

This commit is contained in:
Yunhorn 2025-06-27 17:38:29 +08:00
parent 75f39aa138
commit 3f25825460
6 changed files with 27 additions and 19 deletions

View File

@ -90,22 +90,22 @@ enum sts_lamp_color {
#define STS_FALL_NORMAL_COLOR STS_GREEN
//#define STS_FALL_SUSPICIOUS_COLOR STS_YELLOW
//#define STS_FALL_CONFIRMED_COLOR STS_RED
#define STS_FALL_SUSPICIOUS_COLOR (sts_color_severity_l2_l3<<4)
#define STS_FALL_SUSPICIOUS_COLOR (sts_color_severity_l2_l3>>4)
#define STS_FALL_CONFIRMED_COLOR (sts_color_severity_l2_l3&0x0F)
#define STS_HUMAN_MOVEMENT_MOTIONLESS_NORMAL STS_GREEN
//#define STS_HUMAN_MOVEMENT_MOTIONLESS_SHORT_COLOR STS_YELLOW
//#define STS_HUMAN_MOVEMENT_MOTIONLESS_LONG_COLOR STS_RED
#define STS_HUMAN_MOVEMENT_MOTIONLESS_SHORT_COLOR (sts_color_severity_l2_l3<<4)
#define STS_HUMAN_MOVEMENT_MOTIONLESS_SHORT_COLOR (sts_color_severity_l2_l3>>4)
#define STS_HUMAN_MOVEMENT_MOTIONLESS_LONG_COLOR (sts_color_severity_l2_l3&0x0F)
#define STS_OCCUPANCY_NORMAL_COLOR STS_GREEN
//#define STS_OCCUPANCY_STAYLONGER_COLOR STS_YELLOW //NOT REALLY USED, JUST TO ALIGN FOR COLORS PATTERN
//#define STS_OCCUPANCY_OVERSTAY_COLOR STS_BLUE
#define STS_OCCUPANCY_STAYLONGER_COLOR (sts_color_severity_l2_l3<<4)
#define STS_OCCUPANCY_STAYLONGER_COLOR (sts_color_severity_l2_l3>>4)
#define STS_OCCUPANCY_OVERSTAY_COLOR (sts_color_severity_l2_l3&0x0F)
#define STS_COLOR_SEVERITY_L2 (sts_color_severity_l2_l3<<4)
#define STS_COLOR_SEVERITY_L2 (sts_color_severity_l2_l3>>4)
#define STS_COLOR_SEVERITY_L3 (sts_color_severity_l2_l3&0x0F)
#endif

View File

@ -705,7 +705,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
// APP_LOG(TS_OFF, VLEVEL_M,"\r\n EXTI_CALLBACK, Door Open: sts status color =%d, lampbar_color=%d \r\n", sts_status_color, sts_lamp_bar_color);
}
//if (sts_hall1_read == prev_sts_hall1_read) return;
if (sts_hall1_read == prev_sts_hall1_read) return;
prev_sts_hall1_read = sts_hall1_read;
//if (last_sts_hall1_read != sts_hall1_read) // to eliminate power drop issue of PCB with long REEDSWITCH CABLES
@ -739,7 +739,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
#ifndef STS_R4
#if 1
case BUT2_Pin:
case BUT2_Pin: // SOS BUTTON
HAL_Delay(100);
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
sts_hall2_read = HALL2_STATE;
@ -786,8 +786,9 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
#endif
#if 1
case PIR_Pin:
HAL_Delay(100);
sts_pir_read = PIR_STATE;
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
//__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
if (sts_pir_read == 1)
{
if (lockLow)

View File

@ -856,12 +856,13 @@ void USER_APP_Parse_CMD_P(uint8_t *parse_buffer, uint8_t parse_buffer_size)
sts_cfg_nvm.fhmos_cfg_8 = fhmos_cfg.th_fall_body_min_height_cm; // default:19 -- 25 cm
OnStoreSTSCFGContextRequest();
/*
// 2024-11-18
UTIL_MEM_set_8((void*)outbuf, 0x0, sizeof(outbuf));
UTIL_MEM_cpy_8((void*)outbuf,(void*)parse_buffer,parse_buffer_size);
i = parse_buffer_size;
STS_SENSOR_Upload_Message(YUNHORN_STS_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf);
*/
}
}
break;
@ -872,7 +873,11 @@ void USER_APP_Parse_CMD_P(uint8_t *parse_buffer, uint8_t parse_buffer_size)
break;
}
// 2024-11-18
UTIL_MEM_set_8((void*)outbuf, 0x0, sizeof(outbuf));
UTIL_MEM_cpy_8((void*)outbuf,(void*)parse_buffer,parse_buffer_size);
i = parse_buffer_size;
STS_SENSOR_Upload_Message(YUNHORN_STS_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf);
}
// following to be fill up
#if 0
@ -3071,7 +3076,7 @@ void OnSensorPIR1StateChanged(void)
#endif
if (sts_pir_read == STS_RESULT_MOTION)
{
APP_LOG(TS_OFF, VLEVEL_M, "\r\n Motion Human Movement Detected\r\n");
APP_LOG(TS_OFF, VLEVEL_H, "\r\n Motion Human Movement Detected\r\n");
sts_o7_sensorData.event_sensor3_motion_start_time = sensor_event_time.Seconds;
sts_o7_sensorData.event_sensor3_no_movement_start_time = 0;
sts_o7_sensorData.event_sensor3_motion_duration = 0;
@ -3080,7 +3085,7 @@ void OnSensorPIR1StateChanged(void)
} else if (sts_pir_read == STS_RESULT_NO_MOTION)
{
APP_LOG(TS_OFF, VLEVEL_M, "\r\n Motionless, Human Movement Ended\r\n");
APP_LOG(TS_OFF, VLEVEL_H, "\r\n Motionless, Human Movement Ended\r\n");
sts_o7_sensorData.event_sensor3_motion_stop_time = sensor_event_time.Seconds;
sts_o7_sensorData.event_sensor3_no_movement_start_time = sensor_event_time.Seconds;
fhmos_data.state_PIR = 0;
@ -3355,6 +3360,7 @@ void STS_Combined_Status_Processing(void)
if (fhmos_data.state_occupancy == STS_FHMOS_OCCUPANCY_OVERSTAY)
{
sts_status_color = STS_OCCUPANCY_OVERSTAY_COLOR;
APP_LOG(TS_OFF, VLEVEL_M, "\r\n FHMOS_OCCUPY_OVERSTAY Color set to 0x%02x \r\n", sts_status_color);
}
#if 0
if (fhmos_data.color_fall > STS_OCCUPY_COLOR)

View File

@ -819,8 +819,8 @@ static void print_result(RANGING_SENSOR_Result_t *Result)
head_height_level_from_floor_mm = MIN(1400, abs(sts_sensor_install_height - head_distance_from_ceiling_mm));
APP_LOG(TS_OFF, VLEVEL_M, "\r\n Updown distance=%d cm, Floor Up head =%d cm\r\n", head_distance_from_ceiling_mm/10, head_height_level_from_floor_mm/10);
//APP_LOG(TS_OFF, VLEVEL_M, "\r\n Updown distance=%d cm, Floor Up head =%d cm\r\n", head_distance_from_ceiling_mm/10, head_height_level_from_floor_mm/10);
APP_LOG(TS_OFF, VLEVEL_M, "\r\n ## head level = %d cm ##\r\n", head_height_level_from_floor_mm/10);
/* state tree */
if ((head_distance_from_ceiling_mm <= factor1_floor_level_from_ceiling_mm)
@ -838,12 +838,12 @@ static void print_result(RANGING_SENSOR_Result_t *Result)
}
} else if ((head_distance_from_ceiling_mm < (factor2_head_level_from_floor_mm - 150))) // TODO XXX 50mm gap to avoid flapping back and forth
} else // update 2025-06 27 if ((head_distance_from_ceiling_mm < (factor2_head_level_from_floor_mm - 150))) // TODO XXX 50mm gap to avoid flapping back and forth
{
if (no_count < TIME_C)
if (no_count < TIME_C-2)
{
no_count ++;
APP_LOG(TS_OFF, VLEVEL_M, "\r\n NO++ %d\r\n", no_count);
//APP_LOG(TS_OFF, VLEVEL_M, "\r\n NO++ %d\r\n", no_count);
} else {
yes_count =0;
@ -854,17 +854,18 @@ static void print_result(RANGING_SENSOR_Result_t *Result)
{
sts_head_level_low = 1;
APP_LOG(TS_OFF, VLEVEL_M, "\r\n lead low = 1\r\n");
//APP_LOG(TS_OFF, VLEVEL_M, "\r\n head low = 1\r\n");
} else if (no_count > (TIME_C -1))
} else if (no_count > (TIME_C -2))
{
sts_head_level_low = 0;
APP_LOG(TS_OFF, VLEVEL_M, "\r\n lead low = 0\r\n");
//APP_LOG(TS_OFF, VLEVEL_M, "\r\n head low = 0\r\n");
sts_fhmos_bitmap_pending = FHMOS_BITMAP_BLANK;
APP_LOG(TS_OFF, VLEVEL_M, "\r\n return zero statues, bitmap status=%d \r\n", sts_fhmos_bitmap_pending);
}
APP_LOG(TS_OFF, VLEVEL_M, "\r\n Yes =%d No =%d head low =%d \r\n", yes_count, no_count, sts_head_level_low);
//OnSensorL8AStateChanged();
}