new try to eliminate blue lamp bar overstay
This commit is contained in:
parent
b033dfbd93
commit
75f39aa138
|
@ -88,19 +88,28 @@ enum sts_lamp_color {
|
|||
#define STS_SOS_COLOR STS_RED_BLUE
|
||||
|
||||
#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_YELLOW
|
||||
//#define STS_FALL_CONFIRMED_COLOR STS_RED
|
||||
#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_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_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_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_OVERSTAY_COLOR (sts_color_severity_l2_l3&0x0F)
|
||||
|
||||
#define STS_COLOR_SEVERITY_L2 (sts_color_severity_l2_l3<<4)
|
||||
#define STS_COLOR_SEVERITY_L3 (sts_color_severity_l2_l3&0x0F)
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
enum sts_oo_work_mode {
|
||||
STS_NETWORK_MODE = 0, // 0 NETWORK MODE
|
||||
|
|
|
@ -136,7 +136,7 @@ void SystemApp_Init(void)
|
|||
|
||||
#if defined(STS_T6)||defined(L8)
|
||||
//STS_TOF_VL53LX_PresenceDetection_Process_Init();
|
||||
//STS_Lamp_Bar_Self_Test_Simple();
|
||||
STS_Lamp_Bar_Self_Test_Simple();
|
||||
//STS_Lamp_Bar_Self_Test();
|
||||
/*
|
||||
LED_GREEN_ON;HAL_Delay(50);
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
#include "app_tof_peoplecount.h"
|
||||
#include "yunhorn_sts_prd_conf.h"
|
||||
#include "yunhorn_sts_sensors.h"
|
||||
|
||||
#include "app_tof.h"
|
||||
#if (defined(STS_O6)||defined(STS_T6)||defined(O1L))
|
||||
#include "sts_lamp_bar.h"
|
||||
#endif
|
||||
|
@ -615,6 +615,7 @@ void STS_Sensor_Init(void)
|
|||
LED_GREEN_ON;HAL_Delay(150);
|
||||
LED_RED_ON;HAL_Delay(150);
|
||||
LED_GREEN_OFF;HAL_Delay(150);
|
||||
|
||||
#if 0
|
||||
LED_RED_OFF;HAL_Delay(150);
|
||||
LED_GREEN_ON;HAL_Delay(50);
|
||||
|
@ -654,6 +655,8 @@ void STS_Sensor_Init(void)
|
|||
UTIL_TIMER_Start(&YunhornSTSWakeUpScanTimer);
|
||||
#endif
|
||||
|
||||
sts_lamp_bar_color = HALL1_STATE==0? STS_RED:STS_GREEN; // DOOR CLOSED=0, RED, DOOR OPEN=1
|
||||
|
||||
UTIL_TIMER_Start(&STSLampBarColorTimer);
|
||||
UTIL_TIMER_Start(&STSDurationCheckTimer);
|
||||
|
||||
|
@ -1491,6 +1494,7 @@ static void OnRxTimerLedEvent(void *context)
|
|||
static void OnJoinTimerLedEvent(void *context)
|
||||
{
|
||||
HAL_GPIO_TogglePin(LED3_GPIO_Port, LED3_Pin); /* LED_RED */
|
||||
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP3), CFG_SEQ_Prio_0);
|
||||
}
|
||||
|
||||
/* USER CODE END PrFD_LedEvents */
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1364498518074211444" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-898298991057946541" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
|
@ -16,7 +16,7 @@
|
|||
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1364498518074211444" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-898298991057946541" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -186,8 +186,8 @@
|
|||
|
||||
/* General Settings */
|
||||
#define MajorVer 25U
|
||||
#define MinorVer 5U
|
||||
#define SubMinorVer 19U
|
||||
#define MinorVer 6U
|
||||
#define SubMinorVer 25U
|
||||
#define FirmwareVersion 3U
|
||||
#define YUNHORN_STS_MAX_NVM_CFG_SIZE 64U
|
||||
#define YUNHORN_STS_AC_CODE_SIZE 20U
|
||||
|
|
|
@ -190,8 +190,9 @@ typedef struct sts_cfg_nvm {
|
|||
uint8_t length; // length of following parameters except AC CODE(20bytes)
|
||||
uint8_t p[STS_CFG_PCFG_SIZE];
|
||||
|
||||
uint8_t reserve02;
|
||||
uint8_t reserve03;
|
||||
uint8_t color_occupy_vacant; // occupy color and vacant color define, C_OCCUPY<<4|C_VACANT
|
||||
uint8_t color_severity_l2_l3; // over stay, motionless, fall down severity level 2 and level 3 color define
|
||||
// (C_S_L2<<4)|(C_S_L3&0x0F)
|
||||
uint8_t sensor_install_height_in_10cm;
|
||||
uint8_t alarm_parameter05;
|
||||
#ifdef L8
|
||||
|
|
|
@ -72,7 +72,7 @@ volatile uint8_t sts_cloud_netcolor = STS_BLUE; //netColor
|
|||
extern volatile uint8_t sts_occupancy_status;
|
||||
extern volatile sts_fhmos_sensor_config_t fhmos_cfg;
|
||||
extern volatile sts_fhmos_sensor_cmd_t fhmos_cmd;
|
||||
extern volatile uint8_t sts_status_color, sts_lamp_bar_color;//puColor
|
||||
extern volatile uint8_t sts_status_color, sts_lamp_bar_color, sts_color_occupy_vacant, sts_color_severity_l2_l3;//puColor
|
||||
extern uint8_t luminance_level;
|
||||
volatile uint8_t sts_fhmos_state_changed=0;
|
||||
volatile uint8_t sts_head_level_low =0, last_head_level_low_state=0;
|
||||
|
@ -128,8 +128,8 @@ volatile sts_cfg_nvm_t sts_cfg_nvm = {
|
|||
0x00, //reserve --P[18]
|
||||
0x00, //reserve --P[19]
|
||||
}, // above 20 bytes
|
||||
0x00, //reserve2
|
||||
0x00, //reserve3
|
||||
0x21, //reserve2
|
||||
0x11, //reserve3
|
||||
0x20, //sensor install height in dm =10 cm, default 32*10=320cm, 3.2meter
|
||||
|
||||
0x00, //reserve5 alarm_parameter05
|
||||
|
@ -237,7 +237,16 @@ volatile uint8_t sts_fhmos_result=STS_FHMOS_FALL_STATE_NO_OCCUPY;
|
|||
volatile uint8_t sts_fhmos_bitmap_pending=FHMOS_BITMAP_BLANK;
|
||||
#endif
|
||||
|
||||
#define STS_COLOR_DEFAULT_VACANT (sts_color_occupy_vacant&0x0f)
|
||||
#define STS_COLOR_DEFAULT_OCCUPY ((sts_color_occupy_vacant>>4)&0x0f)
|
||||
|
||||
#ifdef SERCO_PWH
|
||||
volatile uint8_t sts_color_occupy_vacant = (STS_RED<<4)|(STS_GREEN&0x0f);
|
||||
volatile uint8_t sts_color_severity_l2_l3 = (STS_RED<<4)|((STS_RED)&0x0F);
|
||||
#else
|
||||
volatile uint8_t sts_color_occupy_vacant = (STS_RED<<4)|(STS_GREEN&0x0f);
|
||||
volatile uint8_t sts_color_severity_l2_l3 = (STS_YELLOW<<4)|((STS_BLUE)&0x0F);
|
||||
#endif
|
||||
|
||||
#if (defined(YUNHORN_STS_O6_ENABLED) && defined(USE_ACCONEER_A111))
|
||||
extern volatile STS_OO_RSS_SensorTuneDataTypeDef sts_presence_rss_config;
|
||||
|
@ -761,6 +770,29 @@ void USER_APP_Parse_CMD_P(uint8_t *parse_buffer, uint8_t parse_buffer_size)
|
|||
case 5:
|
||||
break;
|
||||
|
||||
case 6: // switch lamp bar color of occupy and vacant
|
||||
// P 1 1 L O V --> P11L21 --> RED:2 for occupy, GREEN:1 for vacant
|
||||
// P 1 1 S L2 L3 ---> P11S43 ---> YELLOW:4 ofr severity L2, BLUE:3 for severity L3
|
||||
if ((parse_buffer[CFG_CMD5]>='0')&& (parse_buffer[CFG_CMD5]<='9')&&(parse_buffer[CFG_CMD6]>='0')&& (parse_buffer[CFG_CMD6]<='9'))
|
||||
{
|
||||
if ((parse_buffer[CFG_CMD4] == 'L')){
|
||||
sts_cfg_nvm.color_occupy_vacant = ((uint8_t)(parse_buffer[CFG_CMD5]-0x30)<<4)|((uint8_t)(parse_buffer[CFG_CMD6]-0x30));
|
||||
sts_color_occupy_vacant = sts_cfg_nvm.color_occupy_vacant;
|
||||
APP_LOG(TS_OFF, VLEVEL_M, "\r\n Workmode=%d Color Occupy=%02X Vacant=%02X \r\n", sts_work_mode, STS_COLOR_DEFAULT_OCCUPY, STS_COLOR_DEFAULT_VACANT);
|
||||
|
||||
OnStoreSTSCFGContextRequest();
|
||||
|
||||
} else if ((parse_buffer[CFG_CMD4] == 'S')){
|
||||
sts_cfg_nvm.color_severity_l2_l3 = ((uint8_t)(parse_buffer[CFG_CMD5]-0x30)<<4)|((uint8_t)(parse_buffer[CFG_CMD6]-0x30));
|
||||
sts_color_severity_l2_l3 = sts_cfg_nvm.color_severity_l2_l3;
|
||||
APP_LOG(TS_OFF, VLEVEL_M, "\r\n Workmode=%d Severity Color L2 =%02X L3=%02X \r\n", sts_work_mode, STS_COLOR_SEVERITY_L2, STS_COLOR_SEVERITY_L3);
|
||||
|
||||
OnStoreSTSCFGContextRequest();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
// P11T XYYY for fall down, human movement, occupancy, SOS
|
||||
case 8:
|
||||
if ((parse_buffer[CFG_CMD4]=='T') && (parse_buffer[CFG_CMD5]>='0')&& (parse_buffer[CFG_CMD5]<='9'))
|
||||
|
@ -1736,8 +1768,8 @@ void OnStoreSTSCFGContextRequest(void)
|
|||
to_store__value[i++] = (sts_cfg_nvm.p[j]);
|
||||
}
|
||||
#endif
|
||||
to_store__value[i++] = sts_cfg_nvm.reserve02;
|
||||
to_store__value[i++] = sts_cfg_nvm.reserve03;
|
||||
to_store__value[i++] = sts_cfg_nvm.color_occupy_vacant;
|
||||
to_store__value[i++] = sts_cfg_nvm.color_severity_l2_l3;
|
||||
to_store__value[i++] = sts_cfg_nvm.sensor_install_height_in_10cm;
|
||||
to_store__value[i++] = sts_cfg_nvm.alarm_parameter05;
|
||||
#ifdef L8
|
||||
|
@ -1850,8 +1882,11 @@ void STS_REBOOT_CONFIG_Init(void)
|
|||
APP_LOG(TS_OFF, VLEVEL_M, "%2d ", fhmos_bg.maskoff[j]);
|
||||
}
|
||||
#endif
|
||||
sts_cfg_nvm.reserve02 =(uint8_t)nvm_store_value[NVM_RESERVE02];
|
||||
sts_cfg_nvm.reserve03 =(uint8_t)nvm_store_value[NVM_RESERVE03];
|
||||
// sts_cfg_nvm.reserve02 =(uint8_t)nvm_store_value[NVM_RESERVE02];
|
||||
// sts_cfg_nvm.reserve03 =(uint8_t)nvm_store_value[NVM_RESERVE03];
|
||||
sts_cfg_nvm.color_occupy_vacant =(uint8_t)nvm_store_value[NVM_RESERVE02];
|
||||
sts_cfg_nvm.color_severity_l2_l3 =(uint8_t)nvm_store_value[NVM_RESERVE03];
|
||||
|
||||
sts_cfg_nvm.sensor_install_height_in_10cm =(uint8_t)nvm_store_value[NVM_SENSOR_INSTALL_HEIGHT];
|
||||
sts_cfg_nvm.alarm_parameter05 =(uint8_t)nvm_store_value[NVM_ALARM_PARAMETER05];
|
||||
#ifdef L8
|
||||
|
@ -1949,6 +1984,11 @@ void OnRestoreSTSCFGContextProcess(void)
|
|||
sts_work_mode = sts_cfg_nvm.work_mode;
|
||||
sts_service_mask = sts_cfg_nvm.sts_service_mask;
|
||||
sts_sensor_install_height = sts_cfg_nvm.sensor_install_height_in_10cm*100;
|
||||
APP_LOG(TS_OFF, VLEVEL_M, "\r\n Color Severity L2L3=0x%02x Occupy Vacant=0x%02x \r\n", sts_color_severity_l2_l3, sts_color_occupy_vacant);
|
||||
sts_color_severity_l2_l3 = sts_cfg_nvm.color_severity_l2_l3;
|
||||
sts_color_occupy_vacant = sts_cfg_nvm.color_occupy_vacant;
|
||||
|
||||
APP_LOG(TS_OFF, VLEVEL_M, "\r\n After restore from NVM ---> #### Color Severity L2L3=0x%02x Occupy Vacant=0x%02x \r\n", sts_color_severity_l2_l3, sts_color_occupy_vacant);
|
||||
|
||||
#ifdef YUNHORN_STS_O6_ENABLED
|
||||
sts_lamp_bar_color = STS_GREEN;
|
||||
|
@ -2430,10 +2470,11 @@ void YunhornSTSDurationCheckTimer(void)
|
|||
#endif
|
||||
|
||||
LED_RED_ON;
|
||||
APP_LOG(TS_OFF, VLEVEL_M, "\r\nSensor1 overstay process: sts_color_severity_l2_l3=0x%02x, STS_OCCUPANCY_OVERSTAY_COLOR = 0x%02x \r\n", sts_color_severity_l2_l3, STS_OCCUPANCY_OVERSTAY_COLOR);
|
||||
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 0x%02x color:%s\r\n",sts_lamp_bar_color, (char*)code2color[sts_lamp_bar_color]);
|
||||
over_threshold |= 1<<0;
|
||||
// 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);
|
||||
}
|
||||
|
||||
|
||||
|
@ -3135,7 +3176,7 @@ void OnSensorL8AStateChanged(void)
|
|||
fhmos_data.head_low_level_start_time = sensor_event_time.Seconds;
|
||||
fhmos_data.state_fall_released = 0;
|
||||
|
||||
APP_LOG(TS_OFF, VLEVEL_L, "\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;
|
||||
|
||||
|
@ -3145,7 +3186,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_L, "\r\n Head Level Rise up or Out of Focus Area ++++++++++ \r\n");
|
||||
APP_LOG(TS_OFF, VLEVEL_M, "\r\n Head Level Rise up or Out of Focus Area ++++++++++ \r\n");
|
||||
sts_fhmos_state_changed = 1;
|
||||
fhmos_data.state_fall_released = 1;
|
||||
} //else {
|
||||
|
|
|
@ -57,7 +57,7 @@ extern volatile uint8_t sts_fhmos_bitmap_pending;
|
|||
#include "stm32wlxx_nucleo.h"
|
||||
//static int to_confirm = 0;
|
||||
static uint8_t yes_count=0, no_count=0;
|
||||
#define TIME_C 2
|
||||
#define TIME_C 4
|
||||
static uint32_t STS_Get_Center_Range_Distance(RANGING_SENSOR_Result_t *Result);
|
||||
uint16_t bg_distance[64]={0};
|
||||
uint8_t idx[64]={0};
|
||||
|
@ -831,15 +831,20 @@ static void print_result(RANGING_SENSOR_Result_t *Result)
|
|||
if (yes_count < TIME_C)
|
||||
{
|
||||
yes_count ++;
|
||||
APP_LOG(TS_OFF, VLEVEL_M, "\r\n YES++ %d\r\n", yes_count);
|
||||
|
||||
} else {
|
||||
no_count =0;
|
||||
}
|
||||
|
||||
|
||||
} else 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)
|
||||
{
|
||||
no_count ++;
|
||||
APP_LOG(TS_OFF, VLEVEL_M, "\r\n NO++ %d\r\n", no_count);
|
||||
|
||||
} else {
|
||||
yes_count =0;
|
||||
}
|
||||
|
@ -849,10 +854,13 @@ 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");
|
||||
|
||||
} else if (no_count > (TIME_C -1))
|
||||
{
|
||||
|
||||
sts_head_level_low = 0;
|
||||
APP_LOG(TS_OFF, VLEVEL_M, "\r\n lead 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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue