--- restructure combined process ----
This commit is contained in:
parent
fa2dd4a0b9
commit
03f5e2e12e
|
@ -130,7 +130,7 @@ void Error_Handler(void);
|
|||
*/
|
||||
#define STS_LAMP_BAR_PWM_TIM_PERIOD (60 - 1)
|
||||
#define STS_LAMP_BAR_HTIM htim1
|
||||
#define STS_LAMP_BAR_LED_NUM (7) //50
|
||||
#define STS_LAMP_BAR_LED_NUM (30) //50
|
||||
|
||||
#define WSDATA_PORT_PIN_PA8
|
||||
//#define WSDATA_PORT_PIN_PA9
|
||||
|
|
|
@ -32,14 +32,13 @@
|
|||
#define ZERO_PULSE (20)
|
||||
|
||||
#define LED_DATA_LEN 24
|
||||
#define WS2812B_DATA_LEN (LED_DATA_LEN * (STS_LAMP_BAR_LED_NUM+4))
|
||||
//#define DEFAULT_LUMINANCE_LEVEL (30)
|
||||
#define RESET_PULSE (10) //(80) TO FIX DARK_COLOR AND SM2
|
||||
#define WS2812B_DATA_LEN (24 * STS_LAMP_BAR_LED_NUM+1)
|
||||
#define RESET_PULSE (24) //(80) TO FIX DARK_COLOR AND SM2
|
||||
|
||||
|
||||
typedef struct ws2812b_e {
|
||||
uint16_t head[3];
|
||||
uint16_t GRB[24*STS_LAMP_BAR_LED_NUM];
|
||||
uint16_t GRB[WS2812B_DATA_LEN];
|
||||
uint16_t tail;
|
||||
} WS2812B_FrameTypeDef;
|
||||
|
||||
|
@ -95,15 +94,17 @@ void STS_Lamp_Bar_Set_Dark(void)
|
|||
for (uint8_t i=0; i< STS_LAMP_BAR_LED_NUM; i++)
|
||||
{
|
||||
STS_WS2812B_Set_RGB(0x00,0x00,0x00,i);
|
||||
|
||||
}
|
||||
STS_WS2812B_Refresh();
|
||||
}
|
||||
|
||||
void STS_WS2812B_Refresh(void)
|
||||
{
|
||||
HAL_TIM_PWM_Start_DMA(&STS_LAMP_BAR_HTIM, STS_LAMP_BAR_TIM_CHANNEL, (uint32_t *)&rgb_buf, (uint16_t)(RESET_PULSE+WS2812B_DATA_LEN+1));
|
||||
|
||||
HAL_TIM_PWM_Start_IT(&STS_LAMP_BAR_HTIM, STS_LAMP_BAR_TIM_CHANNEL);
|
||||
__disable_irq();
|
||||
HAL_TIM_PWM_Start_DMA(&STS_LAMP_BAR_HTIM, STS_LAMP_BAR_TIM_CHANNEL, (uint32_t *)&rgb_buf, (uint16_t)(sizeof(rgb_buf)));
|
||||
__enable_irq();
|
||||
//HAL_TIM_PWM_Start_IT(&STS_LAMP_BAR_HTIM, STS_LAMP_BAR_TIM_CHANNEL);
|
||||
}
|
||||
|
||||
void STS_Lamp_Bar_Init(void)
|
||||
|
@ -111,13 +112,13 @@ void STS_Lamp_Bar_Init(void)
|
|||
if (sts_service_mask == STS_SERVICE_MASK_L0)
|
||||
{
|
||||
STS_Lamp_Bar_Set_STS_RGB_Color(STS_GREEN, luminance_level);
|
||||
//STS_WS2812B_Refresh();
|
||||
|
||||
HAL_Delay(200);
|
||||
STS_Lamp_Bar_Set_STS_RGB_Color(STS_RED, luminance_level);
|
||||
//STS_WS2812B_Refresh();
|
||||
|
||||
HAL_Delay(200);
|
||||
STS_Lamp_Bar_Set_STS_RGB_Color(STS_BLUE, luminance_level);
|
||||
//STS_WS2812B_Refresh();
|
||||
|
||||
HAL_Delay(200);
|
||||
}
|
||||
}
|
||||
|
@ -129,18 +130,13 @@ void STS_Lamp_Bar_Scoller(uint8_t color, uint8_t lum_level)
|
|||
|
||||
for(uint8_t i = 0; i<STS_LAMP_BAR_LED_NUM; i++)
|
||||
{
|
||||
//if (sts_service_mask < STS_SERVICE_MASK_L1)
|
||||
// STS_WS2812B_Refresh();
|
||||
HAL_Delay(20); //MAKE THIS LESS THAN 10 NOT TO BLOCK JOIN THE LORAWAN
|
||||
//if (i < STS_LAMP_BAR_LED_NUM) {
|
||||
|
||||
STS_WS2812B_Set_RGB(color_rgb[color][0]*lum_level,color_rgb[color][1]*lum_level, color_rgb[color][2]*lum_level, i);
|
||||
//}
|
||||
|
||||
STS_WS2812B_Refresh();
|
||||
}
|
||||
HAL_Delay(10);
|
||||
//STS_Lamp_Bar_Init();
|
||||
//if (sts_service_mask == STS_SERVICE_MASK_L0) {
|
||||
//STS_WS2812B_Refresh();
|
||||
//}
|
||||
|
||||
}
|
||||
|
||||
|
@ -151,46 +147,41 @@ void STS_WS2812B_Set_RGB(uint8_t R, uint8_t G, uint8_t B, uint8_t idx)
|
|||
{
|
||||
for (uint8_t j = 0; j < 8; j ++)
|
||||
{
|
||||
rgb_buf.GRB[idx*24+j] = (uint16_t)((G&(0X80)>>j)? ONE_PULSE : ZERO_PULSE);
|
||||
rgb_buf.GRB[idx*24+8+j] = (uint16_t)((R&(0X80)>>j)? ONE_PULSE : ZERO_PULSE);
|
||||
rgb_buf.GRB[idx*24+16+j] = (uint16_t)((B&(0X80)>>j)? ONE_PULSE : ZERO_PULSE);
|
||||
rgb_buf.GRB[idx*24+j] = (uint16_t)(((G<<j)&0x80)? ONE_PULSE : ZERO_PULSE);
|
||||
rgb_buf.GRB[idx*24+8+j] = (uint16_t)(((R<<j)&0x80)? ONE_PULSE : ZERO_PULSE);
|
||||
rgb_buf.GRB[idx*24+16+j] = (uint16_t)(((B<<j)&0x80)? ONE_PULSE : ZERO_PULSE);
|
||||
}
|
||||
}
|
||||
// CHANGED AT 2023-05-10
|
||||
if (sts_service_mask == STS_SERVICE_MASK_L0) {
|
||||
STS_WS2812B_Refresh();
|
||||
}
|
||||
}
|
||||
|
||||
void STS_Lamp_Bar_Set_RGB_Color(uint8_t red, uint8_t green, uint8_t blue )
|
||||
{
|
||||
uint8_t i =0;
|
||||
HAL_Delay(1);
|
||||
UTIL_MEM_set_8((void*)rgb_buf.GRB,0x0,(2*24*STS_LAMP_BAR_LED_NUM));
|
||||
|
||||
for(uint8_t i = 0; i < STS_LAMP_BAR_LED_NUM; i++)
|
||||
__disable_irq();
|
||||
UTIL_MEM_set_8((void*)rgb_buf.GRB,0x0,(WS2812B_DATA_LEN));
|
||||
__enable_irq();
|
||||
|
||||
for(i = 0; i < STS_LAMP_BAR_LED_NUM; i++)
|
||||
{
|
||||
for (uint8_t j = 0; j < 8; j ++)
|
||||
{
|
||||
rgb_buf.GRB[i*24+j] = (green&(0x80)>>j)? ONE_PULSE : ZERO_PULSE;
|
||||
rgb_buf.GRB[i*24+8+j] = (red&(0x80)>>j)? ONE_PULSE : ZERO_PULSE;
|
||||
rgb_buf.GRB[i*24+16+j] = (blue&(0x80)>>j)? ONE_PULSE : ZERO_PULSE;
|
||||
}
|
||||
STS_WS2812B_Set_RGB(red, green, blue, i);
|
||||
}
|
||||
STS_WS2812B_Set_RGB(0,0,0, i);
|
||||
|
||||
if (sts_service_mask == STS_SERVICE_MASK_L0) {
|
||||
STS_WS2812B_Refresh();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
void STS_Lamp_Bar_Refresh(void)
|
||||
{
|
||||
STS_Lamp_Bar_Set_STS_RGB_Color(sts_lamp_bar_color, luminance_level);
|
||||
}
|
||||
|
||||
void STS_Lamp_Bar_Set_STS_RGB_Color(uint8_t sts_lamp_color, uint8_t lum)
|
||||
{
|
||||
//static bool r_b = false;
|
||||
//STS_Lamp_Bar_Set_RGB_Color(0x0, 0x0, 0x0);
|
||||
switch (sts_lamp_color&0x0f)
|
||||
{
|
||||
case STS_DARK:
|
||||
|
@ -217,13 +208,6 @@ void STS_Lamp_Bar_Set_STS_RGB_Color(uint8_t sts_lamp_color, uint8_t lum)
|
|||
case STS_WHITE:
|
||||
STS_Lamp_Bar_Set_RGB_Color(lum, lum, lum);
|
||||
break;
|
||||
//case STS_RED_BLUE:
|
||||
// if (r_b)
|
||||
// STS_Lamp_Bar_Set_RGB_Color(lum, 0x0, 0x0);
|
||||
// else
|
||||
// STS_Lamp_Bar_Set_RGB_Color(0x0, 0x0, lum);
|
||||
// r_b = !r_b;
|
||||
//break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -231,191 +215,7 @@ void STS_Reed_Hall_Working(void)
|
|||
{
|
||||
|
||||
}
|
||||
void STS_Combined_Status_Processing(void)
|
||||
{
|
||||
switch (sts_work_mode)
|
||||
{
|
||||
case STS_NETWORK_MODE:
|
||||
sts_status_color = sts_cloud_netcolor;
|
||||
break;
|
||||
case STS_WIRED_MODE: // NO LAMP BAR FOR THOSE WATER LEAKAGE SENSOR OR SOAP CAPACITY SENSORS
|
||||
sts_status_color = STS_DARK;
|
||||
#ifdef STS_M1
|
||||
sts_water_leakage_result = (sts_reed_hall_result == STS_Status_Door_Open )?STS_RESULT_WATER_LEAKAGE_YES:STS_RESULT_WATER_LEAKAGE_NO;
|
||||
sts_water_leakage_changed_flag = 1;
|
||||
#endif
|
||||
break;
|
||||
case STS_REEDSWITCH_MODE:
|
||||
|
||||
sts_status_color = (sts_reed_hall_result == STS_Status_Door_Open )? STS_GREEN: STS_RED;
|
||||
|
||||
break;
|
||||
case STS_RSS_MODE:
|
||||
if (sts_rss_result == STS_RESULT_NO_MOTION){
|
||||
sts_status_color = STS_GREEN;
|
||||
} else if ((sts_rss_result == STS_RESULT_MOTION))
|
||||
{
|
||||
sts_status_color = STS_RED;
|
||||
}
|
||||
break;
|
||||
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 ))
|
||||
{
|
||||
sts_status_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 ))
|
||||
{
|
||||
sts_status_color = STS_RED;
|
||||
|
||||
if (sts_reed_hall_2_result == STS_Status_SOS_Pushdown )
|
||||
{
|
||||
sts_status_color = STS_RED_BLUE;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case STS_UNI_MODE: //FOR STS-O7
|
||||
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;
|
||||
|
||||
} 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;
|
||||
|
||||
if (sts_reed_hall_2_result == STS_Status_SOS_Pushdown )
|
||||
{
|
||||
sts_status_color = STS_RED_BLUE;
|
||||
}
|
||||
}
|
||||
|
||||
switch(sts_fall_rising_detected_result)
|
||||
{
|
||||
case STS_PRESENCE_NORMAL:
|
||||
//do nothing
|
||||
break;
|
||||
|
||||
case STS_PRESENCE_LAYDOWN:
|
||||
sts_lamp_bar_color = STS_YELLOW;
|
||||
sts_status_color = STS_YELLOW;
|
||||
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_REMOTE_REED_RSS_MODE:
|
||||
if ((sts_rss_result == STS_RESULT_NO_MOTION) && (sts_reed_hall_result == STS_Status_Door_Open ))
|
||||
{
|
||||
sts_status_color = STS_GREEN;
|
||||
|
||||
} else if ((sts_rss_result == STS_RESULT_MOTION) || (sts_reed_hall_result == STS_Status_Door_Close ))
|
||||
{
|
||||
sts_status_color = STS_RED;
|
||||
}
|
||||
break;
|
||||
case STS_DUAL_RSS_MODE:
|
||||
if ((sts_rss_result == STS_RESULT_NO_MOTION) && (sts_rss_2nd_result == STS_RESULT_NO_MOTION))
|
||||
{
|
||||
sts_status_color = STS_GREEN;
|
||||
} else if ((sts_rss_result == STS_RESULT_MOTION) || (sts_rss_2nd_result == STS_RESULT_MOTION))
|
||||
{
|
||||
sts_status_color = STS_RED;
|
||||
}
|
||||
|
||||
break;
|
||||
case STS_TOF_RSS_MODE:
|
||||
if ((sts_rss_result == STS_RESULT_NO_MOTION) && (sts_tof_result == STS_RESULT_NO_PRESENCE)){
|
||||
sts_status_color = STS_GREEN;
|
||||
|
||||
} else if ((sts_rss_result == STS_RESULT_MOTION) || (sts_tof_result == STS_RESULT_PRESENCE))
|
||||
{
|
||||
sts_status_color = STS_RED;
|
||||
}
|
||||
|
||||
break;
|
||||
// TO-DO LIST ***********************************************************
|
||||
case STS_TOF_DISTANCE_MODE:
|
||||
if ((sts_tof_result == STS_RESULT_NO_PRESENCE)) {
|
||||
sts_status_color = STS_GREEN;
|
||||
} else if ((sts_tof_result == STS_RESULT_PRESENCE)) {
|
||||
sts_status_color = STS_RED;
|
||||
}
|
||||
break;
|
||||
case STS_TOF_PRESENCE_MODE:
|
||||
if ((sts_tof_result == STS_RESULT_NO_PRESENCE)) {
|
||||
sts_status_color = STS_GREEN;
|
||||
} else if ((sts_tof_result == STS_RESULT_PRESENCE)) {
|
||||
sts_status_color = STS_RED;
|
||||
}
|
||||
break;
|
||||
case STS_TOF_IN_OUT_MODE:
|
||||
if ((sts_tof_result == STS_RESULT_NO_PRESENCE)) {
|
||||
sts_status_color = STS_GREEN;
|
||||
} else if ((sts_tof_result == STS_RESULT_PRESENCE)) {
|
||||
sts_status_color = STS_RED;
|
||||
}
|
||||
break;
|
||||
// TO-DO LIST ***********************************************************
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if ((sts_work_mode == STS_WIRED_MODE) || (sts_service_mask > STS_SERVICE_MASK_L0))
|
||||
{
|
||||
sts_status_color = STS_DARK;
|
||||
sts_lamp_bar_color = STS_DARK;
|
||||
last_lamp_bar_color = STS_DARK;
|
||||
STS_Lamp_Bar_Set_Dark();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if ((last_lamp_bar_color != sts_status_color))
|
||||
{
|
||||
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_reed_hall_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)
|
||||
{
|
||||
|
@ -440,6 +240,7 @@ void STS_Lamp_Bar_Self_Test_Simple(void)
|
|||
}
|
||||
APP_LOG(TS_OFF, VLEVEL_H, "\r\n [#1] RGB Space Lumianance Level Testing Finished\r\n");
|
||||
}
|
||||
|
||||
void STS_Lamp_Bar_Self_Test(void)
|
||||
{
|
||||
uint8_t color=0, lum_level=DEFAULT_LUMINANCE_LEVEL;
|
||||
|
@ -466,6 +267,7 @@ void STS_Lamp_Bar_Self_Test(void)
|
|||
STS_Lamp_Bar_Set_Dark();
|
||||
|
||||
}
|
||||
|
||||
void sts_rgb_unit_test(void)
|
||||
{
|
||||
|
||||
|
@ -493,3 +295,4 @@ void sts_rgb_unit_test(void)
|
|||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -133,7 +133,7 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
|
|||
hdma_tim1_ch1.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
|
||||
hdma_tim1_ch1.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD; //DMA_MDATAALIGN_HALFWORD;
|
||||
hdma_tim1_ch1.Init.Mode = DMA_CIRCULAR;
|
||||
hdma_tim1_ch1.Init.Priority = DMA_PRIORITY_HIGH; //was HIGH
|
||||
hdma_tim1_ch1.Init.Priority = DMA_PRIORITY_LOW; //was HIGH
|
||||
|
||||
if (HAL_DMA_Init(&hdma_tim1_ch1) != HAL_OK)
|
||||
{
|
||||
|
|
|
@ -452,6 +452,194 @@ void STS_YunhornSTSFallDetection(void)
|
|||
|
||||
}
|
||||
|
||||
void STS_Combined_Status_Processing(void)
|
||||
{
|
||||
switch (sts_work_mode)
|
||||
{
|
||||
case STS_NETWORK_MODE:
|
||||
sts_status_color = sts_cloud_netcolor;
|
||||
break;
|
||||
case STS_WIRED_MODE: // NO LAMP BAR FOR THOSE WATER LEAKAGE SENSOR OR SOAP CAPACITY SENSORS
|
||||
sts_status_color = STS_DARK;
|
||||
#ifdef STS_M1
|
||||
sts_water_leakage_result = (sts_reed_hall_result == STS_Status_Door_Open )?STS_RESULT_WATER_LEAKAGE_YES:STS_RESULT_WATER_LEAKAGE_NO;
|
||||
sts_water_leakage_changed_flag = 1;
|
||||
#endif
|
||||
break;
|
||||
case STS_REEDSWITCH_MODE:
|
||||
|
||||
sts_status_color = (sts_reed_hall_result == STS_Status_Door_Open )? STS_GREEN: STS_RED;
|
||||
|
||||
break;
|
||||
case STS_RSS_MODE:
|
||||
if (sts_rss_result == STS_RESULT_NO_MOTION){
|
||||
sts_status_color = STS_GREEN;
|
||||
} else if ((sts_rss_result == STS_RESULT_MOTION))
|
||||
{
|
||||
sts_status_color = STS_RED;
|
||||
}
|
||||
break;
|
||||
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 ))
|
||||
{
|
||||
sts_status_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 ))
|
||||
{
|
||||
sts_status_color = STS_RED;
|
||||
|
||||
if (sts_reed_hall_2_result == STS_Status_SOS_Pushdown )
|
||||
{
|
||||
sts_status_color = STS_RED_BLUE;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case STS_UNI_MODE: //FOR STS-O7
|
||||
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;
|
||||
|
||||
} 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;
|
||||
|
||||
if (sts_reed_hall_2_result == STS_Status_SOS_Pushdown )
|
||||
{
|
||||
sts_status_color = STS_RED_BLUE;
|
||||
}
|
||||
}
|
||||
|
||||
switch(sts_fall_rising_detected_result)
|
||||
{
|
||||
case STS_PRESENCE_NORMAL:
|
||||
//do nothing
|
||||
break;
|
||||
|
||||
case STS_PRESENCE_LAYDOWN:
|
||||
sts_lamp_bar_color = STS_YELLOW;
|
||||
sts_status_color = STS_YELLOW;
|
||||
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_REMOTE_REED_RSS_MODE:
|
||||
if ((sts_rss_result == STS_RESULT_NO_MOTION) && (sts_reed_hall_result == STS_Status_Door_Open ))
|
||||
{
|
||||
sts_status_color = STS_GREEN;
|
||||
|
||||
} else if ((sts_rss_result == STS_RESULT_MOTION) || (sts_reed_hall_result == STS_Status_Door_Close ))
|
||||
{
|
||||
sts_status_color = STS_RED;
|
||||
}
|
||||
break;
|
||||
case STS_DUAL_RSS_MODE:
|
||||
if ((sts_rss_result == STS_RESULT_NO_MOTION) && (sts_rss_2nd_result == STS_RESULT_NO_MOTION))
|
||||
{
|
||||
sts_status_color = STS_GREEN;
|
||||
} else if ((sts_rss_result == STS_RESULT_MOTION) || (sts_rss_2nd_result == STS_RESULT_MOTION))
|
||||
{
|
||||
sts_status_color = STS_RED;
|
||||
}
|
||||
|
||||
break;
|
||||
case STS_TOF_RSS_MODE:
|
||||
if ((sts_rss_result == STS_RESULT_NO_MOTION) && (sts_tof_result == STS_RESULT_NO_PRESENCE)){
|
||||
sts_status_color = STS_GREEN;
|
||||
|
||||
} else if ((sts_rss_result == STS_RESULT_MOTION) || (sts_tof_result == STS_RESULT_PRESENCE))
|
||||
{
|
||||
sts_status_color = STS_RED;
|
||||
}
|
||||
|
||||
break;
|
||||
// TO-DO LIST ***********************************************************
|
||||
case STS_TOF_DISTANCE_MODE:
|
||||
if ((sts_tof_result == STS_RESULT_NO_PRESENCE)) {
|
||||
sts_status_color = STS_GREEN;
|
||||
} else if ((sts_tof_result == STS_RESULT_PRESENCE)) {
|
||||
sts_status_color = STS_RED;
|
||||
}
|
||||
break;
|
||||
case STS_TOF_PRESENCE_MODE:
|
||||
if ((sts_tof_result == STS_RESULT_NO_PRESENCE)) {
|
||||
sts_status_color = STS_GREEN;
|
||||
} else if ((sts_tof_result == STS_RESULT_PRESENCE)) {
|
||||
sts_status_color = STS_RED;
|
||||
}
|
||||
break;
|
||||
case STS_TOF_IN_OUT_MODE:
|
||||
if ((sts_tof_result == STS_RESULT_NO_PRESENCE)) {
|
||||
sts_status_color = STS_GREEN;
|
||||
} else if ((sts_tof_result == STS_RESULT_PRESENCE)) {
|
||||
sts_status_color = STS_RED;
|
||||
}
|
||||
break;
|
||||
// TO-DO LIST ***********************************************************
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if ((sts_work_mode == STS_WIRED_MODE) || (sts_service_mask > STS_SERVICE_MASK_L0))
|
||||
{
|
||||
sts_status_color = STS_DARK;
|
||||
sts_lamp_bar_color = STS_DARK;
|
||||
last_lamp_bar_color = STS_DARK;
|
||||
STS_Lamp_Bar_Set_Dark();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if ((last_lamp_bar_color != sts_status_color))
|
||||
{
|
||||
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_reed_hall_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 STS_PRESENCE_SENSOR_NVM_CFG(void)
|
||||
{
|
||||
sts_presence_rss_config.default_start_m = (float)((float)sts_cfg_nvm.p[RSS_CFG_START_M]*0.1f);
|
||||
|
|
|
@ -72,7 +72,7 @@ extern volatile uint32_t event_start_time, event_stop_time;
|
|||
extern volatile uint16_t sts_unconscious_threshold;
|
||||
volatile uint8_t sts_occupancy_overtime_state = 0;
|
||||
volatile uint8_t sts_presence_fall_detection=TRUE;
|
||||
volatile uint32_t SamplingPeriodicity = 3000; //unit ms
|
||||
volatile uint32_t SamplingPeriodicity = 2000; //unit ms
|
||||
volatile uint32_t HeartBeatPeriodicity = 120000; //unit ms
|
||||
volatile uint8_t STS_LoRa_WAN_Joined = 0;
|
||||
volatile uint8_t mems_int1_detected = 0;
|
||||
|
@ -1108,7 +1108,8 @@ static void OnYunhornSTSLampBarColorTimerEvent(void *context)
|
|||
//HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin); /* STS GREEN */
|
||||
//if ((sts_work_mode != STS_WIRED_MODE))
|
||||
uint8_t high4=(sts_lamp_bar_color>>4)&0x0f, low4=sts_lamp_bar_color&0x0f;
|
||||
if (high4==0) {
|
||||
if (high4==0)
|
||||
{
|
||||
if (last_sts_lamp_bar_color != sts_lamp_bar_color)
|
||||
{
|
||||
STS_Lamp_Bar_Set_STS_RGB_Color(sts_lamp_bar_color, DEFAULT_LUMINANCE_LEVEL);
|
||||
|
@ -1149,6 +1150,7 @@ static void OnYunhornSTSLampBarColorTimerEvent(void *context)
|
|||
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
static void OnYunhornSTSDurationCheckTimerEvent(void *context)
|
||||
|
@ -1340,7 +1342,7 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams)
|
|||
}
|
||||
heart_beat_timer = 1;
|
||||
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
|
||||
HAL_Delay(3000);
|
||||
//HAL_Delay(3000);
|
||||
UTIL_TIMER_Start(&STSLampBarColorTimer);
|
||||
|
||||
//UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer);
|
||||
|
|
Loading…
Reference in New Issue