diff --git a/libuavcan_drivers/stm32/test_stm32f107/src/main.cpp b/libuavcan_drivers/stm32/test_stm32f107/src/main.cpp index cec187683e..45def312f6 100644 --- a/libuavcan_drivers/stm32/test_stm32f107/src/main.cpp +++ b/libuavcan_drivers/stm32/test_stm32f107/src/main.cpp @@ -5,6 +5,7 @@ #include #include #include +#include namespace app { @@ -93,6 +94,18 @@ public: ::sleep(3); } + /* + * Time synchronizer + */ + static uavcan::GlobalTimeSyncSlave time_sync_slave(node); + { + const int res = time_sync_slave.start(); + if (res < 0) + { + die(res); + } + } + /* * Main loop */ @@ -100,11 +113,12 @@ public: node.setStatusOk(); while (true) { - const int spin_res = node.spin(uavcan::MonotonicDuration::fromMSec(100)); + const int spin_res = node.spin(uavcan::MonotonicDuration::fromMSec(5000)); if (spin_res < 0) { lowsyslog("Spin failure: %i\n", spin_res); } + lowsyslog("Time sync master: %u\n", unsigned(time_sync_slave.getMasterNodeID().get())); } return msg_t(); } @@ -130,5 +144,11 @@ int main() sleep(1); app::ledSet(true); sleep(1); + + const uavcan::UtcTime utc = uavcan_stm32::clock::getUtc(); + lowsyslog("UTC %lu sec, %li corr, %lu jumps\n", + static_cast(utc.toMSec() / 1000), + uavcan_stm32::clock::getUtcSpeedCorrectionPPM(), + uavcan_stm32::clock::getUtcAjdustmentJumpCount()); } }