mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-06-30 05:50:34 +08:00
Sensor sim: Initialize sensor data to zero
This commit is contained in:
@@ -448,6 +448,9 @@ ACCELSIM::init()
|
||||
{
|
||||
int ret = ERROR;
|
||||
|
||||
struct mag_report mrp = {};
|
||||
struct accel_report arp = {};
|
||||
|
||||
/* do SIM init first */
|
||||
if (VDev::init() != OK) {
|
||||
PX4_WARN("SIM init failed");
|
||||
@@ -478,7 +481,6 @@ ACCELSIM::init()
|
||||
measure();
|
||||
|
||||
/* advertise sensor topic, measure manually to initialize valid report */
|
||||
struct mag_report mrp;
|
||||
_mag_reports->get(&mrp);
|
||||
|
||||
/* measurement will have generated a report, publish */
|
||||
@@ -493,7 +495,6 @@ ACCELSIM::init()
|
||||
_accel_class_instance = register_class_devname(ACCEL_BASE_DEVICE_PATH);
|
||||
|
||||
/* advertise sensor topic, measure manually to initialize valid report */
|
||||
struct accel_report arp = {};
|
||||
_accel_reports->get(&arp);
|
||||
|
||||
/* measurement will have generated a report, publish */
|
||||
@@ -1014,7 +1015,7 @@ ACCELSIM::measure()
|
||||
} raw_accel_report;
|
||||
#pragma pack(pop)
|
||||
|
||||
accel_report accel_report;
|
||||
accel_report accel_report = {};
|
||||
|
||||
/* start the performance counter */
|
||||
perf_begin(_accel_sample_perf);
|
||||
@@ -1023,7 +1024,7 @@ ACCELSIM::measure()
|
||||
memset(&raw_accel_report, 0, sizeof(raw_accel_report));
|
||||
raw_accel_report.cmd = DIR_READ | ACC_READ;
|
||||
|
||||
if(OK != transfer((uint8_t *)&raw_accel_report, (uint8_t *)&raw_accel_report, sizeof(raw_accel_report))) {
|
||||
if (OK != transfer((uint8_t *)&raw_accel_report, (uint8_t *)&raw_accel_report, sizeof(raw_accel_report))) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -419,6 +419,9 @@ GYROSIM::init()
|
||||
return ret;
|
||||
}
|
||||
|
||||
struct accel_report arp = {};
|
||||
struct gyro_report grp = {};
|
||||
|
||||
/* allocate basic report buffers */
|
||||
_accel_reports = new ringbuffer::RingBuffer(2, sizeof(accel_report));
|
||||
if (_accel_reports == nullptr) {
|
||||
@@ -466,7 +469,6 @@ GYROSIM::init()
|
||||
measure();
|
||||
|
||||
/* advertise sensor topic, measure manually to initialize valid report */
|
||||
struct accel_report arp = {};
|
||||
_accel_reports->get(&arp);
|
||||
|
||||
/* measurement will have generated a report, publish */
|
||||
@@ -482,7 +484,6 @@ GYROSIM::init()
|
||||
|
||||
|
||||
/* advertise sensor topic, measure manually to initialize valid report */
|
||||
struct gyro_report grp = {};
|
||||
_gyro_reports->get(&grp);
|
||||
|
||||
_gyro->_gyro_topic = orb_advertise_multi(ORB_ID(sensor_gyro), &grp,
|
||||
@@ -511,8 +512,9 @@ GYROSIM::transfer(uint8_t *send, uint8_t *recv, unsigned len)
|
||||
if (cmd == MPUREAD) {
|
||||
// Get data from the simulator
|
||||
Simulator *sim = Simulator::getInstance();
|
||||
if (sim == NULL)
|
||||
if (sim == NULL) {
|
||||
return ENODEV;
|
||||
}
|
||||
|
||||
// FIXME - not sure what interrupt status should be
|
||||
recv[1] = 0;
|
||||
@@ -1012,7 +1014,7 @@ GYROSIM::measure()
|
||||
x++;
|
||||
}
|
||||
#endif
|
||||
struct MPUReport mpu_report;
|
||||
struct MPUReport mpu_report = {};
|
||||
|
||||
/* start measuring */
|
||||
perf_begin(_sample_perf);
|
||||
@@ -1031,8 +1033,8 @@ GYROSIM::measure()
|
||||
/*
|
||||
* Report buffers.
|
||||
*/
|
||||
accel_report arb;
|
||||
gyro_report grb;
|
||||
accel_report arb = {};
|
||||
gyro_report grb = {};
|
||||
|
||||
// for now use local time but this should be the timestamp of the simulator
|
||||
grb.timestamp = hrt_absolute_time();
|
||||
|
||||
Reference in New Issue
Block a user