revised for 3 tof sensors

This commit is contained in:
Yunhorn 2023-07-11 16:16:36 +08:00
parent 3863a435a9
commit 635918ca35
3 changed files with 22 additions and 22 deletions

View File

@ -800,7 +800,8 @@ static void SendTxData(void)
{
heart_beat_timer = 0;
AppData.Port = LORAWAN_USER_HTBT_PORT; //LORAWAN_USER_APP_PORT+1;
APP_LOG(TS_ON, VLEVEL_L, "\r\n------------ Heart-Beat ------------- \r\n ------------------Distance = %d mm, VBAT=%d%%\r\n", r0_data.distance_mm, r0_data.battery_Pct);
APP_LOG(TS_ON, VLEVEL_L, "\r\n------------ Heart-Beat ------------- \r\n ------------------\r\nDistance0 = %d mm, \r\nDistance1 = %d mm,\r\nDistance2 = %d mm, \r\nVBAT=%d\r\n",
r0_data.distance_mm,r0_data.distance1_mm,r0_data.distance2_mm, r0_data.battery_Pct);
} else if ((upload_message_timer)||(sensor_data_ready)) //sensor_data_ready for manual push button-1 trigger)
{
@ -808,15 +809,15 @@ static void SendTxData(void)
sensor_data_ready =0;
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); //#06
AppData.Buffer[i++] = (uint8_t)(r0_data.distance_mm >>8)&0xff; //#05
AppData.Buffer[i++] = (uint8_t)(r0_data.distance_mm)&0xff; //#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.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
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);
APP_LOG(TS_ON, VLEVEL_L, "\r\n------------ Heart-Beat ------------- \r\n ------------------\r\nDistance0 = %d mm, \r\nDistance1 = %d mm,\r\nDistance2 = %d mm, \r\nVBAT=%d\r\n",
r0_data.distance_mm,r0_data.distance1_mm,r0_data.distance2_mm, r0_data.battery_Pct);
}
AppData.BufferSize = (sts_service_mask >1?0:i);

View File

@ -103,9 +103,9 @@ void MX_TOF_Process(void)
#ifdef STS_USE_TOF_VL53L0X
STS_SENSOR_Power_ON(1);
HAL_Delay(500);
HAL_Delay(100);
STS_TOF_VL53L0X_Range_Process();
HAL_Delay(500);
HAL_Delay(100);
STS_SENSOR_Power_OFF(1);
#endif
@ -120,13 +120,7 @@ void MX_TOF_Process(void)
}
void STS_R0_SENSOR_Read(STS_R0_SensorDataTypeDef *r0_data)
{
if (sts_tof_distance_data[0] != 0)
r0_data->distance_mm = sts_tof_distance_data[0];
else if (sts_tof_distance_data[1] != 0)
r0_data->distance_mm = sts_tof_distance_data[1];
else if (sts_tof_distance_data[2] != 0)
r0_data->distance_mm = sts_tof_distance_data[2];
r0_data->distance_mm = sts_tof_distance_data[0];
r0_data->distance1_mm = sts_tof_distance_data[1];
r0_data->distance2_mm = sts_tof_distance_data[2];

View File

@ -83,7 +83,7 @@ int nDevMask=0;
int nSensorPresent;
volatile int sts_tof_distance_data[MAX_TOF_COUNT];
volatile int sts_tof_distance_data[MAX_TOF_COUNT]={0,0,0};
extern volatile uint8_t sensor_data_ready;
VL53L0X_Dev_t VL53L0XDevs[]={
@ -109,8 +109,9 @@ void sts_tof_vl53l0x_SetupSingleShot(RangingConfig_e rangingConfig);
* @param err Error case code
*/
void HandleError(int err){
char msg[16];
sprintf(msg,"Er%d", err);
//char msg[16];
//sprintf(msg,"Er%d", err);
APP_LOG(TS_OFF, VLEVEL_L,"Er%d\r\n",err);
while(1){};
}
@ -131,9 +132,9 @@ int sts_tof_vl53l0x_DetectSensors(void)
nDevPresent = 0;
HAL_GPIO_WritePin(TOF_C_XSHUT_GPIO_Port, TOF_C_XSHUT_Pin, GPIO_PIN_RESET);
HAL_Delay(30);
HAL_Delay(10);
HAL_GPIO_WritePin(TOF_C_XSHUT_GPIO_Port, TOF_C_XSHUT_Pin, GPIO_PIN_SET);
//HAL_Delay(30);
HAL_Delay(10);
//HAL_GPIO_WritePin(TOF_C_XSHUT_GPIO_Port, TOF_C_XSHUT_Pin, GPIO_PIN_SET);
//HAL_Delay(100);
@ -351,11 +352,15 @@ void STS_TOF_VL53L0X_Range_Process(void)
if (VL53L0XDevs[i].Present ==1)
{
APP_LOG(TS_OFF, VLEVEL_L, "\r\nStart Ranging #%u sensor, position mask 0x%02x \r\n", i, nDevMask);
status = VL53L0X_PerformSingleRangingMeasurement(&VL53L0XDevs[i], &RangingMeasurementData);
APP_LOG(TS_OFF, VLEVEL_L, "\r\nRanging status =0x%04x \r\n", status);
if( status ==0 )
{
sts_tof_vl53l0x_Sensor_SetNewRange(&VL53L0XDevs[i],&RangingMeasurementData);
/* Display distance in mm */
APP_LOG(TS_OFF, VLEVEL_L, "\r\nSet New Range status =%u \r\n", RangingMeasurementData.RangeStatus);
if( RangingMeasurementData.RangeStatus == 0 )
{
sts_tof_distance_data[i] = (int)VL53L0XDevs[i].LeakyRange;
@ -377,7 +382,7 @@ void STS_TOF_VL53L0X_Range_Process(void)
} // for i < MAX_TOF_COUNT
APP_LOG(TS_OFF, VLEVEL_L, "\r\n## Measured Range: \r\nTOF #0 = %4d mm, \r\nTOF #1 = %4d mm, \r\nTOF #2 = %4d mm\r\n",
APP_LOG(TS_OFF, VLEVEL_L, "\r\n## Measured Range: \r\nTOF #0 = %4u mm, \r\nTOF #1 = %4u mm, \r\nTOF #2 = %4u mm\r\n",
(int)sts_tof_distance_data[0],(int)sts_tof_distance_data[1],(int)sts_tof_distance_data[2]);
} // nSensorPresent >0
}