From a3a07035d741809af8ef77a87b6f49ce63304593 Mon Sep 17 00:00:00 2001 From: YunHorn Technology Date: Fri, 31 May 2024 14:53:57 +0800 Subject: [PATCH] ----- good STS-O7 with upload port 0 issue solved.... --- Core/Inc/main.h | 10 +- Core/Inc/yunhorn_sts_sensors.h | 4 +- Core/Src/gpio.c | 7 +- Core/Src/main.c | 2 +- Core/Src/yunhorn_sts_process.c | 42 ++++----- LoRaWAN/App/lora_app.c | 160 +++++++++++++++++++------------- STM32CubeIDE/Release/STS_O7.bin | Bin 253824 -> 253336 bytes 7 files changed, 129 insertions(+), 96 deletions(-) diff --git a/Core/Inc/main.h b/Core/Inc/main.h index 6db0482..96ed03b 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -60,7 +60,7 @@ void Error_Handler(void); #define RTC_N_PREDIV_S 10 #define RTC_PREDIV_S ((1<lamp_bar_color = sts_lamp_bar_color; + sensor_data->workmode = sts_work_mode; + sensor_data->state_sensor1_on_off = HALL1_STATE;//sts_hall1_read; //sts_hsts_reed_hall_result; // sts_hall1_read + sensor_data->state_sensor2_on_off = sts_rss_result; + sensor_data->state_sensor3_on_off = HALL2_STATE;//sts_hall2_read; //sts_emergency_button_pushed; //sts_hall2_read + sensor_data->state_sensor4_on_off = sts_rss_2nd_result; APP_LOG(TS_OFF, VLEVEL_M, "\r\nPrepare Upload Message............\r\n"); if (sts_rss_result == STS_RESULT_MOTION) { APP_LOG(TS_OFF, VLEVEL_M, "\r\n......STS_RESULT MOTION............\r\n"); - sts_o7_sensorData.rss_presence_distance = (uint16_t)(sts_presence_rss_distance)&0xFFFF; - sts_o7_sensorData.rss_presence_score = (uint16_t)(sts_presence_rss_score)&0xFFFF; + sensor_data->rss_presence_distance = (uint16_t)(sts_presence_rss_distance)&0xFFFF; + sensor_data->rss_presence_score = (uint16_t)(sts_presence_rss_score)&0xFFFF; // uint8_t sts_unconcious_state; // uint16_t sts_unconcious_threshold, sts_unconcious_threshold_duration; } else { APP_LOG(TS_OFF, VLEVEL_M, "\r\n......STS_NO MOTION............\r\n"); - sts_o7_sensorData.rss_presence_distance = 0x0; - sts_o7_sensorData.rss_presence_score = 0x0; + sensor_data->rss_presence_distance = 0x0; + sensor_data->rss_presence_score = 0x0; } - sts_o7_sensorData.unconcious_state=(sts_fall_rising_detected_result == STS_PRESENCE_UNCONCIOUS)? 1:0; + sensor_data->unconcious_state=(sts_fall_rising_detected_result == STS_PRESENCE_UNCONCIOUS)? 1:0; - sts_o7_sensorData.fall_state = sts_fall_rising_detected_result; + sensor_data->fall_state = sts_fall_rising_detected_result; if (sts_fall_rising_detected_result != STS_PRESENCE_NONE) { - APP_LOG(TS_OFF, VLEVEL_M, "\r\n......FALL RISING DETECTION RESULT: %25s............\r\n",sts_presence_fall_detection_message[sts_fall_rising_detected_result] ); - sts_o7_sensorData.fall_speed = (uint8_t)sts_fall_rising_pattern_factor1; - sts_o7_sensorData.fall_gravity = (uint8_t)sts_roc_acc_standard_variance; + APP_LOG(TS_OFF, VLEVEL_M, "\r\n......FALL RISING DETECTION RESULT: %25s............\r\n",(char*)sts_presence_fall_detection_message[sts_fall_rising_detected_result] ); + sensor_data->fall_speed = (uint8_t)sts_fall_rising_pattern_factor1; + sensor_data->fall_gravity = (uint8_t)sts_roc_acc_standard_variance; } // For occupancy over time process @@ -569,8 +569,8 @@ void STS_PRESENCE_SENSOR_Prepare_Send_Data(void) { APP_LOG(TS_OFF, VLEVEL_M, "\r\n......OVER STAY............\r\n"); sts_occupancy_overtime_state = 1U; - sts_o7_sensorData.overtime = sts_occupancy_overtime_state; - sts_o7_sensorData.over_stay_duration = check_time_tmp; + sensor_data->overtime = sts_occupancy_overtime_state; + sensor_data->over_stay_duration = check_time_tmp; sts_status_color = STS_RED_BLUE; sts_lamp_bar_color = STS_RED_BLUE; @@ -581,7 +581,7 @@ void STS_PRESENCE_SENSOR_Prepare_Send_Data(void) //{ // sts_occupancy_overtime_state = 0U; // } - + sensor_data_ready = 1; } diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index c1b72c5..f76f4ed 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -66,7 +66,7 @@ volatile uint8_t STS_LoRa_WAN_Joined = 0; volatile uint8_t mems_int1_detected = 0; volatile uint8_t upload_message_timer=0; volatile uint8_t heart_beat_timer =0; -char outbuf[128]=""; +uint8_t outbuf[128]={0x0}; volatile sts_cfg_nvm_t sts_cfg_nvm = { sts_mtmcode1, sts_mtmcode2, @@ -597,8 +597,9 @@ void LoRaWAN_Init(void) UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventRFAC), UTIL_SEQ_RFU, STS_YunhornSTSEventRFAC_Process); UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP1), UTIL_SEQ_RFU, STS_YunhornSTSEventP1_Process); UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP2), UTIL_SEQ_RFU, STS_YunhornSTSEventP2_Process); -#if 1 UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP3), UTIL_SEQ_RFU, STS_YunhornSTSEventP3_Process); + +#if 0 UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP4), UTIL_SEQ_RFU, STS_YunhornSTSEventP4_Process); UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP5), UTIL_SEQ_RFU, STS_YunhornSTSEventP5_Process); UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP6), UTIL_SEQ_RFU, STS_YunhornSTSEventP6_Process); @@ -705,8 +706,9 @@ static void OnRxData(LmHandlerAppData_t *appData, LmHandlerRxParams_t *params) if (params != NULL) { +#ifndef STM32WLE5xx HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET); /* LED_BLUE */ - +#endif UTIL_TIMER_Start(&RxLedTimer); if (params->IsMcpsIndication) @@ -751,7 +753,7 @@ static void OnRxData(LmHandlerAppData_t *appData, LmHandlerRxParams_t *params) 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); + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); break; case LORAWAN_USER_APP_PORT: @@ -761,12 +763,16 @@ static void OnRxData(LmHandlerAppData_t *appData, LmHandlerRxParams_t *params) if (AppLedStateOn == RESET) { APP_LOG(TS_OFF, VLEVEL_H, "LED OFF\r\n"); +#ifndef STM32WLE5xx HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_RESET); /* LED_RED */ +#endif } else { APP_LOG(TS_OFF, VLEVEL_H, "LED ON\r\n"); +#ifndef STM32WLE5xx HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_SET); /* LED_RED */ +#endif } } break; @@ -801,19 +807,17 @@ static void SendTxData(void) /* USER CODE BEGIN SendTxData_1 */ LmHandlerErrorStatus_t status = LORAMAC_HANDLER_ERROR; uint8_t batteryLevel = GetBatteryLevel(); - //uint16_t batteryLevelmV = SYS_GetBatteryLevel(); //sensor_t sensor_data; - + STS_OO_SensorStatusDataTypeDef sensorData; UTIL_TIMER_Time_t nextTxIn = 0; - uint8_t i = 0; - APP_LOG(TS_OFF, VLEVEL_M, "\r\n\n\n SendTxData Enter \r\n\n"); - - //if (LmHandlerIsBusy() == false) + if (LmHandlerIsBusy() == false) { + uint32_t i = 0; + + STS_PRESENCE_SENSOR_Prepare_Send_Data(&sensorData); + AppData.Port = LORAWAN_USER_APP_PORT; - //AppData.Buffer[i++] = AppLedStateOn; //#01 - STS_PRESENCE_SENSOR_Prepare_Send_Data(); if ((heart_beat_timer != 0L)) // sensor data OVERWRITE heart-beat message, 2024-05-12 { @@ -823,66 +827,72 @@ static void SendTxData(void) AppData.Buffer[i++] = (uint8_t)(99*batteryLevel/254)&0xff; //#05 APP_LOG(TS_OFF, VLEVEL_M, "\r\n\n\n SendTxData Enter Heart-Beat \r\n\n"); - } else if ((upload_message_timer != 0U)||(sensor_data_ready!= 0U)) //sensor_data_ready for manual push button-1 trigger) + } else if ((sensor_data_ready!= 0U)) //sensor_data_ready for manual push button-1 trigger) { APP_LOG(TS_OFF, VLEVEL_M, "\r\n\n\n SendTxData Enter Sensor Data Ready \r\n\n"); sensor_data_ready =0; + AppData.Buffer[i++] = AppLedStateOn|0x80; // ************ MUST KEEP IT HERE, NON-ZERO ****** - //AppData.Buffer[i++] = AppLedStateOn; + AppData.Buffer[i++] = (uint8_t)(sensorData.lamp_bar_color)&0xff; //01 + AppData.Buffer[i++] = (uint8_t)(sensorData.workmode)&0xff; //02 WORK MODE - //STS_PRESENCE_SENSOR_Prepare_Send_Data(); - - AppData.Buffer[i++] = (uint8_t)(sts_o7_sensorData.lamp_bar_color)&0xff; //01 - AppData.Buffer[i++] = (uint8_t)(sts_o7_sensorData.workmode)&0xff; //02 WORK MODE - - AppData.Buffer[i++] = (uint8_t)(sts_o7_sensorData.state_sensor1_on_off)&0xff; //03 Sensor head #1 status - AppData.Buffer[i++] = (uint8_t)(sts_o7_sensorData.state_sensor2_on_off)&0xff; //04 Sensor head #2 status - AppData.Buffer[i++] = (uint8_t)(sts_o7_sensorData.state_sensor3_on_off)&0xff; //05 Sensor head #3 status - AppData.Buffer[i++] = (uint8_t)(sts_o7_sensorData.state_sensor4_on_off)&0xff; //06 Sensor head #4 status + AppData.Buffer[i++] = (uint8_t)(sensorData.state_sensor1_on_off)&0xff; //03 Sensor head #1 status + AppData.Buffer[i++] = (uint8_t)(sensorData.state_sensor2_on_off)&0xff; //04 Sensor head #2 status + AppData.Buffer[i++] = (uint8_t)(sensorData.state_sensor3_on_off)&0xff; //05 Sensor head #3 status + AppData.Buffer[i++] = (uint8_t)(sensorData.state_sensor4_on_off)&0xff; //06 Sensor head #4 status #if 1 - AppData.Buffer[i++] = (uint8_t)(sts_o7_sensorData.rss_presence_distance>>8)&0xff; //07 MSB distance - AppData.Buffer[i++] = (uint8_t)(sts_o7_sensorData.rss_presence_distance)&0xff; //08 LSB distance - AppData.Buffer[i++] = (uint8_t)(sts_o7_sensorData.rss_presence_score>>8)&0xff; //09 MSB score - AppData.Buffer[i++] = (uint8_t)(sts_o7_sensorData.rss_presence_score)&0xff; //10 LSB score + AppData.Buffer[i++] = (uint8_t)(sensorData.rss_presence_distance>>8)&0xff; //07 MSB distance + AppData.Buffer[i++] = (uint8_t)(sensorData.rss_presence_distance)&0xff; //08 LSB distance + AppData.Buffer[i++] = (uint8_t)(sensorData.rss_presence_score>>8)&0xff; //09 MSB score + AppData.Buffer[i++] = (uint8_t)(sensorData.rss_presence_score)&0xff; //10 LSB score #endif #if 1 - AppData.Buffer[i++] = (uint8_t)(sts_o7_sensorData.unconcious_state)&0xff; //11 unconcious state detected or not - AppData.Buffer[i++] = (uint8_t)(sts_o7_sensorData.fall_state)&0xff; //12 fall detected or not - AppData.Buffer[i++] = (uint8_t)(sts_o7_sensorData.overtime)&0xff; //13 occupancy over time or not - AppData.Buffer[i++] = (uint8_t)(sts_o7_sensorData.over_stay_duration>>8)&0xff; //13 occupancy over time or not - AppData.Buffer[i++] = (uint8_t)(sts_o7_sensorData.over_stay_duration)&0xff; //13 occupancy over time or not + AppData.Buffer[i++] = (uint8_t)(sensorData.unconcious_state)&0xff; //11 unconcious state detected or not + AppData.Buffer[i++] = (uint8_t)(sensorData.fall_state)&0xff; //12 fall detected or not + AppData.Buffer[i++] = (uint8_t)(sensorData.overtime)&0xff; //13 occupancy over time or not + AppData.Buffer[i++] = (uint8_t)(sensorData.over_stay_duration>>8)&0xff; //14 occupancy over time or not + AppData.Buffer[i++] = (uint8_t)(sensorData.over_stay_duration)&0xff; //15 occupancy over time or not #endif #if 1 APP_LOG(TS_OFF, VLEVEL_L, - "\r\n######| Color | Mode |\r\n######| %4s | %5s |\r\n",(char *)sts_lamp_color_code[(uint8_t)(AppData.Buffer[0])], (char*)sts_work_mode_code[AppData.Buffer[1]]); + "\r\n######| Color | Mode |\r\n######| %4s | %5s |\r\n",(char *)sts_lamp_color_code[sensorData.lamp_bar_color], (char*)sts_work_mode_code[sensorData.workmode]); APP_LOG(TS_OFF, VLEVEL_L, "\r\n######| S1-DoorOpen | S2-Motion | S3-No_Emergency | S4 |Distance(mm) | MotionScore| Unconcious | Over_Stay| Fall Detected|" "\r\n######| %1d | %1d | %1d | %1d | %04d | %04d | %1d | %1d | %1d |\r\n", - AppData.Buffer[2], AppData.Buffer[3],AppData.Buffer[4], AppData.Buffer[5], - (uint16_t)sts_o7_sensorData.rss_presence_distance,(uint16_t)sts_o7_sensorData.rss_presence_score, - sts_o7_sensorData.unconcious_state, sts_o7_sensorData.unconcious_duration, sts_o7_sensorData.fall_state ); + sensorData.state_sensor1_on_off, sensorData.state_sensor2_on_off,sensorData.state_sensor3_on_off, sensorData.state_sensor4_on_off, + (uint16_t)sensorData.rss_presence_distance,(uint16_t)sensorData.rss_presence_score, + sensorData.unconcious_state, sensorData.unconcious_duration, sensorData.fall_state ); #endif } - + if ((LmHandlerParams.ActiveRegion == LORAMAC_REGION_US915) || (LmHandlerParams.ActiveRegion == LORAMAC_REGION_AU915) + || (LmHandlerParams.ActiveRegion == LORAMAC_REGION_AS923)) + { + // ORIGIN CODE OF 4 ZERO APPENDED + } AppData.BufferSize = (sts_service_mask > STS_SERVICE_MASK_L1? 0:i); - APP_LOG(TS_OFF, VLEVEL_L, "\r\n\n\n** ** AppData.PORT =%3d ** ** AppData.BufferSize=%3d ** Count Size=%3d\r\n", AppData.Port, AppData.BufferSize, i); + APP_LOG(TS_OFF, VLEVEL_L, "\r\n\n\n**AppData.PORT =%3d **AppData.BufferSize=%3d \r\n**Count Size=%3d\r\n", AppData.Port, AppData.BufferSize, i); //AppData.BufferSize = (sts_service_mask > STS_SERVICE_MASK_L1? 0:i); if ((JoinLedTimer.IsRunning) && (LmHandlerJoinStatus() == LORAMAC_HANDLER_SET)) { UTIL_TIMER_Stop(&JoinLedTimer); +#ifndef STM32WLE5xx HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_RESET); /* LED_RED */ +#endif + LED1_ON; } status = LmHandlerSend(&AppData, LmHandlerParams.IsTxConfirmed, false); if (LORAMAC_HANDLER_SUCCESS == status) { + LED1_ON; APP_LOG(TS_ON, VLEVEL_L, "SEND REQUEST\r\n"); + LED1_OFF; } else if (LORAMAC_HANDLER_DUTYCYCLE_RESTRICTED == status) { @@ -935,17 +945,23 @@ static void OnTxTimerEvent(void *context) /* USER CODE BEGIN PrFD_LedEvents */ static void OnTxTimerLedEvent(void *context) { +#ifndef STM32WLE5xx HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET); /* LED_GREEN */ +#endif } static void OnRxTimerLedEvent(void *context) { +#ifndef STM32WLE5xx HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET); /* LED_BLUE */ +#endif } static void OnJoinTimerLedEvent(void *context) { +#ifndef STM32WLE5xx HAL_GPIO_TogglePin(LED3_GPIO_Port, LED3_Pin); /* LED_RED */ +#endif if ((sts_work_mode != STS_WIRED_MODE)) UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP3), CFG_SEQ_Prio_0); } @@ -962,21 +978,23 @@ static void OnTxData(LmHandlerTxParams_t *params) /* Process Tx event only if its a mcps response to prevent some internal events (mlme) */ if (params->IsMcpsConfirm != 0) { +#ifndef STM32WLE5xx HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET); /* LED_GREEN */ +#endif UTIL_TIMER_Start(&TxLedTimer); APP_LOG(TS_OFF, VLEVEL_M, "\r\n###### ========== MCPS-Confirm =============\r\n"); - APP_LOG(TS_OFF, VLEVEL_H, "###### U/L FRAME:%04d | PORT:%d | DR:%d | PWR:%d", params->UplinkCounter, + APP_LOG(TS_OFF, VLEVEL_M, "###### U/L FRAME:%04d | PORT:%d | DR:%d | PWR:%d", params->UplinkCounter, params->AppData.Port, params->Datarate, params->TxPower); - APP_LOG(TS_OFF, VLEVEL_H, " | MSG TYPE:"); + APP_LOG(TS_OFF, VLEVEL_M, " | MSG TYPE:"); if (params->MsgType == LORAMAC_HANDLER_CONFIRMED_MSG) { - APP_LOG(TS_OFF, VLEVEL_H, "CONFIRMED [%s]\r\n", (params->AckReceived != 0) ? "ACK" : "NACK"); + APP_LOG(TS_OFF, VLEVEL_M, "CONFIRMED [%s]\r\n", (params->AckReceived != 0) ? "ACK" : "NACK"); } else { - APP_LOG(TS_OFF, VLEVEL_H, "UNCONFIRMED\r\n"); + APP_LOG(TS_OFF, VLEVEL_M, "UNCONFIRMED\r\n"); } } } @@ -991,8 +1009,9 @@ static void OnJoinRequest(LmHandlerJoinParams_t *joinParams) if (joinParams->Status == LORAMAC_HANDLER_SUCCESS) { UTIL_TIMER_Stop(&JoinLedTimer); +#ifndef STM32WLE5xx HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_RESET); /* LED_RED */ - +#endif APP_LOG(TS_OFF, VLEVEL_M, "\r\n###### = JOINED = "); if (joinParams->Mode == ACTIVATION_TYPE_ABP) { @@ -1016,6 +1035,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); } + heart_beat_timer = 1; UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0); /* USER CODE END OnJoinRequest_1 */ } @@ -1144,9 +1164,11 @@ static void OnSystemReset(void) static void StopJoin(void) { /* USER CODE BEGIN StopJoin_1 */ +#ifndef STM32WLE5xx HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET); /* LED_BLUE */ HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET); /* LED_GREEN */ HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_SET); /* LED_RED */ +#endif /* USER CODE END StopJoin_1 */ UTIL_TIMER_Stop(&TxTimer); @@ -1188,9 +1210,11 @@ static void OnStopJoinTimerEvent(void *context) UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaStopJoinEvent), CFG_SEQ_Prio_0); } /* USER CODE BEGIN OnStopJoinTimerEvent_Last */ +#ifndef STM32WLE5xx HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET); /* LED_BLUE */ HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET); /* LED_GREEN */ HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_RESET); /* LED_RED */ +#endif /* USER CODE END OnStopJoinTimerEvent_Last */ } @@ -1474,7 +1498,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) if ((char)tlv_buf[CFG_CMD3] == 'H') { //BOARD SOFT RESET, REVIVE "YZH" //BOARD REVIVE - STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, 20, "!YunHorn STS Revive!"); + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, 20, (uint8_t*)"!YunHorn STS Revive!"); HAL_Delay(5000); APP_LOG(TS_OFF, VLEVEL_H, "\r\n Yunhorn STS Node Revive ... \r\n"); HAL_Delay(3000); @@ -1486,7 +1510,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) //outbuf[i++] = (uint8_t) 'Y'; //outbuf[i++] = (uint8_t) 'Z'; //outbuf[i++] = (uint8_t) 'S'; - //STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf); + //STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); i=0; @@ -1494,7 +1518,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) HAL_Delay(5000); i=21; - STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf); + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); } else if ((char)tlv_buf[CFG_CMD3] == 'C') { // Lora-WAN Class "YZC" LORAWAN CLASS A/B/C @@ -1506,13 +1530,13 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) 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); + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); } else if ((char)tlv_buf[CFG_CMD3] == 'D') { // Distance Measure "YZD" i=0; outbuf[i++] = (uint8_t) 'Y'; outbuf[i++] = (uint8_t) 'Z'; outbuf[i++] = (uint8_t) 'D'; - //STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf); + //STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); STS_SENSOR_Distance_Test_Process(); @@ -1549,7 +1573,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) #endif #endif - STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf); + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); } @@ -1564,7 +1588,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) outbuf[i++] = (uint8_t) 'Y'; outbuf[i++] = (uint8_t) 'M'; outbuf[i++] = (uint8_t) (sts_service_mask+0x30); - STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf); + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); APP_LOG(TS_OFF, VLEVEL_L, ">>>>>>>>>>>>>>>>>>>>> Mask = [ %02x ] \r\n", sts_service_mask); OnStoreSTSCFGContextRequest(); if (sts_service_mask != STS_SERVICE_MASK_L0) STS_Lamp_Bar_Set_Dark(); @@ -1584,8 +1608,8 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) outbuf[i++] = (uint8_t) MajorVer; outbuf[i++] = (uint8_t) MinorVer; outbuf[i++] = (uint8_t) SubMinorVer; - STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf); - APP_LOG(TS_OFF, VLEVEL_M, "###### YUNHORN Report Version [ %10x ] \r\n", outbuf); + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); + APP_LOG(TS_OFF, VLEVEL_M, "###### YUNHORN Report Version [ %10x ] \r\n", (char *)outbuf); } else if ((char)tlv_buf[CFG_CMD3] == 'C') { // "YVC" REPORT NVM STORED CONFIG PARAMETERS "YVC" @@ -1612,7 +1636,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) for (uint8_t j=0; j < cfg_in_nvm[NVM_LEN]; j++) { outbuf[i++] = (uint8_t) (cfg_in_nvm[NVM_CFG_START+j]); } - STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf); + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); } break; @@ -1626,7 +1650,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD1]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD2]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD3]; - STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf); + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); } else { STS_SENSOR_Upload_Config_Invalid_Message(); } @@ -1640,7 +1664,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD1]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD2]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD3]; - STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf); + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); } else { STS_SENSOR_Upload_Config_Invalid_Message(); } @@ -1653,7 +1677,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD1]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD2]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD3]; - STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf); + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); } else { STS_SENSOR_Upload_Config_Invalid_Message(); } @@ -1682,7 +1706,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD4]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD5]; - STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf); + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); // Save config to NVM sts_cfg_nvm.mtmcode1 = (uint8_t)sts_mtmcode1; sts_cfg_nvm.mtmcode2 = (uint8_t)sts_mtmcode2; @@ -1728,7 +1752,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD4]; outbuf[i++] = (uint8_t) tlv_buf[CFG_CMD5]; - STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf); + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); // Save config to NVM sts_cfg_nvm.mtmcode1 = (uint8_t)sts_mtmcode1; sts_cfg_nvm.mtmcode2 = (uint8_t)sts_mtmcode2; @@ -1964,7 +1988,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) } else { // Step 3: Upload status update message - STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf); + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); } } @@ -2020,7 +2044,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) for (uint8_t j=0; j <(tlv_buf_size) ; j++) { outbuf[i++] = (uint8_t) tlv_buf[j]; } - STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (char*)outbuf); + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t *)outbuf); } @@ -2029,7 +2053,7 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) void STS_SENSOR_Upload_Config_Invalid_Message(void) { if (sts_service_mask == STS_SERVICE_MASK_L0) - STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, 5, "PVXXX"); + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, 5, (uint8_t*)"PVXXX"); } static void STS_YUNHORN_RFAC_HANDLE_PROCESS(void) @@ -2039,7 +2063,7 @@ static void STS_YUNHORN_RFAC_HANDLE_PROCESS(void) } -void STS_SENSOR_Upload_Message(uint8_t appDataPort, uint8_t appBufferSize, char *appDataBuffer) +void STS_SENSOR_Upload_Message(uint8_t appDataPort, uint8_t appBufferSize, uint8_t *appDataBuffer) { LmHandlerErrorStatus_t status = LORAMAC_HANDLER_ERROR; UTIL_TIMER_Time_t nextTxIn = 0; @@ -2047,10 +2071,10 @@ void STS_SENSOR_Upload_Message(uint8_t appDataPort, uint8_t appBufferSize, char if (LmHandlerIsBusy() == false) { - //for (uint8_t i=0;i1 ?0:appBufferSize); @@ -2060,7 +2084,9 @@ void STS_SENSOR_Upload_Message(uint8_t appDataPort, uint8_t appBufferSize, char if ((JoinLedTimer.IsRunning) && (LmHandlerJoinStatus() == LORAMAC_HANDLER_SET)) { UTIL_TIMER_Stop(&JoinLedTimer); +#ifndef STM32WLE5xx HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_RESET); /* LED_RED */ +#endif } status = LmHandlerSend(&AppData, LmHandlerParams.IsTxConfirmed, false); @@ -2360,7 +2386,7 @@ void STS_SENSOR_Function_Test_Process(void) memset((void*)outbuf,0x0, sizeof(outbuf)); memcpy((void*)outbuf, tstbuf, i); - STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (char*)outbuf); + STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, (uint8_t*)outbuf); } diff --git a/STM32CubeIDE/Release/STS_O7.bin b/STM32CubeIDE/Release/STS_O7.bin index af814d0e0d0d09464f201df787433aded68eea40..ced5b632698463c4ec10fa779e574eb9a6571daf 100644 GIT binary patch delta 47240 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
    (`e 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 F{{g|yH#q