diff --git a/Core/Src/stm32wlxx_it.c b/Core/Src/stm32wlxx_it.c index 5bc5ec0..b4f5a8f 100644 --- a/Core/Src/stm32wlxx_it.c +++ b/Core/Src/stm32wlxx_it.c @@ -58,7 +58,7 @@ extern RTC_HandleTypeDef hrtc; extern SUBGHZ_HandleTypeDef hsubghz; extern DMA_HandleTypeDef hdma_usart2_tx; -extern DMA_HandleTypeDef hdma_usart2_rx; + extern UART_HandleTypeDef huart2; /* USER CODE BEGIN EV */ extern DMA_HandleTypeDef hdma_spi1_rx; @@ -305,7 +305,7 @@ void DMA1_Channel6_IRQHandler(void) /* USER CODE BEGIN DMA1_Channel6_IRQn 0 */ /* USER CODE END DMA1_Channel6_IRQn 0 */ - HAL_DMA_IRQHandler(&hdma_usart2_rx); + /* USER CODE BEGIN DMA1_Channel6_IRQn 1 */ /* USER CODE END DMA1_Channel6_IRQn 1 */ diff --git a/Core/Src/sts_cmox_hmac_sha.c b/Core/Src/sts_cmox_hmac_sha.c index ac73c59..270e9c7 100644 --- a/Core/Src/sts_cmox_hmac_sha.c +++ b/Core/Src/sts_cmox_hmac_sha.c @@ -34,7 +34,6 @@ hmac_result_t hmac_result; uint32_t sts_hmac_verify(void) { - uint8_t i=0; uint8_t uid[8]=""; uint32_t ret=0; hmac_result.ac_pass = 60; @@ -42,22 +41,13 @@ uint32_t sts_hmac_verify(void) GetUniqueId(uid); ret = sts_hmac_sha1((const uint8_t *) mKey, sizeof(mKey), (const uint8_t*)(uid+4), 4, &hmac_result); - for (i=0;ihdmarx); HAL_DMA_DeInit(uartHandle->hdmatx); /* USART2 interrupt Deinit */ diff --git a/Core/Src/usart_if.c b/Core/Src/usart_if.c index d07fa47..1f13f50 100644 --- a/Core/Src/usart_if.c +++ b/Core/Src/usart_if.c @@ -127,7 +127,7 @@ UTIL_ADV_TRACE_Status_t vcom_DeInit(void) /* ##-3- Disable the NVIC for DMA ########################################### */ /* USER CODE BEGIN 1 */ - HAL_NVIC_DisableIRQ(DMA1_Channel5_IRQn); + HAL_NVIC_DisableIRQ(DMA1_Channel7_IRQn); return UTIL_ADV_TRACE_OK; /* USER CODE END 1 */ diff --git a/Core/Src/yunhorn_sts_presence_sensor.c b/Core/Src/yunhorn_sts_presence_sensor.c index e46dbb6..35610c7 100644 --- a/Core/Src/yunhorn_sts_presence_sensor.c +++ b/Core/Src/yunhorn_sts_presence_sensor.c @@ -136,7 +136,7 @@ void STS_YunhornSTSEventRFAC_Process(void) void STS_FallDetection_LampBarProcess(void) { - uint8_t buf[32]={0x0}; + char buf[32]={0x0}; uint8_t i=0; switch (sts_fall_rising_detected_result) { @@ -182,7 +182,7 @@ void STS_FallDetection_LampBarProcess(void) APP_LOG(TS_OFF, VLEVEL_L, "\r\n <<<<<<<<<<<<<< Fall Rise state=%d, send buf size = %d \r\n", sts_fall_rising_detected_result, i ) - STS_SENSOR_Upload_Message((LORAWAN_USER_APP_PORT+2), i, (char*)buf); + STS_SENSOR_Upload_Message((LORAWAN_USER_APP_PORT+2), i, buf); sts_fall_rising_detected_result = STS_PRESENCE_NONE; diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index 86503ff..73fc2fb 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -322,6 +322,12 @@ static void OnJoinTimerLedEvent(void *context); static void OnYunhornSTSOORSSWakeUpTimerEvent(void *context); +/** + * @brief Yunhorn STS Heart Beat Periodicity Chagne function + * @param duration of periodicty in ms (1/1000 sec) + */ +static void OnYunhornSTSHeartBeatPeriodicityChanged(uint32_t periodicity); + /** * @brief Yunhorn STS AC Code handle Process * @param void @@ -441,6 +447,10 @@ static UTIL_TIMER_Object_t YunhornSTSRSSWakeUpTimer; * @brief Timer to handle the YunHorn STS Sensor Sampling Process */ //static UTIL_TIMER_Object_t YunhornSTSSamplingCheckTimer; +/** + * @brief Timer to handle the YunHorn STS Sensor Heart Beat Process + */ +static UTIL_TIMER_Object_t YunhornSTSHeartBeatTimer; /* USER CODE END PV */ @@ -654,6 +664,16 @@ static void OnRxData(LmHandlerAppData_t *appData, LmHandlerRxParams_t *params) break; } } + DeviceClass_t deviceClass = CLASS_A; + LmHandlerGetCurrentClass( &deviceClass ); + uint8_t i=0; + outbuf[i++] = (uint8_t) 'L'; + outbuf[i++] = (uint8_t) sts_mtmcode1; + outbuf[i++] = (uint8_t) sts_mtmcode2; + outbuf[i++] = (uint8_t) sts_version; + outbuf[i++] = (uint8_t) (0x41+ deviceClass); //translate to 'A','B','C' + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf); + break; case LORAWAN_USER_APP_PORT: if (appData->BufferSize == 1) @@ -984,8 +1004,9 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams) STS_LoRa_WAN_Joined = (uint8_t) joinParams->Mode; - //APP_LOG(TS_OFF, VLEVEL_M,"\r\n STS_LoRa_WAN_Joined = %d \r\n", STS_LoRa_WAN_Joined); - + OnYunhornSTSHeartBeatPeriodicityChanged(HeartBeatPeriodicity); + OnTxPeriodicityChanged(TxPeriodicity); + APP_LOG(TS_OFF, VLEVEL_L,"\r\n STS_LoRa_WAN_Joined = %s \r\n", (STS_LoRa_WAN_Joined == 1)?"ABP":"OTAA"); } else { @@ -994,6 +1015,7 @@ 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_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); /* USER CODE END OnJoinRequest_1 */ } @@ -1253,33 +1275,34 @@ static void OnYunhornSTSOORSSWakeUpTimerEvent(void *context) } /** - * @brief Yunhorn STS Sensor Heart Beat Timer callback function - * @param context ptr of STS Sampling Check context - */ -/* -static void OnYunhornSTSHeartBeatTimerEvent(void *context) + * @brief Yunhorn STS Sensor Live Heart Beat Periodicity/interval Change callback function + * @param context ptr of STS Live Heart Beat context + * YL x x x + * */ + +static void OnYunhornSTSHeartBeatPeriodicityChanged(uint32_t periodicity) { - if (STS_LoRa_WAN_Joined ) - { + /* USER CODE BEGIN OnTxPeriodicityChanged_1 */ - heart_beat_timer = 1; - UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); + /* USER CODE END OnTxPeriodicityChanged_1 */ + HeartBeatPeriodicity = periodicity; - if (sts_ac_code[0]==0x0) { - // RFAC Challenge - if (rfac_timer < (STS_BURN_IN_RFAC+3)) { - rfac_timer ++; - } - UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventRFAC), CFG_SEQ_Prio_0); - } + if (HeartBeatPeriodicity == 0) + { + /* Revert to application default periodicity */ + HeartBeatPeriodicity = 10*APP_TX_DUTYCYCLE; + } + /* Update timer periodicity */ - UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer); - - } + UTIL_TIMER_Stop(&YunhornSTSHeartBeatTimer); + UTIL_TIMER_SetPeriod(&YunhornSTSHeartBeatTimer, HeartBeatPeriodicity); + UTIL_TIMER_Start(&YunhornSTSHeartBeatTimer); + /* USER CODE BEGIN OnTxPeriodicityChanged_2 */ + APP_LOG(TS_OFF, VLEVEL_H,"**************** HeartBeatPeriodicity Changed to: %u (ms)\r\n", HeartBeatPeriodicity ); + /* USER CODE END OnTxPeriodicityChanged_2 */ } -*/ /** * @brief Yunhorn STS Sensor Sampling Periodicity/interval Change callback function diff --git a/STM32CubeIDE/Release/STS_O7.bin b/STM32CubeIDE/Release/STS_O7.bin deleted file mode 100644 index da90317..0000000 Binary files a/STM32CubeIDE/Release/STS_O7.bin and /dev/null differ