diff --git a/Core/Inc/yunhorn_sts_prd_conf.h b/Core/Inc/yunhorn_sts_prd_conf.h index f199f81..08cf444 100644 --- a/Core/Inc/yunhorn_sts_prd_conf.h +++ b/Core/Inc/yunhorn_sts_prd_conf.h @@ -247,10 +247,10 @@ #define MajorVer 25U #define MinorVer 7U -#define SubMinorVer 1U +#define SubMinorVer 31U #define FirmwareVersion 3U -#define YUNHORN_STS_MAX_NVM_CFG_SIZE 64U +#define YUNHORN_STS_MAX_NVM_CFG_SIZE 128U #define YUNHORN_STS_AC_CODE_SIZE 20U #define STS_O7_NVM_CFG_SIZE 32U @@ -439,13 +439,22 @@ * Address range 0800 0000H - 0803 FFFFH Size: 0x0004 0000 */ -#define FLASH_USER_START_ADDR ((void *) 0x0803F800UL) // Last 2kB of flash -#define FLASH_USER_CONFIG_SIZE ((void *) 0x000003FFUL) //0x400=1KB=1024 -#define FLASH_USER_END_ADDR (FLASH_USER_START_ADDR + FLASH_USER_CONFIG - 1) -#define FLASH_MFG_DEFAULT_START_ADDR ((void *) 0x0803FC00UL) // Last 1kB of flash -#define FLASH_MFG_DEFAULT_CONFIG_SIZE ((void *) 0x000003FFUL) //0x400=1KB=1024 -#define FLASH_MFG_DEFAULT_END_ADDR (FLASH_MFG_DEFAULT_START_ADDR + FLASH_MFG_DEFAULT_CONFIG_SIZE - 1) +#define FLASH_USER_START_ADDR ((void *) 0x0803F800UL) // Last 1kB of flash +#define FLASH_USER_CONFIG_SIZE ((void *) 0x000003FFUL) //0x400=1KB=1024 +#define FLASH_USER_END_ADDR (FLASH_USER_START_ADDR + FLASH_USER_CONFIG - 1) + + /* for P2 permenent storage */ +#ifdef P2 +#define STS_SENSOR_DATA_NVM_BASE_ADDRESS ((void *) 0x0803FA00U) // START of flash +#define STS_SENSOR_DATA_NVM_SIZE ((void *) 0x000001FFU) //0x200=512B +#define STS_SENSOR_DATA_NVM_END_ADDR (STS_SENSOR_DATA_NVM_BASE_ADDRESS + STS_SENSOR_DATA_NVM_SIZE - 1) +#endif + +#define FLASH_MFG_DEFAULT_START_ADDR ((void *) 0x0803FC00UL) // Last 1kB of flash +#define FLASH_MFG_DEFAULT_CONFIG_SIZE ((void *) 0x000003FFUL) //0x400=1KB=1024 +#define FLASH_MFG_DEFAULT_END_ADDR (FLASH_MFG_DEFAULT_START_ADDR + FLASH_MFG_DEFAULT_CONFIG_SIZE - 1) + /* 2KB = 2048 = 0x800 End @ of user Flash area */ /** diff --git a/Core/Inc/yunhorn_sts_sensors.h b/Core/Inc/yunhorn_sts_sensors.h index e4645cd..4097bca 100644 --- a/Core/Inc/yunhorn_sts_sensors.h +++ b/Core/Inc/yunhorn_sts_sensors.h @@ -623,12 +623,12 @@ enum nvm_order { //29, p[17] //30, p[18] NVM_CFG_START_END=31, //31, p[19] - NVM_RESERVE02, //32 - NVM_RESERVE03, //33 + NVM_COLOR_OCCUPY_VACANT, //32 + NVM_COLOR_SEVERITY, //33 NVM_SENSOR_INSTALL_HEIGHT, //34 - NVM_ALARM_PARAMETER05, //35 + NVM_COLOR_EFFECTS, //35 NVM_ALARM_MUTE_RESET_TIMER, //36 - NVM_ALARM_LAMP_BAR_FLASHING_COLOR, //37 + NVM_RESERVED37, //37 NVM_OCCUPANCY_OVERTIME_THRESHOLD, //38 NVM_MOTIONLESS_DURATION_THRESHOLD, //39 @@ -641,7 +641,14 @@ enum nvm_order { NVM_AC_CODE_START=44 //STORED, NO UPLOAD //63, 20 bytes for AC code }; - +enum color_effects_list { + COLOR_NORMAL =0, + COLOR_BREATH, + COLOR_FADE_ALL, + COLOR_FADE_HALF, + COLOR_WAVE, + COLOR_ROLLING +}; typedef struct sts_cfg_nvm { uint8_t mtmcode1; uint8_t mtmcode2; @@ -660,9 +667,9 @@ typedef struct sts_cfg_nvm { uint8_t color_occupy_vacant; // occupy color and vacant color define, C_OCCUPY<<4|C_VACANT uint8_t color_severity_l2_l3; // 2025 06 30, for emergency l2 l3 such as yellow, blue config uint8_t sensor_install_height_in_10cm; - uint8_t alarm_parameter05; + uint8_t color_effects; // 2025 08 01 add color effects such as breath, fade in fade out, wave etc. uint8_t alarm_mute_reset_timer_in_10sec; //60(0x3C) sec alarm_mute_or_reset_expire_timer_in_sec - uint8_t alarm_lamp_bar_flashing_color; //Lamp Bar Flashing color define, 0x20, 2==STS_RED, 0 = STS_DARK, 0x23, 2=STS_RED, 3=STS_BLUE + uint8_t reserved37; // 2025 08 01 replaced by color_severity_l2_l3, Lamp Bar Flashing color define, 0x20, 2==STS_RED, 0 = STS_DARK, 0x23, 2=STS_RED, 3=STS_BLUE uint8_t occupancy_overtime_threshold_in_10min; // 0 - 9: 0:disable, 1-9 occupy over time threshold * 10 min uint8_t motionless_duration_threshold_in_min; // 10(0x0A) min (2 min.) motionless_duration_threshold_in_min @@ -673,6 +680,7 @@ typedef struct sts_cfg_nvm { uint8_t fall_confirm_threshold_in_10sec; // 0-60(0x3C) Sec, or 3*10(0x03) sec default falldown_confirm_threshold_in_10sec uint8_t ac[YUNHORN_STS_AC_CODE_SIZE]; // authorization code, 20 bytes MCU UUID coded + uint8_t b[64]; } sts_cfg_nvm_t; #ifndef TRUE diff --git a/Core/Src/sts_lamp_bar.c b/Core/Src/sts_lamp_bar.c index 6f897ab..50ab3f8 100644 --- a/Core/Src/sts_lamp_bar.c +++ b/Core/Src/sts_lamp_bar.c @@ -191,7 +191,7 @@ void STS_Lamp_Bar_Scoller(uint8_t color, uint8_t lum_level) ws2812b_data[3*i+2] = color_rgb[color][2]*lum_level; ws2812b_data_transfer(ws2812b_data, sizeof(ws2812b_data)); - HAL_Delay(20); + HAL_Delay(10); } } @@ -361,14 +361,14 @@ void STS_Lamp_Bar_Self_Test_Fade(void) for (color=STS_GREEN; color < STS_COLOR_MAX; color++) { STS_Lamp_Bar_Set_STS_RGB_Color_FadeOut(color&0xff, lum_level&0xff, LED_COUNT/2); - HAL_Delay(500); + HAL_Delay(300); } APP_LOG(TS_OFF, VLEVEL_M, "\r\n [#1] RGB Space Fade In Testing Start\r\n"); for (color=STS_GREEN; color < STS_COLOR_MAX; color++) { STS_Lamp_Bar_Set_STS_RGB_Color_FadeIn(color&0xff, lum_level&0xff, LED_COUNT/2); - HAL_Delay(500); + HAL_Delay(300); } APP_LOG(TS_OFF, VLEVEL_M, "\r\n [#1] RGB Space Fade Out / Fade In Testing Finished\r\n"); } @@ -381,7 +381,7 @@ static void sts_test_scoller_bar(void) { STS_Lamp_Bar_Scoller(color, DEFAULT_LUMINANCE_LEVEL); } - HAL_Delay(500); + HAL_Delay(200); } } @@ -393,7 +393,7 @@ static void sts_test_color_with_lum_level(void) for (uint16_t lum_level=1; lum_level<250; lum_level+=10) { ws2812b_light_all_with_lum_level(color, lum_level&0xff); - HAL_Delay(30); + HAL_Delay(20); } } } diff --git a/Core/Src/yunhorn_sts_process.c b/Core/Src/yunhorn_sts_process.c index 7819b41..699e29b 100644 --- a/Core/Src/yunhorn_sts_process.c +++ b/Core/Src/yunhorn_sts_process.c @@ -782,9 +782,11 @@ void STS_PRESENCE_SENSOR_NVM_CFG(void) //sts_rss_config_updated_flag = (STS_RSS_CONFIG_FULL); //set to 2 for FULL config effect in next detection //sts_presence_rss_config.default_config_update_flag = (uint8_t) sts_rss_config_updated_flag; sts_rss_config_updated_flag = (uint8_t)(sts_cfg_nvm.p[RSS_CFG_UPDATE_FLAG]); + sts_rss_cfg_slid_win_threshold = (uint8_t)(sts_cfg_nvm.p[RSS_CFG_SLID_WIN])>>4; sts_rss_cfg_slid_win_size = (uint8_t)(sts_cfg_nvm.p[RSS_CFG_SLID_WIN])&0x0F; - sts_time_c_threshold = (uint8_t)(sts_cfg_nvm.p[RSS_CFG_TIME_C_THRESHOLD]); + + sts_time_c_threshold = (uint8_t)(sts_presence_rss_config.default_time_c_threshold); APP_LOG(TS_ON, VLEVEL_H, "\r\n##### Reboot --- with NVM CFG'ED RSS flag =%02x \r\n", sts_rss_config_updated_flag); } @@ -1113,6 +1115,7 @@ void STS_PRESENCE_SENSOR_Background_Measure_Process(uint16_t *bg_distance, uint1 sts_work_mode = STS_RSS_BACKGROUND_MODE; sts_lamp_bar_color = STS_BLUE; + STS_Lamp_Bar_Set_STS_RGB_Color(sts_lamp_bar_color,luminance_level); HAL_Delay(LED_PERIOD_TIME); APP_LOG(TS_OFF, VLEVEL_M, "\r\n SCAN Background Noise ... \r\n"); @@ -1126,7 +1129,10 @@ void STS_PRESENCE_SENSOR_Background_Measure_Process(uint16_t *bg_distance, uint1 *bg_motion_noise = motion_noise; sts_work_mode = previous_sts_work_mode; + STS_Lamp_Bar_Set_STS_RGB_Color(STS_DARK,luminance_level); + HAL_Delay(50); sts_lamp_bar_color = previous_sts_lamp_bar_color; + STS_Lamp_Bar_Set_STS_RGB_Color(sts_lamp_bar_color,luminance_level); HAL_Delay(LED_PERIOD_TIME); sts_rss_config_updated_flag = previous_sts_rss_config_updated_flag|0x80; } @@ -1181,7 +1187,10 @@ void STS_PRESENCE_SENSOR_Function_Test_Process(void) } HAL_Delay(50); + STS_Lamp_Bar_Set_STS_RGB_Color(STS_DARK,luminance_level); + HAL_Delay(50); sts_lamp_bar_color = previous_lamp_bar_color; + STS_Lamp_Bar_Set_STS_RGB_Color(sts_lamp_bar_color,luminance_level); HAL_Delay(LED_PERIOD_TIME); // *count = sizeof(bring_up_result); // UTIL_MEM_cpy_8((void*)self_test_result, (void*)bring_up_result, sizeof(bring_up_result)); diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index 37bdd33..dc1cce6 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -87,8 +87,8 @@ volatile bool p2_work_finished=true; extern volatile uint8_t luminance_level; uint8_t outbuf[255]={0x0}; volatile static bool r_b=true; -static uint8_t nvm_stored_value[2*YUNHORN_STS_MAX_NVM_CFG_SIZE]={0x0}; -static uint8_t sts_cfg_nvm_factory_default[YUNHORN_STS_MAX_NVM_CFG_SIZE]; +static uint8_t nvm_stored_value[FLASH_PAGE_SIZE]={0x0}; +static uint8_t sts_cfg_nvm_factory_default[2*YUNHORN_STS_MAX_NVM_CFG_SIZE]; static void STS_Show_STS_CFG_NVM(uint8_t * store_value, uint16_t store_size); extern volatile uint8_t sts_rss_cfg_slid_win_threshold; extern volatile uint8_t sts_rss_cfg_slid_win_size; @@ -129,17 +129,12 @@ volatile sts_cfg_nvm_t sts_cfg_nvm = { 0x6E, //P[18] RSS_CFG_BG_MOTION_NOISE 2025-04-14 0x8C, //P[19] RSS SLIDING WINDOW CFG: 0x08 AS threshold, 0x0C as window size }, // above 20 bytes -#if defined(ATAL) - 0x20, // 0x20 occupy(red:2) | color vacant (dark:0) for ATAL-HK 20241230 -#elif defined(FADEOUT) - 0x27, // 0x20 occupy(red:2) | color vacant (white:7) for SWIRE INDIGO1 BEIJING -#else 0x21, // color occupy (red:2) | color vacant (green:1) or other 0x20 occupy(red:2) | color vacant (dark:0) for ATAL-HK 20241230 -#endif + // 0x20 occupy(red:2) | color vacant (white:7) for SWIRE INDIGO1 BEIJING 0x43, // color severity l2 l3, yellow blue 0x20, //sensor install height in 10 cm, default 32*10=320cm, 3.2meter - 0x00, //reserve5 alarm_parameter05 + COLOR_FADE_HALF, // color effects 0x06, //reserve6 alarm_mute_or_reset_expire_timer_in_10sec, 60 seconds 0x23, //reserve7 alarm Lamp Bar Flashing color define, 0x20, 2==STS_RED, 0 = STS_DARK, 0x23, 2=STS_RED, 3=STS_BLUE 0x03, //reserve8 occupancy over time threshold 3*10 = 30 minutes @@ -152,6 +147,7 @@ volatile sts_cfg_nvm_t sts_cfg_nvm = { 0x03, //falldown_confirm_threshold_in_10sec, 0x3=30 sec default // below 20 bytes for RFAC code {0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0} + }; static uint32_t sts_warm_up_count = 0; #if defined(STS_O6)||defined(STS_O7) @@ -1267,36 +1263,46 @@ static void OnYunhornSTSLampBarColorTimerEvent(void *context) { if (last_sts_lamp_bar_color != sts_lamp_bar_color) { - APP_LOG(TS_OFF, VLEVEL_M, "\r\n----Lamp Bar Color changed from %02x to %02x \r\n", last_sts_lamp_bar_color, sts_lamp_bar_color); + APP_LOG(TS_OFF, VLEVEL_M, "\r\n----Lamp Bar Color changed from color %02x :%02x to %02x \r\n", last_sts_lamp_bar_color, sts_cfg_nvm.color_effects, sts_lamp_bar_color); last_sts_lamp_bar_color = sts_lamp_bar_color; } UTIL_TIMER_Stop(&STSLampBarColorTimer); - if (high4==0) - { + switch (sts_cfg_nvm.color_effects) { -#if defined(FADEOUT) - if ((sts_rss_result == STS_RESULT_MOTION)) //||(sts_reed_hall_result == STS_Status_Door_Close )) - { - //STS_Lamp_Bar_Set_STS_RGB_Color_FadeOut(STS_COLOR_DEFAULT_OCCUPY, luminance_level, LED_COUNT/2); - STS_Lamp_Bar_Set_STS_RGB_Color_FadeOut(sts_lamp_bar_color, luminance_level, LED_COUNT/2); - } else //if ((sts_rss_result == STS_RESULT_NO_MOTION)||(sts_reed_hall_result == STS_Status_Door_Open )){ - { - STS_Lamp_Bar_Set_STS_RGB_Color_FadeIn(sts_lamp_bar_color, luminance_level, LED_COUNT/2); - //STS_Lamp_Bar_Set_STS_RGB_Color_FadeIn(STS_COLOR_DEFAULT_VACANT, luminance_level, LED_COUNT/2); + case COLOR_NORMAL: + if (high4==0) { + STS_Lamp_Bar_Set_STS_RGB_Color(sts_lamp_bar_color, luminance_level); + } else + { + STS_Lamp_Bar_Set_STS_RGB_Color(r_b?high4:low4, luminance_level); + r_b = !r_b; + } + break; + case COLOR_BREATH: + break; + case COLOR_FADE_ALL: + break; + case COLOR_FADE_HALF: + if ((sts_rss_result == STS_RESULT_MOTION)) //||(sts_reed_hall_result == STS_Status_Door_Close )) + { + //STS_Lamp_Bar_Set_STS_RGB_Color_FadeOut(STS_COLOR_DEFAULT_OCCUPY, luminance_level, LED_COUNT/2); + STS_Lamp_Bar_Set_STS_RGB_Color_FadeOut(sts_lamp_bar_color, luminance_level, LED_COUNT/2); + } else //if ((sts_rss_result == STS_RESULT_NO_MOTION)||(sts_reed_hall_result == STS_Status_Door_Open )){ + { + STS_Lamp_Bar_Set_STS_RGB_Color_FadeIn(sts_lamp_bar_color, luminance_level, LED_COUNT/2); + //STS_Lamp_Bar_Set_STS_RGB_Color_FadeIn(STS_COLOR_DEFAULT_VACANT, luminance_level, LED_COUNT/2); + } + break; + case COLOR_WAVE: + break; + case COLOR_ROLLING: + break; } -#else - STS_Lamp_Bar_Set_STS_RGB_Color(sts_lamp_bar_color, luminance_level); -#endif - } else - { - STS_Lamp_Bar_Set_STS_RGB_Color(r_b?high4:low4, luminance_level); - r_b = !r_b; - } UTIL_TIMER_Start(&STSLampBarColorTimer); -} + } } @@ -2109,7 +2115,8 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, uint8_t tlv_buf_size) UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer); - + STS_Lamp_Bar_Set_STS_RGB_Color(STS_DARK,luminance_level); + HAL_Delay(50); sts_lamp_bar_color = previous_lamp_bar_color; APP_LOG(TS_OFF, VLEVEL_M, "\r\nRSS Measured Distance=[%u] mm \r\n", (uint16_t)sts_distance_rss_distance); @@ -3030,7 +3037,7 @@ void OnStoreSTSCFGContextRequest(void) /* USER CODE BEGIN OnStoreContextRequest_1 */ UTIL_MEM_cpy_8(nvm_stored_value,(void*)&sts_cfg_nvm, sizeof(sts_cfg_nvm)); - UTIL_MEM_cpy_8(nvm_stored_value + YUNHORN_STS_MAX_NVM_CFG_SIZE, (const void*)sts_cfg_nvm_factory_default, sizeof(sts_cfg_nvm_factory_default)); + UTIL_MEM_cpy_8(nvm_stored_value + 8*YUNHORN_STS_MAX_NVM_CFG_SIZE, (const void*)nvm_stored_value, 8*YUNHORN_STS_MAX_NVM_CFG_SIZE); /* USER CODE END OnStoreContextRequest_1 */ /* store nvm in flash */ @@ -3039,7 +3046,8 @@ void OnStoreSTSCFGContextRequest(void) { // final write once only - FLASH_IF_Write(STS_CONFIG_NVM_BASE_ADDRESS, (const void *)nvm_stored_value, sizeof(sts_cfg_nvm)+sizeof(sts_cfg_nvm_factory_default)); + //FLASH_IF_Write(STS_CONFIG_NVM_BASE_ADDRESS, (const void *)nvm_stored_value, sizeof(sts_cfg_nvm)+sizeof(sts_cfg_nvm_factory_default)); + FLASH_IF_Write(STS_CONFIG_NVM_BASE_ADDRESS, (const void *)nvm_stored_value, FLASH_PAGE_SIZE); } /* USER CODE BEGIN OnStoreContextRequest_Last */ @@ -3055,10 +3063,10 @@ void OnRestoreSTSCFG_FactoryDefault_ContextRequest(void) APP_LOG(TS_OFF, VLEVEL_M, "Restore Factory Default NVM ********************** \r\n"); /* USER CODE END OnRestoreSTSCFGContextRequest_1 */ - FLASH_IF_Read((void*)sts_cfg_nvm_factory_default, (void*)STS_CONFIG_NVM_BASE_ADDRESS+YUNHORN_STS_MAX_NVM_CFG_SIZE, YUNHORN_STS_MAX_NVM_CFG_SIZE); - - UTIL_MEM_cpy_8((void*)nvm_stored_value, (void*)sts_cfg_nvm_factory_default, YUNHORN_STS_MAX_NVM_CFG_SIZE); - UTIL_MEM_cpy_8((void*)&nvm_stored_value+YUNHORN_STS_MAX_NVM_CFG_SIZE, (void*)sts_cfg_nvm_factory_default, YUNHORN_STS_MAX_NVM_CFG_SIZE); + //FLASH_IF_Read((void*)sts_cfg_nvm_factory_default, (void*)FLASH_MFG_DEFAULT_START_ADDR, YUNHORN_STS_MAX_NVM_CFG_SIZE); + FLASH_IF_Read((void*)nvm_stored_value, (void*)FLASH_MFG_DEFAULT_START_ADDR, 8*YUNHORN_STS_MAX_NVM_CFG_SIZE); + //UTIL_MEM_cpy_8((void*)nvm_stored_value, (void*)sts_cfg_nvm_factory_default, YUNHORN_STS_MAX_NVM_CFG_SIZE); + UTIL_MEM_cpy_8((void*)&nvm_stored_value+8*YUNHORN_STS_MAX_NVM_CFG_SIZE, (void*)nvm_stored_value, 8*YUNHORN_STS_MAX_NVM_CFG_SIZE); STS_Show_STS_CFG_NVM((uint8_t*)nvm_stored_value, sizeof(nvm_stored_value)); @@ -3067,8 +3075,8 @@ void OnRestoreSTSCFG_FactoryDefault_ContextRequest(void) { APP_LOG(TS_OFF, VLEVEL_M, "\r\n %%%%% write CFG to normal NVM \r\n"); - FLASH_IF_Write(STS_CONFIG_NVM_BASE_ADDRESS, (const void *)nvm_stored_value, 2*YUNHORN_STS_MAX_NVM_CFG_SIZE); - //FLASH_IF_Write(FLASH_MFG_DEFAULT_START_ADDR, (const void *)sts_cfg_nvm_factory_default, YUNHORN_STS_MAX_NVM_CFG_SIZE); + FLASH_IF_Write(STS_CONFIG_NVM_BASE_ADDRESS, (const void *)nvm_stored_value, FLASH_PAGE_SIZE); + //FLASH_IF_Write(FLASH_MFG_DEFAULT_START_ADDR, (const void *)sts_cfg_nvm_factory_default, 2*YUNHORN_STS_MAX_NVM_CFG_SIZE); //sts_cfg_nvm_factory_default[0] = 0xF3; // with valid ac code } @@ -3101,7 +3109,7 @@ void STS_REBOOT_CONFIG_Init(void) /* USER CODE END OnRestoreContextRequest_1 */ //UTIL_MEM_cpy_8(nvm_stored_value, (void *)STS_CONFIG_NVM_BASE_ADDRESS, YUNHORN_STS_MAX_NVM_CFG_SIZE); - FLASH_IF_Read(nvm_stored_value, STS_CONFIG_NVM_BASE_ADDRESS, 2*YUNHORN_STS_MAX_NVM_CFG_SIZE); + FLASH_IF_Read(nvm_stored_value, STS_CONFIG_NVM_BASE_ADDRESS, 8*YUNHORN_STS_MAX_NVM_CFG_SIZE); STS_Show_STS_CFG_NVM((uint8_t*)nvm_stored_value, sizeof(nvm_stored_value)); @@ -3111,14 +3119,14 @@ void STS_REBOOT_CONFIG_Init(void) if ((nvm_stored_value[NVM_MTM1] != sts_mtmcode1) || (nvm_stored_value[NVM_MTM2] != sts_mtmcode2) || (nvm_stored_value[NVM_VER] != sts_version)) { APP_LOG(TS_OFF, VLEVEL_M, "Initial Boot with Empty Config, Flash with default config....\r\n"); - UTIL_MEM_cpy_8(sts_cfg_nvm_factory_default, (void*)&sts_cfg_nvm, (sizeof(sts_cfg_nvm))); + //UTIL_MEM_cpy_8(sts_cfg_nvm_factory_default, (void*)&sts_cfg_nvm, (sizeof(sts_cfg_nvm))); OnStoreSTSCFGContextRequest(); //UTIL_MEM_set_8((void *)sts_ac_code, 0x00, YUNHORN_STS_AC_CODE_SIZE); HAL_Delay(1000); NVIC_SystemReset(); } else { - UTIL_MEM_cpy_8(sts_cfg_nvm_factory_default, nvm_stored_value+YUNHORN_STS_MAX_NVM_CFG_SIZE, YUNHORN_STS_MAX_NVM_CFG_SIZE); + //UTIL_MEM_cpy_8(sts_cfg_nvm_factory_default, nvm_stored_value+YUNHORN_STS_MAX_NVM_CFG_SIZE, YUNHORN_STS_MAX_NVM_CFG_SIZE); sts_cfg_nvm.mtmcode1 = (uint8_t)nvm_stored_value[NVM_MTM1]; sts_cfg_nvm.mtmcode2 = (uint8_t)nvm_stored_value[NVM_MTM2]; @@ -3137,12 +3145,12 @@ void STS_REBOOT_CONFIG_Init(void) for (uint8_t j=0; j< STS_O7_CFG_PCFG_SIZE; j++) { // P RSS CONFIG SIZE= 20U sts_cfg_nvm.p[j] = (uint8_t)nvm_stored_value[NVM_CFG_START+j]; } - sts_cfg_nvm.color_occupy_vacant =(uint8_t)nvm_stored_value[NVM_RESERVE02]; - sts_cfg_nvm.color_severity_l2_l3 =(uint8_t)nvm_stored_value[NVM_RESERVE03]; + sts_cfg_nvm.color_occupy_vacant =(uint8_t)nvm_stored_value[NVM_COLOR_OCCUPY_VACANT]; + sts_cfg_nvm.color_severity_l2_l3 =(uint8_t)nvm_stored_value[NVM_COLOR_SEVERITY]; sts_cfg_nvm.sensor_install_height_in_10cm =(uint8_t)nvm_stored_value[NVM_SENSOR_INSTALL_HEIGHT]; - sts_cfg_nvm.alarm_parameter05 =(uint8_t)nvm_stored_value[NVM_ALARM_PARAMETER05]; + sts_cfg_nvm.color_effects =(uint8_t)nvm_stored_value[NVM_COLOR_EFFECTS]; sts_cfg_nvm.alarm_mute_reset_timer_in_10sec = (uint8_t)nvm_stored_value[NVM_ALARM_MUTE_RESET_TIMER]; - sts_cfg_nvm.alarm_lamp_bar_flashing_color = (uint8_t)nvm_stored_value[NVM_ALARM_LAMP_BAR_FLASHING_COLOR]; + sts_cfg_nvm.reserved37 = (uint8_t)nvm_stored_value[NVM_RESERVED37]; sts_cfg_nvm.occupancy_overtime_threshold_in_10min = (uint8_t)nvm_stored_value[NVM_OCCUPANCY_OVERTIME_THRESHOLD]; sts_cfg_nvm.motionless_duration_threshold_in_min= (uint8_t)nvm_stored_value[NVM_MOTIONLESS_DURATION_THRESHOLD]; sts_cfg_nvm.unconscious_or_motionless_level_threshold = (uint8_t)nvm_stored_value[NVM_UNCONSCIOUS_LEVEL_THRESHOLD]; @@ -3224,9 +3232,10 @@ void OnRestoreSTSCFGContextProcess(void) sts_work_mode = sts_cfg_nvm.work_mode; sts_service_mask = sts_cfg_nvm.sts_service_mask; - sts_lamp_bar_flashing_color = sts_cfg_nvm.alarm_lamp_bar_flashing_color; + //sts_lamp_bar_flashing_color = sts_cfg_nvm.reserved37; sts_color_occupy_vacant = sts_cfg_nvm.color_occupy_vacant; sts_color_severity_l2_l3 = sts_cfg_nvm.color_severity_l2_l3; + sts_lamp_bar_flashing_color = sts_color_severity_l2_l3; sts_lamp_bar_color = STS_COLOR_DEFAULT_VACANT; if (sts_work_mode == STS_UNI_MODE){ sts_presence_fall_detection =TRUE; diff --git a/STM32CubeIDE/.cproject b/STM32CubeIDE/.cproject index 68a2ceb..aefdbde 100644 --- a/STM32CubeIDE/.cproject +++ b/STM32CubeIDE/.cproject @@ -155,7 +155,6 @@