diff --git a/src/tests/actuators/test-hbridge.cpp b/src/tests/actuators/test-hbridge.cpp index a2aa0438aa91015c899273a37c38ff87458def55..c59c142babab6ee3b677d0d5a2d9872756da26fc 100644 --- a/src/tests/actuators/test-hbridge.cpp +++ b/src/tests/actuators/test-hbridge.cpp @@ -22,6 +22,7 @@ #include <actuators/HBridge/HBridge.h> #include <miosix.h> +#include <utils/Constants.h> #include <utils/Debug.h> #include <iostream> @@ -31,7 +32,7 @@ using namespace Boardcore; using namespace miosix; using namespace std; -static constexpr int PWM_DURATION = 60 * 1000; +static constexpr int PWM_DURATION = 60 * 1000; ///< [ms] static const TimerUtils::Channel HBRIDGE_PWM_CHANNEL = TimerUtils::Channel::CHANNEL_1; @@ -41,22 +42,22 @@ GpioPin hbridgeInhibit(GPIOA_BASE, 7); // inhibit pin for the hbridge bool print = true; // print the elapsed time or not -long long measuredTime = 0; +long long measuredTime = 0; ///< [ns] void wait() { - long long t = getTick(); + long long t = getTime(); long long t0 = t; - while (t < t0 + PWM_DURATION) + while (t < t0 + PWM_DURATION * Constants::NS_IN_MS) { Thread::sleep(50); - t = getTick(); + t = getTime(); if (print) { - TRACE("Elapsed time : %.2f \n", (t - t0) / 1000.0); + TRACE("Elapsed time : %.2f s\n", (t - t0) / Constants::NS_IN_S); } } @@ -112,7 +113,7 @@ int main() Thread::sleep(500); - TRACE("Elapsed time: %.2f s\n", (measuredTime) / 1000.0f); + TRACE("Elapsed time: %.2f s\n", (measuredTime) / Constants::NS_IN_S); TRACE("Done!\n\n"); } diff --git a/src/tests/algorithms/NAS/test-triad-parafoil.cpp b/src/tests/algorithms/NAS/test-triad-parafoil.cpp index d3dadc04fe00b89dfcd50293ee4f293b63c7e2c4..08cd21cebb426647f2b5717d85e5ba0b5bf3a026 100644 --- a/src/tests/algorithms/NAS/test-triad-parafoil.cpp +++ b/src/tests/algorithms/NAS/test-triad-parafoil.cpp @@ -47,7 +47,7 @@ int main() mpu = new MPU9250(spi1, sensors::mpu9250::cs::getPin()); mpu->init(); - auto lastTick = getTick(); + auto lastTime = getTime(); while (true) { mpu->sample(); @@ -73,7 +73,7 @@ int main() printf("w%fwa%fab%fbc%fc\n", kalmanState(9), kalmanState(6), kalmanState(7), kalmanState(8)); - Thread::sleepUntil(lastTick + 20); - lastTick = getTick(); + Thread::nanoSleepUntil(lastTime + 20 * Constants::NS_IN_MS); + lastTime = getTime(); } } diff --git a/src/tests/algorithms/NAS/test-triad.cpp b/src/tests/algorithms/NAS/test-triad.cpp index af38fb8562e36b60441361b22df41c31715a1645..7d3dc39d3fd4e482d601199e35ede46a95fb5388 100644 --- a/src/tests/algorithms/NAS/test-triad.cpp +++ b/src/tests/algorithms/NAS/test-triad.cpp @@ -46,7 +46,7 @@ int main() imuInit(); bmx->init(); - auto lastTick = getTick(); + auto lastTime = getTime(); while (true) { bmx->sample(); @@ -72,8 +72,8 @@ int main() printf("w%fwa%fab%fbc%fc\n", kalmanState(9), kalmanState(6), kalmanState(7), kalmanState(8)); - Thread::sleepUntil(lastTick + 20); - lastTick = getTick(); + Thread::nanoSleepUntil(lastTime + 20 * Constants::NS_IN_MS); + lastTime = getTime(); } } diff --git a/src/tests/catch/test-eventbroker.cpp b/src/tests/catch/test-eventbroker.cpp index 9590563db8b32f2c7694cc4dd4a287580068193d..c3492ea850f05caa8700b5d0e96af2f1e4951610 100644 --- a/src/tests/catch/test-eventbroker.cpp +++ b/src/tests/catch/test-eventbroker.cpp @@ -28,16 +28,18 @@ #endif #include <events/EventBroker.h> +#include <events/utils/EventCounter.h> #include <miosix.h> #include <utils/TestUtils/TestHelper.h> #include <catch2/catch.hpp> #include <cstdio> -using miosix::getTick; +using miosix::getTime; using miosix::Thread; using namespace Boardcore; +using namespace Boardcore::Constants; // Uncertainty on the time of delivery of a delayed event, in ms static const unsigned int EVENT_DELAY_UNCERTAINTY = 1; @@ -62,8 +64,8 @@ TEST_CASE("EventBroker - Posts to different topics") Event ev; EventBroker broker; - EventCounter sub1(broker); - EventCounter sub2(broker); + EventCounter sub1{broker}; + EventCounter sub2{broker}; broker.subscribe(&sub1, TOPIC_1); broker.subscribe(&sub2, TOPIC_2); @@ -107,9 +109,9 @@ TEST_CASE("EventBroker - EventHandlers can unsubscribe") Event ev{EV_A}; EventBroker broker; - EventCounter sub1(broker); - EventCounter sub2(broker); - EventCounter sub3(broker); + EventCounter sub1{broker}; + EventCounter sub2{broker}; + EventCounter sub3{broker}; broker.subscribe(&sub1, TOPIC_1); broker.subscribe(&sub1, TOPIC_2); @@ -208,21 +210,21 @@ protected: TEST_CASE_METHOD(EventBrokerTestFixture, "EventBroker - Events can be dalayed") { Event ev{EV_A}; - long long start = getTick(); + long long start = getTime(); // Post delayed event by 1000 ms broker.postDelayed(ev, TOPIC_1, 1000); broker.postDelayed(ev, TOPIC_2, 3000); - REQUIRE(expectEvent(EV_A, TOPIC_1, start + 1000, 2, broker)); - REQUIRE(expectEvent(EV_A, TOPIC_2, start + 3000, 2, broker)); + REQUIRE(expectEvent(EV_A, TOPIC_1, start + 1 * NS_IN_S, 2, broker)); + REQUIRE(expectEvent(EV_A, TOPIC_2, start + 3 * NS_IN_S, 2, broker)); } TEST_CASE_METHOD(EventBrokerTestFixture, "EventBroker - Delayed events can be removed") { Event ev{EV_A}; - long long start = getTick(); + long long start = getTime(); // Post delayed event by 1000 ms uint16_t delayed = broker.postDelayed(ev, TOPIC_1, 1000); @@ -233,8 +235,9 @@ TEST_CASE_METHOD(EventBrokerTestFixture, Thread::sleep(500); broker.removeDelayed(delayed); - REQUIRE_FALSE(expectEvent(EV_A, TOPIC_1, start + 1000, 2, broker)); - REQUIRE(expectEvent(EV_A, TOPIC_2, start + 3000, 2, broker)); + REQUIRE_FALSE( + expectEvent(EV_A, TOPIC_1, start + 1 * NS_IN_S, 2, broker)); + REQUIRE(expectEvent(EV_A, TOPIC_2, start + 3 * NS_IN_S, 2, broker)); } SECTION("All events can be removed") @@ -242,8 +245,10 @@ TEST_CASE_METHOD(EventBrokerTestFixture, Thread::sleep(500); broker.clearDelayedEvents(); - REQUIRE_FALSE(expectEvent(EV_A, TOPIC_1, start + 1000, 2, broker)); - REQUIRE_FALSE(expectEvent(EV_A, TOPIC_2, start + 3000, 2, broker)); + REQUIRE_FALSE( + expectEvent(EV_A, TOPIC_1, start + 1 * NS_IN_S, 2, broker)); + REQUIRE_FALSE( + expectEvent(EV_A, TOPIC_2, start + 3 * NS_IN_S, 2, broker)); } } diff --git a/src/tests/drivers/canbus/CanDriver/SimpleCanManager.h b/src/tests/drivers/canbus/CanDriver/SimpleCanManager.h index 141c5a60e2fe12c72607cd171f35231313874559..bd89caf4507d6136fe0277159943f0e4f1438f89 100644 --- a/src/tests/drivers/canbus/CanDriver/SimpleCanManager.h +++ b/src/tests/drivers/canbus/CanDriver/SimpleCanManager.h @@ -26,6 +26,7 @@ #include <drivers/canbus/CanDriver/BusLoadEstimation.h> #include <drivers/canbus/CanDriver/CanDriver.h> #include <miosix.h> +#include <utils/Constants.h> #include <utils/collections/SyncCircularBuffer.h> #include <cstdlib> @@ -88,7 +89,8 @@ private: } Boardcore::Canbus::CanPacket p = parent.txPackets.pop(); parent.canbus.send(p); - p.timestamp = miosix::getTick(); + p.timestamp = + miosix::getTime() / Boardcore::Constants::NS_IN_MS; parent.busLoad.addPacket(p); } } diff --git a/src/tests/drivers/canbus/CanDriver/test-can-2way.cpp b/src/tests/drivers/canbus/CanDriver/test-can-2way.cpp index 3fd1440dd945e7d2fb69dda142fe5972884fcad6..7d007e6fce6c96ed7eb42ad2a8a0c18249ab827b 100644 --- a/src/tests/drivers/canbus/CanDriver/test-can-2way.cpp +++ b/src/tests/drivers/canbus/CanDriver/test-can-2way.cpp @@ -84,7 +84,7 @@ void handleCanMessage(Canbus::CanRXPacket packet) if (msg.id == packet.packet.id) { msg.id = 0; - msg.ts = getTick() - msg.ts; + msg.ts = getTime() / Constants::NS_IN_MS - msg.ts; break; } } @@ -114,7 +114,8 @@ void sendNewRequest() { Lock<FastMutex> l(mutexMsgs); - msgs.put({packet.id, (uint32_t)getTick()}); + msgs.put({packet.id, + static_cast<uint32_t>(getTime() / Constants::NS_IN_MS)}); } canManager->send(packet); @@ -128,7 +129,7 @@ public: unsigned int c = 0; while (!shouldStop()) { - uint32_t tick = (uint32_t)getTick(); + uint32_t time = getTime() / Constants::NS_IN_MS; // [ms] { Lock<FastMutex> l(mutexMsgs); if (msgs.isFull()) @@ -138,7 +139,7 @@ public: while (!msgs.isEmpty()) { CanMsg msg = msgs.get(); - if (msg.id == 0 || tick - msg.ts > MSG_LOST_DEADLINE) + if (msg.id == 0 || time - msg.ts > MSG_LOST_DEADLINE) { msgs.pop(); @@ -184,7 +185,7 @@ public: info.loadPercent); } ++c; - Thread::sleepUntil(tick + MSG_DEADLINE); + Thread::nanoSleepUntil((time + MSG_DEADLINE) * Constants::NS_IN_MS); } } diff --git a/src/tests/drivers/canbus/CanDriver/test-can-filters.cpp b/src/tests/drivers/canbus/CanDriver/test-can-filters.cpp index b6c3f6b667ffcac3ff1021d99634f5430ec08b78..52ff89eac8ddc0093a7474870e74d1be78c54e0f 100644 --- a/src/tests/drivers/canbus/CanDriver/test-can-filters.cpp +++ b/src/tests/drivers/canbus/CanDriver/test-can-filters.cpp @@ -109,7 +109,7 @@ int main() for (;;) { - p.timestamp = miosix::getTick(); + p.timestamp = miosix::getTime() / Constants::NS_IN_MS; p.id = 365854720; c->send(p); diff --git a/src/tests/drivers/canbus/CanDriver/test-can-loopback.cpp b/src/tests/drivers/canbus/CanDriver/test-can-loopback.cpp index 06559020e6eaee2e933d2ce66696ec2a1c5baf44..e4ae29ebc5a3a8029174ec1bc45a7ba023dc8f3e 100644 --- a/src/tests/drivers/canbus/CanDriver/test-can-loopback.cpp +++ b/src/tests/drivers/canbus/CanDriver/test-can-loopback.cpp @@ -64,14 +64,14 @@ public: { while (!shouldStop()) { - long long start = miosix::getTick(); + long long start = miosix::getTime(); BusLoadEstimation::BusLoadInfo info = ble.getLoadInfo(); LOG_INFO(l, "payload rate: {:.2f} kbps, total rate: {:.2f} kbps, " "utilization: {:.2f}%", info.payloadBitRate / 1000.0f, info.totalBitRate / 1000.0f, info.loadPercent); - Thread::sleepUntil(start + 1000); + Thread::nanoSleepUntil(start + 1000 * Constants::NS_IN_MS); } } @@ -122,7 +122,7 @@ int main() { // printPacket("TX", p); - p.timestamp = miosix::getTick(); + p.timestamp = miosix::getTime() / Constants::NS_IN_MS; c->send(p); load.addPacket(p); // Thread::sleep(1); diff --git a/src/tests/drivers/test-dsgamma.cpp b/src/tests/drivers/test-dsgamma.cpp index 1445ae8a674aaa467b3713faf1f8eef368ab9694..e1f8d47dd7c05b93da744dd8cffdcaa9aa697f6e 100644 --- a/src/tests/drivers/test-dsgamma.cpp +++ b/src/tests/drivers/test-dsgamma.cpp @@ -33,7 +33,7 @@ using miosix::Gpio; using miosix::Thread; // Protocol config -//#define DATA_LEN 16384 +// #define DATA_LEN 16384 /* DISCOVERY F429I*/ typedef Gpio<GPIOA_BASE, 0> button; @@ -78,7 +78,7 @@ int main() int state = ST_STARTING; bool end = false; - uint32_t startT, endT; + long long startT{}, endT{}; while (1) { @@ -95,12 +95,12 @@ int main() if (c == 255) { TRACE("Starting!\n", 0); - startT = miosix::getTick(); + startT = miosix::getTime(); // printf("%c", c); // inputBuf[index] = c; ++index; state = ST_WAIT_END_FRAME; - endT = miosix::getTick(); + endT = miosix::getTime(); } break; } @@ -140,7 +140,7 @@ int main() printf("Packet end %d. lost: %d\n", pktCount, lostBytes); ++pktCount; - // endT = miosix::getTick(); + // endT = miosix::getTime(); state = ST_WAIT_START_FRAME; } @@ -156,7 +156,7 @@ int main() } case ST_SEND_DATA: { - endT = miosix::getTick(); + endT = miosix::getTime(); end = true; break; /* uint8_t buf[] = {0x23, 0x23, 0x23, 0x23, 0x23}; @@ -169,12 +169,10 @@ int main() } } + int time = (endT - startT) / Constants::NS_IN_MS; // [ms] printf("Bytes received: %d\nDropped: %d,Time:%d ms\n", index, lostBytes, - // cppcheck-suppress uninitvar - (int)(endT - startT)); - printf("Speed: %.3f KB/s\n", - // cppcheck-suppress uninitvar - index / ((endT - startT) / 1024.0f) / 1024.0f); + time); + printf("Speed: %.3f KB/s\n", index / (time / 1024.0f) / 1024.0f); /* for (int i = 0; i < index; i++) { printf("%c", inputBuf[i]); diff --git a/src/tests/drivers/test-mavlink.cpp b/src/tests/drivers/test-mavlink.cpp index 8e70f5a51d734894a0d0a4d42dd0d9a97964c744..16d1a846c38755fcaa2f51ce2d60c20892f91f92 100644 --- a/src/tests/drivers/test-mavlink.cpp +++ b/src/tests/drivers/test-mavlink.cpp @@ -63,7 +63,8 @@ int main() { // Create a Mavlink message mavlink_message_t pingMsg; - mavlink_msg_ping_tc_pack(1, 1, &pingMsg, miosix::getTick()); + mavlink_msg_ping_tc_pack(1, 1, &pingMsg, + miosix::getTime() / Constants::NS_IN_MS); // Send the message mavlink->enqueueMsg(pingMsg); diff --git a/src/tests/drivers/timer/test-counted-pwm.cpp b/src/tests/drivers/timer/test-counted-pwm.cpp index 497f33a868dc16002ab73a87f5e23613fa1eaeca..15895deb58c24171233b95db5a15e49b4c25f4ad 100644 --- a/src/tests/drivers/timer/test-counted-pwm.cpp +++ b/src/tests/drivers/timer/test-counted-pwm.cpp @@ -22,6 +22,7 @@ #include <drivers/timer/CountedPWM.h> #include <miosix.h> +#include <utils/Constants.h> #include <thread> @@ -55,8 +56,9 @@ int main() { while (true) { + float time = (float)getTime() / Constants::NS_IN_S; // [s] printf("[%.2f] Counter: %d\tTarget: %ld\tIs generating: %d\n", - getTick() / 1000.0, pwm.getCurrentCount(), TIM4->CCR1, + time, pwm.getCurrentCount(), TIM4->CCR1, pwm.isGenerating()); Thread::sleep(250); } diff --git a/src/tests/drivers/timer/test-timestamptimer.cpp b/src/tests/drivers/timer/test-timestamptimer.cpp index 3ba13168412061eafaff618405be23b7e1ecc240..7d024c459f6eb890195ba1d1125378a654890171 100644 --- a/src/tests/drivers/timer/test-timestamptimer.cpp +++ b/src/tests/drivers/timer/test-timestamptimer.cpp @@ -23,6 +23,7 @@ #include <drivers/timer/TimerUtils.h> #include <drivers/timer/TimestampTimer.h> #include <miosix.h> +#include <utils/Constants.h> using namespace miosix; using namespace Boardcore; @@ -43,15 +44,15 @@ int main() for (int i = 0; i < 10; i++) { - long long prevTick = getTick(); + long long prevTime = getTime(); uint64_t timestamp = TimestampTimer::getTimestamp(); // cppcheck-suppress invalidPrintfArgType_uint - printf("%12llu us, %12.3f ms, %12.6f s, %12lld tick \n", timestamp, - timestamp / 1e3, timestamp / 1e6, prevTick); + printf("%12llu us, %12.3f ms, %12.6f s, %12lld time \n", timestamp, + timestamp / 1e3, timestamp / 1e6, prevTime); - Thread::sleepUntil(prevTick + 1000); + Thread::nanoSleepUntil(prevTime + 1 * Constants::NS_IN_S); } printf("Now resetting the TimestampTimer\n"); @@ -60,15 +61,15 @@ int main() while (true) { - long long prevTick = getTick(); + long long prevTime = getTime(); uint64_t timestamp = TimestampTimer::getTimestamp(); // cppcheck-suppress invalidPrintfArgType_uint - printf("%12llu us, %12.3f ms, %12.6f s, %12lld tick \n", timestamp, - timestamp / 1e3, timestamp / 1e6, prevTick); + printf("%12llu us, %12.3f ms, %12.6f s, %12lld time \n", timestamp, + timestamp / 1e3, timestamp / 1e6, prevTime); - Thread::sleepUntil(prevTick + 1000); + Thread::nanoSleepUntil(prevTime + 1 * Constants::NS_IN_S); } } diff --git a/src/tests/drivers/xbee/XbeeTransceiver.h b/src/tests/drivers/xbee/XbeeTransceiver.h index 3e41850e557367880e47fde90bcd57fc11788527..ffec1ee1a79087eda27f95fbaaa16c5aaca62063 100644 --- a/src/tests/drivers/xbee/XbeeTransceiver.h +++ b/src/tests/drivers/xbee/XbeeTransceiver.h @@ -35,7 +35,6 @@ #include "ActiveObject.h" #include "XbeeTestData.h" -using miosix::getTick; using std::bind; using std::function; @@ -66,6 +65,9 @@ void memset32(uint8_t* buf, uint32_t val, int bufSize) struct SendIntervalBase { + /** + * @brief Get the interval in milliseconds + */ virtual unsigned int getInterval() const = 0; }; @@ -111,22 +113,22 @@ public: protected: void run() override { - long long loopStartTs = miosix::getTick(); + long long loopStartTs = miosix::getTime(); while (!shouldStop()) { - data.timeSinceLastSend = miosix::getTick() - loopStartTs; - loopStartTs = miosix::getTick(); + data.timeSinceLastSend = miosix::getTime() - loopStartTs; + loopStartTs = miosix::getTime(); // Create packet memcpy(buf, &PACKET_FIRST_INT, sizeof(uint32_t)); memset32(buf + sizeof(uint32_t), packetCounter++, data.packetSize - sizeof(uint32_t)); - long long sendStartTs = miosix::getTick(); + long long sendStartTs = miosix::getTime(); bool result = xbee.send(buf, data.packetSize); - data.timeToSend = miosix::getTick() - sendStartTs; + data.timeToSend = miosix::getTime() - sendStartTs; data.timestamp = sendStartTs; if (result) @@ -141,7 +143,8 @@ protected: logger.log(data); - miosix::Thread::sleepUntil(loopStartTs + interval.getInterval()); + miosix::Thread::nanoSleepUntil( + loopStartTs + (interval.getInterval() * Constants::NS_IN_MS)); } } @@ -183,11 +186,11 @@ protected: { while (!shouldStop()) { - long long start = miosix::getTick(); + long long start = miosix::getTime(); size_t len = xbee.receive(buf, RCV_BUF_SIZE); - data.lastPacketTimestamp = miosix::getTick(); + data.lastPacketTimestamp = miosix::getTime(); data.timestamp = start; ++data.rcvCount; diff --git a/src/tests/drivers/xbee/gui/StatusScreen.h b/src/tests/drivers/xbee/gui/StatusScreen.h index 1c7a40b5c196ffe7ab85fbe6e87eddaa8265dc79..bd66dc8ce7af32b4f25bb2dad9e1d70e4f5cb870 100644 --- a/src/tests/drivers/xbee/gui/StatusScreen.h +++ b/src/tests/drivers/xbee/gui/StatusScreen.h @@ -42,19 +42,20 @@ namespace Boardcore { /** - * @brief Converts tick in milliseconds to the HH:MM:SS format + * @brief Converts nanoseconds to the HH:MM:SS format */ -std::string tickToHMS(long long tick) +std::string nanosToHMS(long long nanos) { - char buf[15]; + long long millis = nanos / Constants::NS_IN_MS; + char buf[20]; - int h = tick / (1000 * 3600); - tick -= h * (1000 * 3600); - int m = tick / (1000 * 60); - tick -= m * (1000 * 60); - int s = tick / 1000; + lldiv_t hours = std::div(millis, 3600000ll); + long long h = hours.quot; + lldiv_t minutes = std::div(hours.rem, 60000ll); + long long m = minutes.quot; + long long s = (minutes.rem / 1000); - snprintf(buf, 15, "%02d:%02d:%02d", h, m, s); + snprintf(buf, 20, "%02lld:%02lld:%02lld", h, m, s); return string(buf); } @@ -255,7 +256,7 @@ struct StatusScreen tvRxPps.setText(strBuf); tvRxTimeSinceLastRx.setText( - tickToHMS(miosix::getTick() - rxd.lastPacketTimestamp)); + nanosToHMS(miosix::getTime() - rxd.lastPacketTimestamp)); } VerticalLayout root{10}; diff --git a/src/tests/drivers/xbee/test-xbee-bidir.cpp b/src/tests/drivers/xbee/test-xbee-bidir.cpp index def6764fda67deaf5aa1bae13881ea50e9ccdf03..1897ce239516c33e714bc20dfbd0f90332ddae05 100644 --- a/src/tests/drivers/xbee/test-xbee-bidir.cpp +++ b/src/tests/drivers/xbee/test-xbee-bidir.cpp @@ -161,7 +161,7 @@ int main() config.packetSize = 256; config.sendInterval = 333; config.txEnabled = RUN_SENDER; - config.timestamp = getTick(); + config.timestamp = getTime(); configure(); @@ -209,7 +209,7 @@ int main() // cppcheck-suppress knownConditionTrueFalse while (getUserBtnValue() == 0) { - long long loopStart = getTick(); + long long loopStart = getTime(); DataRateResult resRcv = trans->getReceiver().getDataRate(); DataRateResult resSnd = trans->getSender().getDataRate(); @@ -220,10 +220,10 @@ int main() logger.log(xbeeDriver->getStatus()); logger.log(logger.getStats()); - long long tick = getTick(); - unsigned int h = tick / (1000 * 3600); - unsigned int m = (tick - h * 1000 * 3600) / (1000 * 60); - float s = (tick - h * 1000 * 3600 - m * 1000 * 60) / 1000.0f; + long long millis = getTime() / Constants::NS_IN_MS; + unsigned int h = millis / (1000 * 3600); + unsigned int m = (millis - h * 1000 * 3600) / (1000 * 60); + float s = (millis - h * 1000 * 3600 - m * 1000 * 60) / 1000.0f; printf("%02u:%02u:%06.3f\n", h, m, s); if (RUN_SENDER) @@ -245,7 +245,7 @@ int main() } printf("\n"); - Thread::sleepUntil(loopStart + 1000); + Thread::nanoSleepUntil(loopStart + 1 * Constants::NS_IN_S); } trans->stop(); diff --git a/src/tests/drivers/xbee/test-xbee-gui.cpp b/src/tests/drivers/xbee/test-xbee-gui.cpp index bc0d694aa9c2b460f7304bdb4d213ea7c169235b..070351f04d56be34042909ab317a3fe6eed7aea9 100644 --- a/src/tests/drivers/xbee/test-xbee-gui.cpp +++ b/src/tests/drivers/xbee/test-xbee-gui.cpp @@ -105,7 +105,7 @@ protected: gui->screenEnergy.updateScan(scan); - EnergyScanData data{getTick(), scan}; + EnergyScanData data{getTime(), scan}; logger.log(data); } } @@ -180,7 +180,7 @@ int main() // Main loop: updates the information in the GUI for (;;) { - long long start = getTick(); + long long start = getTime(); // Update display values switch (gui->screenManager.getScreen()) { @@ -209,7 +209,7 @@ int main() } logger.log(logger.getStats()); - Thread::sleepUntil(start + 500); + Thread::nanoSleepUntil(start + (500 * Constants::NS_IN_MS)); } } @@ -219,7 +219,7 @@ void onStartButtonClick(View* btn __attribute__((unused)), Interaction action) { XbeeConfig cfg = gui->screenConfig.config; - cfg.timestamp = getTick(); + cfg.timestamp = getTime(); logger.log(cfg); gui->screenConfig.btnStart.setText("Starting..."); @@ -265,7 +265,7 @@ void onMarkButtonClick(View* btn __attribute__((unused)), Interaction action) { if (action == Interaction::CLICK) { - Mark m{getTick(), markCounter++}; + Mark m{getTime(), markCounter++}; logger.log(m); TextView* tvBtn = dynamic_cast<TextView*>(btn); diff --git a/src/tests/logger/test-logger.cpp b/src/tests/logger/test-logger.cpp index a22753780bcfb70d7ef88080e3474cc7cd4898fe..ad79280e6dee0fae7441d57b3b03615901f773d0 100644 --- a/src/tests/logger/test-logger.cpp +++ b/src/tests/logger/test-logger.cpp @@ -24,18 +24,20 @@ #include <diagnostic/CpuMeter/CpuMeter.h> #include <logger/Logger.h> +#include <utils/Constants.h> using namespace Boardcore; +using namespace Boardcore::Constants; using namespace std; using namespace miosix; void logThread(void*) { Logger& log = Logger::getInstance(); - const int period = 5; - for (auto t = getTick();; t += period) + const int period = 5 * NS_IN_MS; + for (auto t = getTime();; t += period) { - Thread::sleepUntil(t); + Thread::nanoSleepUntil(t); for (int i = 0; i < 5; i++) { Dummy d; diff --git a/src/tests/logger/test-logger.h b/src/tests/logger/test-logger.h index 3bfddd562b1bb6f859b245ef9b3b023c0a649b1d..56f8e9be241f4f056bcd0e24a60fe7dbf927ef67 100644 --- a/src/tests/logger/test-logger.h +++ b/src/tests/logger/test-logger.h @@ -38,7 +38,7 @@ public: Dummy() { #ifdef _MIOSIX - timestamp = miosix::getTick(); + timestamp = miosix::getTime(); #else //_MIOSIX timestamp = 0; #endif //_MIOSIX diff --git a/src/tests/radio/sx1278/fsk/test-sx1278-mavlink.cpp b/src/tests/radio/sx1278/fsk/test-sx1278-mavlink.cpp index 794a7378cbfa51eb08e0afd0f2ff19040e215d9b..3cdafff28c71966cc36a9b8b647d9059161c6552 100644 --- a/src/tests/radio/sx1278/fsk/test-sx1278-mavlink.cpp +++ b/src/tests/radio/sx1278/fsk/test-sx1278-mavlink.cpp @@ -176,7 +176,7 @@ void flightTmLoop() while (1) { - long long start = miosix::getTick; + long long start = miosix::getTime(); { Lock<FastMutex> l(mutex); @@ -204,7 +204,7 @@ void flightTmLoop() channel->enqueueMsg(msg); - Thread::sleepUntil(start + FLIGHT_TM_PERIOD); + Thread::nanoSleepUntil(start + FLIGHT_TM_PERIOD * Constants::NS_IN_MS); i += 1; } } diff --git a/src/tests/radio/sx1278/lora/test-sx1278-mavlink.cpp b/src/tests/radio/sx1278/lora/test-sx1278-mavlink.cpp index 38398038442bab4e9df06774eef23d7be96ca75b..ae08b9d7bde03cf65bb74b2bc06891263052406c 100644 --- a/src/tests/radio/sx1278/lora/test-sx1278-mavlink.cpp +++ b/src/tests/radio/sx1278/lora/test-sx1278-mavlink.cpp @@ -136,7 +136,7 @@ void flightTmLoop() { while (1) { - long long start = miosix::getTick(); + long long start = miosix::getTime(); mavlink_message_t msg; mavlink_rocket_flight_tm_t tm = {0}; @@ -145,7 +145,7 @@ void flightTmLoop() channel->enqueueMsg(msg); printf("Enqueued flight_tm_tm!\n"); - Thread::sleepUntil(start + FLIGHT_TM_PERIOD); + Thread::nanoSleepUntil(start + FLIGHT_TM_PERIOD * Constants::NS_IN_MS); } } @@ -153,7 +153,7 @@ void statsTmLoop() { while (1) { - long long start = miosix::getTick(); + long long start = miosix::getTime(); mavlink_message_t msg; mavlink_rocket_stats_tm_t tm = {0}; @@ -162,7 +162,7 @@ void statsTmLoop() channel->enqueueMsg(msg); printf("Enqueued stats_tm!\n"); - Thread::sleepUntil(start + STATS_TM_PERIOD); + Thread::nanoSleepUntil(start + STATS_TM_PERIOD * Constants::NS_IN_MS); } } diff --git a/src/tests/radio/sx1278/sx1278-init.h b/src/tests/radio/sx1278/sx1278-init.h index 068d7eb2861cebae47f831591a7f11c3767680aa..0c8cf6632e2d0be1271a137709b535f1f97103db 100644 --- a/src/tests/radio/sx1278/sx1278-init.h +++ b/src/tests/radio/sx1278/sx1278-init.h @@ -76,8 +76,8 @@ using sck = miosix::radio::sck; using miso = miosix::radio::miso; using mosi = miosix::radio::mosi; -using txen = miosix::radio::txEn; -using rxen = miosix::radio::rxEn; +using txen = miosix::radio::txEn; +using rxen = miosix::radio::rxEn; #define SX1278_SPI SPI4 @@ -208,11 +208,11 @@ bool initRadio() #elif defined SX1278_IS_SKYWARD433 printf("[sx1278] Confuring Skyward 433 frontend...\n"); std::unique_ptr<Boardcore::SX1278::ISX1278Frontend> frontend( - new Boardcore::Skyward433Frontend()); + new Boardcore::Skyward433Frontend()); #else printf("[sx1278] Confuring RA01 frontend...\n"); std::unique_ptr<Boardcore::SX1278::ISX1278Frontend> frontend( - new Boardcore::RA01Frontend()); + new Boardcore::RA01Frontend()); #endif // Initialize actual radio driver @@ -240,14 +240,14 @@ bool initRadio() Boardcore::SX1278Fsk::Error err; sx1278 = new Boardcore::SX1278Fsk(sx1278_bus, cs::getPin(), dio0::getPin(), - dio1::getPin(), dio3::getPin(), - Boardcore::SPI::ClockDivider::DIV_256, - std::move(frontend)); + dio1::getPin(), dio3::getPin(), + Boardcore::SPI::ClockDivider::DIV_256, + std::move(frontend)); printf("\n[sx1278] Configuring sx1278 fsk...\n"); if ((err = sx1278->init(config)) != Boardcore::SX1278Fsk::Error::NONE) { - // FIXME: Why does clang-format put this line up here? + // FIXME: Why does clang-format put this line up here? printf("[sx1278] sx1278->init error\n"); return false; } diff --git a/src/tests/sensors/test-l3gd20-fifo.cpp b/src/tests/sensors/test-l3gd20-fifo.cpp index faa927dbb0f1cbd1b7791821286eb5f06fa0a2e0..4f687306568d0ead82a8ba35c7e485219a058d5e 100644 --- a/src/tests/sensors/test-l3gd20-fifo.cpp +++ b/src/tests/sensors/test-l3gd20-fifo.cpp @@ -54,6 +54,7 @@ #include <drivers/timer/GeneralPurposeTimer.h> #include <drivers/timer/TimestampTimer.h> #include <sensors/L3GD20/L3GD20.h> +#include <utils/Constants.h> #include <array> @@ -166,7 +167,7 @@ int main() int fifoNum = 0; while (dataCounter < NUM_SAMPLES) { - long lastTick = miosix::getTick(); + long lastTime = miosix::getTime(); // Read the fifo uint64_t update = TimestampTimer::getTimestamp(); @@ -207,7 +208,8 @@ int main() // we have 7 samples (~ 9 ms) of wiggle room before we start losing // data, in case we sleep a bit too much (may happen if an higher // priority thread has a long task to perform) - Thread::sleepUntil(lastTick + 25.5 * 1000 / SAMPLE_FREQUENCY); + Thread::nanoSleepUntil(lastTime + (25.5 * 1000 / SAMPLE_FREQUENCY) * + Constants::NS_IN_MS); } // Dump buffer content as CSV on the serial (might take a while) diff --git a/src/tests/sensors/test-l3gd20.cpp b/src/tests/sensors/test-l3gd20.cpp index 1ce300bf7a435490c3afc4ecb11e284d40d2bbf3..69482937e85c68b819c04bd720dbf5df3dbb06b1 100644 --- a/src/tests/sensors/test-l3gd20.cpp +++ b/src/tests/sensors/test-l3gd20.cpp @@ -33,6 +33,7 @@ #include <drivers/spi/SPIDriver.h> #include <drivers/timer/TimestampTimer.h> #include <sensors/L3GD20/L3GD20.h> +#include <utils/Constants.h> #include <array> @@ -138,7 +139,7 @@ int main() // Collect NUM_SAMPLE samples while (dataCounter < NUM_SAMPLES) { - long lastTick = miosix::getTick(); + long lastTime = miosix::getTime(); // Read data from the sensor gyro->sample(); @@ -152,7 +153,8 @@ int main() // Wait until SAMPLE_PERIOD milliseconds from the start of this // iteration have passed (SAMPLE_PERIOD = 1000 / SAMPLE_RATE) - Thread::sleepUntil(lastTick + 1000 / SAMPLE_RATE); + Thread::nanoSleepUntil(lastTime + + (1000 / SAMPLE_RATE) * Constants::NS_IN_MS); } // Dump buffer content as CSV on the serial (might take a while)