diff --git a/Core/Inc/yunhorn_sts_sensors.h b/Core/Inc/yunhorn_sts_sensors.h index a0b1dd2..64fbaca 100644 --- a/Core/Inc/yunhorn_sts_sensors.h +++ b/Core/Inc/yunhorn_sts_sensors.h @@ -188,6 +188,9 @@ typedef struct uint8_t distance_mm_h; /*MSB */ uint8_t distance_mm_l; /*LSB max=255 mm for short range measure */ + uint16_t distance1_mm; + uint16_t distance2_mm; + uint8_t battery_Pct; /* % of battery two digits, 88% (00-99)% */ uint8_t dutycycletimelevel; /* level=0,255 */ } STS_R0_SensorDataTypeDef; diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c index 8022f51..1f7a3c9 100644 --- a/LoRaWAN/App/lora_app.c +++ b/LoRaWAN/App/lora_app.c @@ -41,7 +41,7 @@ #include "app_tof.h" #include "yunhorn_sts_sensors.h" #include "sts_cmox_hmac_sha.h" - +#include "X-WL55_WLE5_53L0X.h" /* USER CODE END Includes */ /* External variables ---------------------------------------------------------*/ @@ -53,7 +53,7 @@ extern hmac_result_t hmac_result; volatile uint8_t sts_work_mode =0; volatile uint8_t sensor_data_ready=0; extern volatile uint8_t ToF_EventDetected; -extern volatile int sts_tof_distance_data; +extern volatile int sts_tof_distance_data[MAX_TOF_COUNT]; volatile uint32_t SamplingPeriodicity = 1000; //unit ms volatile uint32_t HeartBeatPeriodicity = 120000; //unit ms volatile uint8_t STS_LoRa_WAN_Joined = 0; @@ -809,7 +809,13 @@ static void SendTxData(void) upload_message_timer =0; AppData.Buffer[i++] = (uint8_t)(r0_data.distance_mm_h); //#05 - AppData.Buffer[i++] = (uint8_t)(r0_data.distance_mm_l); //#05 + AppData.Buffer[i++] = (uint8_t)(r0_data.distance_mm_l); //#06 + AppData.Buffer[i++] = (uint8_t)(r0_data.distance1_mm >>8)&0xff; //#07 + AppData.Buffer[i++] = (uint8_t)(r0_data.distance1_mm)&0xff; //#08 + AppData.Buffer[i++] = (uint8_t)(r0_data.distance2_mm >>8)&0xff; //#09 + AppData.Buffer[i++] = (uint8_t)(r0_data.distance2_mm)&0xff; //#10 + + APP_LOG(TS_ON, VLEVEL_L, "\r\n------------ Periodicity Upload Heart-Beat ------------- \r\n ------------------Distance = %d mm, VBAT=%d%%\r\n", r0_data.distance_mm, r0_data.battery_Pct); } @@ -1509,8 +1515,12 @@ void USER_APP_AUTO_RESPONDER_Parse(char *tlv_buf, size_t tlv_buf_size) outbuf[i++] = (uint8_t) (((uint16_t)sts_distance_rss_distance)%10+0x30)&0xff; #endif #ifdef YUNHORN_STS_R0_ENABLED - outbuf[i++] = (uint8_t) (((uint16_t)sts_tof_distance_data)/100)&0xff; - outbuf[i++] = (uint8_t) (((uint16_t)sts_tof_distance_data)%100)&0xff; + outbuf[i++] = (uint8_t) (((uint16_t)sts_tof_distance_data[0])/100)&0xff; + outbuf[i++] = (uint8_t) (((uint16_t)sts_tof_distance_data[0])%100)&0xff; + outbuf[i++] = (uint8_t) (((uint16_t)sts_tof_distance_data[1])/100)&0xff; + outbuf[i++] = (uint8_t) (((uint16_t)sts_tof_distance_data[1])%100)&0xff; + outbuf[i++] = (uint8_t) (((uint16_t)sts_tof_distance_data[2])/100)&0xff; + outbuf[i++] = (uint8_t) (((uint16_t)sts_tof_distance_data[2])%100)&0xff; #endif STS_SENSOR_Upload_Message(LORAWAN_USER_APP_CTRL_REPLY_PORT, i, outbuf); @@ -2095,7 +2105,7 @@ void STS_SENSOR_Distance_Test_Process(void) void STS_SENSOR_Function_Test_Process(void) { char tstbuf[128] =""; uint8_t i=0; - //uint8_t count = 1; + uint8_t count = 0; uint8_t mems_Dev_ID[2] = ""; tstbuf[i++] = (uint8_t) 'S'; @@ -2106,8 +2116,11 @@ void STS_SENSOR_Function_Test_Process(void) tstbuf[i++] = (uint8_t) (99*((GetBatteryLevel()/254)&0xff)); - STS_SENSOR_MEMS_Get_ID(mems_Dev_ID); - if ((mems_Dev_ID[0]==0X0) && (mems_Dev_ID[1]==0x0)) { + count = STS_SENSOR_MEMS_Get_ID(mems_Dev_ID); + +// if ((mems_Dev_ID[0]==0X0) && (mems_Dev_ID[1]==0x0)) + if (count ==0) + { tstbuf[i++] = (uint8_t) 'X'; // Slave MEMS Not Avaliable } else @@ -2132,8 +2145,13 @@ void STS_SENSOR_Function_Test_Process(void) #ifdef YUNHORN_STS_R0_ENABLED tstbuf[i++] = (uint8_t)2; //length of following data MX_TOF_Process(); - tstbuf[i++] = (uint8_t) ((sts_tof_distance_data >>8 ) &0xff); - tstbuf[i++] = (uint8_t) (sts_tof_distance_data &0xff); + tstbuf[i++] = (uint8_t) ((sts_tof_distance_data[0] >>8 ) &0xff); + tstbuf[i++] = (uint8_t) (sts_tof_distance_data[0] &0xff); + tstbuf[i++] = (uint8_t) ((sts_tof_distance_data[1] >>8 ) &0xff); + tstbuf[i++] = (uint8_t) (sts_tof_distance_data[1] &0xff); + tstbuf[i++] = (uint8_t) ((sts_tof_distance_data[2] >>8 ) &0xff); + tstbuf[i++] = (uint8_t) (sts_tof_distance_data[2] &0xff); + #endif } diff --git a/STM32CubeIDE/.cproject b/STM32CubeIDE/.cproject index 7bb2bf7..6a0e046 100644 --- a/STM32CubeIDE/.cproject +++ b/STM32CubeIDE/.cproject @@ -26,7 +26,7 @@