|
|
|
@ -376,7 +376,6 @@ MEASAirspeed *g_dev = nullptr;
@@ -376,7 +376,6 @@ MEASAirspeed *g_dev = nullptr;
|
|
|
|
|
|
|
|
|
|
int start(int i2c_bus); |
|
|
|
|
int stop(); |
|
|
|
|
int test(); |
|
|
|
|
int reset(); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -450,78 +449,6 @@ stop()
@@ -450,78 +449,6 @@ stop()
|
|
|
|
|
return PX4_OK; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Perform some basic functional tests on the driver; |
|
|
|
|
* make sure we can collect data from the sensor in polled |
|
|
|
|
* and automatic modes. |
|
|
|
|
*/ |
|
|
|
|
int |
|
|
|
|
test() |
|
|
|
|
{ |
|
|
|
|
struct differential_pressure_s report; |
|
|
|
|
ssize_t sz; |
|
|
|
|
int ret; |
|
|
|
|
|
|
|
|
|
int fd = px4_open(PATH_MS4525, O_RDONLY); |
|
|
|
|
|
|
|
|
|
if (fd < 0) { |
|
|
|
|
PX4_ERR("%s open failed (try 'meas_airspeed start' if the driver is not running", PATH_MS4525); |
|
|
|
|
return PX4_ERROR; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* do a simple demand read */ |
|
|
|
|
sz = px4_read(fd, &report, sizeof(report)); |
|
|
|
|
|
|
|
|
|
if (sz != sizeof(report)) { |
|
|
|
|
PX4_ERR("immediate read failed"); |
|
|
|
|
return PX4_ERROR; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
PX4_INFO("single read"); |
|
|
|
|
PX4_INFO("diff pressure: %d pa", (int)report.differential_pressure_filtered_pa); |
|
|
|
|
|
|
|
|
|
/* start the sensor polling at 2Hz */ |
|
|
|
|
if (OK != px4_ioctl(fd, SENSORIOCSPOLLRATE, 2)) { |
|
|
|
|
PX4_ERR("failed to set 2Hz poll rate"); |
|
|
|
|
return PX4_ERROR; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* read the sensor 5x and report each value */ |
|
|
|
|
for (unsigned i = 0; i < 5; i++) { |
|
|
|
|
px4_pollfd_struct_t fds; |
|
|
|
|
|
|
|
|
|
/* wait for data to be ready */ |
|
|
|
|
fds.fd = fd; |
|
|
|
|
fds.events = POLLIN; |
|
|
|
|
ret = px4_poll(&fds, 1, 2000); |
|
|
|
|
|
|
|
|
|
if (ret != 1) { |
|
|
|
|
PX4_ERR("timed out waiting for sensor data"); |
|
|
|
|
return PX4_ERROR; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* now go get it */ |
|
|
|
|
sz = px4_read(fd, &report, sizeof(report)); |
|
|
|
|
|
|
|
|
|
if (sz != sizeof(report)) { |
|
|
|
|
PX4_ERR("periodic read failed"); |
|
|
|
|
return PX4_ERROR; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
PX4_INFO("periodic read %u", i); |
|
|
|
|
PX4_INFO("diff pressure: %d pa", (int)report.differential_pressure_filtered_pa); |
|
|
|
|
PX4_INFO("temperature: %d C (0x%02x)", (int)report.temperature, (unsigned) report.temperature); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* reset the sensor polling to its default rate */ |
|
|
|
|
if (OK != px4_ioctl(fd, SENSORIOCSPOLLRATE, SENSOR_POLLRATE_DEFAULT)) { |
|
|
|
|
PX4_ERR("failed to set default rate"); |
|
|
|
|
return PX4_ERROR; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return PX4_OK; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Reset the driver. |
|
|
|
|
*/ |
|
|
|
@ -558,7 +485,7 @@ meas_airspeed_usage()
@@ -558,7 +485,7 @@ meas_airspeed_usage()
|
|
|
|
|
PX4_INFO("options:"); |
|
|
|
|
PX4_INFO("\t-b --bus i2cbus (%d)", PX4_I2C_BUS_DEFAULT); |
|
|
|
|
PX4_INFO("command:"); |
|
|
|
|
PX4_INFO("\tstart|stop|reset|test"); |
|
|
|
|
PX4_INFO("\tstart|stop|reset"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int |
|
|
|
@ -590,13 +517,6 @@ ms4525_airspeed_main(int argc, char *argv[])
@@ -590,13 +517,6 @@ ms4525_airspeed_main(int argc, char *argv[])
|
|
|
|
|
return meas_airspeed::stop(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Test the driver/device. |
|
|
|
|
*/ |
|
|
|
|
if (!strcmp(argv[1], "test")) { |
|
|
|
|
return meas_airspeed::test(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Reset the driver. |
|
|
|
|
*/ |
|
|
|
|