Program Listing for File utilities.hpp
↰ Return to documentation for file (/tmp/ws/src/myactuator_rmd/include/myactuator_rmd/can/utilities.hpp
)
#ifndef MYACTUATOR_RMD__CAN__UTILITIES
#define MYACTUATOR_RMD__CAN__UTILITIES
#pragma once
#include <chrono>
#include <ostream>
#include <ratio>
#include <linux/can.h>
#include <sys/time.h>
std::ostream& operator << (std::ostream& os, struct ::can_frame const& frame) noexcept;
namespace myactuator_rmd {
template <class Rep, class Period>
[[nodiscard]]
constexpr struct ::timeval toTimeval(std::chrono::duration<Rep, Period> const& duration) noexcept {
auto const usec {std::chrono::duration_cast<std::chrono::duration<Rep, std::micro>>(duration)};
struct ::timeval tv {};
tv.tv_sec = static_cast<::time_t>(usec.count()/std::micro::den);
tv.tv_usec = static_cast<long int>(usec.count())%std::micro::den;
return tv;
}
}
#endif // MYACTUATOR_RMD__CAN__UTILITIES