minor improve for logic

This commit is contained in:
Yunhorn 2024-06-06 20:29:22 +08:00
parent 0b4c98ec16
commit c76171b461
3 changed files with 64 additions and 67 deletions

View File

@ -238,6 +238,7 @@ void STS_Combined_Status_Processing(void)
case STS_NETWORK_MODE: case STS_NETWORK_MODE:
sts_status_color = sts_cloud_netcolor; sts_status_color = sts_cloud_netcolor;
break; break;
case STS_WIRED_MODE: // NO LAMP BAR FOR THOSE WATER LEAKAGE SENSOR OR SOAP CAPACITY SENSORS case STS_WIRED_MODE: // NO LAMP BAR FOR THOSE WATER LEAKAGE SENSOR OR SOAP CAPACITY SENSORS
sts_status_color = STS_DARK; sts_status_color = STS_DARK;
#ifdef STS_M1 #ifdef STS_M1
@ -245,11 +246,13 @@ void STS_Combined_Status_Processing(void)
sts_water_leakage_changed_flag = 1; sts_water_leakage_changed_flag = 1;
#endif #endif
break; break;
case STS_REEDSWITCH_MODE: case STS_REEDSWITCH_MODE:
sts_status_color = (sts_reed_hall_result == STS_Status_Door_Open )? STS_GREEN: STS_RED; sts_status_color = (sts_reed_hall_result == STS_Status_Door_Open )? STS_GREEN: STS_RED;
break; break;
case STS_RSS_MODE: case STS_RSS_MODE:
if (sts_rss_result == STS_RESULT_NO_MOTION){ if (sts_rss_result == STS_RESULT_NO_MOTION){
sts_status_color = STS_GREEN; sts_status_color = STS_GREEN;
@ -258,14 +261,18 @@ void STS_Combined_Status_Processing(void)
sts_status_color = STS_RED; sts_status_color = STS_RED;
} }
break; break;
case STS_DUAL_MODE: // FOR STS_O6 case STS_DUAL_MODE: // FOR STS_O6
if ((sts_rss_result == STS_RESULT_NO_MOTION) && (sts_reed_hall_1_result == STS_Status_Door_Open )&& (sts_reed_hall_2_result == STS_Status_SOS_Release )) if ((sts_rss_result == STS_RESULT_NO_MOTION) && (sts_reed_hall_1_result == STS_Status_Door_Open )&& (sts_reed_hall_2_result == STS_Status_SOS_Release ))
{ {
sts_status_color = STS_GREEN; sts_status_color = STS_GREEN;
sts_lamp_bar_color = STS_GREEN;
} else if ((sts_rss_result == STS_RESULT_MOTION) || (sts_reed_hall_1_result == STS_Status_Door_Close )||(sts_reed_hall_2_result == STS_Status_SOS_Pushdown )) } else if ((sts_rss_result == STS_RESULT_MOTION) || (sts_reed_hall_1_result == STS_Status_Door_Close )||(sts_reed_hall_2_result == STS_Status_SOS_Pushdown ))
{ {
sts_status_color = STS_RED; sts_status_color = STS_RED;
sts_lamp_bar_color = STS_RED;
#if 0 // not for STS-O6 sensor
switch(sts_fall_rising_detected_result) { switch(sts_fall_rising_detected_result) {
case STS_PRESENCE_LAYDOWN: case STS_PRESENCE_LAYDOWN:
sts_lamp_bar_color = STS_YELLOW; sts_lamp_bar_color = STS_YELLOW;
@ -274,15 +281,17 @@ void STS_Combined_Status_Processing(void)
case STS_PRESENCE_FALL: //RED_BLUE FLASH case STS_PRESENCE_FALL: //RED_BLUE FLASH
sts_lamp_bar_color = STS_RED_BLUE; sts_lamp_bar_color = STS_RED_BLUE;
sts_status_color = STS_RED_BLUE; sts_status_color = STS_RED_BLUE;
break; break;
case STS_PRESENCE_RISING: //NORMAL OCCUPANCY STATUS case STS_PRESENCE_RISING: //NORMAL OCCUPANCY STATUS
sts_lamp_bar_color = STS_RED; sts_lamp_bar_color = STS_RED;
sts_status_color = STS_RED; sts_status_color = STS_RED;
break; break;
} }
#endif
if (sts_reed_hall_2_result == STS_Status_SOS_Pushdown ) if (sts_reed_hall_2_result == STS_Status_SOS_Pushdown )
{ {
sts_status_color = STS_RED_BLUE; sts_status_color = STS_RED_BLUE;
sts_lamp_bar_color = STS_RED_BLUE;
} }
} }
break; break;
@ -291,35 +300,55 @@ void STS_Combined_Status_Processing(void)
if ((sts_rss_result == STS_RESULT_NO_MOTION) && (sts_reed_hall_1_result == STS_Status_Door_Open )&& (sts_reed_hall_2_result == STS_Status_SOS_Release )) if ((sts_rss_result == STS_RESULT_NO_MOTION) && (sts_reed_hall_1_result == STS_Status_Door_Open )&& (sts_reed_hall_2_result == STS_Status_SOS_Release ))
{ {
sts_status_color = STS_GREEN; sts_status_color = STS_GREEN;
sts_lamp_bar_color = STS_GREEN;
} else if ((sts_rss_result == STS_RESULT_MOTION) || (sts_reed_hall_1_result == STS_Status_Door_Close )||(sts_reed_hall_2_result == STS_Status_SOS_Pushdown )) } else if ((sts_rss_result == STS_RESULT_MOTION) || (sts_reed_hall_1_result == STS_Status_Door_Close )||(sts_reed_hall_2_result == STS_Status_SOS_Pushdown ))
{ {
sts_status_color = STS_RED; sts_status_color = STS_RED;
sts_lamp_bar_color = STS_RED;
} }
switch(sts_fall_rising_detected_result) switch(sts_fall_rising_detected_result)
{ {
case STS_PRESENCE_LAYDOWN: case STS_PRESENCE_NONE:
sts_lamp_bar_color = STS_YELLOW; sts_lamp_bar_color = STS_GREEN;
sts_status_color = STS_YELLOW; sts_status_color = STS_GREEN;
break;
case STS_PRESENCE_FALL: //RED_BLUE FLASH
sts_lamp_bar_color = STS_RED_BLUE;
sts_status_color = STS_RED_BLUE;
break;
case STS_PRESENCE_RISING: //NORMAL OCCUPANCY STATUS
sts_lamp_bar_color = STS_RED;
sts_status_color = STS_RED;
break;
default:
sts_lamp_bar_color = STS_RED;
sts_status_color = STS_RED;
break; break;
case STS_PRESENCE_FALL: //RED_BLUE FLASH
sts_lamp_bar_color = STS_RED_BLUE;
sts_status_color = STS_RED_BLUE;
break;
case STS_PRESENCE_LAYDOWN:
sts_lamp_bar_color = STS_YELLOW;
sts_status_color = STS_YELLOW;
break;
case STS_PRESENCE_RISING: //NORMAL OCCUPANCY STATUS
sts_lamp_bar_color = STS_RED;
sts_status_color = STS_RED;
break;
case STS_PRESENCE_UNCONCIOUS:
sts_lamp_bar_color = STS_RED_BLUE;
sts_status_color = STS_RED_BLUE;
break;
case STS_PRESENCE_STAYSTILL:
sts_lamp_bar_color = STS_RED_BLUE;
sts_status_color = STS_RED_BLUE;
break;
default:
sts_lamp_bar_color = STS_GREEN;
sts_status_color = STS_GREEN;
break;
} }
if (sts_reed_hall_2_result == STS_Status_SOS_Pushdown ) if (sts_reed_hall_2_result == STS_Status_SOS_Pushdown )
{ {
sts_status_color = STS_RED_BLUE; sts_status_color = STS_RED_BLUE;
sts_lamp_bar_color = STS_RED_BLUE;
} }
break; break;
@ -381,17 +410,6 @@ void STS_Combined_Status_Processing(void)
break; 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)) if ((sts_work_mode == STS_WIRED_MODE) || (sts_service_mask > STS_SERVICE_MASK_L0))
{ {
sts_status_color = STS_DARK; sts_status_color = STS_DARK;
@ -399,39 +417,11 @@ void STS_Combined_Status_Processing(void)
last_lamp_bar_color = STS_DARK; last_lamp_bar_color = STS_DARK;
STS_Lamp_Bar_Set_Dark(); STS_Lamp_Bar_Set_Dark();
} }
else
{
//if ((last_lamp_bar_color != sts_status_color)) // sensor_data_ready = 1;
{
sts_lamp_bar_color = ((sts_service_mask == STS_SERVICE_MASK_L0)? sts_status_color:STS_DARK);
STS_Lamp_Bar_Set_STS_RGB_Color(sts_lamp_bar_color, luminance_level);
if ((sts_service_mask == STS_SERVICE_MASK_L0) || (sts_lamp_bar_color == STS_DARK))
{
// STS_WS2812B_Refresh();
}
last_lamp_bar_color = sts_lamp_bar_color;
}
}
//STS_Lamp_Bar_Refresh();
#if 1
//if ((sts_rss_result_changed_flag)|| (sts_reed_hall_changed_flag) || (sts_tof_result_changed_flag) || (sts_water_leakage_changed_flag))
{
//sts_rss_result_changed_flag =0;
sts_reed_hall_changed_flag =0;
sts_tof_result_changed_flag =0;
#ifdef STS_M1
sts_water_leakage_changed_flag=0;
#endif
sensor_data_ready = 1;
//STS_PRESENCE_SENSOR_Prepare_Send_Data();
}
#endif
} }
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)

