From d79e49c60a0f1403889723dcd6d42e4be7cce0bc Mon Sep 17 00:00:00 2001 From: YunHorn Technology Date: Mon, 4 Nov 2024 16:22:47 +0800 Subject: [PATCH] workable STS-T6 with O1L support --- Core/Inc/main.h | 22 ++++ Core/Inc/stm32wlxx_hal_conf.h | 2 +- Core/Inc/utilities_def.h | 2 + Core/Src/dma.c | 5 + Core/Src/main.c | 4 + Core/Src/stm32wlxx_it.c | 21 ++++ Core/Src/sys_app.c | 3 + LoRaWAN/App/lora_app.c | 46 ++++++-- STM32CubeIDE/.project | 10 ++ .../Release/Application/User/Core/subdir.mk | 12 ++- STM32CubeIDE/Release/WLE5CC_NODE_STS.elf | Bin 159304 -> 166612 bytes .../Release/WLE5CC_NODE_STS_T6_20241104.elf | Bin 159304 -> 166612 bytes STS/Core/Inc/yunhorn_sts_prd_conf.h | 5 +- STS/Core/Src/yunhorn_sts_process.c | 7 +- STS/TOF/App/app_tof_peoplecount.c | 15 ++- STS/TOF/App/app_tof_peoplecount.h | 1 + hk_as923_decoder.js | 101 +++++++++++++++--- 17 files changed, 227 insertions(+), 29 deletions(-) diff --git a/Core/Inc/main.h b/Core/Inc/main.h index 4abdacf..751a611 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -323,6 +323,28 @@ void Error_Handler(void); #endif +#if defined(O1L) +/* + * STM32WL55, STM32WLE5 Clock=48Mhz 48,000,000/800khz = 60 + */ +#define STS_LAMP_BAR_PWM_TIM_PERIOD (240 - 1) +#define STS_LAMP_BAR_HTIM htim1 +#define STS_LAMP_BAR_LED_NUM (60) //60 for 46CM length LED strip + +#define WSDATA_PORT_PIN_PA8 +//#define WSDATA_PORT_PIN_PA9 + +#ifdef WSDATA_PORT_PIN_PA8 +#define STS_LAMP_BAR_TIM_CHANNEL TIM_CHANNEL_1 +#define STS_LAMP_BAR_WSDATA_PIN GPIO_PIN_8 +#define STS_LAMP_BAR_WSDATA_PORT GPIOA +#elif defined(WSDATA_PORT_PIN_PA9) +#define STS_LAMP_BAR_TIM_CHANNEL TIM_CHANNEL_2 +#define STS_LAMP_BAR_WSDATA_PIN GPIO_PIN_9 +#define STS_LAMP_BAR_WSDATA_PORT GPIOA +#endif +#endif + /* USER CODE END Private defines */ #ifdef __cplusplus diff --git a/Core/Inc/stm32wlxx_hal_conf.h b/Core/Inc/stm32wlxx_hal_conf.h index bae70e9..660926c 100644 --- a/Core/Inc/stm32wlxx_hal_conf.h +++ b/Core/Inc/stm32wlxx_hal_conf.h @@ -54,7 +54,7 @@ /*#define HAL_SMBUS_MODULE_ENABLED */ /*#define HAL_SPI_MODULE_ENABLED */ #define HAL_SUBGHZ_MODULE_ENABLED -/*#define HAL_TIM_MODULE_ENABLED */ +#define HAL_TIM_MODULE_ENABLED #define HAL_UART_MODULE_ENABLED /*#define HAL_USART_MODULE_ENABLED */ /*#define HAL_WWDG_MODULE_ENABLED */ diff --git a/Core/Inc/utilities_def.h b/Core/Inc/utilities_def.h index 22653b4..35411f6 100644 --- a/Core/Inc/utilities_def.h +++ b/Core/Inc/utilities_def.h @@ -87,6 +87,8 @@ typedef enum #endif #if defined(STS_O6) CFG_SEQ_Task_YunhornSTSEventP2, /* MOTION */ +#endif +#if (defined(STS_T6)||defined(STS_O6)||defined(STS_O7)) CFG_SEQ_Task_YunhornSTSEventP3, /* LAMP BAR LED */ #endif #if defined(STS_R1)||defined(STS_R1D)||defined(STS_R5)||defined(STS_R2) diff --git a/Core/Src/dma.c b/Core/Src/dma.c index 0aad753..de0dc82 100644 --- a/Core/Src/dma.c +++ b/Core/Src/dma.c @@ -45,6 +45,11 @@ void MX_DMA_Init(void) /* DMA interrupt init */ + /* TIM1_CH1 */ + /* DMA1_Channel1_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel1_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn); + // I2C2 #if 0 #if defined(VL53LX)||defined(VL53L0) diff --git a/Core/Src/main.c b/Core/Src/main.c index 390eb02..ed857e0 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -27,6 +27,7 @@ #include "dma.h" #include "usart.h" #include "sys_app.h" +#include "tim.h" #ifdef STS_P2 #include "app_tof.h" #include "app_tof_peoplecount.h" @@ -112,6 +113,9 @@ int main(void) { MX_I2C2_Init(); MX_DMA_Init(); +#if defined(STS_T6) + MX_TIM1_Init(); +#endif MX_LoRaWAN_Init(); } //PME_ON; diff --git a/Core/Src/stm32wlxx_it.c b/Core/Src/stm32wlxx_it.c index a07d0f9..110506c 100644 --- a/Core/Src/stm32wlxx_it.c +++ b/Core/Src/stm32wlxx_it.c @@ -66,6 +66,9 @@ extern DMA_HandleTypeDef hdma_i2c2_tx; extern DMA_HandleTypeDef hdma_usart2_tx; extern DMA_HandleTypeDef hdma_usart2_rx; +extern DMA_HandleTypeDef hdma_tim1_ch2; +extern DMA_HandleTypeDef hdma_tim1_ch1; + /* USER CODE END EV */ /******************************************************************************/ @@ -281,6 +284,24 @@ void EXTI4_IRQHandler(void) /* USER CODE END EXTI1_IRQn 1 */ } + +/** + * @brief This function handles DMA1 Channel 1 Interrupt. + */ +void DMA1_Channel1_IRQHandler(void) +{ + /* USER CODE BEGIN DMA1_Channel1_IRQn 0 */ + + /* USER CODE END DMA1_Channel1_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_tim1_ch1); + + //HAL_DMA_IRQHandler(&hdma_tim1_ch2); + + /* USER CODE BEGIN DMA1_Channel1_IRQn 1 */ + + /* USER CODE END DMA1_Channel1_IRQn 1 */ +} + /* SPI1 */ /** * @brief This function handles DMA1 Channel 2 Interrupt. diff --git a/Core/Src/sys_app.c b/Core/Src/sys_app.c index 4a1eeab..64cf9ae 100644 --- a/Core/Src/sys_app.c +++ b/Core/Src/sys_app.c @@ -34,6 +34,7 @@ /* USER CODE BEGIN Includes */ #if defined(STS_P2)||defined(STS_T6) #include "app_tof_peoplecount.h" +#include "sts_lamp_bar.h" #endif //#ifdef L8 #include "app_tof.h" @@ -133,6 +134,8 @@ void SystemApp_Init(void) #endif #if defined(STS_T6) STS_TOF_VL53LX_PresenceDetection_Process_Init(); + //STS_Lamp_Bar_Self_Test_Simple(); + STS_Lamp_Bar_Self_Test(); #endif /*Init low power manager*/ diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index 90ec24d..ca02418 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -40,12 +40,17 @@ #include "app_tof_peoplecount.h" #include "yunhorn_sts_prd_conf.h" #include "yunhorn_sts_sensors.h" +#if defined(STS_O6)||defined(STS_T6)||defined(O1L) +#include "sts_lamp_bar.h" +#endif /* USER CODE END Includes */ /* External variables ---------------------------------------------------------*/ /* USER CODE BEGIN EV */ uint8_t outbuf[128]={0x0}; extern volatile uint8_t sts_ac_code[20], sts_service_mask; +extern volatile uint8_t sts_work_mode, sts_cloud_netcolor, sts_lamp_bar_color, sts_status_color, luminance_level; +volatile static bool r_b=true; extern volatile sts_cfg_nvm_t sts_cfg_nvm; extern volatile uint32_t rfac_timer; extern volatile uint32_t STS_TOFScanPeriod_msec, STS_TxPeriod_sec, STS_HeartBeatTimerPeriod_sec; @@ -365,7 +370,12 @@ static UTIL_TIMER_Object_t YunhornSTSHeartBeatTimer; /** * @brief Timer to handle the application Lamp Bar LED Timer refresh */ -static UTIL_TIMER_Object_t YunhornSTSLampBarColorTimer; +static UTIL_TIMER_Object_t STSLampBarColorTimer; + +/** + * @brief Timer to handle the application Duration check Timer + */ +static UTIL_TIMER_Object_t STSDurationCheckTimer; /** * @brief Tx Timer period @@ -462,6 +472,8 @@ void LoRaWAN_Init(void) UTIL_TIMER_Create(&TxLedTimer, LED_PERIOD_TIME, UTIL_TIMER_ONESHOT, OnTxTimerLedEvent, NULL); UTIL_TIMER_Create(&RxLedTimer, LED_PERIOD_TIME, UTIL_TIMER_ONESHOT, OnRxTimerLedEvent, NULL); UTIL_TIMER_Create(&JoinLedTimer, LED_PERIOD_TIME, UTIL_TIMER_PERIODIC, OnJoinTimerLedEvent, NULL); + UTIL_TIMER_Create(&STSLampBarColorTimer, LED_PERIOD_TIME, UTIL_TIMER_ONESHOT, OnYunhornSTSLampBarColorTimerEvent, NULL); + UTIL_TIMER_Create(&STSDurationCheckTimer, 20*LED_PERIOD_TIME, UTIL_TIMER_PERIODIC, OnYunhornSTSDurationCheckTimerEvent, NULL); if (FLASH_IF_Init(NULL) != FLASH_IF_OK) { @@ -522,6 +534,9 @@ void LoRaWAN_Init(void) #endif +#if defined(STS_T6)||defined(STS_O6) + UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP3), UTIL_SEQ_RFU, STS_YunhornSTSEventP3_Process); +#endif #if defined(STS_P2)||defined(STS_T6)||defined(L8) @@ -540,6 +555,9 @@ void LoRaWAN_Init(void) #if defined(STS_T6)||defined(L8) UTIL_TIMER_Create(&YunhornSTSWakeUpScanTimer, STS_TOFScanPeriod_msec, UTIL_TIMER_PERIODIC, (void*)OnYunhornSTSWakeUpScanTimerEvent, NULL); UTIL_TIMER_Start(&YunhornSTSWakeUpScanTimer); + + UTIL_TIMER_Start(&STSLampBarColorTimer); + #elif defined(STS_P2) UTIL_TIMER_Create(&YunhornSTSWakeUpScanTimer, STS_TOFScanPeriod_msec, UTIL_TIMER_PERIODIC, (void*)STS_TOF_VL53LX_PeopleCounting_Process_Start, NULL); UTIL_TIMER_Start(&YunhornSTSWakeUpScanTimer); @@ -1459,10 +1477,24 @@ static void OnRestoreContextRequest(void *nvm, uint32_t nvm_size) */ static void OnYunhornSTSLampBarColorTimerEvent(void *context) { -#ifdef STS_O6 - UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP3), CFG_SEQ_Prio_0); + uint8_t high4=(sts_lamp_bar_color>>4)&0x0f, low4=sts_lamp_bar_color&0x0f; +#if defined(STS_O6)||defined(STS_T6) //||defined(O1L) + //UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP3), CFG_SEQ_Prio_0); - UTIL_TIMER_Start(&YunhornSTSLampBarColorTimer); + UTIL_TIMER_Stop(&STSLampBarColorTimer); + + 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; + } + + + UTIL_TIMER_Start(&STSLampBarColorTimer); #endif } @@ -1481,15 +1513,13 @@ static void OnYunhornSTSDurationCheckTimerEvent(void *context) * @brief Yunhorn STS Occupancy RSS WakeUP timer callback function * @param context ptr of STS RSS WakeUp context */ - +#ifdef STS_O6 static void OnYunhornSTSOORSSWakeUpTimerEvent(void *context) { -#ifdef STS_O6 -#endif } - +#endif /** * @brief Yunhorn STS Heart beat timer callback function * @param context ptr of context diff --git a/STM32CubeIDE/.project b/STM32CubeIDE/.project index d7be60c..7c66716 100644 --- a/STM32CubeIDE/.project +++ b/STM32CubeIDE/.project @@ -447,6 +447,11 @@ 1 PARENT-1-PROJECT_LOC/Core/Src/stm32wlxx_nucleo_bus.c + + Application/User/Core/sts_lamp_bar.c + 1 + copy_PARENT/Core/Src/sts_lamp_bar.c + Application/User/Core/subghz.c 1 @@ -467,6 +472,11 @@ 1 copy_PARENT/Core/Src/sys_sensors.c + + Application/User/Core/tim.c + 1 + copy_PARENT/Core/Src/tim.c + Application/User/Core/timer_if.c 1 diff --git a/STM32CubeIDE/Release/Application/User/Core/subdir.mk b/STM32CubeIDE/Release/Application/User/Core/subdir.mk index 00ec633..05ebf4f 100644 --- a/STM32CubeIDE/Release/Application/User/Core/subdir.mk +++ b/STM32CubeIDE/Release/Application/User/Core/subdir.mk @@ -17,12 +17,14 @@ D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_S D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_hal_msp.c \ D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_it.c \ D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_nucleo_bus.c \ +D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sts_lamp_bar.c \ D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/subghz.c \ D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_app.c \ D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_debug.c \ D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_sensors.c \ ../Application/User/Core/syscalls.c \ ../Application/User/Core/sysmem.c \ +D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/tim.c \ D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/timer_if.c \ D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart.c \ D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart_if.c @@ -40,12 +42,14 @@ OBJS += \ ./Application/User/Core/stm32wlxx_hal_msp.o \ ./Application/User/Core/stm32wlxx_it.o \ ./Application/User/Core/stm32wlxx_nucleo_bus.o \ +./Application/User/Core/sts_lamp_bar.o \ ./Application/User/Core/subghz.o \ ./Application/User/Core/sys_app.o \ ./Application/User/Core/sys_debug.o \ ./Application/User/Core/sys_sensors.o \ ./Application/User/Core/syscalls.o \ ./Application/User/Core/sysmem.o \ +./Application/User/Core/tim.o \ ./Application/User/Core/timer_if.o \ ./Application/User/Core/usart.o \ ./Application/User/Core/usart_if.o @@ -63,12 +67,14 @@ C_DEPS += \ ./Application/User/Core/stm32wlxx_hal_msp.d \ ./Application/User/Core/stm32wlxx_it.d \ ./Application/User/Core/stm32wlxx_nucleo_bus.d \ +./Application/User/Core/sts_lamp_bar.d \ ./Application/User/Core/subghz.d \ ./Application/User/Core/sys_app.d \ ./Application/User/Core/sys_debug.d \ ./Application/User/Core/sys_sensors.d \ ./Application/User/Core/syscalls.d \ ./Application/User/Core/sysmem.d \ +./Application/User/Core/tim.d \ ./Application/User/Core/timer_if.d \ ./Application/User/Core/usart.d \ ./Application/User/Core/usart_if.d @@ -99,6 +105,8 @@ Application/User/Core/stm32wlxx_it.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL5 arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -I../../../../../../../Drivers/BSP/Components/vl53l8cx/porting -I../../../../../../../Drivers/BSP/Components/Common -I../../../../../../../Drivers/BSP/53L8A1 -I../../../../../../../Drivers/BSP/Components/vl53l8cx/modules -I../../../../../../../Drivers/BSP/Components/vl53l8cx -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Application/User/Core/stm32wlxx_nucleo_bus.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_nucleo_bus.c Application/User/Core/subdir.mk arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -I../../../../../../../Drivers/BSP/Components/vl53l8cx/porting -I../../../../../../../Drivers/BSP/Components/Common -I../../../../../../../Drivers/BSP/53L8A1 -I../../../../../../../Drivers/BSP/Components/vl53l8cx/modules -I../../../../../../../Drivers/BSP/Components/vl53l8cx -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" +Application/User/Core/sts_lamp_bar.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sts_lamp_bar.c Application/User/Core/subdir.mk + arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -I../../../../../../../Drivers/BSP/Components/vl53l8cx/porting -I../../../../../../../Drivers/BSP/Components/Common -I../../../../../../../Drivers/BSP/53L8A1 -I../../../../../../../Drivers/BSP/Components/vl53l8cx/modules -I../../../../../../../Drivers/BSP/Components/vl53l8cx -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Application/User/Core/subghz.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/subghz.c Application/User/Core/subdir.mk arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -I../../../../../../../Drivers/BSP/Components/vl53l8cx/porting -I../../../../../../../Drivers/BSP/Components/Common -I../../../../../../../Drivers/BSP/53L8A1 -I../../../../../../../Drivers/BSP/Components/vl53l8cx/modules -I../../../../../../../Drivers/BSP/Components/vl53l8cx -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Application/User/Core/sys_app.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_app.c Application/User/Core/subdir.mk @@ -109,6 +117,8 @@ Application/User/Core/sys_sensors.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55 arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -I../../../../../../../Drivers/BSP/Components/vl53l8cx/porting -I../../../../../../../Drivers/BSP/Components/Common -I../../../../../../../Drivers/BSP/53L8A1 -I../../../../../../../Drivers/BSP/Components/vl53l8cx/modules -I../../../../../../../Drivers/BSP/Components/vl53l8cx -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Application/User/Core/%.o Application/User/Core/%.su Application/User/Core/%.cyclo: ../Application/User/Core/%.c Application/User/Core/subdir.mk arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -I../../../../../../../Drivers/BSP/Components/vl53l8cx/porting -I../../../../../../../Drivers/BSP/Components/Common -I../../../../../../../Drivers/BSP/53L8A1 -I../../../../../../../Drivers/BSP/Components/vl53l8cx/modules -I../../../../../../../Drivers/BSP/Components/vl53l8cx -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" +Application/User/Core/tim.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/tim.c Application/User/Core/subdir.mk + arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -I../../../../../../../Drivers/BSP/Components/vl53l8cx/porting -I../../../../../../../Drivers/BSP/Components/Common -I../../../../../../../Drivers/BSP/53L8A1 -I../../../../../../../Drivers/BSP/Components/vl53l8cx/modules -I../../../../../../../Drivers/BSP/Components/vl53l8cx -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Application/User/Core/timer_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/timer_if.c Application/User/Core/subdir.mk arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -I../../../../../../../Drivers/BSP/Components/vl53l8cx/porting -I../../../../../../../Drivers/BSP/Components/Common -I../../../../../../../Drivers/BSP/53L8A1 -I../../../../../../../Drivers/BSP/Components/vl53l8cx/modules -I../../../../../../../Drivers/BSP/Components/vl53l8cx -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@" Application/User/Core/usart.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart.c Application/User/Core/subdir.mk @@ -119,7 +129,7 @@ Application/User/Core/usart_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/ clean: clean-Application-2f-User-2f-Core clean-Application-2f-User-2f-Core: - -$(RM) ./Application/User/Core/adc.cyclo ./Application/User/Core/adc.d ./Application/User/Core/adc.o ./Application/User/Core/adc.su ./Application/User/Core/adc_if.cyclo ./Application/User/Core/adc_if.d ./Application/User/Core/adc_if.o ./Application/User/Core/adc_if.su ./Application/User/Core/dma.cyclo ./Application/User/Core/dma.d ./Application/User/Core/dma.o ./Application/User/Core/dma.su ./Application/User/Core/flash_if.cyclo ./Application/User/Core/flash_if.d ./Application/User/Core/flash_if.o ./Application/User/Core/flash_if.su ./Application/User/Core/gpio.cyclo ./Application/User/Core/gpio.d ./Application/User/Core/gpio.o ./Application/User/Core/gpio.su ./Application/User/Core/i2c.cyclo ./Application/User/Core/i2c.d ./Application/User/Core/i2c.o ./Application/User/Core/i2c.su ./Application/User/Core/main.cyclo ./Application/User/Core/main.d ./Application/User/Core/main.o ./Application/User/Core/main.su ./Application/User/Core/rtc.cyclo ./Application/User/Core/rtc.d ./Application/User/Core/rtc.o ./Application/User/Core/rtc.su ./Application/User/Core/stm32_lpm_if.cyclo ./Application/User/Core/stm32_lpm_if.d ./Application/User/Core/stm32_lpm_if.o ./Application/User/Core/stm32_lpm_if.su ./Application/User/Core/stm32wlxx_hal_msp.cyclo ./Application/User/Core/stm32wlxx_hal_msp.d ./Application/User/Core/stm32wlxx_hal_msp.o ./Application/User/Core/stm32wlxx_hal_msp.su ./Application/User/Core/stm32wlxx_it.cyclo ./Application/User/Core/stm32wlxx_it.d ./Application/User/Core/stm32wlxx_it.o ./Application/User/Core/stm32wlxx_it.su ./Application/User/Core/stm32wlxx_nucleo_bus.cyclo ./Application/User/Core/stm32wlxx_nucleo_bus.d ./Application/User/Core/stm32wlxx_nucleo_bus.o ./Application/User/Core/stm32wlxx_nucleo_bus.su ./Application/User/Core/subghz.cyclo ./Application/User/Core/subghz.d ./Application/User/Core/subghz.o ./Application/User/Core/subghz.su ./Application/User/Core/sys_app.cyclo ./Application/User/Core/sys_app.d ./Application/User/Core/sys_app.o ./Application/User/Core/sys_app.su ./Application/User/Core/sys_debug.cyclo ./Application/User/Core/sys_debug.d ./Application/User/Core/sys_debug.o ./Application/User/Core/sys_debug.su ./Application/User/Core/sys_sensors.cyclo ./Application/User/Core/sys_sensors.d ./Application/User/Core/sys_sensors.o ./Application/User/Core/sys_sensors.su ./Application/User/Core/syscalls.cyclo ./Application/User/Core/syscalls.d ./Application/User/Core/syscalls.o ./Application/User/Core/syscalls.su ./Application/User/Core/sysmem.cyclo ./Application/User/Core/sysmem.d ./Application/User/Core/sysmem.o ./Application/User/Core/sysmem.su ./Application/User/Core/timer_if.cyclo ./Application/User/Core/timer_if.d ./Application/User/Core/timer_if.o ./Application/User/Core/timer_if.su ./Application/User/Core/usart.cyclo ./Application/User/Core/usart.d ./Application/User/Core/usart.o ./Application/User/Core/usart.su ./Application/User/Core/usart_if.cyclo ./Application/User/Core/usart_if.d ./Application/User/Core/usart_if.o ./Application/User/Core/usart_if.su + -$(RM) ./Application/User/Core/adc.cyclo ./Application/User/Core/adc.d ./Application/User/Core/adc.o ./Application/User/Core/adc.su ./Application/User/Core/adc_if.cyclo ./Application/User/Core/adc_if.d ./Application/User/Core/adc_if.o ./Application/User/Core/adc_if.su ./Application/User/Core/dma.cyclo ./Application/User/Core/dma.d ./Application/User/Core/dma.o ./Application/User/Core/dma.su ./Application/User/Core/flash_if.cyclo ./Application/User/Core/flash_if.d ./Application/User/Core/flash_if.o ./Application/User/Core/flash_if.su ./Application/User/Core/gpio.cyclo ./Application/User/Core/gpio.d ./Application/User/Core/gpio.o ./Application/User/Core/gpio.su ./Application/User/Core/i2c.cyclo ./Application/User/Core/i2c.d ./Application/User/Core/i2c.o ./Application/User/Core/i2c.su ./Application/User/Core/main.cyclo ./Application/User/Core/main.d ./Application/User/Core/main.o ./Application/User/Core/main.su ./Application/User/Core/rtc.cyclo ./Application/User/Core/rtc.d ./Application/User/Core/rtc.o ./Application/User/Core/rtc.su ./Application/User/Core/stm32_lpm_if.cyclo ./Application/User/Core/stm32_lpm_if.d ./Application/User/Core/stm32_lpm_if.o ./Application/User/Core/stm32_lpm_if.su ./Application/User/Core/stm32wlxx_hal_msp.cyclo ./Application/User/Core/stm32wlxx_hal_msp.d ./Application/User/Core/stm32wlxx_hal_msp.o ./Application/User/Core/stm32wlxx_hal_msp.su ./Application/User/Core/stm32wlxx_it.cyclo ./Application/User/Core/stm32wlxx_it.d ./Application/User/Core/stm32wlxx_it.o ./Application/User/Core/stm32wlxx_it.su ./Application/User/Core/stm32wlxx_nucleo_bus.cyclo ./Application/User/Core/stm32wlxx_nucleo_bus.d ./Application/User/Core/stm32wlxx_nucleo_bus.o ./Application/User/Core/stm32wlxx_nucleo_bus.su ./Application/User/Core/sts_lamp_bar.cyclo ./Application/User/Core/sts_lamp_bar.d ./Application/User/Core/sts_lamp_bar.o ./Application/User/Core/sts_lamp_bar.su ./Application/User/Core/subghz.cyclo ./Application/User/Core/subghz.d ./Application/User/Core/subghz.o ./Application/User/Core/subghz.su ./Application/User/Core/sys_app.cyclo ./Application/User/Core/sys_app.d ./Application/User/Core/sys_app.o ./Application/User/Core/sys_app.su ./Application/User/Core/sys_debug.cyclo ./Application/User/Core/sys_debug.d ./Application/User/Core/sys_debug.o ./Application/User/Core/sys_debug.su ./Application/User/Core/sys_sensors.cyclo ./Application/User/Core/sys_sensors.d ./Application/User/Core/sys_sensors.o ./Application/User/Core/sys_sensors.su ./Application/User/Core/syscalls.cyclo ./Application/User/Core/syscalls.d ./Application/User/Core/syscalls.o ./Application/User/Core/syscalls.su ./Application/User/Core/sysmem.cyclo ./Application/User/Core/sysmem.d ./Application/User/Core/sysmem.o ./Application/User/Core/sysmem.su ./Application/User/Core/tim.cyclo ./Application/User/Core/tim.d ./Application/User/Core/tim.o ./Application/User/Core/tim.su ./Application/User/Core/timer_if.cyclo ./Application/User/Core/timer_if.d ./Application/User/Core/timer_if.o ./Application/User/Core/timer_if.su ./Application/User/Core/usart.cyclo ./Application/User/Core/usart.d ./Application/User/Core/usart.o ./Application/User/Core/usart.su ./Application/User/Core/usart_if.cyclo ./Application/User/Core/usart_if.d ./Application/User/Core/usart_if.o ./Application/User/Core/usart_if.su .PHONY: clean-Application-2f-User-2f-Core diff --git a/STM32CubeIDE/Release/WLE5CC_NODE_STS.elf b/STM32CubeIDE/Release/WLE5CC_NODE_STS.elf index 5fe6104644891601d2e36fa19d063efec1584bb5..d89f2a8ccaa86173b602f9cf09bc17b1282c27be 100644 GIT binary patch delta 63282 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 diff --git a/STM32CubeIDE/Release/WLE5CC_NODE_STS_T6_20241104.elf b/STM32CubeIDE/Release/WLE5CC_NODE_STS_T6_20241104.elf index 5fe6104644891601d2e36fa19d063efec1584bb5..d89f2a8ccaa86173b602f9cf09bc17b1282c27be 100644 GIT binary patch delta 63282 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 diff --git a/STS/Core/Inc/yunhorn_sts_prd_conf.h b/STS/Core/Inc/yunhorn_sts_prd_conf.h index 4329917..9dfc9d2 100644 --- a/STS/Core/Inc/yunhorn_sts_prd_conf.h +++ b/STS/Core/Inc/yunhorn_sts_prd_conf.h @@ -56,6 +56,7 @@ #define YUNHORN_STS_O6T_ENABLED 1U #elif defined(STS_T6) /* STS_O6T for occupancy sensor via ToF */ #define YUNHORN_STS_T6_ENABLED 1U +#define O1L #elif defined(STS_R4) /* STS_O6T for occupancy sensor via ToF */ #define YUNHORN_STS_R4_ENABLED 1U #elif defined(L8) @@ -253,7 +254,7 @@ #define STS_Status_Door_Close (0) //Normal Close NC:Open #define STS_Status_Door_Open (1) //Normal Close NC:Close #define STS_Reed_Hall_State HAL_GPIO_ReadPin(BUT1_GPIO_Port, BUT1_Pin) - +/* enum sts_lamp_color { STS_DARK = 0, //灭:0 STS_GREEN, //绿:1 0 1 0 @@ -282,7 +283,7 @@ enum sts_lamp_color { STS_OTHER_MODE // ? OTHER MODE }; - +*/ #ifdef YUNHORN_STS_O6_ENABLED #define STS_O6_NVM_CFG_SIZE 30U diff --git a/STS/Core/Src/yunhorn_sts_process.c b/STS/Core/Src/yunhorn_sts_process.c index 0918097..0d6bcc7 100644 --- a/STS/Core/Src/yunhorn_sts_process.c +++ b/STS/Core/Src/yunhorn_sts_process.c @@ -47,6 +47,7 @@ #if defined(STS_P2)||defined(STS_T6) #include "app_tof.h" #include "app_tof_peoplecount.h" +#include "sts_lamp_bar.h" extern volatile sts_people_count_sensor_data_t *sts_people_count_sensor_data; extern volatile uint8_t sts_door_jam_profile; extern volatile uint8_t sts_tof_presence_state_changed; @@ -54,6 +55,10 @@ extern volatile sts_ppc_cfg_type_t ppc_cfg[]; #elif defined(L8) #include "app_tof.h" #endif +#if defined(STS_O6)||defined(STS_T6)||defined(STS_O7) +extern volatile uint8_t sts_status_color, sts_lamp_bar_color;//puColor +extern uint8_t luminance_level; +#endif volatile sts_cfg_nvm_t sts_cfg_nvm = { sts_mtmcode1, sts_mtmcode2, @@ -404,7 +409,7 @@ void STS_RSS_Smart_Presence_Detection(void) */ void STS_YunhornSTSEventP3_Process(void) { -#if (defined(YUNHORN_STS_O6_ENABLED) && defined(USE_ACCONEER_A111)) +#if (defined(STS_O6) ||defined(STS_O7)||defined(STS_T6)) if (STS_Reed_Hall_State == STS_Status_Door_Open) { sts_lamp_bar_color =STS_GREEN; diff --git a/STS/TOF/App/app_tof_peoplecount.c b/STS/TOF/App/app_tof_peoplecount.c index 8dc8915..e7b8503 100644 --- a/STS/TOF/App/app_tof_peoplecount.c +++ b/STS/TOF/App/app_tof_peoplecount.c @@ -11,6 +11,7 @@ #include "VL53L1X_API.h" #include "VL53l1X_calibration.h" #include "X-NUCLEO-53L1A1.h" +#include "sts_lamp_bar.h" #endif #include "app_tof.h" /* USER CODE END Includes */ @@ -22,8 +23,8 @@ volatile sts_people_count_sensor_data_t sts_people_count_sensor_data={0,0,0,2,'M extern volatile uint32_t STS_TOFScanPeriod_sec, STS_TxPeriod_sec, STS_HeartBeatTimerPeriod_sec; extern volatile sts_cfg_nvm_t sts_cfg_nvm; extern volatile uint8_t nvm_store_value[]; -volatile uint8_t sts_tof_presence_state=0, sts_tof_presence_state_changed=0; - +volatile uint8_t sts_tof_presence_state=0, sts_tof_presence_state_changed=0, sts_tof_presence_distance_dm=0; +extern volatile uint8_t sts_lamp_bar_color; /* TIMING_BUDGET, in ms possible values [15, 20, 50, 100, 200, 500] */ /* DISTANCE_THRESHOLD = MAX - ASSUME_CHILD_HEIGHT(800mm) */ @@ -73,7 +74,9 @@ static int PeopleCount = 0; static uint16_t Distances[2][DISTANCES_ARRAY_SIZE]; static uint8_t DistancesTableSize[2] = {0,0}; +#if defined(STS_P2) static int ProcessPeopleCountingData(int16_t Distance, uint8_t zone, uint8_t RangeStatus); +#endif /* Private function prototypes -----------------------------------------------*/ /* USER CODE BEGIN PFP */ /* Private function prototypes -----------------------------------------------*/ @@ -427,6 +430,7 @@ int ProcessPeopleCountingData(int16_t Distance, uint8_t zone, uint8_t RangeStatu void STS_tof_presence_detection_sensor_Read(sts_tof_presence_detection_sensor_data_t *sts_t6_sensor_data) { sts_t6_sensor_data->tof_range_presence_state = sts_tof_presence_state; + sts_t6_sensor_data->tof_presence_distance_dm = sts_tof_presence_distance_dm; } #if (defined(STS_P2)) @@ -653,6 +657,12 @@ void STS_TOF_VL53LX_PresenceDetection_Process_Start(void) //APP_LOG(TS_OFF, VLEVEL_M,"############### TOF VL53LX_ PRESENCE DETECTION SUB-PROCESS \r\n"); { status = sts_tof_vl53lx_presence_detection_start(); + if (sts_tof_presence_state ==1) + { + sts_lamp_bar_color = STS_RED; + } else if (sts_tof_presence_state ==0) { + sts_lamp_bar_color = STS_GREEN; + } sts_people_count_sensor_data.Count_Valid = (status ==0)? 1:0; //APP_LOG(TS_OFF, VLEVEL_M,"############### SUB-PROCESS running .... \r\n"); } @@ -819,6 +829,7 @@ int sts_tof_vl53lx_presence_detection_start(void) sts_tof_presence_state = PresenceState; PrevPresenceState = PresenceState; sts_tof_presence_state_changed = 1; + sts_tof_presence_distance_dm = (uint8_t)(Distance/100); // change to dm=10cm=100mm APP_LOG(TS_OFF, VLEVEL_M,"\r\n Presence Detected =%d\r\n", sts_tof_presence_state); } diff --git a/STS/TOF/App/app_tof_peoplecount.h b/STS/TOF/App/app_tof_peoplecount.h index 090e5e2..194e933 100644 --- a/STS/TOF/App/app_tof_peoplecount.h +++ b/STS/TOF/App/app_tof_peoplecount.h @@ -159,6 +159,7 @@ uint8_t tof_range_presence_state; // 1: presence, 0: no presence uint8_t gesture_multi_state; // 0: push, 1: swing left, 2: swing right uint8_t tof_motion_presence_state; + uint8_t tof_presence_distance_dm; // dm= 100mm = 10 cm uint8_t measure_window_threshold_low_dm; // dm= 100mm = 10 cm, low = 0 dm uint8_t measure_window_threshold_high_dm; // dm= 100mm = 10 cm, high=40dm uint8_t measure_critiera; // below, 0, in window 1, above 2 diff --git a/hk_as923_decoder.js b/hk_as923_decoder.js index 14448d9..3467a07 100644 --- a/hk_as923_decoder.js +++ b/hk_as923_decoder.js @@ -4,7 +4,7 @@ // - variables contains the device variables e.g. {"calibration": "3.5"} (both the key / value are of type string) // The function must return an object, e.g. {"temperature": 22.5} // -// Yunhorn SmarToilets Sensor R20241030A01 +// Yunhorn SmarToilets Sensor R20241104A01 // function Decode(fPort, data, variables) { @@ -27,15 +27,53 @@ function Decode(fPort, data, variables) { // STS-O1/O2/O3/O5 REEDSWITCH, OCCUPANCY LED REPORT case 4: + data.led_state = bytes[0] == 0x0 ? "Off" : "On"; + data.mtm_code_1 = bytes[1]; + data.mtm_code_2 = bytes[2]; + data.hw_code = bytes[3]; + data.battery_level = bytes[4] + "%"; + data.size_value = bytes[5]; + data.door_state = (bytes[6] === 0) ? "Door_Closed" : "Door_Open"; + + return { "Yunhorn_SmarToilets_data": data }; break; // HEART-BEAT FOR STS-O1/O2/O3/O5 REEDSWITCH, OCCUPANCY LED REPORT case 5: + //data.led_state=(bytes[0] & 0x7f) === 0 ? "Off" : "On"; + data.BoardLED = ((bytes[0] & 0x7F) === 0x01) ? "ON" : "OFF"; + //data.battery_level = bytes[1] + " %"; + data.battery_level = bytes[1] * 100 + "mV"; + return { "Yunhorn_SmarToilets_data": data }; break; // STS-M1 water leakage sensor case 6: - break; + if (data.length === 2) { + data.led_state = bytes[0] == 0x0 ? "Off" : "On"; + data.battery_level = bytes[1] + "%"; + } else { + data.led_state = bytes[0] == 0x0 ? "Off" : "On"; + data.mtm_code_1 = bytes[1]; + data.mtm_code_2 = bytes[2]; + data.hw_code = bytes[3]; + //data.battery_level_mV= bytes[4]*100+" mV"; + data.battery_level = bytes[4] + " %"; + data.size_value = bytes[5]; + data.measure_tech = (bytes[6] === 0) ? "Weak Current" : "Other"; + data.liquid_level_event = (bytes[7] === 0x1) ? "Leakage Detected" : "No Leakage"; + } + return { "Yunhorn_SmarToilets_data": data }; + break; + // temp heart-beat for STS-M1 + case 66: + if (data.length === 2) { + data.led_state = bytes[0] == 0x0 ? "Off" : "On"; + data.battery_level_mV = bytes[1] * 100 + " mV"; + return { "Yunhorn_SmarToilets_data": data }; + } + + break; // R4 soap/sanitizer sensor case 7: data.led_state = bytes[0] == 0x0 ? "Off" : "On"; @@ -187,19 +225,19 @@ function Decode(fPort, data, variables) { break; // STS-M1A Water mark sensor thermal matrix, heart-beat - case 14: - break; + //case 14: + //break; // STS-T6 O6T ToF Presence Detection case 14: - data.LED_State = bytes[0] === 0 ? "Off" : "On"; + data.LED_State = (bytes[0] & 0x7f === 0) ? "Off" : "On"; data.MTM_Code_1 = bytes[1]; data.MTM_Code_2 = bytes[2]; data.HW_Code = bytes[3]; data.Battery_Level = bytes[4] + " %"; data.Payload_Size = bytes[5]; - data.Presence_State = bytes[6] == 1 ? "Occupied" : "Vacant"; + data.Presence_State = (bytes[6] == 1) ? "Occupied" : "Vacant"; return { "Yunhorn_SmarToilets_data": data }; break; @@ -526,6 +564,8 @@ function Decode(fPort, data, variables) { // STS-P2 IN-OUT PEOPLE COUNTING SENSOR case 106: { + var counting = {}; + var counting_today = {}; // STS-P2 bi-directional people counting data.LED_State = bytes[0] === 0 ? "Off" : "On"; data.MTM_Code_1 = bytes[1]; @@ -533,17 +573,26 @@ function Decode(fPort, data, variables) { data.HW_Code = bytes[3]; data.Battery_Level = bytes[4] + " %"; data.Payload_Size = bytes[5]; - data.Walk_In_People_Count = bytes[6] << 8 | bytes[7]; - data.Walk_Out_People_Count = bytes[8] << 8 | bytes[8]; - data.Walk_Around_People_Count = bytes[10] << 8 | bytes[11]; + //data.Walk_In_People_Count = bytes[6] << 8 | bytes[7]; + //data.Walk_Out_People_Count = bytes[8] << 8 | bytes[9]; + //data.Walk_Around_People_Count = bytes[10] << 8 | bytes[11]; + counting.Walk_In_People_Count = bytes[6] << 8 | bytes[7]; + counting.Walk_Out_People_Count = bytes[8] << 8 | bytes[9]; + counting.Walk_Around_People_Count = bytes[10] << 8 | bytes[11]; + data.Count_Period = bytes[12]; data.Count_Period_Unit = String.fromCharCode(bytes[13]); - data.Sum_Day_Walk_In_People_Count = bytes[14] << 8 | bytes[15]; - data.Sum_Day_Walk_Out_People_Count = bytes[16] << 8 | bytes[17]; - data.Sum_Day_Walk_Around_People_Count = bytes[18] << 8 | bytes[19]; + + //data.Sum_Day_Walk_In_People_Count = bytes[14] << 8 | bytes[15]; + //data.Sum_Day_Walk_Out_People_Count = bytes[16] << 8 | bytes[17]; + //data.Sum_Day_Walk_Around_People_Count = bytes[18] << 8 | bytes[19]; + counting_today.Sum_Day_Walk_In_People_Count = bytes[14] << 8 | bytes[15]; + counting_today.Sum_Day_Walk_Out_People_Count = bytes[16] << 8 | bytes[17]; + counting_today.Sum_Day_Walk_Around_People_Count = bytes[18] << 8 | bytes[19]; + data.Count_Valid = (bytes[20] == 0x0) ? "Error" : "OK"; - return { "Yunhorn_SmarToilets_data": data }; + return { "Yunhorn_SmarToilets_data": data, "Couting_Now": counting, "Counting_today": counting_today }; } break; @@ -622,7 +671,9 @@ function Decode(fPort, data, variables) { data.sts_hw_ver = bytes[4]; data.battery_level = bytes[5]; data.payload_length = bytes[6]; - data.Measure_Distance = String.fromCharCode(bytes[7]) + String.fromCharCode(bytes[8]) + String.fromCharCode(bytes[9]) + String.fromCharCode(bytes[10]); + //data.Measure_Distance = String.fromCharCode(bytes[7]) + String.fromCharCode(bytes[8]) + String.fromCharCode(bytes[9]) + String.fromCharCode(bytes[10]); + // update on 2024-11-02 + data.Measure_Distance = bytes[7] << 8 | bytes[8]; data.Distance_unit = "mm"; break; @@ -636,7 +687,29 @@ function Decode(fPort, data, variables) { data.LoRaWAN_Class = String.fromCharCode(bytes[4]); break; + // M 'M' for STS-P2 LOG DATA + case 0x4D: + data.sum_day_in = bytes[1] | bytes[2] << 8; + data.sum_day_out = bytes[3] | bytes[4] << 8; + data.sum_day_around = bytes[5] | bytes[6] << 8; + data.sum_week_in = bytes[7] | bytes[8] << 8; + data.sum_week_out = bytes[9] | bytes[10] << 8; + data.sum_week_around = bytes[11] | bytes[12] << 8; + + data.sum_month_in = bytes[13] | bytes[14] << 8; + data.sum_month_out = bytes[15] | bytes[16] << 8; + data.sum_month_around = bytes[17] | bytes[18] << 8; + + data.sum_year_in = bytes[19] | bytes[20] << 8; + data.sum_year_out = bytes[21] | bytes[22] << 8; + data.sum_year_around = bytes[23] | bytes[24] << 8; + + data.sum_lifeCycle_in = bytes[25] | bytes[26] << 8; + data.sum_lifeCycle_out = bytes[27] | bytes[28] << 8; + data.sum_lifeCycle_around = bytes[29] | bytes[30] << 8; + + break; // CONTROL COMMAND 'P' case 0x50: // P-CMD work mode change