nvm cfg size to 2K

This commit is contained in:
Yunhorn 2025-08-01 19:08:57 +08:00
parent 5c9f881e73
commit e8243d55ef
6 changed files with 103 additions and 69 deletions

View File

@ -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 */
/**

View File

@ -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 0disable, 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

View File

@ -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);
}
}
}

View File

@ -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));

View File

@ -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;

View File

@ -155,7 +155,6 @@
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.2024044405" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
<listOptionValue builtIn="false" value="CORE_CM4"/>
<listOptionValue builtIn="false" value="FADEOUT"/>
<listOptionValue builtIn="false" value="ATAL"/>
<listOptionValue builtIn="false" value="CLOCK_SYNC"/>
<listOptionValue builtIn="false" value="RM2_1"/>
<listOptionValue builtIn="false" value="STS_O6"/>