View File

@ -38,7 +38,7 @@
/* USER CODE BEGIN Includes */ /* USER CODE BEGIN Includes */
extern volatile sts_cfg_nvm_t sts_cfg_nvm; extern volatile sts_cfg_nvm_t sts_cfg_nvm;
extern volatile uint8_t sts_ac_code[20]; extern volatile uint8_t sts_ac_code[20];
volatile uint8_t sts_service_mask; volatile uint8_t sts_service_mask=0;
volatile uint32_t rfac_timer; volatile uint32_t rfac_timer;
volatile uint8_t sensor_data_ready=0; volatile uint8_t sensor_data_ready=0;

View File

@ -649,7 +649,7 @@ void LoRaWAN_Init(void)
UTIL_TIMER_Create(&YunhornSTSRSSWakeUpTimer, UTIL_TIMER_Create(&YunhornSTSRSSWakeUpTimer,
YUNHORN_STS_RSS_WAKEUP_CHECK_TIME, YUNHORN_STS_RSS_WAKEUP_CHECK_TIME,
UTIL_TIMER_PERIODIC, OnYunhornSTSOORSSWakeUpTimerEvent, NULL); UTIL_TIMER_PERIODIC, OnYunhornSTSOORSSWakeUpTimerEvent, NULL);
UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer); //UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer);
UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer, UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer,
YUNHORN_STS_HEART_BEAT_CHECK_TIME, YUNHORN_STS_HEART_BEAT_CHECK_TIME,
@ -676,7 +676,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
case HALL1_Pin: case HALL1_Pin:
if (sts_reed_hall_1_changed) if (sts_reed_hall_1_changed)
{ {
HAL_Delay(250); //de-bouncing HAL_Delay(450); //de-bouncing
sts_hall1_read = HALL1_STATE; sts_hall1_read = HALL1_STATE;
APP_LOG(TS_OFF, VLEVEL_M, "\n\n Door Contact Read = %02x --%20s\r\n", HALL1_STATE, (HALL1_STATE==STS_Status_Door_Close)?"Door Closed":"Door Opened"); APP_LOG(TS_OFF, VLEVEL_M, "\n\n Door Contact Read = %02x --%20s\r\n", HALL1_STATE, (HALL1_STATE==STS_Status_Door_Close)?"Door Closed":"Door Opened");
OnSensor1StateChanged(); OnSensor1StateChanged();
@ -684,22 +684,24 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
// if (EventType == TX_ON_EVENT) // if (EventType == TX_ON_EVENT)
{ {
//sensor_data_ready =1; //sensor_data_ready =1;
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), CFG_SEQ_Prio_0); //UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), CFG_SEQ_Prio_0);
STS_YunhornSTSEventP1_Process();
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
} }
//sts_reed_hall_1_changed =0; sts_reed_hall_1_changed =0;
} }
break; break;
case HALL2_Pin: case HALL2_Pin:
if (sts_reed_hall_2_changed) if (sts_reed_hall_2_changed)
{ {
HAL_Delay(250); //de-bouncing HAL_Delay(450); //de-bouncing
sts_hall2_read = HALL2_STATE; sts_hall2_read = HALL2_STATE;
APP_LOG(TS_OFF, VLEVEL_M, "\n\n SOS Button Read = %02x --%20s\r\n", HALL2_STATE, (HALL2_STATE==STS_Status_SOS_Pushdown)?"SOS Pushdown":"SOS Released"); APP_LOG(TS_OFF, VLEVEL_M, "\n\n SOS Button Read = %02x --%20s\r\n", HALL2_STATE, (HALL2_STATE==STS_Status_SOS_Pushdown)?"SOS Pushdown":"SOS Released");
OnSensor2StateChanged(); OnSensor2StateChanged();
//sensor_data_ready =1; //sensor_data_ready =1;
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), CFG_SEQ_Prio_0); //UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), CFG_SEQ_Prio_0);
STS_YunhornSTSEventP1_Process();
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
//sts_reed_hall_2_changed =0; //sts_reed_hall_2_changed =0;
} }
@ -1206,10 +1208,13 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams)
APP_LOG(TS_OFF, VLEVEL_H, "###### U/L FRAME:JOIN | DR:%d | PWR:%d\r\n", joinParams->Datarate, joinParams->TxPower); APP_LOG(TS_OFF, VLEVEL_H, "###### U/L FRAME:JOIN | DR:%d | PWR:%d\r\n", joinParams->Datarate, joinParams->TxPower);
} }
heart_beat_timer = 1;
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
UTIL_TIMER_Start(&STSLampBarColorTimer); UTIL_TIMER_Start(&STSLampBarColorTimer);
HAL_Delay(2000);
heart_beat_timer = 1;
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
HAL_Delay(2000);
UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer);
/* USER CODE END OnJoinRequest_1 */ /* USER CODE END OnJoinRequest_1 */
} }
@ -1465,7 +1470,9 @@ static void OnYunhornSTSOORSSWakeUpTimerEvent(void *context)
{ {
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP2), CFG_SEQ_Prio_0); UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP2), CFG_SEQ_Prio_0);
if ((STS_LoRa_WAN_Joined != 0)&&(sts_rss_result_changed_flag==1)) APP_LOG(TS_OFF, VLEVEL_M, "\r\n ******** MOTION CHANGED FLAG= %d \r\n", sts_rss_result_changed_flag);
if ((STS_LoRa_WAN_Joined != 0)&&(sts_rss_result_changed_flag ==1))
{ {
sts_rss_result_changed_flag = 0; sts_rss_result_changed_flag = 0;
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);