diff --git a/src/shared/sensors/BMX160/BMX160.cpp b/src/shared/sensors/BMX160/BMX160.cpp index 2fdd343e698d7519ea8a382d8338a587450d8797..612e02f7930748ce6bdb239bc7088e20a08b7095 100644 --- a/src/shared/sensors/BMX160/BMX160.cpp +++ b/src/shared/sensors/BMX160/BMX160.cpp @@ -34,7 +34,7 @@ BMX160::BMX160(SPIBusInterface& bus, miosix::GpioPin cs, BMX160Config config) spiSlave.config.clockDivider = SPI::ClockDivider::DIV_32; oldMag.magneticFieldTimestamp = 0.0f; oldGyr.angularSpeedTimestamp = 0.0f; - oldAcc.accelerationTimestamp = Microsecond(0); + oldAcc.accelerationTimestamp = 0; } BMX160::BMX160(SPIBusInterface& bus, miosix::GpioPin cs, BMX160Config config, @@ -43,7 +43,7 @@ BMX160::BMX160(SPIBusInterface& bus, miosix::GpioPin cs, BMX160Config config, { oldMag.magneticFieldTimestamp = 0.0f; oldGyr.angularSpeedTimestamp = 0.0f; - oldAcc.accelerationTimestamp = Microsecond(0); + oldAcc.accelerationTimestamp = 0; } bool BMX160::init() @@ -609,8 +609,7 @@ AccelerometerData BMX160::buildAccData(BMX160Defs::AccRaw data, using namespace Constants; return AccelerometerData{ - Microsecond(timestamp), - MeterPerSecondSquared(data.x * accSensibility * g), + timestamp, MeterPerSecondSquared(data.x * accSensibility * g), MeterPerSecondSquared(data.y * accSensibility * g), MeterPerSecondSquared(data.z * accSensibility * g)}; } @@ -736,8 +735,8 @@ void BMX160::readFifo(bool headerless) oldMag.magneticFieldTimestamp -= interruptTimestampDelta; if (oldGyr.angularSpeedTimestamp != 0) oldGyr.angularSpeedTimestamp -= interruptTimestampDelta; - if (oldAcc.accelerationTimestamp.value() != 0) - oldAcc.accelerationTimestamp -= Microsecond(interruptTimestampDelta); + if (oldAcc.accelerationTimestamp != 0) + oldAcc.accelerationTimestamp -= interruptTimestampDelta; // Calculate time offset uint64_t timeOffset = std::min({ @@ -866,7 +865,7 @@ void BMX160::readFifo(bool headerless) for (int i = 0; i < lastFifoLevel; i++) { lastFifo[i].accelerationTimestamp += - Microsecond(lastInterruptTimestamp - watermarkTimestamp); + lastInterruptTimestamp - watermarkTimestamp; lastFifo[i].angularSpeedTimestamp += lastInterruptTimestamp - watermarkTimestamp; lastFifo[i].magneticFieldTimestamp += diff --git a/src/shared/sensors/BMX160/BMX160Data.h b/src/shared/sensors/BMX160/BMX160Data.h index be594c56250881eaa2d13bb5cc0d33ebcae27c55..62fd29c101a22ce5829afab7d212c40950e6008a 100644 --- a/src/shared/sensors/BMX160/BMX160Data.h +++ b/src/shared/sensors/BMX160/BMX160Data.h @@ -32,7 +32,7 @@ struct BMX160Data : public AccelerometerData, public MagnetometerData { BMX160Data() - : AccelerometerData{Microsecond(0), MeterPerSecondSquared(0), + : AccelerometerData{0, MeterPerSecondSquared(0), MeterPerSecondSquared(0), MeterPerSecondSquared(0)}, GyroscopeData{0, 0.0, 0.0, 0.0}, MagnetometerData{0, 0.0, 0.0, 0.0} { @@ -53,9 +53,9 @@ struct BMX160Data : public AccelerometerData, void print(std::ostream& os) const { - os << accelerationTimestamp.value() << "," << accelerationX.value() - << "," << accelerationY.value() << "," << accelerationZ.value() - << "," << angularSpeedTimestamp << "," << angularSpeedX << "," + os << accelerationTimestamp << "," << accelerationX.value() << "," + << accelerationY.value() << "," << accelerationZ.value() << "," + << angularSpeedTimestamp << "," << angularSpeedX << "," << angularSpeedY << "," << angularSpeedZ << "," << magneticFieldTimestamp << "," << magneticFieldX << "," << magneticFieldY << "," << magneticFieldZ << "\n"; diff --git a/src/shared/sensors/BMX160/BMX160WithCorrection.cpp b/src/shared/sensors/BMX160/BMX160WithCorrection.cpp index ba32d98979c5e1d7a7b72601e7ff19a34c399218..ba68500bb4214faab3e5f48e8323bc92310a629b 100644 --- a/src/shared/sensors/BMX160/BMX160WithCorrection.cpp +++ b/src/shared/sensors/BMX160/BMX160WithCorrection.cpp @@ -115,9 +115,9 @@ BMX160WithCorrectionData BMX160WithCorrection::sampleImpl() result.accelerationTimestamp = fifoElement.accelerationTimestamp; static_cast<AccelerometerData&>(result) << avgAccel; - result.magneticFieldTimestamp = fifoElement.accelerationTimestamp.value(); + result.magneticFieldTimestamp = fifoElement.accelerationTimestamp; static_cast<MagnetometerData&>(result) << avgMag; - result.angularSpeedTimestamp = fifoElement.accelerationTimestamp.value(); + result.angularSpeedTimestamp = fifoElement.accelerationTimestamp; static_cast<GyroscopeData&>(result) << (avgGyro - gyroscopeBias); if (calibrating) diff --git a/src/shared/sensors/BMX160/BMX160WithCorrectionData.h b/src/shared/sensors/BMX160/BMX160WithCorrectionData.h index ee95eddd298952ed6fed0b9c21f7d429d4fb2760..0f5aaaa326fe68f36e88bb2ee373b5ba3824578e 100644 --- a/src/shared/sensors/BMX160/BMX160WithCorrectionData.h +++ b/src/shared/sensors/BMX160/BMX160WithCorrectionData.h @@ -76,9 +76,9 @@ struct BMX160WithCorrectionData : public BMX160Data void print(std::ostream& os) const { - os << accelerationTimestamp.value() << "," << accelerationX.value() - << "," << accelerationY.value() << "," << accelerationZ.value() - << "," << angularSpeedTimestamp << "," << angularSpeedX << "," + os << accelerationTimestamp << "," << accelerationX.value() << "," + << accelerationY.value() << "," << accelerationZ.value() << "," + << angularSpeedTimestamp << "," << angularSpeedX << "," << angularSpeedY << "," << angularSpeedZ << "," << magneticFieldTimestamp << "," << magneticFieldX << "," << magneticFieldY << "," << magneticFieldZ << "\n"; diff --git a/src/shared/sensors/H3LIS331DL/H3LIS331DLData.h b/src/shared/sensors/H3LIS331DL/H3LIS331DLData.h index 090649e472faf79693b604f8f863bbcb706277b9..6ab962a74653d8e41ad2f5b9a46eea6598be3ef7 100644 --- a/src/shared/sensors/H3LIS331DL/H3LIS331DLData.h +++ b/src/shared/sensors/H3LIS331DL/H3LIS331DLData.h @@ -31,12 +31,12 @@ struct H3LIS331DLData : public AccelerometerData { H3LIS331DLData() - : AccelerometerData(Microsecond(0), MeterPerSecondSquared(0), + : AccelerometerData(0, MeterPerSecondSquared(0), MeterPerSecondSquared(0), MeterPerSecondSquared(0)){}; H3LIS331DLData(uint64_t ts, float aX, float aY, float aZ) - : AccelerometerData(Microsecond(0), MeterPerSecondSquared(aX), + : AccelerometerData(0, MeterPerSecondSquared(aX), MeterPerSecondSquared(aY), MeterPerSecondSquared(aZ)){}; @@ -49,9 +49,8 @@ struct H3LIS331DLData : public AccelerometerData void print(std::ostream& os) const { - os << accelerationTimestamp.value() << "," << accelerationX.value() - << "," << accelerationY.value() << "," << accelerationZ.value() - << "\n"; + os << accelerationTimestamp << "," << accelerationX.value() << "," + << accelerationY.value() << "," << accelerationZ.value() << "\n"; } }; diff --git a/src/shared/sensors/LIS331HH/LIS331HH.cpp b/src/shared/sensors/LIS331HH/LIS331HH.cpp index 2af538bc7663c61724739d7e3063d68c2e779e8d..d62da57d4960f818461cf8af3d35ff8dc3171c1a 100644 --- a/src/shared/sensors/LIS331HH/LIS331HH.cpp +++ b/src/shared/sensors/LIS331HH/LIS331HH.cpp @@ -75,7 +75,7 @@ LIS331HHData LIS331HH::sampleImpl() int16_t val; LIS331HHData data; - data.accelerationTimestamp = Microsecond(TimestampTimer::getTimestamp()); + data.accelerationTimestamp = TimestampTimer::getTimestamp(); SPITransaction spi(slave); diff --git a/src/shared/sensors/LIS331HH/LIS331HHData.h b/src/shared/sensors/LIS331HH/LIS331HHData.h index ebf85ca3cdb86f51108874715adac712d592ac87..31bef1fb2e1cf34e6892a675288804ecd0dec71f 100644 --- a/src/shared/sensors/LIS331HH/LIS331HHData.h +++ b/src/shared/sensors/LIS331HH/LIS331HHData.h @@ -39,9 +39,8 @@ struct LIS331HHData : public AccelerometerData void print(std::ostream& os) const { - os << accelerationTimestamp.value() << "," << accelerationX.value() - << "," << accelerationY.value() << "," << accelerationZ.value() - << "\n"; + os << accelerationTimestamp << "," << accelerationX.value() << "," + << accelerationY.value() << "," << accelerationZ.value() << "\n"; } }; diff --git a/src/shared/sensors/LIS3DSH/LIS3DSH.h b/src/shared/sensors/LIS3DSH/LIS3DSH.h index 9ae1c76742a731249f9d247107e2c9ae787c46ec..aebb40fbdbfe9d49732704fdb0f630a36cc7e6ba 100644 --- a/src/shared/sensors/LIS3DSH/LIS3DSH.h +++ b/src/shared/sensors/LIS3DSH/LIS3DSH.h @@ -365,7 +365,7 @@ private: { // bit 7 of status set to 1 (some data overwritten) accelData.accelerationTimestamp = - Microsecond(TimestampTimer::getTimestamp()); + TimestampTimer::getTimestamp(); // read acceleration on X int8_t accel_L = spi.readRegister(OUT_X_L); diff --git a/src/shared/sensors/LIS3DSH/LIS3DSHData.h b/src/shared/sensors/LIS3DSH/LIS3DSHData.h index e42b9b88b40aed37171d0fd6fb76eff78219740f..f650cd2d3ed90c1fed4f1189fb2d7163b0e5c3ae 100644 --- a/src/shared/sensors/LIS3DSH/LIS3DSHData.h +++ b/src/shared/sensors/LIS3DSH/LIS3DSHData.h @@ -32,15 +32,15 @@ using namespace Units::Time; struct LIS3DSHData : public AccelerometerData, public TemperatureData { LIS3DSHData() - : AccelerometerData{Microsecond(0), MeterPerSecondSquared(0), + : AccelerometerData{0, MeterPerSecondSquared(0), MeterPerSecondSquared(0), MeterPerSecondSquared(0)}, TemperatureData{0, 0.0} { } - LIS3DSHData(Microsecond t, MeterPerSecondSquared x, MeterPerSecondSquared y, + LIS3DSHData(uint64_t t, MeterPerSecondSquared x, MeterPerSecondSquared y, MeterPerSecondSquared z, float temp) - : AccelerometerData{t, x, y, z}, TemperatureData{t.value(), temp} + : AccelerometerData{t, x, y, z}, TemperatureData{t, temp} { } @@ -61,9 +61,9 @@ struct LIS3DSHData : public AccelerometerData, public TemperatureData void print(std::ostream& os) const { - os << accelerationTimestamp.value() << "," << accelerationX.value() - << "," << accelerationY.value() << "," << accelerationZ.value() - << "," << temperatureTimestamp << "," << temperature << "\n"; + os << accelerationTimestamp << "," << accelerationX.value() << "," + << accelerationY.value() << "," << accelerationZ.value() << "," + << temperatureTimestamp << "," << temperature << "\n"; } }; diff --git a/src/shared/sensors/LSM6DSRX/LSM6DSRX.cpp b/src/shared/sensors/LSM6DSRX/LSM6DSRX.cpp index e98c87af4c16e0fa87ea4572c6bf9a8faa556636..6a64aba4a6ce165934a98ffd5cd0d7e846b204aa 100644 --- a/src/shared/sensors/LSM6DSRX/LSM6DSRX.cpp +++ b/src/shared/sensors/LSM6DSRX/LSM6DSRX.cpp @@ -624,7 +624,7 @@ uint16_t LSM6DSRX::combineHighLowBitsUnsigned(uint8_t low, uint8_t high) void LSM6DSRX::getAccelerometerData(LSM6DSRXData& data) { - data.accelerationTimestamp = Microsecond(TimestampTimer::getTimestamp()); + data.accelerationTimestamp = TimestampTimer::getTimestamp(); data.accelerationX = MeterPerSecondSquared( getAxisData(LSM6DSRXDefs::REG_OUTX_L_A, LSM6DSRXDefs::REG_OUTX_H_A, @@ -885,9 +885,9 @@ void LSM6DSRX::readFromFifo() // Set new data timestamps[timeslotTag].data.accelerationTimestamp = - Microsecond(convertTimestamp(static_cast<uint64_t>(t))); + convertTimestamp(static_cast<uint64_t>(t)); timestamps[timeslotTag].data.angularSpeedTimestamp = - timestamps[timeslotTag].data.accelerationTimestamp.value(); + timestamps[timeslotTag].data.accelerationTimestamp; timestamps[timeslotTag].accPresent = false; timestamps[timeslotTag].gyrPresent = false; @@ -912,7 +912,7 @@ void LSM6DSRX::pushIntoFifo(LSM6DSRXDefs::FifoTimeslotData& timeslot, // check if data can be pushed if ((fifoIdx > 0 && timeslot.data.accelerationTimestamp == lastFifo[fifoIdx - 1].accelerationTimestamp) || - timeslot.data.accelerationTimestamp.value() == 0) + timeslot.data.accelerationTimestamp == 0) { // the new sample has the same timestamp of the previous one or // timestamp is 0 --> discarded diff --git a/src/shared/sensors/LSM6DSRX/LSM6DSRXData.h b/src/shared/sensors/LSM6DSRX/LSM6DSRXData.h index 6135ef24c488abe905b529bfe8dc34605a4370e5..268df0354242893d2222dabd451fc18a6b863b21 100644 --- a/src/shared/sensors/LSM6DSRX/LSM6DSRXData.h +++ b/src/shared/sensors/LSM6DSRX/LSM6DSRXData.h @@ -30,7 +30,7 @@ namespace Boardcore struct LSM6DSRXData : public AccelerometerData, public GyroscopeData { LSM6DSRXData() - : AccelerometerData{Microsecond(0), MeterPerSecondSquared(0), + : AccelerometerData{0, MeterPerSecondSquared(0), MeterPerSecondSquared(0), MeterPerSecondSquared(0)}, GyroscopeData{0, 0.0, 0.0, 0.0} { @@ -45,9 +45,9 @@ struct LSM6DSRXData : public AccelerometerData, public GyroscopeData void print(std::ostream& os) const { - os << accelerationTimestamp.value() << "," << accelerationX.value() - << "," << accelerationY.value() << "," << accelerationZ.value() - << "," << angularSpeedTimestamp << "," << angularSpeedX << "," + os << accelerationTimestamp << "," << accelerationX.value() << "," + << accelerationY.value() << "," << accelerationZ.value() << "," + << angularSpeedTimestamp << "," << angularSpeedX << "," << angularSpeedY << "," << angularSpeedZ << "\n"; } }; diff --git a/src/shared/sensors/MPU9250/MPU9250.cpp b/src/shared/sensors/MPU9250/MPU9250.cpp index ce54e4bb3801571356fff8f54004f1e3f125aca6..14c5a840cbec27b0258ba7b5be02577b29f8edc6 100644 --- a/src/shared/sensors/MPU9250/MPU9250.cpp +++ b/src/shared/sensors/MPU9250/MPU9250.cpp @@ -112,7 +112,7 @@ MPU9250Data MPU9250::sampleImpl() // Save timestamps uint64_t timestamp = TimestampTimer::getTimestamp(); - data.accelerationTimestamp = Microsecond(timestamp); + data.accelerationTimestamp = timestamp; data.temperatureTimestamp = timestamp; data.angularSpeedTimestamp = timestamp; data.magneticFieldTimestamp = timestamp; diff --git a/src/shared/sensors/MPU9250/MPU9250Data.h b/src/shared/sensors/MPU9250/MPU9250Data.h index b113cb61fdf92309a9ddbc7b770e098af23af98a..dd526fa50522e5d119154009f9355e23fe11842f 100644 --- a/src/shared/sensors/MPU9250/MPU9250Data.h +++ b/src/shared/sensors/MPU9250/MPU9250Data.h @@ -33,7 +33,7 @@ struct MPU9250Data : public AccelerometerData, public TemperatureData { MPU9250Data() - : AccelerometerData{Microsecond(0), MeterPerSecondSquared(0), + : AccelerometerData{0, MeterPerSecondSquared(0), MeterPerSecondSquared(0), MeterPerSecondSquared(0)}, GyroscopeData{0, 0.0, 0.0, 0.0}, MagnetometerData{0, 0.0, 0.0, 0.0}, TemperatureData{0, 0.0} @@ -56,9 +56,9 @@ struct MPU9250Data : public AccelerometerData, void print(std::ostream& os) const { - os << accelerationTimestamp.value() << "," << accelerationX.value() - << "," << accelerationY.value() << "," << accelerationZ.value() - << "," << angularSpeedTimestamp << "," << angularSpeedX << "," + os << accelerationTimestamp << "," << accelerationX.value() << "," + << accelerationY.value() << "," << accelerationZ.value() << "," + << angularSpeedTimestamp << "," << angularSpeedX << "," << angularSpeedY << "," << angularSpeedZ << "," << magneticFieldTimestamp << "," << magneticFieldX << "," << magneticFieldY << "," << magneticFieldZ << "," diff --git a/src/shared/sensors/SensorData.h b/src/shared/sensors/SensorData.h index e45b977260f0289ac99c77463646071265650e21..dab8657e4692a4e82440fe91e690616cd1c9b297 100644 --- a/src/shared/sensors/SensorData.h +++ b/src/shared/sensors/SensorData.h @@ -31,7 +31,6 @@ namespace Boardcore { using namespace Units::Acceleration; -using namespace Units::Time; /** * @brief Generic error codes that a sensor can generate. @@ -113,16 +112,16 @@ struct HumidityData */ struct AccelerometerData { - Microsecond accelerationTimestamp = Microsecond(0); + uint64_t accelerationTimestamp = 0; MeterPerSecondSquared accelerationX = MeterPerSecondSquared(0); MeterPerSecondSquared accelerationY = MeterPerSecondSquared(0); MeterPerSecondSquared accelerationZ = MeterPerSecondSquared(0); AccelerometerData() {} - AccelerometerData(Microsecond timestamp, MeterPerSecondSquared x, + AccelerometerData(uint64_t timestamp, MeterPerSecondSquared x, MeterPerSecondSquared y, MeterPerSecondSquared z) - : accelerationTimestamp(timestamp), accelerationX(x), accelerationY(y), + : accelerationTimestamp(0), accelerationX(x), accelerationY(y), accelerationZ(z) { } @@ -141,9 +140,8 @@ struct AccelerometerData void print(std::ostream& os) const { - os << accelerationTimestamp.value() << "," << accelerationX.value() - << "," << accelerationY.value() << "," << accelerationZ.value() - << "\n"; + os << accelerationTimestamp << "," << accelerationX.value() << "," + << accelerationY.value() << "," << accelerationZ.value() << "\n"; } operator Eigen::Vector3f() const diff --git a/src/shared/sensors/VN100/VN100.cpp b/src/shared/sensors/VN100/VN100.cpp index dac1f18f725d667e05ba3499364d55c99ccbb228..5cf1a4aa89adb0cec27e3557abb14a67ed268fb3 100644 --- a/src/shared/sensors/VN100/VN100.cpp +++ b/src/shared/sensors/VN100/VN100.cpp @@ -523,7 +523,7 @@ AccelerometerData VN100::sampleAccelerometer() } // Parse the data - data.accelerationTimestamp = Microsecond(TimestampTimer::getTimestamp()); + data.accelerationTimestamp = TimestampTimer::getTimestamp(); data.accelerationX = MeterPerSecondSquared(strtod(recvString + indexStart + 1, &nextNumber)); data.accelerationY = diff --git a/src/shared/sensors/VN100/VN100Data.h b/src/shared/sensors/VN100/VN100Data.h index 00f9b973bfbe149d1c69ebdbaeefb7ca380dca1c..0f759d95773657f63c36a34ba5df81124adf314c 100644 --- a/src/shared/sensors/VN100/VN100Data.h +++ b/src/shared/sensors/VN100/VN100Data.h @@ -47,7 +47,7 @@ struct VN100Data : public QuaternionData, VN100Data() : QuaternionData{0, 0.0, 0.0, 0.0, 0.0}, MagnetometerData{0, 0.0, 0.0, 0.0}, - AccelerometerData{Microsecond(0), MeterPerSecondSquared(0), + AccelerometerData{0, MeterPerSecondSquared(0), MeterPerSecondSquared(0), MeterPerSecondSquared(0)}, GyroscopeData{0, 0.0, 0.0, 0.0}, TemperatureData{0, 0.0}, PressureData{0, 0.0} @@ -86,9 +86,9 @@ struct VN100Data : public QuaternionData, << "," << quaternionZ << "," << quaternionW << "," << magneticFieldTimestamp << "," << magneticFieldX << "," << magneticFieldY << "," << magneticFieldZ << "," - << accelerationTimestamp.value() << "," << accelerationX.value() - << "," << accelerationY.value() << "," << accelerationZ.value() - << "," << angularSpeedTimestamp << "," << angularSpeedX << "," + << accelerationTimestamp << "," << accelerationX.value() << "," + << accelerationY.value() << "," << accelerationZ.value() << "," + << angularSpeedTimestamp << "," << angularSpeedX << "," << angularSpeedY << "," << angularSpeedZ << "," << temperatureTimestamp << "," << temperature << "," << pressureTimestamp << "," << pressure << "\n"; diff --git a/src/tests/sensors/test-lis3dsh.cpp b/src/tests/sensors/test-lis3dsh.cpp index 559af1ca62ba9b0131b3937cf9135c98432a94a3..852909c8500522dac37e124ab50344ab9f1aaaec 100644 --- a/src/tests/sensors/test-lis3dsh.cpp +++ b/src/tests/sensors/test-lis3dsh.cpp @@ -97,7 +97,7 @@ int main() data = sensor.getLastSample(); - printf("\nTimestamp: %llu \n", data.accelerationTimestamp.value()); + printf("\nTimestamp: %llu \n", data.accelerationTimestamp); printf("Acc: x: %f | y: %f | z: %f \n", data.accelerationX.value(), data.accelerationY.value(), data.accelerationZ.value()); printf("Temp: %.2f C \n", data.temperature);