wip, good human movement, occupancy, sos button
This commit is contained in:
parent
969a892d33
commit
3884a7a8e8
|
@ -713,6 +713,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
|||
HAL_Delay(50);
|
||||
}
|
||||
takelowTime=true;
|
||||
|
||||
}
|
||||
else if (!sts_pir_state)
|
||||
{
|
||||
|
@ -733,6 +734,8 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
OnSensorPIR1StateChanged();
|
||||
#endif
|
||||
//OnSensor3StateChanged();
|
||||
//OnSensorPIR1StateChanged();
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -2198,6 +2198,7 @@ void YunhornSTSDurationCheckTimer(void)
|
|||
//if (sts_o7_sensorData.event_sensor1_duration > (sts_occupancy_overtime_threshold_in_10min*60)) //for debug
|
||||
if (sts_o7_sensorData.event_sensor1_duration > fhmos_cfg.th_occupancy_overstay_15sec*15)
|
||||
{
|
||||
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;
|
||||
over_threshold = TRUE;
|
||||
|
@ -2217,6 +2218,7 @@ void YunhornSTSDurationCheckTimer(void)
|
|||
sts_o7_sensorData.event_sensor1_duration =0;
|
||||
|
||||
sts_o7_sensorData.over_stay_state = 0;
|
||||
fhmos_data.state_occupancy = STS_FHMOS_OCCUPANCY_NO_OCCUPY;
|
||||
}
|
||||
|
||||
// to be defined later for SOS threshold TODO XXXX
|
||||
|
@ -2227,6 +2229,7 @@ void YunhornSTSDurationCheckTimer(void)
|
|||
if (sts_o7_sensorData.event_sensor2_duration > fhmos_cfg.th_occupancy_overstay_15sec*15)
|
||||
{
|
||||
sts_o7_sensorData.over_stay_state = 1;
|
||||
fhmos_data.state_sos_alarm = STS_FHMOS_SOS_ALARM_BUTTON_PUSHED;
|
||||
// 2024-07-15 update, no overwrite sensor1 duration value
|
||||
//sts_o7_sensorData.over_stay_duration = sts_o7_sensorData.event_sensor2_duration;
|
||||
//
|
||||
|
@ -2236,10 +2239,11 @@ void YunhornSTSDurationCheckTimer(void)
|
|||
|
||||
} else {
|
||||
sts_o7_sensorData.event_sensor2_duration =0;
|
||||
fhmos_data.state_sos_alarm = STS_FHMOS_SOS_ALARM_BUTTON_RESET; // OR NORMAL TODO XXX
|
||||
//sts_o7_sensorData.over_stay_state = 0;
|
||||
|
||||
}
|
||||
|
||||
#ifdef RSS_MOTION
|
||||
if (sts_rss_result==STS_RESULT_MOTION)
|
||||
{
|
||||
sts_o7_sensorData.event_sensor3_motion_duration = current_time.Seconds - sts_o7_sensorData.event_sensor3_motion_start_time;
|
||||
|
@ -2254,7 +2258,7 @@ void YunhornSTSDurationCheckTimer(void)
|
|||
sts_o7_sensorData.event_sensor3_motion_duration =0;
|
||||
//sts_o7_sensorData.occupancy_over_stay_state = 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
/*
|
||||
STS_PRESENCE_NONE=0,
|
||||
STS_PRESENCE_FALL,
|
||||
|
@ -2335,7 +2339,7 @@ void YunhornSTSDurationCheckTimer(void)
|
|||
sts_lamp_bar_color = STS_RED_DARK; //sts_lamp_bar_flashing_color;
|
||||
}
|
||||
|
||||
fhmos_data.state_occupancy = 2;
|
||||
fhmos_data.state_occupancy = STS_FHMOS_OCCUPANCY_OVERSTAY;
|
||||
|
||||
sensor_data_ready = 1;
|
||||
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
|
||||
|
@ -2370,12 +2374,19 @@ void OnSensor1StateChanged(void)
|
|||
sts_o7_sensorData.event_sensor1_start_time = sensor_event_time.Seconds;
|
||||
sts_o7_sensorData.event_sensor1_duration = 0;
|
||||
//APP_LOG(TS_OFF, VLEVEL_M, "Door Closed ---Timer start: %u\r\n",sts_o7_sensorData.event_sensor1_start_time );
|
||||
fhmos_data.state_occupancy = STS_FHMOS_OCCUPANCY_NORMAL;
|
||||
fhmos_data.state_fall = STS_FHMOS_FALL_STATE_NORMAL;
|
||||
fhmos_data.state_human_movement = STS_FHMOS_HUMAN_MOVEMENT_NORMAL;
|
||||
} else if (sts_hall1_read==STS_Status_Door_Open)
|
||||
{
|
||||
sts_o7_sensorData.event_sensor1_start_time = 0;
|
||||
sts_o7_sensorData.event_sensor1_stop_time = sensor_event_time.Seconds;
|
||||
//sts_o7_sensorData.event_sensor1_duration = 0;
|
||||
sts_o7_sensorData.over_stay_state = 0;
|
||||
fhmos_data.state_occupancy = STS_FHMOS_OCCUPANCY_NO_OCCUPY;
|
||||
fhmos_data.state_fall = STS_FHMOS_FALL_STATE_NO_OCCUPY;
|
||||
fhmos_data.state_human_movement = STS_FHMOS_HUMAN_MOVEMENT_NO_OCCUPY;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2393,6 +2404,9 @@ void OnSensor2StateChanged(void)
|
|||
sts_o7_sensorData.event_sensor2_stop_time = 0;
|
||||
sts_o7_sensorData.event_sensor2_duration = 0;
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "SOS PushDown ---Timer start: %u\r\n",sts_o7_sensorData.event_sensor2_start_time );
|
||||
|
||||
fhmos_data.state_sos_alarm = STS_FHMOS_SOS_ALARM_BUTTON_PUSHED;
|
||||
|
||||
}else if (sts_hall2_read==STS_Status_SOS_Release)
|
||||
{
|
||||
sts_o7_sensorData.event_sensor2_start_time = 0;
|
||||
|
@ -2401,6 +2415,7 @@ void OnSensor2StateChanged(void)
|
|||
sts_o7_sensorData.event_sensor2_stop_timestamp = time_stamp;
|
||||
//sts_o7_sensorData.over_stay_state = 0;
|
||||
//sts_o7_sensorData.event_sensor2_duration = 0;
|
||||
fhmos_data.state_sos_alarm = STS_FHMOS_SOS_ALARM_BUTTON_NORMAL;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2541,20 +2556,31 @@ void OnSensorRSS3CStateChanged(void)
|
|||
void OnSensorPIR1StateChanged(void)
|
||||
{
|
||||
SysTime_t sensor_event_time = SysTimeGetMcuTime();
|
||||
|
||||
#if 0
|
||||
if ((sensor_event_time.Seconds - last_sts_rss_time_stamp) < 3 ) //less than 3 seconds ... return for flipping filter
|
||||
static uint32_t motionless_tick = sensor_event_time.Seconds - last_sts_pir_time_stamp;
|
||||
if ((motionless_tick) < 3 )
|
||||
{
|
||||
return ;
|
||||
}
|
||||
else if((motionless_tick >= short_duration) && (motionless_tick < long_duration))
|
||||
{
|
||||
|
||||
} else if ((motionless_tick >= long_duration))
|
||||
{
|
||||
|
||||
}
|
||||
#endif
|
||||
if (sts_pir_result == STS_RESULT_MOTION)
|
||||
{
|
||||
sts_o7_sensorData.event_sensor3_motion_start_time = sensor_event_time.Seconds;
|
||||
sts_o7_sensorData.event_sensor3_motion_duration = 0;
|
||||
fhmos_data.state_PIR = STS_FHMOS_HUMAN_MOVEMENT_NORMAL;
|
||||
} else if (sts_pir_result == STS_RESULT_NO_MOTION)
|
||||
{
|
||||
sts_o7_sensorData.event_sensor3_motion_stop_time = sensor_event_time.Seconds;
|
||||
//sts_o7_sensorData.event_sensor3_motion_duration = 0;
|
||||
fhmos_data.state_PIR = STS_FHMOS_HUMAN_MOVEMENT_MOTIONLESS_SHORT;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue