From ba108f3c6c2a2d607cabce49d98f4683039638a5 Mon Sep 17 00:00:00 2001 From: YunHorn Technology Date: Mon, 4 Nov 2024 21:47:04 +0800 Subject: [PATCH] WS wip --- Core/Inc/main.h | 13 ++++ Core/Inc/utilities_def.h | 3 + Core/Src/gpio.c | 22 ++++++ Core/Src/stm32wlxx_it.c | 3 +- Core/Src/sys_app.c | 8 +++ LoRaWAN/App/lora_app.c | 39 +++++++++-- STM32CubeIDE/.cproject | 6 +- STM32CubeIDE/.project | 5 ++ .../Release/Application/User/Core/subdir.mk | 57 +++++++-------- .../Application/User/LoRaWAN/App/subdir.mk | 8 +-- .../Application/User/LoRaWAN/Target/subdir.mk | 2 +- .../Application/User/STS/Core/Src/subdir.mk | 6 +- .../Application/User/STS/TOF/App/subdir.mk | 8 +-- .../Application/User/STS/TOF/Target/subdir.mk | 2 +- .../User/STS/TOF/vl53l1x_uld/subdir.mk | 8 +-- STM32CubeIDE/Release/Drivers/CMSIS/subdir.mk | 2 +- .../Drivers/STM32WLxx_HAL_Driver/subdir.mk | 48 ++++++------- .../Release/Middlewares/LoRaWAN/subdir.mk | 66 +++++++++--------- .../Release/Middlewares/SubGHz_Phy/subdir.mk | 6 +- STM32CubeIDE/Release/Utilities/subdir.mk | 16 ++--- STM32CubeIDE/Release/WLE5CC_NODE_STS.elf | Bin 166612 -> 147800 bytes STS/Core/Inc/yunhorn_sts_prd_conf.h | 19 ++++- STS/Core/Inc/yunhorn_sts_sensors.h | 14 ++++ STS/Core/Src/yunhorn_sts_process.c | 45 +++++++++++- STS/TOF/App/app_tof_peoplecount.c | 14 +++- 25 files changed, 287 insertions(+), 133 deletions(-) diff --git a/Core/Inc/main.h b/Core/Inc/main.h index 751a611..024c0a7 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -300,6 +300,19 @@ void Error_Handler(void); #define SOAP_DATA HAL_GPIO_ReadPin(SOAP_STATUS_GPIO_Port,SOAP_STATUS_Pin) #endif +#if defined(STS_WS)||defined(STS_R6) +//#define HX711_SCK_PIN GPIO_PIN_5 +//#define HX711_DOUT_PIN GPIO_PIN_6 +//#define HX711_SCK_PORT GPIOA +//#define HX711_DOUT_PORT GPIOA + +#define HX711_SCK_PIN GPIO_PIN_9 +#define HX711_DOUT_PIN GPIO_PIN_10 +#define HX711_SCK_PORT GPIOA +#define HX711_DOUT_PORT GPIOA + +#endif + // STS_M1, WATER LEAKAGE PA1 READ DATA, PA1 #ifdef STS_M1 diff --git a/Core/Inc/utilities_def.h b/Core/Inc/utilities_def.h index 35411f6..ac9c311 100644 --- a/Core/Inc/utilities_def.h +++ b/Core/Inc/utilities_def.h @@ -106,6 +106,9 @@ typedef enum #ifdef STS_M7 CFG_SEQ_Task_YunhornSTSEventP8, /* ETR, PULSE COUNT */ #endif +#ifdef STS_R6 + CFG_SEQ_Task_YunhornSTSEventP9, /* WEIGHT SCALE SENSOR */ +#endif #ifdef MODBUS_RS485 STS_YunhornSTSEventPIORS485_Process, /* RS485 MODBUS RTU */ #endif diff --git a/Core/Src/gpio.c b/Core/Src/gpio.c index 287b9b3..e86e51a 100644 --- a/Core/Src/gpio.c +++ b/Core/Src/gpio.c @@ -174,6 +174,28 @@ void MX_GPIO_Init(void) #endif +#if defined(STS_WS)||defined(STS_R6) + + // STS_Weight_Scale_Sensor + // HX711_SCK + GPIO_InitStruct.Pin = HX711_SCK_PIN; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_PULLUP; //GPIO_NOPULL + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + HAL_GPIO_Init(HX711_SCK_PORT, &GPIO_InitStruct); + + // HX711_DOUT + GPIO_InitStruct.Pin = HX711_DOUT_PIN; + GPIO_InitStruct.Mode = GPIO_MODE_INPUT; + GPIO_InitStruct.Pull = GPIO_PULLUP; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + HAL_GPIO_Init(HX711_DOUT_PORT, &GPIO_InitStruct); + + HAL_GPIO_WritePin(HX711_SCK_PORT, HX711_SCK_PIN, GPIO_PIN_RESET); + +#endif + + #if defined(STS_M1) HAL_GPIO_WritePin(WATER_DETECT_Port, WATER_DETECT_Pin, GPIO_PIN_RESET); diff --git a/Core/Src/stm32wlxx_it.c b/Core/Src/stm32wlxx_it.c index 110506c..50b87f0 100644 --- a/Core/Src/stm32wlxx_it.c +++ b/Core/Src/stm32wlxx_it.c @@ -293,8 +293,9 @@ void DMA1_Channel1_IRQHandler(void) /* USER CODE BEGIN DMA1_Channel1_IRQn 0 */ /* USER CODE END DMA1_Channel1_IRQn 0 */ +#if defined(STS_O6T)||defined(O1L)||defined(STS_O7)||defined(STS_T6) HAL_DMA_IRQHandler(&hdma_tim1_ch1); - +#endif //HAL_DMA_IRQHandler(&hdma_tim1_ch2); /* USER CODE BEGIN DMA1_Channel1_IRQn 1 */ diff --git a/Core/Src/sys_app.c b/Core/Src/sys_app.c index 64cf9ae..afbbbb1 100644 --- a/Core/Src/sys_app.c +++ b/Core/Src/sys_app.c @@ -36,6 +36,9 @@ #include "app_tof_peoplecount.h" #include "sts_lamp_bar.h" #endif +#if defined(STS_WS)||defined(STS_R6) +#include "sts_weight_scale.h" +#endif //#ifdef L8 #include "app_tof.h" //#endif @@ -138,6 +141,11 @@ void SystemApp_Init(void) STS_Lamp_Bar_Self_Test(); #endif +#if defined(STS_WS)||defined(STS_R6) + // sts_weight_scale_init(); NO NEED TO INIT FROM VERY BEGINNING +#endif + + /*Init low power manager*/ UTIL_LPM_Init(); /* Disable Stand-by mode */ diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index ca02418..48b6b7c 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -49,8 +49,12 @@ /* USER CODE BEGIN EV */ uint8_t outbuf[128]={0x0}; extern volatile uint8_t sts_ac_code[20], sts_service_mask; + +#if defined(STS_O6T)||defined(O1L)||defined(STS_O7)||defined(STS_T6) 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; +#endif + 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; @@ -548,6 +552,11 @@ void LoRaWAN_Init(void) UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP6), UTIL_SEQ_RFU, STS_YunhornSTSEventP6_Process); #endif +#ifdef STS_R6 + UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP9), UTIL_SEQ_RFU, STS_YunhornSTSEventP9_Process); +#endif + + #ifdef VL53L0 UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP4), UTIL_SEQ_RFU, STS_YunhornSTSEventP4_Process); #endif @@ -845,6 +854,8 @@ static void SendTxData(void) sts_tof_range_data_t sts_rr_sensor_data={0x0,0x0,0x0}; #elif defined(STS_R4) sts_r_sensor_data_t sts_r4_sensor_data={0}; +#elif defined(STS_R6) + sts_ws_sensor_data_t sts_r6_sensor_data={0}; #elif defined(STS_M1) sts_r_sensor_data_t sts_m1_sensor_data={0}; #elif defined(STS_O5) @@ -880,7 +891,9 @@ static void SendTxData(void) STS_M1_sensor_read(&sts_m1_sensor_data); #endif - +#if defined(STS_WS)||defined(STS_R6) + STS_WS_sensor_read(&sts_r6_sensor_data); +#endif #ifdef VL53LX #ifdef STS_P2 @@ -910,6 +923,9 @@ static void SendTxData(void) #ifdef STS_R4 //SOAP/SANITIZER LEVEL AppData.Port = YUNHORN_STS_R4_LORA_APP_DATA_PORT; /* STS-R4 Data Port */ +#elif defined(STS_R6) // WEIGHT SCALE STS-R6 + AppData.Port = YUNHORN_STS_R6_LORA_APP_DATA_PORT; /* STS-R6 Data Port */ + #elif defined(STS_M1) // WATER LEAKAGE SENSOR AppData.Port = YUNHORN_STS_M1_LORA_APP_DATA_PORT; /* STS-M1 Data Port */ @@ -1070,6 +1086,17 @@ static void SendTxData(void) AppData.Buffer[i++] = (uint8_t)(sts_r4_sensor_data.on_off_event & 0xFF); #endif //STS_R4 +/* STS-R6 WEIGHT SCALE SENSOR */ +#ifdef STS_R6 + AppData.Buffer[i++] = 4; + AppData.Buffer[i++] = (uint8_t)((sts_r6_sensor_data.weight_g <<8)& 0xFF); + AppData.Buffer[i++] = (uint8_t)((sts_r6_sensor_data.weight_g)& 0xFF); + AppData.Buffer[i++] = (uint8_t)((sts_r6_sensor_data.tare_g <<8)& 0xFF); + AppData.Buffer[i++] = (uint8_t)((sts_r6_sensor_data.tare_g)& 0xFF); + +#endif //STS_R6 + + /* STS-M1 WATER LEAKAGE SENSOR */ #ifdef STS_M1 AppData.Buffer[i++] = 2; @@ -1124,10 +1151,11 @@ static void OnTxTimerEvent(void *context) #elif (defined(STS_R1D)||defined(STS_R5)||defined(STS_R1)) APP_LOG(TS_OFF, VLEVEL_H, "\nSET TASK P4\r\n"); UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP4), CFG_SEQ_Prio_0); +#elif (defined(STS_WS)||defined(STS_R6)) + APP_LOG(TS_OFF, VLEVEL_H, "\nS TASK P9\r\n"); + UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP9), CFG_SEQ_Prio_0); #elif (defined(STS_P2)) - UTIL_TIMER_Stop(&YunhornSTSWakeUpScanTimer); - APP_LOG(TS_OFF, VLEVEL_M, "\r\nTxTimer Event \r\n"); #endif @@ -1477,8 +1505,9 @@ static void OnRestoreContextRequest(void *nvm, uint32_t nvm_size) */ static void OnYunhornSTSLampBarColorTimerEvent(void *context) { +#if defined(STS_O6)||defined(STS_T6)||defined(O1L) 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_Stop(&STSLampBarColorTimer); @@ -1558,6 +1587,8 @@ static void OnYunhornSTSHeartBeatTimerEvent(void *context) appHeartBeatDataPort = YUNHORN_STS_R5_LORA_APP_HTBT_PORT; #elif defined(STS_R4) appHeartBeatDataPort = YUNHORN_STS_R4_LORA_APP_HTBT_PORT; +#elif defined(STS_R6) + appHeartBeatDataPort = YUNHORN_STS_R6_LORA_APP_HTBT_PORT; #elif defined(STS_T6) appHeartBeatDataPort = YUNHORN_STS_T6_LORA_APP_HTBT_PORT; #elif defined(STS_O5) diff --git a/STM32CubeIDE/.cproject b/STM32CubeIDE/.cproject index 8648789..33bbb77 100644 --- a/STM32CubeIDE/.cproject +++ b/STM32CubeIDE/.cproject @@ -99,7 +99,7 @@ - + @@ -136,7 +136,7 @@