22 #ifndef MessageType_H_
23 #define MessageType_H_
28 #include "UniSetTypes.h"
29 #include "IOController_i.hh"
43 TheLastFieldOfTypeOfMessage
46 int type = { Unused };
55 Priority priority = { Medium };
59 struct timespec tm = { 0, 0 };
70 explicit Message(
int dummy_init ) noexcept {}
77 std::memcpy(&tmsg.data, &msg,
sizeof(msg));
78 tmsg.consumer = msg.consumer;
79 return std::move(tmsg);
83 std::ostream& operator<<( std::ostream& os,
const Message::TypeOfMessage& t );
101 inline bool operator < (
const VoidMessage& msg )
const
103 if( priority != msg.priority )
104 return priority < msg.priority;
106 if( tm.tv_sec != msg.tm.tv_sec )
107 return tm.tv_sec >= msg.tm.tv_sec;
109 return tm.tv_nsec >= msg.tm.tv_nsec;
114 return transport(*
this);
128 bool undefined = {
false };
131 struct timespec sm_tv = { 0, 0 };
133 UniversalIO::IOType sensor_type = { UniversalIO::DI };
140 SensorMessage( SensorMessage&& m) noexcept = default;
141 SensorMessage& operator=(SensorMessage&& m) noexcept = default;
142 SensorMessage( const SensorMessage& ) noexcept = default;
143 SensorMessage& operator=( const SensorMessage& ) noexcept = default;
145 SensorMessage() noexcept;
147 Priority priority = Message::Medium,
148 UniversalIO::IOType st = UniversalIO::AI,
155 explicit SensorMessage(
int dummy ) noexcept;
157 SensorMessage(const VoidMessage* msg) noexcept;
158 inline TransportMessage transport_msg() const noexcept
160 return transport(*
this);
198 return transport(*
this);
223 return transport(*
this);
238 return transport(*
this);
244 const double& in_sensor_value,
245 const timespec& in_sensor_time,
246 const timespec& in_confirm_time,
247 Priority in_priority = Message::Medium) noexcept;
256 struct timespec sensor_time;
257 struct timespec confirm_time;
274 #endif // MessageType_H_