diff --git a/Core/Inc/main.h b/Core/Inc/main.h index d59d327..3e16249 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -141,9 +141,9 @@ void Error_Handler(void); /* * STM32WL55, STM32WLE5 Clock=48Mhz 48,000,000/800khz = 60 */ -#define STS_LAMP_BAR_PWM_TIM_PERIOD (60 - 1) +#define STS_LAMP_BAR_PWM_TIM_PERIOD (240 - 1) #define STS_LAMP_BAR_HTIM htim1 -#define STS_LAMP_BAR_LED_NUM (30) //30 for 46CM length LED strip +#define STS_LAMP_BAR_LED_NUM (60) //60 for 46CM length LED strip #define WSDATA_PORT_PIN_PA8 //#define WSDATA_PORT_PIN_PA9 diff --git a/Core/Inc/sts_lamp_bar.h b/Core/Inc/sts_lamp_bar.h index f93dca3..ba213eb 100644 --- a/Core/Inc/sts_lamp_bar.h +++ b/Core/Inc/sts_lamp_bar.h @@ -52,8 +52,17 @@ enum sts_lamp_color { STS_GREEN_DARK=0x10, //0b0001 0000 GREEN DARK STS_RED_DARK=0x20, //0b0010 0000, + STS_RED_GREEN=0x21, STS_RED_BLUE=0x23, //0b0010 0011 RED BLUE FLASH - STS_BLUE_DARK=0x30 //0b0011 0000 BLUE DARK + STS_BLUE_DARK=0x30, //0b0011 0000 BLUE DARK + STS_BLUE_GREEN=0x31, + + STS_GREENDARK=0x41, // GREEN FLASH 'A' + STS_REDDARK=0x42, // RED FLASH 'B' + STS_REDBLUE=0x43, // RED/BLUE FLASH 'C' + STS_BLUEDARK=0x44, // BLUE FLASH 'D' + STS_REDGREEN=0x45, // RED/GREEN FLASH 'E' + STS_BLUEGREEN=0x46 // BLUE/GREEN FLASH 'F' }; enum sts_oo_work_mode { diff --git a/Core/Src/sts_lamp_bar.c b/Core/Src/sts_lamp_bar.c index e1ae1c3..ed48e59 100644 --- a/Core/Src/sts_lamp_bar.c +++ b/Core/Src/sts_lamp_bar.c @@ -32,8 +32,8 @@ #define ZERO_PULSE (20) #define LED_DATA_LEN 24 -#define WS2812B_DATA_LEN (LED_DATA_LEN * (STS_LAMP_BAR_LED_NUM+1)) -#define RESET_PULSE (16) //(80) TO FIX DARK_COLOR AND SM2 +#define WS2812B_DATA_LEN (LED_DATA_LEN * (STS_LAMP_BAR_LED_NUM)) +#define RESET_PULSE (24) //(80) TO FIX DARK_COLOR AND SM2 typedef struct ws2812b_e { @@ -99,7 +99,7 @@ void STS_Lamp_Bar_Set_Dark(void) void STS_WS2812B_Refresh(void) { - HAL_TIM_PWM_Start_DMA(&STS_LAMP_BAR_HTIM, STS_LAMP_BAR_TIM_CHANNEL, (uint32_t *)&rgb_buf, (WS2812B_DATA_LEN+LED_DATA_LEN)); + HAL_TIM_PWM_Start_DMA(&STS_LAMP_BAR_HTIM, STS_LAMP_BAR_TIM_CHANNEL, (uint32_t *)&rgb_buf, (WS2812B_DATA_LEN+RESET_PULSE)); //HAL_TIM_PWM_Start_IT(&STS_LAMP_BAR_HTIM, STS_LAMP_BAR_TIM_CHANNEL); } @@ -126,8 +126,7 @@ void STS_Lamp_Bar_Scoller(uint8_t color, uint8_t lum_level) for(uint8_t i = 0; i0) { - APP_LOG(TS_OFF, VLEVEL_L,"\r\nMotion Distance Zone: %2u %4u Height< %4u cm", k, (uint8_t)motion_in_hs_zone[k][thiscnt], (int)(k+1)*40); + APP_LOG(TS_OFF, VLEVEL_L,"\r\n| %2u | %4u | %4u |\r\n", k, (uint8_t)motion_in_hs_zone[k][thiscnt], (int)(k+1)*40); } else { - APP_LOG(TS_OFF, VLEVEL_L,"\r\nMotion Distance Zone: %2u %4s", k, " "); + APP_LOG(TS_OFF, VLEVEL_L,"\r\n| %2u | | |\r\n", k); } } //#endif diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index bb82fa6..9d6f2e1 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -1161,7 +1161,7 @@ static void OnYunhornSTSLampBarColorTimerEvent(void *context) //uint8_t lum=DEFAULT_LUMINANCE_LEVEL; //HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin); /* STS GREEN */ //if ((sts_work_mode != STS_WIRED_MODE)) - uint8_t high4=(sts_lamp_bar_color>>4)&0x0f, low4=sts_lamp_bar_color&0x0f; + uint8_t high4=(sts_lamp_bar_color>>4)&0x0f, low4=sts_lamp_bar_color&0x07; if (high4==0) { @@ -1416,20 +1416,23 @@ 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); } - heart_beat_timer = 1; - //SendTxData(); - UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); + if (STS_LoRa_WAN_Joined) + { + heart_beat_timer = 1; + //SendTxData(); + UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); - UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); + UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); - UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer); - //UTIL_TIMER_Start(&TxTimer); - //UTIL_TIMER_Start(&STSDurationCheckTimer); - OnYunhornSTSHeartBeatPeriodicityChanged(HeartBeatPeriodicity); + UTIL_TIMER_Start(&YunhornSTSRSSWakeUpTimer); + //UTIL_TIMER_Start(&TxTimer); + //UTIL_TIMER_Start(&STSDurationCheckTimer); + OnYunhornSTSHeartBeatPeriodicityChanged(HeartBeatPeriodicity); - STS_SENSOR_Distance_Test_Process(); + STS_SENSOR_Distance_Test_Process(); - APP_LOG(TS_OFF, VLEVEL_H, "\r\nRSS Measured Distance=[%u] mm \r\n", (uint16_t)sts_distance_rss_distance); + APP_LOG(TS_OFF, VLEVEL_H, "\r\nRSS Measured Distance=[%u] mm \r\n", (uint16_t)sts_distance_rss_distance); + } /* USER CODE END OnJoinRequest_1 */ } @@ -2273,7 +2276,8 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, uint8_t tlv_buf_size) APP_LOG(TS_OFF, VLEVEL_L, "\r\n Cloud Color Set to %u \r\n", sts_cloud_netcolor); } sts_service_mask = STS_SERVICE_MASK_L0; - sts_lamp_bar_color = sts_cloud_netcolor; + if ((sts_cloud_netcolor >= 11)&&(sts_cloud_netcolor<=36)) // 'A'-'Z' + sts_lamp_bar_color = (sts_cloud_netcolor+0x30); sts_cfg_nvm.work_mode = (uint8_t)sts_work_mode; sts_cfg_nvm.sts_service_mask = (uint8_t)sts_service_mask; OnStoreSTSCFGContextRequest();