diff --git a/Core/Inc/sts_lamp_bar.h b/Core/Inc/sts_lamp_bar.h index ef44973..e77b08f 100644 --- a/Core/Inc/sts_lamp_bar.h +++ b/Core/Inc/sts_lamp_bar.h @@ -67,7 +67,7 @@ enum sts_oo_work_mode { STS_OTHER_MODE // ? OTHER MODE }; -#ifdef STS_O7 +#if defined(STS_O7)||defined(STS_O6) #define STS_Reed_Hall_State HALL1_STATE #define STS_Emergency_Button_State HALL2_STATE #else diff --git a/Core/Inc/sys_conf.h b/Core/Inc/sys_conf.h index 871fadc..58ce722 100644 --- a/Core/Inc/sys_conf.h +++ b/Core/Inc/sys_conf.h @@ -47,12 +47,12 @@ extern "C" { /** * @brief Verbose level for all trace logs */ -#define VERBOSE_LEVEL VLEVEL_M +#define VERBOSE_LEVEL VLEVEL_OFF /** * @brief Enable trace logs */ -#define APP_LOG_ENABLED 1 +#define APP_LOG_ENABLED 0 /** * @brief Activate monitoring (probes) of some internal RF signals for debug purpose @@ -75,7 +75,7 @@ extern "C" { * @brief Enable/Disable MCU Debugger pins (dbg serial wires) * @note by HW serial wires are ON by default, need to put them OFF to save power */ -#define DEBUGGER_ENABLED 1 +#define DEBUGGER_ENABLED 0 /** * @brief Disable Low Power mode diff --git a/Core/Inc/yunhorn_sts_prd_conf.h b/Core/Inc/yunhorn_sts_prd_conf.h index 25764dc..67925fd 100644 --- a/Core/Inc/yunhorn_sts_prd_conf.h +++ b/Core/Inc/yunhorn_sts_prd_conf.h @@ -221,7 +221,7 @@ #define MajorVer 24U #define MinorVer 06U -#define SubMinorVer 05U +#define SubMinorVer 07U #define FirmwareVersion 3U #define YUNHORN_STS_MAX_NVM_CFG_SIZE 64U @@ -247,8 +247,8 @@ #define sts_sendhtbtport (YUNHORN_STS_O6_LORA_APP_HTBT_PORT) #endif #ifdef STS_O7 -#define sts_senddataport (YUNHORN_STS_O7_LORA_APP_DATA_PORT) -#define sts_sendhtbtport (YUNHORN_STS_O7_LORA_APP_HTBT_PORT) +#define sts_senddataport (YUNHORN_STS_O6_LORA_APP_DATA_PORT) +#define sts_sendhtbtport (YUNHORN_STS_O6_LORA_APP_HTBT_PORT) #endif #if defined(STS_O6)||defined(STS_O7) #define sts_appctrlport (YUNHORN_STS_O7_USER_APP_CTRL_PORT) diff --git a/Core/Inc/yunhorn_sts_sensors.h b/Core/Inc/yunhorn_sts_sensors.h index a359533..718ef95 100644 --- a/Core/Inc/yunhorn_sts_sensors.h +++ b/Core/Inc/yunhorn_sts_sensors.h @@ -39,7 +39,7 @@ extern "C" { * Sensor data parameters */ -#if (defined(YUNHORN_STS_M7_ENABLED) || defined(YUNHORN_STS_O7_ENABLED)) +#if defined(STS_O7)||defined(STS_O6) enum cfg_cmd_order{ CFG_CMD1=0, //'Y' CFG_CMD2, //'D' 'Z' 'V' 'O' 'F' 'H' 'M' @@ -86,7 +86,7 @@ enum RSS_CFG_order{ #endif -#ifdef YUNHORN_STS_O7_ENABLED +#if defined(STS_O7)||defined(STS_O6) enum sts_rss_config_t { STS_RSS_CONFIG_DEFAULT=0, diff --git a/Core/Src/sts_lamp_bar.c b/Core/Src/sts_lamp_bar.c index da1d8ed..72c5dde 100644 --- a/Core/Src/sts_lamp_bar.c +++ b/Core/Src/sts_lamp_bar.c @@ -238,7 +238,6 @@ void STS_Combined_Status_Processing(void) 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 @@ -246,13 +245,11 @@ void STS_Combined_Status_Processing(void) 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; @@ -261,19 +258,47 @@ void STS_Combined_Status_Processing(void) 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; - 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 )) { sts_status_color = STS_RED; - sts_lamp_bar_color = STS_RED; -#if 0 // not for STS-O6 sensor switch(sts_fall_rising_detected_result) { + 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; + } + 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; + } + + switch(sts_fall_rising_detected_result) + { case STS_PRESENCE_LAYDOWN: sts_lamp_bar_color = STS_YELLOW; sts_status_color = STS_YELLOW; @@ -286,69 +311,15 @@ void STS_Combined_Status_Processing(void) sts_lamp_bar_color = STS_RED; sts_status_color = STS_RED; break; - } -#endif - if (sts_reed_hall_2_result == STS_Status_SOS_Pushdown ) - { - sts_status_color = STS_RED_BLUE; - sts_lamp_bar_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; - 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 )) - { - sts_status_color = STS_RED; - sts_lamp_bar_color = STS_RED; - } - - switch(sts_fall_rising_detected_result) - { - case STS_PRESENCE_NONE: - sts_lamp_bar_color = STS_GREEN; - sts_status_color = STS_GREEN; + default: + sts_lamp_bar_color = STS_RED; + sts_status_color = STS_RED; 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 ) { sts_status_color = STS_RED_BLUE; - sts_lamp_bar_color = STS_RED_BLUE; } break; @@ -410,6 +381,17 @@ void STS_Combined_Status_Processing(void) 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)) { sts_status_color = STS_DARK; @@ -417,11 +399,39 @@ void STS_Combined_Status_Processing(void) last_lamp_bar_color = STS_DARK; STS_Lamp_Bar_Set_Dark(); } + else + { -// sensor_data_ready = 1; + //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_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) diff --git a/Core/Src/yunhorn_sts_presence_rss.c b/Core/Src/yunhorn_sts_presence_rss.c index e101361..adbea64 100644 --- a/Core/Src/yunhorn_sts_presence_rss.c +++ b/Core/Src/yunhorn_sts_presence_rss.c @@ -466,7 +466,7 @@ int sts_presence_rss_fall_rise_detection(void) motion_count = 0; } } - } + } acc_integration_sleep_ms(1000 / DEFAULT_UPDATE_RATE_PRESENCE); // DEFAULT_UPDATE_RATE); } diff --git a/Core/Src/yunhorn_sts_process.c b/Core/Src/yunhorn_sts_process.c index 63ca460..ab237e9 100644 --- a/Core/Src/yunhorn_sts_process.c +++ b/Core/Src/yunhorn_sts_process.c @@ -38,7 +38,7 @@ /* USER CODE BEGIN Includes */ extern volatile sts_cfg_nvm_t sts_cfg_nvm; extern volatile uint8_t sts_ac_code[20]; -volatile uint8_t sts_service_mask=0; +volatile uint8_t sts_service_mask; volatile uint32_t rfac_timer; volatile uint8_t sensor_data_ready=0; @@ -88,7 +88,7 @@ volatile STS_R0_SensorDataTypeDef r4_data; #ifdef YUNHORN_STS_O5_ENABLED #endif -#ifdef STS_O7 +#if defined(STS_O7)||defined(STS_O6) extern volatile STS_OO_RSS_SensorTuneDataTypeDef sts_presence_rss_config; extern volatile distance_measure_cfg_t distance_cfg; @@ -724,7 +724,7 @@ uint8_t STS_SENSOR_MEMS_Get_ID(uint8_t *devID) { uint8_t scanned_id[2] = {0x0,0x0}; -#ifdef YUNHORN_STS_O7_ENABLED +#if defined(STS_O7)||defined(STS_O6) if (hal_test_spi_read_chipid(scanned_id)) { devID[0] = scanned_id[0]; diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index 7fd6d30..91bd937 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -125,7 +125,7 @@ volatile sts_cfg_nvm_t sts_cfg_nvm = { {0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0} }; -#ifdef YUNHORN_STS_O7_ENABLED +#if defined(STS_O6)||defined(STS_O7) extern volatile uint8_t sensor_data_ready; extern volatile STS_OO_SensorStatusDataTypeDef sts_o7_sensorData; extern volatile float sts_distance_rss_distance; @@ -449,7 +449,7 @@ static LmHandlerParams_t LmHandlerParams = /** * @brief Type of Event to generate application Tx */ -static TxEventType_t EventType = TX_ON_EVENT; +static TxEventType_t EventType = TX_ON_EVENT; //TX_ON_TIMER;//TX_ON_EVENT; /** * @brief Timer to handle the application Tx @@ -645,11 +645,11 @@ void LoRaWAN_Init(void) UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP8), UTIL_SEQ_RFU, STS_YunhornSTSEventP8_Process); #endif -#ifdef YUNHORN_STS_O7_ENABLED +#if defined(STS_O7)||defined(STS_O6) UTIL_TIMER_Create(&YunhornSTSRSSWakeUpTimer, YUNHORN_STS_RSS_WAKEUP_CHECK_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSOORSSWakeUpTimerEvent, NULL); - //UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer); + UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer); UTIL_TIMER_Create(&YunhornSTSHeartBeatTimer, YUNHORN_STS_HEART_BEAT_CHECK_TIME, @@ -672,11 +672,11 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { switch (GPIO_Pin) { -#ifdef STS_O7 +#if defined(STS_O6)||defined(STS_O7) case HALL1_Pin: if (sts_reed_hall_1_changed) { - HAL_Delay(450); //de-bouncing + HAL_Delay(250); //de-bouncing 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"); OnSensor1StateChanged(); @@ -684,24 +684,22 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) // if (EventType == TX_ON_EVENT) { //sensor_data_ready =1; - //UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), CFG_SEQ_Prio_0); - STS_YunhornSTSEventP1_Process(); + UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), 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; case HALL2_Pin: if (sts_reed_hall_2_changed) { - HAL_Delay(450); //de-bouncing + HAL_Delay(250); //de-bouncing 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"); OnSensor2StateChanged(); //sensor_data_ready =1; - //UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), CFG_SEQ_Prio_0); - STS_YunhornSTSEventP1_Process(); + UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), CFG_SEQ_Prio_0); UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); //sts_reed_hall_2_changed =0; } @@ -856,20 +854,25 @@ static void SendTxData(void) uint32_t i = 0; STS_PRESENCE_SENSOR_Prepare_Send_Data(&sensorData); + if (sts_work_mode == STS_DUAL_MODE) { AppData.Port = LORAWAN_USER_APP_PORT; + } else if (sts_work_mode == STS_UNI_MODE) { + + } + if ((heart_beat_timer != 0L)) // sensor data OVERWRITE heart-beat message, 2024-05-12 { heart_beat_timer=0; - AppData.Port = sts_sendhtbtport; //LORAWAN_USER_APP_PORT+1; - AppData.Buffer[i++]= AppLedStateOn|0x80; + AppData.Port = (uint8_t)sts_sendhtbtport; //LORAWAN_USER_APP_PORT+1; + AppData.Buffer[i++]= (uint8_t)(AppLedStateOn|0x80)&0x0ff; AppData.Buffer[i++] = (uint8_t)(99*batteryLevel/254)&0xff; //#05 } else if ((sensor_data_ready!= 0U)) //sensor_data_ready for manual push button-1 trigger) { sensor_data_ready =0; - AppData.Buffer[i++] = AppLedStateOn|0x80; //00 ************ MUST KEEP IT HERE, NON-ZERO ****** + AppData.Buffer[i++] = (uint8_t)(AppLedStateOn|0x80)&0xff; //00 ************ MUST KEEP IT HERE, NON-ZERO ****** AppData.Buffer[i++] = (uint8_t)(sensorData.lamp_bar_color)&0xff; //01 AppData.Buffer[i++] = (uint8_t)(sensorData.workmode)&0xff; //02 WORK MODE @@ -918,7 +921,7 @@ static void SendTxData(void) } } - AppData.BufferSize = (sts_service_mask > STS_SERVICE_MASK_L1? 0:i); + AppData.BufferSize = (uint8_t)(sts_service_mask > STS_SERVICE_MASK_L1? 0:i)&0xff;; if( IsClockSynched == false ) { @@ -950,14 +953,14 @@ static void SendTxData(void) status = LmHandlerSend(&AppData, LmHandlerParams.IsTxConfirmed, false); if (LORAMAC_HANDLER_SUCCESS == status) { - APP_LOG(TS_ON, VLEVEL_L, "SEND REQUEST\r\n"); + APP_LOG(TS_ON, VLEVEL_H, "SEND REQUEST\r\n"); } else if (LORAMAC_HANDLER_DUTYCYCLE_RESTRICTED == status) { nextTxIn = LmHandlerGetDutyCycleWaitTime(); if (nextTxIn > 0) { - APP_LOG(TS_ON, VLEVEL_L, "Next Tx in : ~%d second(s)\r\n", (nextTxIn / 1000)); + APP_LOG(TS_ON, VLEVEL_H, "Next Tx in : ~%d second(s)\r\n", (nextTxIn / 1000)); } } } @@ -1208,13 +1211,10 @@ 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); } - - 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); + + UTIL_TIMER_Start(&STSLampBarColorTimer); /* USER CODE END OnJoinRequest_1 */ } @@ -1470,9 +1470,7 @@ static void OnYunhornSTSOORSSWakeUpTimerEvent(void *context) { UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP2), CFG_SEQ_Prio_0); - 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)) + if ((STS_LoRa_WAN_Joined != 0)&&(sts_rss_result_changed_flag==1)) { sts_rss_result_changed_flag = 0; UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); @@ -1549,7 +1547,7 @@ static void OnYunhornSTSSamplingPeriodicityChanged(uint32_t periodicity) /* Update timer periodicity */ -#ifdef STS_O7 +#if defined(STS_O6)||defined(STS_O7) UTIL_TIMER_Stop(&YunhornSTSRSSWakeUpTimer); UTIL_TIMER_SetPeriod(&YunhornSTSRSSWakeUpTimer, SamplingPeriodicity); UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer); @@ -2436,7 +2434,7 @@ void STS_REBOOT_CONFIG_Init(void) UTIL_MEM_cpy_8(nvm_stored_value, (void *)STS_CONFIG_NVM_BASE_ADDRESS, YUNHORN_STS_MAX_NVM_CFG_SIZE); /* USER CODE BEGIN OnRestoreContextRequest_Last */ -#if (defined(STS_O7)||defined(STS_O5) || defined(STS_O6) || defined(STS_R0) || defined(STS_R5)|| defined(STS_R4)|| defined(STS_R1D)) +//#if (defined(STS_O7)||defined(STS_O5) || defined(STS_O6) || defined(STS_R0) || defined(STS_R5)|| defined(STS_R4)|| defined(STS_R1D)) 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"); @@ -2479,7 +2477,7 @@ void STS_REBOOT_CONFIG_Init(void) sts_cfg_nvm.ac[j] = (uint8_t)nvm_stored_value[NVM_AC_CODE_START +j]; } } -#endif +//#endif OnRestoreSTSCFGContextProcess(); @@ -2556,7 +2554,7 @@ void OnRestoreSTSCFGContextProcess(void) } -#ifdef YUNHORN_STS_O7_ENABLED +#if defined(STS_O7)||defined(STS_O6) if ((sts_version == sts_cfg_nvm.version)&& (NVM_CFG_PARAMETER_SIZE == sts_cfg_nvm.length)) { STS_PRESENCE_SENSOR_Init();