diff --git a/Tools/posix_apps.py b/Tools/posix_apps.py index 00e11fcbbb..1dfca71e27 100755 --- a/Tools/posix_apps.py +++ b/Tools/posix_apps.py @@ -48,6 +48,7 @@ print """ #include #include +#include using namespace std; @@ -64,6 +65,7 @@ static int list_tasks_main(int argc, char *argv[]); static int list_files_main(int argc, char *argv[]); static int list_devices_main(int argc, char *argv[]); static int list_topics_main(int argc, char *argv[]); +static int sleep_main(int argc, char *argv[]); } @@ -81,6 +83,7 @@ print '\tapps["list_tasks"] = list_tasks_main;' print '\tapps["list_files"] = list_files_main;' print '\tapps["list_devices"] = list_devices_main;' print '\tapps["list_topics"] = list_topics_main;' +print '\tapps["sleep"] = sleep_main;' print """ return apps; } @@ -122,5 +125,14 @@ static int list_files_main(int argc, char *argv[]) px4_show_files(); return 0; } +static int sleep_main(int argc, char *argv[]) +{ + if (argc != 2) { + cout << "Usage: sleep " << endl; + return 1; + } + sleep(atoi(argv[1])); + return 0; +} """ diff --git a/makefiles/posix/config_posix_default.mk b/makefiles/posix/config_posix_default.mk index 30dada7bbd..5f1d80bdea 100644 --- a/makefiles/posix/config_posix_default.mk +++ b/makefiles/posix/config_posix_default.mk @@ -7,6 +7,7 @@ # MODULES += drivers/device MODULES += drivers/blinkm +MODULES += drivers/buzzer MODULES += drivers/hil MODULES += drivers/rgbled MODULES += drivers/led diff --git a/posix-configs/posixtest/init/rc.S b/posix-configs/posixtest/init/rc.S index 896062639e..93e6c69d01 100644 --- a/posix-configs/posixtest/init/rc.S +++ b/posix-configs/posixtest/init/rc.S @@ -1,5 +1,6 @@ uorb start simulator start -s +sleep 2 barosim start adcsim start accelsim start diff --git a/src/drivers/device/i2c_posix.cpp b/src/drivers/device/i2c_posix.cpp index ddf7a0db4c..aa031d9e42 100644 --- a/src/drivers/device/i2c_posix.cpp +++ b/src/drivers/device/i2c_posix.cpp @@ -69,7 +69,7 @@ I2C::I2C(const char *name, _address(address), _fd(-1) { - warnx("I2C::I2C name = %s devname = %s", name, devname); + //warnx("I2C::I2C name = %s devname = %s", name, devname); // fill in _device_id fields for a I2C device _device_id.devid_s.bus_type = DeviceBusType_I2C; _device_id.devid_s.bus = bus; diff --git a/src/modules/sensors/sensors.cpp b/src/modules/sensors/sensors.cpp index bc1ae89906..0be31046b1 100644 --- a/src/modules/sensors/sensors.cpp +++ b/src/modules/sensors/sensors.cpp @@ -868,7 +868,7 @@ Sensors::parameters_update() barofd = px4_open(BARO0_DEVICE_PATH, 0); if (barofd < 0) { - warnx("ERROR: no barometer foundon %s", BARO0_DEVICE_PATH); + warnx("ERROR: no barometer found on %s", BARO0_DEVICE_PATH); return ERROR; } else { diff --git a/src/platforms/posix/drivers/accelsim/accelsim.cpp b/src/platforms/posix/drivers/accelsim/accelsim.cpp index 994b1bfb9b..174c522383 100644 --- a/src/platforms/posix/drivers/accelsim/accelsim.cpp +++ b/src/platforms/posix/drivers/accelsim/accelsim.cpp @@ -774,7 +774,7 @@ ACCELSIM::mag_ioctl(device::file_t *filp, int cmd, unsigned long arg) unsigned period = 1000000 / arg; /* check against maximum sane rate (1ms) */ - if (period < 1000) + if (period < 10000) return -EINVAL; /* update interval for next measurement */ @@ -961,11 +961,10 @@ ACCELSIM::start() //PX4_INFO("ACCELSIM::start accel %u", _call_accel_interval); hrt_call_every(&_accel_call, 1000, _call_accel_interval, (hrt_callout)&ACCELSIM::measure_trampoline, this); - - // There is a race here where SENSORIOCSPOLLRATE on the accel starts polling of mag but mag period is set to 0 + // There is a race here where SENSORIOCSPOLLRATE on the accel starts polling of mag but _call_mag_interval is 0 if (_call_mag_interval == 0) { - PX4_ERR("_call_mag_interval uninitilized - would have set period delay of 0"); - _call_mag_interval = 1000; + //PX4_INFO("_call_mag_interval uninitilized - would have set period delay of 0"); + _call_mag_interval = 10000; // Max 100Hz } //PX4_INFO("ACCELSIM::start mag %u", _call_mag_interval); diff --git a/src/platforms/posix/drivers/gyrosim/gyrosim.cpp b/src/platforms/posix/drivers/gyrosim/gyrosim.cpp index 54e448cabb..40d8f71c1b 100644 --- a/src/platforms/posix/drivers/gyrosim/gyrosim.cpp +++ b/src/platforms/posix/drivers/gyrosim/gyrosim.cpp @@ -466,6 +466,9 @@ GYROSIM::GYROSIM(const char *path_accel, const char *path_gyro, enum Rotation ro // disable debug() calls _debug_enabled = false; + // Don't publish until initialized + _pub_blocked = true; + _device_id.devid_s.devtype = DRV_ACC_DEVTYPE_GYROSIM; /* Prime _gyro with parents devid. */ @@ -588,6 +591,9 @@ GYROSIM::init() if (_accel_topic == nullptr) { PX4_WARN("ADVERT FAIL"); } + else { + _pub_blocked = false; + } /* advertise sensor topic, measure manually to initialize valid report */