9 #if FW_ENABLE_TEXT_LOGGING 26 #if !FW_DIRECT_PORT_CALLS 33 this->m_cmdIn_InputPort[port].
init();
38 this->m_cmdIn_InputPort[port].
setPortNum(port);
40 #if FW_OBJECT_NAMES == 1 44 this->m_objName.toChar(),
47 this->m_cmdIn_InputPort[port].setObjName(portName.
toChar());
52 #if !FW_DIRECT_PORT_CALLS 59 this->m_convertTime_InputPort[port].
init();
64 this->m_convertTime_InputPort[port].
setPortNum(port);
66 #if FW_OBJECT_NAMES == 1 70 this->m_objName.toChar(),
73 this->m_convertTime_InputPort[port].setObjName(portName.
toChar());
78 #if !FW_DIRECT_PORT_CALLS 85 this->m_offsetUpdate_InputPort[port].
init();
90 this->m_offsetUpdate_InputPort[port].
setPortNum(port);
92 #if FW_OBJECT_NAMES == 1 96 this->m_objName.toChar(),
99 this->m_offsetUpdate_InputPort[port].setObjName(portName.
toChar());
104 #if !FW_DIRECT_PORT_CALLS 111 this->m_cmdRegOut_OutputPort[port].
init();
113 #if FW_OBJECT_NAMES == 1 117 this->m_objName.toChar(),
120 this->m_cmdRegOut_OutputPort[port].setObjName(portName.
toChar());
125 #if !FW_DIRECT_PORT_CALLS 132 this->m_cmdResponseOut_OutputPort[port].
init();
134 #if FW_OBJECT_NAMES == 1 138 this->m_objName.toChar(),
141 this->m_cmdResponseOut_OutputPort[port].setObjName(portName.
toChar());
146 #if !FW_DIRECT_PORT_CALLS 153 this->m_eventOut_OutputPort[port].
init();
155 #if FW_OBJECT_NAMES == 1 159 this->m_objName.toChar(),
162 this->m_eventOut_OutputPort[port].setObjName(portName.
toChar());
167 #if !FW_DIRECT_PORT_CALLS && FW_ENABLE_TEXT_LOGGING 171 port < static_cast<FwIndexType>(this->getNum_textEventOut_OutputPorts());
174 this->m_textEventOut_OutputPort[port].
init();
176 #if FW_OBJECT_NAMES == 1 180 this->m_objName.toChar(),
183 this->m_textEventOut_OutputPort[port].setObjName(portName.
toChar());
188 #if !FW_DIRECT_PORT_CALLS 195 this->m_timeCaller_OutputPort[port].
init();
197 #if FW_OBJECT_NAMES == 1 201 this->m_objName.toChar(),
204 this->m_timeCaller_OutputPort[port].setObjName(portName.
toChar());
210 #if !FW_DIRECT_PORT_CALLS 221 static_cast<FwAssertArgType>(portNum)
224 return &this->m_cmdIn_InputPort[portNum];
229 #if !FW_DIRECT_PORT_CALLS 240 static_cast<FwAssertArgType>(portNum)
243 return &this->m_convertTime_InputPort[portNum];
251 static_cast<FwAssertArgType>(portNum)
254 return &this->m_offsetUpdate_InputPort[portNum];
259 #if !FW_DIRECT_PORT_CALLS 273 static_cast<FwAssertArgType>(portNum)
276 this->m_cmdRegOut_OutputPort[portNum].
addCallPort(port);
287 static_cast<FwAssertArgType>(portNum)
290 this->m_cmdResponseOut_OutputPort[portNum].
addCallPort(port);
301 static_cast<FwAssertArgType>(portNum)
304 this->m_eventOut_OutputPort[portNum].
addCallPort(port);
307 #if FW_ENABLE_TEXT_LOGGING == 1 309 void TimeConverterComponentBase ::
310 set_textEventOut_OutputPort(
316 (0 <= portNum) && (portNum < this->getNum_textEventOut_OutputPorts()),
317 static_cast<FwAssertArgType>(portNum)
320 this->m_textEventOut_OutputPort[portNum].addCallPort(port);
333 static_cast<FwAssertArgType>(portNum)
336 this->m_timeCaller_OutputPort[portNum].
addCallPort(port);
341 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 350 Fw::InputSerializePort* port
355 static_cast<FwAssertArgType>(portNum)
358 this->m_cmdRegOut_OutputPort[portNum].registerSerialPort(port);
364 Fw::InputSerializePort* port
369 static_cast<FwAssertArgType>(portNum)
372 this->m_cmdResponseOut_OutputPort[portNum].registerSerialPort(port);
378 Fw::InputSerializePort* port
383 static_cast<FwAssertArgType>(portNum)
386 this->m_eventOut_OutputPort[portNum].registerSerialPort(port);
389 #if FW_ENABLE_TEXT_LOGGING == 1 391 void TimeConverterComponentBase ::
392 set_textEventOut_OutputPort(
394 Fw::InputSerializePort* port
398 (0 <= portNum) && (portNum < this->getNum_textEventOut_OutputPorts()),
399 static_cast<FwAssertArgType>(portNum)
402 this->m_textEventOut_OutputPort[portNum].registerSerialPort(port);
410 Fw::InputSerializePort* port
415 static_cast<FwAssertArgType>(portNum)
418 this->m_timeCaller_OutputPort[portNum].registerSerialPort(port);
459 Fw::PassiveComponentBase(compName)
461 this->m_NoConversionAvailableThrottle = 0;
462 this->m_InvalidTimeThrottle = 0;
463 this->m_OffsetTableFullThrottle = 0;
464 this->m_IdenticalTimeBasesThrottle = 0;
465 this->m_OffsetOutOfRangeThrottle = 0;
466 this->m_UnusableTimeBaseThrottle = 0;
475 #if !FW_DIRECT_PORT_CALLS 486 static_cast<FwAssertArgType>(portNum)
489 return this->m_cmdRegOut_OutputPort[portNum].
isConnected();
497 static_cast<FwAssertArgType>(portNum)
500 return this->m_cmdResponseOut_OutputPort[portNum].
isConnected();
508 static_cast<FwAssertArgType>(portNum)
511 return this->m_eventOut_OutputPort[portNum].
isConnected();
514 #if FW_ENABLE_TEXT_LOGGING == 1 516 bool TimeConverterComponentBase ::
517 isConnected_textEventOut_OutputPort(
FwIndexType portNum)
const 520 (0 <= portNum) && (portNum < this->getNum_textEventOut_OutputPorts()),
521 static_cast<FwAssertArgType>(portNum)
524 return this->m_textEventOut_OutputPort[portNum].isConnected();
534 static_cast<FwAssertArgType>(portNum)
537 return this->m_timeCaller_OutputPort[portNum].
isConnected();
558 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
561 switch (opCode - idBase) {
619 static_cast<FwAssertArgType>(portNum)
649 static_cast<FwAssertArgType>(portNum)
677 this->cmdResponseOut_out(0, opCode, cmdSeq, response);
703 this->cmdResponseOut_out(
717 this->cmdResponseOut_out(
731 this->cmdResponseOut_out(
741 #if FW_CMD_CHECK_RESIDUAL 746 this->cmdResponseOut_out(
776 #if FW_CMD_CHECK_RESIDUAL 781 this->cmdResponseOut_out(
816 this->cmdResponseOut_out(
830 this->cmdResponseOut_out(
840 #if FW_CMD_CHECK_RESIDUAL 845 this->cmdResponseOut_out(
874 #if FW_CMD_CHECK_RESIDUAL 879 this->cmdResponseOut_out(
912 this->m_NoConversionAvailableThrottle++;
918 this->timeCaller_out(0, _logTime);
928 #if FW_AMPCS_COMPATIBLE 933 static_cast<FwAssertArgType>(_status)
937 #if FW_AMPCS_COMPATIBLE 944 static_cast<FwAssertArgType>(_status)
950 static_cast<FwAssertArgType>(_status)
953 #if FW_AMPCS_COMPATIBLE 960 static_cast<FwAssertArgType>(_status)
966 static_cast<FwAssertArgType>(_status)
979 #if FW_ENABLE_TEXT_LOGGING 980 if (this->isConnected_textEventOut_OutputPort(0)) {
981 #if FW_OBJECT_NAMES == 1 982 const char* _formatString =
983 "(%s) %s: No known conversion from %s to %s";
985 const char* _formatString =
986 "%s: No known conversion from %s to %s";
990 in_tb.toString(in_tbStr);
992 out_tb.toString(out_tbStr);
998 this->m_objName.toChar(),
1000 "NoConversionAvailable ",
1005 this->textEventOut_out(
1029 this->m_InvalidTimeThrottle++;
1035 this->timeCaller_out(0, _logTime);
1045 #if FW_AMPCS_COMPATIBLE 1050 static_cast<FwAssertArgType>(_status)
1054 #if FW_AMPCS_COMPATIBLE 1061 static_cast<FwAssertArgType>(_status)
1067 static_cast<FwAssertArgType>(_status)
1070 #if FW_AMPCS_COMPATIBLE 1077 static_cast<FwAssertArgType>(_status)
1083 static_cast<FwAssertArgType>(_status)
1086 #if FW_AMPCS_COMPATIBLE 1089 static_cast<U8>(
sizeof(I64))
1093 static_cast<FwAssertArgType>(_status)
1099 static_cast<FwAssertArgType>(_status)
1102 #if FW_AMPCS_COMPATIBLE 1105 static_cast<U8>(
sizeof(I64))
1109 static_cast<FwAssertArgType>(_status)
1115 static_cast<FwAssertArgType>(_status)
1128 #if FW_ENABLE_TEXT_LOGGING 1129 if (this->isConnected_textEventOut_OutputPort(0)) {
1130 #if FW_OBJECT_NAMES == 1 1131 const char* _formatString =
1132 "(%s) %s: Conversion from %s to %s (offset %" PRIi64
" us) of time %" PRIi64
" us is out of range";
1134 const char* _formatString =
1135 "%s: Conversion from %s to %s (offset %" PRIi64
" us) of time %" PRIi64
" us is out of range";
1139 in_tb.toString(in_tbStr);
1141 out_tb.toString(out_tbStr);
1144 (void) _logString.
format(
1147 this->m_objName.toChar(),
1156 this->textEventOut_out(
1177 this->timeCaller_out(0, _logTime);
1187 #if FW_AMPCS_COMPATIBLE 1192 static_cast<FwAssertArgType>(_status)
1196 #if FW_AMPCS_COMPATIBLE 1203 static_cast<FwAssertArgType>(_status)
1209 static_cast<FwAssertArgType>(_status)
1212 #if FW_AMPCS_COMPATIBLE 1219 static_cast<FwAssertArgType>(_status)
1225 static_cast<FwAssertArgType>(_status)
1228 #if FW_AMPCS_COMPATIBLE 1231 static_cast<U8>(
sizeof(I64))
1235 static_cast<FwAssertArgType>(_status)
1241 static_cast<FwAssertArgType>(_status)
1254 #if FW_ENABLE_TEXT_LOGGING 1255 if (this->isConnected_textEventOut_OutputPort(0)) {
1256 #if FW_OBJECT_NAMES == 1 1257 const char* _formatString =
1258 "(%s) %s: Stored offset %s us from %s to %" PRIi64
"";
1260 const char* _formatString =
1261 "%s: Stored offset %s us from %s to %" PRIi64
"";
1265 from.toString(fromStr);
1270 (void) _logString.
format(
1273 this->m_objName.toChar(),
1281 this->textEventOut_out(
1304 this->m_OffsetTableFullThrottle++;
1310 this->timeCaller_out(0, _logTime);
1320 #if FW_AMPCS_COMPATIBLE 1325 static_cast<FwAssertArgType>(_status)
1329 #if FW_AMPCS_COMPATIBLE 1336 static_cast<FwAssertArgType>(_status)
1342 static_cast<FwAssertArgType>(_status)
1345 #if FW_AMPCS_COMPATIBLE 1352 static_cast<FwAssertArgType>(_status)
1358 static_cast<FwAssertArgType>(_status)
1361 #if FW_AMPCS_COMPATIBLE 1364 static_cast<U8>(
sizeof(U32))
1368 static_cast<FwAssertArgType>(_status)
1374 static_cast<FwAssertArgType>(_status)
1387 #if FW_ENABLE_TEXT_LOGGING 1388 if (this->isConnected_textEventOut_OutputPort(0)) {
1389 #if FW_OBJECT_NAMES == 1 1390 const char* _formatString =
1391 "(%s) %s: Cannot store offset from %s to %s: table is full at %" PRIu32
" entries";
1393 const char* _formatString =
1394 "%s: Cannot store offset from %s to %s: table is full at %" PRIu32
" entries";
1398 from.toString(fromStr);
1403 (void) _logString.
format(
1406 this->m_objName.toChar(),
1414 this->textEventOut_out(
1431 this->timeCaller_out(0, _logTime);
1441 #if FW_AMPCS_COMPATIBLE 1446 static_cast<FwAssertArgType>(_status)
1450 #if FW_AMPCS_COMPATIBLE 1453 static_cast<U8>(
sizeof(U32))
1457 static_cast<FwAssertArgType>(_status)
1463 static_cast<FwAssertArgType>(_status)
1476 #if FW_ENABLE_TEXT_LOGGING 1477 if (this->isConnected_textEventOut_OutputPort(0)) {
1478 #if FW_OBJECT_NAMES == 1 1479 const char* _formatString =
1480 "(%s) %s: Discarded %" PRIu32
" stored offsets";
1482 const char* _formatString =
1483 "%s: Discarded %" PRIu32
" stored offsets";
1487 (void) _logString.
format(
1490 this->m_objName.toChar(),
1496 this->textEventOut_out(
1517 this->timeCaller_out(0, _logTime);
1527 #if FW_AMPCS_COMPATIBLE 1532 static_cast<FwAssertArgType>(_status)
1536 #if FW_AMPCS_COMPATIBLE 1543 static_cast<FwAssertArgType>(_status)
1549 static_cast<FwAssertArgType>(_status)
1552 #if FW_AMPCS_COMPATIBLE 1559 static_cast<FwAssertArgType>(_status)
1565 static_cast<FwAssertArgType>(_status)
1568 #if FW_AMPCS_COMPATIBLE 1571 static_cast<U8>(
sizeof(I64))
1575 static_cast<FwAssertArgType>(_status)
1581 static_cast<FwAssertArgType>(_status)
1594 #if FW_ENABLE_TEXT_LOGGING 1595 if (this->isConnected_textEventOut_OutputPort(0)) {
1596 #if FW_OBJECT_NAMES == 1 1597 const char* _formatString =
1598 "(%s) %s: Offset from %s to %s is %" PRIi64
" us";
1600 const char* _formatString =
1601 "%s: Offset from %s to %s is %" PRIi64
" us";
1605 from.toString(fromStr);
1610 (void) _logString.
format(
1613 this->m_objName.toChar(),
1621 this->textEventOut_out(
1641 this->timeCaller_out(0, _logTime);
1651 #if FW_AMPCS_COMPATIBLE 1656 static_cast<FwAssertArgType>(_status)
1660 #if FW_AMPCS_COMPATIBLE 1667 static_cast<FwAssertArgType>(_status)
1673 static_cast<FwAssertArgType>(_status)
1676 #if FW_AMPCS_COMPATIBLE 1683 static_cast<FwAssertArgType>(_status)
1689 static_cast<FwAssertArgType>(_status)
1702 #if FW_ENABLE_TEXT_LOGGING 1703 if (this->isConnected_textEventOut_OutputPort(0)) {
1704 #if FW_OBJECT_NAMES == 1 1705 const char* _formatString =
1706 "(%s) %s: No offset stored from %s to %s";
1708 const char* _formatString =
1709 "%s: No offset stored from %s to %s";
1713 from.toString(fromStr);
1718 (void) _logString.
format(
1721 this->m_objName.toChar(),
1728 this->textEventOut_out(
1745 this->timeCaller_out(0, _logTime);
1754 #if FW_AMPCS_COMPATIBLE 1760 static_cast<FwAssertArgType>(_status)
1774 #if FW_ENABLE_TEXT_LOGGING 1775 if (this->isConnected_textEventOut_OutputPort(0)) {
1776 #if FW_OBJECT_NAMES == 1 1777 const char* _formatString =
1778 "(%s) %s: No offsets are stored";
1780 const char* _formatString =
1781 "%s: No offsets are stored";
1785 (void) _logString.
format(
1788 this->m_objName.toChar(),
1793 this->textEventOut_out(
1812 this->m_IdenticalTimeBasesThrottle++;
1818 this->timeCaller_out(0, _logTime);
1828 #if FW_AMPCS_COMPATIBLE 1833 static_cast<FwAssertArgType>(_status)
1837 #if FW_AMPCS_COMPATIBLE 1844 static_cast<FwAssertArgType>(_status)
1850 static_cast<FwAssertArgType>(_status)
1863 #if FW_ENABLE_TEXT_LOGGING 1864 if (this->isConnected_textEventOut_OutputPort(0)) {
1865 #if FW_OBJECT_NAMES == 1 1866 const char* _formatString =
1867 "(%s) %s: Time base %s was supplied as both ends of an offset";
1869 const char* _formatString =
1870 "%s: Time base %s was supplied as both ends of an offset";
1877 (void) _logString.
format(
1880 this->m_objName.toChar(),
1882 "IdenticalTimeBases ",
1886 this->textEventOut_out(
1909 this->m_OffsetOutOfRangeThrottle++;
1915 this->timeCaller_out(0, _logTime);
1925 #if FW_AMPCS_COMPATIBLE 1930 static_cast<FwAssertArgType>(_status)
1934 #if FW_AMPCS_COMPATIBLE 1941 static_cast<FwAssertArgType>(_status)
1947 static_cast<FwAssertArgType>(_status)
1950 #if FW_AMPCS_COMPATIBLE 1957 static_cast<FwAssertArgType>(_status)
1963 static_cast<FwAssertArgType>(_status)
1966 #if FW_AMPCS_COMPATIBLE 1969 static_cast<U8>(
sizeof(I64))
1973 static_cast<FwAssertArgType>(_status)
1979 static_cast<FwAssertArgType>(_status)
1992 #if FW_ENABLE_TEXT_LOGGING 1993 if (this->isConnected_textEventOut_OutputPort(0)) {
1994 #if FW_OBJECT_NAMES == 1 1995 const char* _formatString =
1996 "(%s) %s: Offset %s us from %s to %" PRIi64
" exceeds the representable time range";
1998 const char* _formatString =
1999 "%s: Offset %s us from %s to %" PRIi64
" exceeds the representable time range";
2003 from.toString(fromStr);
2008 (void) _logString.
format(
2011 this->m_objName.toChar(),
2013 "OffsetOutOfRange ",
2019 this->textEventOut_out(
2038 this->m_UnusableTimeBaseThrottle++;
2044 this->timeCaller_out(0, _logTime);
2054 #if FW_AMPCS_COMPATIBLE 2059 static_cast<FwAssertArgType>(_status)
2063 #if FW_AMPCS_COMPATIBLE 2070 static_cast<FwAssertArgType>(_status)
2076 static_cast<FwAssertArgType>(_status)
2089 #if FW_ENABLE_TEXT_LOGGING 2090 if (this->isConnected_textEventOut_OutputPort(0)) {
2091 #if FW_OBJECT_NAMES == 1 2092 const char* _formatString =
2093 "(%s) %s: Time base %s denotes no clock and cannot be converted";
2095 const char* _formatString =
2096 "%s: Time base %s denotes no clock and cannot be converted";
2103 (void) _logString.
format(
2106 this->m_objName.toChar(),
2108 "UnusableTimeBase ",
2112 this->textEventOut_out(
2131 this->m_NoConversionAvailableThrottle = 0;
2138 this->m_InvalidTimeThrottle = 0;
2145 this->m_OffsetTableFullThrottle = 0;
2152 this->m_IdenticalTimeBasesThrottle = 0;
2159 this->m_OffsetOutOfRangeThrottle = 0;
2166 this->m_UnusableTimeBaseThrottle = 0;
2178 this->timeCaller_out(0, _time);
2196 this->m_guardedPortMutex.
lock();
2202 this->m_guardedPortMutex.
unLock();
2209 void TimeConverterComponentBase ::
2242 return compPtr->convertTime_handlerBase(
2249 void TimeConverterComponentBase ::
2250 m_p_offsetUpdate_in(
2258 compPtr->offsetUpdate_handlerBase(
2264 #if !FW_DIRECT_PORT_CALLS 2270 void TimeConverterComponentBase ::
2278 static_cast<FwAssertArgType>(portNum)
2282 this->m_cmdRegOut_OutputPort[portNum].isConnected(),
2283 static_cast<FwAssertArgType>(portNum)
2285 this->m_cmdRegOut_OutputPort[portNum].
invoke(
2290 void TimeConverterComponentBase ::
2300 static_cast<FwAssertArgType>(portNum)
2304 this->m_cmdResponseOut_OutputPort[portNum].isConnected(),
2305 static_cast<FwAssertArgType>(portNum)
2307 this->m_cmdResponseOut_OutputPort[portNum].
invoke(
2314 void TimeConverterComponentBase ::
2325 static_cast<FwAssertArgType>(portNum)
2329 this->m_eventOut_OutputPort[portNum].isConnected(),
2330 static_cast<FwAssertArgType>(portNum)
2332 this->m_eventOut_OutputPort[portNum].
invoke(
2340 #if FW_ENABLE_TEXT_LOGGING 2342 void TimeConverterComponentBase ::
2352 (0 <= portNum) && (portNum < this->getNum_textEventOut_OutputPorts()),
2353 static_cast<FwAssertArgType>(portNum)
2357 this->m_textEventOut_OutputPort[portNum].isConnected(),
2358 static_cast<FwAssertArgType>(portNum)
2360 this->m_textEventOut_OutputPort[portNum].invoke(
2370 void TimeConverterComponentBase ::
2378 static_cast<FwAssertArgType>(portNum)
2382 this->m_timeCaller_OutputPort[portNum].isConnected(),
2383 static_cast<FwAssertArgType>(portNum)
2385 this->m_timeCaller_OutputPort[portNum].
invoke(
void log_WARNING_LO_InvalidTime_ThrottleClear()
Reset throttle value for InvalidTime.
Serialization/Deserialization operation was successful.
void log_WARNING_LO_InvalidTime(const TimeBase &in_tb, const TimeBase &out_tb, I64 offset_us, I64 in_time_us)
void addCallPort(InputTimePort *callPort)
Register an input port.
Discard every stored offset.
void log_ACTIVITY_HI_OffsetReport(const TimeBase &from, const TimeBase &to, I64 offset_us) const
FwIdType FwOpcodeType
The type of a command opcode.
virtual Svc::ConvertTimeStatus convertTime_handler(FwIndexType portNum, const Fw::Time &in_time, Fw::Time &out_time)=0
Handler for input port convertTime.
Throttle reset count for InvalidTime.
FwIdType getIdBase() const
Report every stored offset as events.
void log_WARNING_LO_IdenticalTimeBases_ThrottleClear()
Reset throttle value for IdenticalTimeBases.
static constexpr FwIndexType getNum_offsetUpdate_InputPorts()
void cmdIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Handler base-class function for input port cmdIn.
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
bool isConnected_timeCaller_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_timeCaller_OutputPorts()
Auto-generated base for TimeConverter component.
virtual void offsetUpdate_handler(FwIndexType portNum, const Svc::TimeOffset &offset)=0
Handler for input port offsetUpdate.
TimeConverterComponentBase(const char *compName="")
Construct TimeConverterComponentBase object.
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
An offset was supplied for a single time base rather than a pair.
void log_WARNING_HI_OffsetTableFull(const TimeBase &from, const TimeBase &to, U32 capacity)
static constexpr FwIndexType getNum_eventOut_OutputPorts()
Svc::InputTimeOffsetSendPort * get_offsetUpdate_InputPort(FwIndexType portNum)
void CLEAR_OFFSETS_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
bool isConnected_eventOut_OutputPort(FwIndexType portNum) const
Enum representing a command response.
No time base has been established (Required)
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
void addCallPort(InputCmdRegPort *callPort)
Register an input port.
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
void set_eventOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to eventOut[portNum].
void log_WARNING_HI_OffsetTableFull_ThrottleClear()
Reset throttle value for OffsetTableFull.
Throttle reset count for OffsetTableFull.
Svc::ConvertTimeStatus convertTime_handlerBase(FwIndexType portNum, const Fw::Time &in_time, Fw::Time &out_time)
Handler base-class function for input port convertTime.
virtual void CLEAR_OFFSETS_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
virtual void unLock()
Unlock the guarded mutex.
void init()
Object initializer.
Throttle reset count for NoConversionAvailable.
SerializeStatus
forward declaration for string
virtual void DUMP_OFFSETS_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts()
An offset was stored for a pair of time bases by command.
FwIdType FwEventIdType
The type of an event identifier.
void log_WARNING_LO_NoConversionAvailable(const TimeBase &in_tb, const TimeBase &out_tb)
virtual void SET_OFFSET_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const TimeBase &from, const TimeBase &to, I64 offset_us)=0
void invoke(FwOpcodeType opCode) const
Invoke a port connection.
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects) ...
void init()
Initialization function.
No offset is stored for the requested pair of time bases.
void log_WARNING_HI_UnusableTimeBase_ThrottleClear()
Reset throttle value for UnusableTimeBase.
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_convertTime_InputPorts()
void log_WARNING_HI_UnusableTimeBase(const TimeBase &tb)
A less serious but recoverable event.
void invoke(Fw::Time &time) const
Invoke a port connection.
Report of a stored offset.
Serializable::SizeType getDeserializeSizeLeft() const override
Get remaining deserialization buffer size.
void invoke(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response) const
Invoke a port connection.
void log_ACTIVITY_HI_OffsetTableEmpty() const
void unLock()
unlock the mutex and assert success
void log_WARNING_HI_OffsetOutOfRange(const TimeBase &from, const TimeBase &to, I64 offset_us)
static constexpr FwIndexType getNum_cmdRegOut_OutputPorts()
Report the offset stored for a pair of time bases as an event.
void resetDeser() override
Reset deserialization pointer to beginning of buffer.
An offset could not be stored because the offset table is full.
A serious but recoverable event.
void DUMP_OFFSETS_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
const char * toChar() const
Convert to a C-style char*.
The offset table holds no entries.
Enum representing event severity.
void GET_OFFSET_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Result of a time base conversion.
Throttle reset count for OffsetOutOfRange.
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum) const
virtual void lock()
Lock the guarded mutex.
void regCommands()
Register commands with the Command Dispatcher.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
void init()
Initialization function.
No offset is stored for the requested pair of time bases.
An offset was rejected because no time can be shifted that far.
Throttle reset count for UnusableTimeBase.
void offsetUpdate_handlerBase(FwIndexType portNum, const Svc::TimeOffset &offset)
Handler base-class function for input port offsetUpdate.
Set the offset between a pair of time bases.
void log_ACTIVITY_HI_OffsetsCleared(U32 entries) const
Conversion result is not representable as an Fw::Time.
void log_ACTIVITY_HI_OffsetSet(const TimeBase &from, const TimeBase &to, I64 offset_us) const
void SET_OFFSET_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Command failed to deserialize.
virtual ~TimeConverterComponentBase()
Destroy TimeConverterComponentBase object.
void lock()
lock the mutex and assert success
static constexpr FwIndexType getNum_cmdIn_InputPorts()
Important informational events.
void log_WARNING_LO_NoConversionAvailable_ThrottleClear()
Reset throttle value for NoConversionAvailable.
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args) const
Invoke a port connection.
Svc::InputConvertTimePort * get_convertTime_InputPort(FwIndexType portNum)
PlatformIndexType FwIndexType
void addCallPort(InputLogPort *callPort)
Register an input port.
void init()
Initialization function.
RateGroupDivider component implementation.
void log_WARNING_LO_IdenticalTimeBases(const TimeBase &tb)
Implementation of malloc based allocator.
void log_WARNING_HI_OffsetOutOfRange_ThrottleClear()
Reset throttle value for OffsetOutOfRange.
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum) const
virtual void GET_OFFSET_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const TimeBase &from, const TimeBase &to)=0
void init()
Initialization function.
A time base that denotes no clock was supplied as an end of a pair.
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
Define enumeration for Time base types.
The size of the serial representation.
Throttle reset count for IdenticalTimeBases.
Every stored offset was discarded.
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
void log_WARNING_LO_NoOffsetStored(const TimeBase &from, const TimeBase &to) const