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.
Throttle reset count for UnusableTimeBase.
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.
No offset is stored for the requested pair of time bases.
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.
Discard every stored offset.
FwIdType getIdBase() const
void log_WARNING_LO_IdenticalTimeBases_ThrottleClear()
Reset throttle value for IdenticalTimeBases.
Every stored offset was discarded.
The offset table holds no entries.
static constexpr FwIndexType getNum_offsetUpdate_InputPorts()
A time base that denotes no clock was supplied as an end of a pair.
void cmdIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Handler base-class function for input port cmdIn.
Throttle reset count for InvalidTime.
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
bool isConnected_timeCaller_OutputPort(FwIndexType portNum) const
void unLock()
unlock the mutex and assert success
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].
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.
An offset was stored for a pair of time bases by command.
Svc::ConvertTimeStatus convertTime_handlerBase(FwIndexType portNum, const Fw::Time &in_time, Fw::Time &out_time)
Handler base-class function for input port convertTime.
Report of a stored offset.
An offset was supplied for a single time base rather than a pair.
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 IdenticalTimeBases.
SerializeStatus
forward declaration for string
virtual void DUMP_OFFSETS_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts()
FwIdType FwEventIdType
The type of an event identifier.
void log_WARNING_LO_NoConversionAvailable(const TimeBase &in_tb, const TimeBase &out_tb)
Conversion result is not representable as an Fw::Time.
virtual void SET_OFFSET_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const TimeBase &from, const TimeBase &to, I64 offset_us)=0
Report every stored offset as events.
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.
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.
An offset could not be stored because the offset table is full.
Throttle reset count for OffsetTableFull.
void invoke(Fw::Time &time) const
Invoke a port connection.
Serializable::SizeType getDeserializeSizeLeft() const override
Get remaining deserialization buffer size.
Throttle reset count for OffsetOutOfRange.
void invoke(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response) const
Invoke a port connection.
void log_ACTIVITY_HI_OffsetTableEmpty() const
Report the offset stored for a pair of time bases as an event.
void log_WARNING_HI_OffsetOutOfRange(const TimeBase &from, const TimeBase &to, I64 offset_us)
static constexpr FwIndexType getNum_cmdRegOut_OutputPorts()
void resetDeser() override
Reset deserialization pointer to beginning of buffer.
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*.
Enum representing event severity.
void GET_OFFSET_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Result of a time base conversion.
No offset is stored for the requested pair of time bases.
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.
void offsetUpdate_handlerBase(FwIndexType portNum, const Svc::TimeOffset &offset)
Handler base-class function for input port offsetUpdate.
void log_ACTIVITY_HI_OffsetsCleared(U32 entries) const
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.
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)
The size of the serial representation.
PlatformIndexType FwIndexType
void addCallPort(InputLogPort *callPort)
Register an input port.
void init()
Initialization function.
RateGroupDivider component implementation.
An offset was rejected because no time can be shifted that far.
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
Set the offset between a pair of time bases.
void init()
Initialization function.
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
Define enumeration for Time base types.
Throttle reset count for NoConversionAvailable.
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
void lock()
lock the mutex and assert success
void log_WARNING_LO_NoOffsetStored(const TimeBase &from, const TimeBase &to) const