Drivers: Distance Sensors: Add proper device IDs

Add new DeviceBusType_SERIAL to Device::DeviceId union
Add DRV_DIST_DEVTYPE's for all distance sensors
Change distance_sensor_s.id to distance_sensor_s.device_id
Modify all distance_sensor drivers to apply 'proper' device_id
This commit is contained in:
JacobCrabill
2021-01-27 17:02:20 -05:00
committed by Daniel Agar
parent adf2d2f73a
commit 85796fbd84
26 changed files with 168 additions and 38 deletions
@@ -37,12 +37,26 @@
#include <stdlib.h>
#include <string.h>
#include <lib/drivers/device/Device.hpp>
LeddarOne::LeddarOne(const char *serial_port, uint8_t device_orientation):
ScheduledWorkItem(MODULE_NAME, px4::serial_port_to_wq(serial_port)),
_px4_rangefinder(0 /* device id not yet used */, device_orientation)
_px4_rangefinder(0, device_orientation)
{
_serial_port = strdup(serial_port);
device::Device::DeviceId device_id;
device_id.devid_s.bus_type = device::Device::DeviceBusType::DeviceBusType_SERIAL;
uint8_t bus_num = atoi(&_serial_port[sizeof(_serial_port) - 2]);
if (bus_num < 10) {
device_id.devid_s.bus = bus_num;
}
_px4_rangefinder.set_device_id(device_id.devid);
_px4_rangefinder.set_device_type(DRV_DIST_DEVTYPE_LEDDARONE);
_px4_rangefinder.set_max_distance(LEDDAR_ONE_MAX_DISTANCE);
_px4_rangefinder.set_min_distance(LEDDAR_ONE_MIN_DISTANCE);
_px4_rangefinder.set_fov(LEDDAR_ONE_FIELD_OF_VIEW);