F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
FpySequencerComponentAc.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title FpySequencerComponentAc.hpp
3 // \author Generated by fpp-to-cpp
4 // \brief hpp file for FpySequencer component base class
5 // ======================================================================
6 
7 #ifndef Svc_FpySequencerComponentAc_HPP
8 #define Svc_FpySequencerComponentAc_HPP
9 
10 #include <atomic>
11 
12 #include "Fw/Cmd/CmdPortAc.hpp"
13 #include "Fw/Cmd/CmdRegPortAc.hpp"
16 #include "Fw/Cmd/CmdString.hpp"
17 #include "Fw/Com/ComPortAc.hpp"
19 #include "Fw/FPrimeBasicTypes.hpp"
20 #include "Fw/Log/LogPortAc.hpp"
21 #include "Fw/Log/LogString.hpp"
22 #if FW_ENABLE_TEXT_LOGGING == 1
23 #include "Fw/Log/LogTextPortAc.hpp"
24 #endif
27 #include "Fw/Prm/PrmGetPortAc.hpp"
28 #include "Fw/Prm/PrmSetPortAc.hpp"
29 #include "Fw/Prm/PrmString.hpp"
30 #include "Fw/Time/Time.hpp"
31 #include "Fw/Time/TimeInterval.hpp"
32 #include "Fw/Time/TimePortAc.hpp"
33 #include "Fw/Tlm/TlmPortAc.hpp"
34 #include "Fw/Tlm/TlmString.hpp"
36 #include "Os/Mutex.hpp"
43 #include "Svc/Ping/PingPortAc.hpp"
45 
46 namespace Svc {
47 
54  {
55 
56  // ----------------------------------------------------------------------
57  // Friend classes
58  // ----------------------------------------------------------------------
59 
63  friend class FpySequencerTesterBase;
64 
65  PROTECTED:
66 
67  // ----------------------------------------------------------------------
68  // Constants
69  // ----------------------------------------------------------------------
70 
72  enum {
74  };
75 
77  enum {
82  };
83 
85  enum {
94  };
95 
97  enum {
100  };
101 
103  enum {
104  OPCODE_RUN = 0x0,
111  };
112 
114  enum {
140  };
141 
143  enum {
151  };
152 
154  enum {
156  };
160 
162  enum class SmId : FwEnumStoreType {
163  sequencer,
164  };
165 
166  PROTECTED:
167 
168  // ----------------------------------------------------------------------
169  // Types for internal state machines
170  // ----------------------------------------------------------------------
171 
175  {
176 
177  public:
178 
181  FpySequencerComponentBase& component
182  );
183 
184  public:
185 
187  void init(
189  );
190 
191  public:
192 
195 
196  PRIVATE:
197 
199  void action_signalEntered(
200  Signal signal
201  );
202 
204  void action_setSequenceFilePath(
205  Signal signal,
207  );
208 
210  void action_setSequenceBlockState(
211  Signal signal,
213  );
214 
216  void action_validate(
217  Signal signal
218  );
219 
221  void action_report_seqSucceeded(
222  Signal signal
223  );
224 
226  void action_report_seqCancelled(
227  Signal signal
228  );
229 
231  void action_setGoalState_RUNNING(
232  Signal signal
233  );
234 
236  void action_setGoalState_VALID(
237  Signal signal
238  );
239 
241  void action_setGoalState_IDLE(
242  Signal signal
243  );
244 
246  void action_sendCmdResponse_OK(
247  Signal signal
248  );
249 
251  void action_sendCmdResponse_EXECUTION_ERROR(
252  Signal signal
253  );
254 
256  void action_clearSequenceFile(
257  Signal signal
258  );
259 
261  void action_checkShouldWake(
262  Signal signal
263  );
264 
266  void action_dispatchStatement(
267  Signal signal
268  );
269 
271  void action_resetRuntime(
272  Signal signal
273  );
274 
276  void action_checkStatementTimeout(
277  Signal signal
278  );
279 
281  void action_incrementSequenceCounter(
282  Signal signal
283  );
284 
285  PRIVATE:
286 
288  bool guard_goalStateIs_RUNNING(
289  Signal signal
290  ) const;
291 
292  PRIVATE:
293 
295  FpySequencerComponentBase& m_component;
296 
297  };
298 
299  public:
300 
301  // ----------------------------------------------------------------------
302  // Component initialization
303  // ----------------------------------------------------------------------
304 
306  void init(
307  FwSizeType queueDepth,
308  FwEnumStoreType instance = 0
309  );
310 
311  public:
312 
313  // ----------------------------------------------------------------------
314  // Getters for special input ports
315  // ----------------------------------------------------------------------
316 
321  FwIndexType portNum
322  );
323 
324  public:
325 
326  // ----------------------------------------------------------------------
327  // Getters for typed input ports
328  // ----------------------------------------------------------------------
329 
334  FwIndexType portNum
335  );
336 
341  FwIndexType portNum
342  );
343 
348  FwIndexType portNum
349  );
350 
355  FwIndexType portNum
356  );
357 
358  public:
359 
360  // ----------------------------------------------------------------------
361  // Connect input ports to special output ports
362  // ----------------------------------------------------------------------
363 
366  FwIndexType portNum,
367  Fw::InputCmdRegPort* port
368  );
369 
372  FwIndexType portNum,
374  );
375 
378  FwIndexType portNum,
379  Fw::InputLogPort* port
380  );
381 
382 #if FW_ENABLE_TEXT_LOGGING == 1
383 
385  void set_logTextOut_OutputPort(
386  FwIndexType portNum,
387  Fw::InputLogTextPort* port
388  );
389 
390 #endif
391 
394  FwIndexType portNum,
395  Fw::InputPrmGetPort* port
396  );
397 
400  FwIndexType portNum,
401  Fw::InputPrmSetPort* port
402  );
403 
406  FwIndexType portNum,
407  Fw::InputTimePort* port
408  );
409 
412  FwIndexType portNum,
413  Fw::InputTlmPort* port
414  );
415 
416  public:
417 
418  // ----------------------------------------------------------------------
419  // Connect typed input ports to typed output ports
420  // ----------------------------------------------------------------------
421 
424  FwIndexType portNum,
425  Fw::InputComPort* port
426  );
427 
430  FwIndexType portNum,
431  Svc::InputPingPort* port
432  );
433 
434 #if FW_PORT_SERIALIZATION
435 
436  public:
437 
438  // ----------------------------------------------------------------------
439  // Connect serial input ports to special output ports
440  // ----------------------------------------------------------------------
441 
444  FwIndexType portNum,
445  Fw::InputSerializePort* port
446  );
447 
450  FwIndexType portNum,
451  Fw::InputSerializePort* port
452  );
453 
456  FwIndexType portNum,
457  Fw::InputSerializePort* port
458  );
459 
460 #if FW_ENABLE_TEXT_LOGGING == 1
461 
463  void set_logTextOut_OutputPort(
464  FwIndexType portNum,
465  Fw::InputSerializePort* port
466  );
467 
468 #endif
469 
472  FwIndexType portNum,
473  Fw::InputSerializePort* port
474  );
475 
478  FwIndexType portNum,
479  Fw::InputSerializePort* port
480  );
481 
484  FwIndexType portNum,
485  Fw::InputSerializePort* port
486  );
487 
488 #endif
489 
490 #if FW_PORT_SERIALIZATION
491 
492  public:
493 
494  // ----------------------------------------------------------------------
495  // Connect serial input ports to typed output ports
496  // ----------------------------------------------------------------------
497 
500  FwIndexType portNum,
501  Fw::InputSerializePort* port
502  );
503 
506  FwIndexType portNum,
507  Fw::InputSerializePort* port
508  );
509 
510 #endif
511 
512  public:
513 
514  // ----------------------------------------------------------------------
515  // Command registration
516  // ----------------------------------------------------------------------
517 
521  void regCommands();
522 
523  public:
524 
525  // ----------------------------------------------------------------------
526  // Parameter loading
527  // ----------------------------------------------------------------------
528 
532  void loadParameters();
533 
534  PROTECTED:
535 
536  // ----------------------------------------------------------------------
537  // Component construction and destruction
538  // ----------------------------------------------------------------------
539 
542  const char* compName = ""
543  );
544 
546  virtual ~FpySequencerComponentBase();
547 
548  PROTECTED:
549 
550  // ----------------------------------------------------------------------
551  // Getters for numbers of special input ports
552  // ----------------------------------------------------------------------
553 
558 
559  PROTECTED:
560 
561  // ----------------------------------------------------------------------
562  // Getters for numbers of typed input ports
563  // ----------------------------------------------------------------------
564 
569 
574 
579 
584 
585  PROTECTED:
586 
587  // ----------------------------------------------------------------------
588  // Getters for numbers of special output ports
589  // ----------------------------------------------------------------------
590 
595 
600 
605 
606 #if FW_ENABLE_TEXT_LOGGING == 1
607 
611  FwIndexType getNum_logTextOut_OutputPorts() const;
612 
613 #endif
614 
619 
624 
629 
634 
635  PROTECTED:
636 
637  // ----------------------------------------------------------------------
638  // Getters for numbers of typed output ports
639  // ----------------------------------------------------------------------
640 
645 
650 
651  PROTECTED:
652 
653  // ----------------------------------------------------------------------
654  // Connection status queries for special output ports
655  // ----------------------------------------------------------------------
656 
661  FwIndexType portNum
662  );
663 
668  FwIndexType portNum
669  );
670 
675  FwIndexType portNum
676  );
677 
678 #if FW_ENABLE_TEXT_LOGGING == 1
679 
683  bool isConnected_logTextOut_OutputPort(
684  FwIndexType portNum
685  );
686 
687 #endif
688 
693  FwIndexType portNum
694  );
695 
700  FwIndexType portNum
701  );
702 
707  FwIndexType portNum
708  );
709 
714  FwIndexType portNum
715  );
716 
717  PROTECTED:
718 
719  // ----------------------------------------------------------------------
720  // Connection status queries for typed output ports
721  // ----------------------------------------------------------------------
722 
727  FwIndexType portNum
728  );
729 
734  FwIndexType portNum
735  );
736 
737  PROTECTED:
738 
739  // ----------------------------------------------------------------------
740  // Handlers to implement for typed input ports
741  // ----------------------------------------------------------------------
742 
744  virtual void checkTimers_handler(
745  FwIndexType portNum,
746  U32 context
747  ) = 0;
748 
750  virtual void cmdResponseIn_handler(
751  FwIndexType portNum,
752  FwOpcodeType opCode,
753  U32 cmdSeq,
754  const Fw::CmdResponse& response
755  ) = 0;
756 
758  virtual void pingIn_handler(
759  FwIndexType portNum,
760  U32 key
761  ) = 0;
762 
764  virtual void tlmWrite_handler(
765  FwIndexType portNum,
766  U32 context
767  ) = 0;
768 
769  PROTECTED:
770 
771  // ----------------------------------------------------------------------
772  // Port handler base-class functions for typed input ports
773  //
774  // Call these functions directly to bypass the corresponding ports
775  // ----------------------------------------------------------------------
776 
779  FwIndexType portNum,
780  U32 context
781  );
782 
785  FwIndexType portNum,
786  FwOpcodeType opCode,
787  U32 cmdSeq,
788  const Fw::CmdResponse& response
789  );
790 
792  void pingIn_handlerBase(
793  FwIndexType portNum,
794  U32 key
795  );
796 
799  FwIndexType portNum,
800  U32 context
801  );
802 
803  PROTECTED:
804 
805  // ----------------------------------------------------------------------
806  // Pre-message hooks for typed async input ports
807  //
808  // Each of these functions is invoked just before processing a message
809  // on the corresponding port. By default, they do nothing. You can
810  // override them to provide specific pre-message behavior.
811  // ----------------------------------------------------------------------
812 
814  virtual void checkTimers_preMsgHook(
815  FwIndexType portNum,
816  U32 context
817  );
818 
820  virtual void cmdResponseIn_preMsgHook(
821  FwIndexType portNum,
822  FwOpcodeType opCode,
823  U32 cmdSeq,
824  const Fw::CmdResponse& response
825  );
826 
828  virtual void pingIn_preMsgHook(
829  FwIndexType portNum,
830  U32 key
831  );
832 
834  virtual void tlmWrite_preMsgHook(
835  FwIndexType portNum,
836  U32 context
837  );
838 
839  PROTECTED:
840 
841  // ----------------------------------------------------------------------
842  // Invocation functions for typed output ports
843  // ----------------------------------------------------------------------
844 
846  void cmdOut_out(
847  FwIndexType portNum,
848  Fw::ComBuffer& data,
849  U32 context
850  );
851 
853  void pingOut_out(
854  FwIndexType portNum,
855  U32 key
856  );
857 
858  PROTECTED:
859 
860  // ----------------------------------------------------------------------
861  // Internal interface handlers
862  // ----------------------------------------------------------------------
863 
866 
869 
870  PROTECTED:
871 
872  // ----------------------------------------------------------------------
873  // Internal interface base-class functions
874  // ----------------------------------------------------------------------
875 
878 
881 
882  PROTECTED:
883 
884  // ----------------------------------------------------------------------
885  // State getter functions
886  // ----------------------------------------------------------------------
887 
890 
891  PROTECTED:
892 
893  // ----------------------------------------------------------------------
894  // Signal send functions
895  // ----------------------------------------------------------------------
896 
900  );
901 
905  );
906 
910  );
911 
914 
917 
920 
923 
926 
929 
932 
935 
938 
941 
944 
947 
950 
953 
956 
959 
962 
963  PROTECTED:
964 
965  // ----------------------------------------------------------------------
966  // Functions to implement for internal state machine actions
967  // ----------------------------------------------------------------------
968 
973  SmId smId,
975  ) = 0;
976 
981  SmId smId,
984  ) = 0;
985 
990  SmId smId,
993  ) = 0;
994 
999  SmId smId,
1001  ) = 0;
1002 
1007  SmId smId,
1009  ) = 0;
1010 
1015  SmId smId,
1017  ) = 0;
1018 
1023  SmId smId,
1025  ) = 0;
1026 
1031  SmId smId,
1033  ) = 0;
1034 
1039  SmId smId,
1041  ) = 0;
1042 
1047  SmId smId,
1049  ) = 0;
1050 
1055  SmId smId,
1057  ) = 0;
1058 
1063  SmId smId,
1065  ) = 0;
1066 
1071  SmId smId,
1073  ) = 0;
1074 
1079  SmId smId,
1081  ) = 0;
1082 
1087  SmId smId,
1089  ) = 0;
1090 
1095  SmId smId,
1097  ) = 0;
1098 
1103  SmId smId,
1105  ) = 0;
1106 
1107  PROTECTED:
1108 
1109  // ----------------------------------------------------------------------
1110  // Functions to implement for internal state machine guards
1111  // ----------------------------------------------------------------------
1112 
1117  SmId smId,
1119  ) const = 0;
1120 
1121  PROTECTED:
1122 
1123  // ----------------------------------------------------------------------
1124  // Command response
1125  // ----------------------------------------------------------------------
1126 
1128  void cmdResponse_out(
1129  FwOpcodeType opCode,
1130  U32 cmdSeq,
1131  Fw::CmdResponse response
1132  );
1133 
1134  PROTECTED:
1135 
1136  // ----------------------------------------------------------------------
1137  // Command handlers to implement
1138  // ----------------------------------------------------------------------
1139 
1143  virtual void RUN_cmdHandler(
1144  FwOpcodeType opCode,
1145  U32 cmdSeq,
1146  const Fw::CmdStringArg& fileName,
1148  ) = 0;
1149 
1153  virtual void VALIDATE_cmdHandler(
1154  FwOpcodeType opCode,
1155  U32 cmdSeq,
1156  const Fw::CmdStringArg& fileName
1157  ) = 0;
1158 
1162  virtual void RUN_VALIDATED_cmdHandler(
1163  FwOpcodeType opCode,
1164  U32 cmdSeq,
1166  ) = 0;
1167 
1172  virtual void CANCEL_cmdHandler(
1173  FwOpcodeType opCode,
1174  U32 cmdSeq
1175  ) = 0;
1176 
1177  PROTECTED:
1178 
1179  // ----------------------------------------------------------------------
1180  // Command handler base-class functions
1181  //
1182  // Call these functions directly to bypass the command input port
1183  // ----------------------------------------------------------------------
1184 
1188  void RUN_cmdHandlerBase(
1189  FwOpcodeType opCode,
1190  U32 cmdSeq,
1191  Fw::CmdArgBuffer& args
1192  );
1193 
1198  FwOpcodeType opCode,
1199  U32 cmdSeq,
1200  Fw::CmdArgBuffer& args
1201  );
1202 
1207  FwOpcodeType opCode,
1208  U32 cmdSeq,
1209  Fw::CmdArgBuffer& args
1210  );
1211 
1216  void CANCEL_cmdHandlerBase(
1217  FwOpcodeType opCode,
1218  U32 cmdSeq,
1219  Fw::CmdArgBuffer& args
1220  );
1221 
1222  PROTECTED:
1223 
1224  // ----------------------------------------------------------------------
1225  // Pre-message hooks for async commands
1226  //
1227  // Each of these functions is invoked just before processing the
1228  // corresponding command. By default they do nothing. You can
1229  // override them to provide specific pre-command behavior.
1230  // ----------------------------------------------------------------------
1231 
1233  virtual void RUN_preMsgHook(
1234  FwOpcodeType opCode,
1235  U32 cmdSeq
1236  );
1237 
1239  virtual void VALIDATE_preMsgHook(
1240  FwOpcodeType opCode,
1241  U32 cmdSeq
1242  );
1243 
1245  virtual void RUN_VALIDATED_preMsgHook(
1246  FwOpcodeType opCode,
1247  U32 cmdSeq
1248  );
1249 
1251  virtual void CANCEL_preMsgHook(
1252  FwOpcodeType opCode,
1253  U32 cmdSeq
1254  );
1255 
1256  PROTECTED:
1257 
1258  // ----------------------------------------------------------------------
1259  // Event logging functions
1260  // ----------------------------------------------------------------------
1261 
1263  void log_WARNING_HI_InvalidCommand(I32 state) const;
1264 
1267  const Fw::StringBase& filePath,
1268  I32 errorCode
1269  ) const;
1270 
1273  const Fw::StringBase& filePath,
1274  I32 errorCode
1275  ) const;
1276 
1278  void log_WARNING_HI_EndOfFileError(const Fw::StringBase& filePath) const;
1279 
1282  const Fw::StringBase& filePath,
1283  I32 errorCode,
1284  U64 buffLeft,
1285  U64 buffLength
1286  ) const;
1287 
1290  U8 expected,
1291  U8 actual
1292  ) const;
1293 
1296  U32 expected,
1297  U32 actual
1298  ) const;
1299 
1301  void log_WARNING_HI_ExtraBytesInSequence(U32 remaining) const;
1302 
1305  U64 bufferSize,
1306  const Fw::StringBase& filePath
1307  ) const;
1308 
1311  Svc::Fpy::StatementType stmtType,
1312  U32 stmtOpcode,
1313  U32 stmtIdx,
1314  const Fw::StringBase& filePath,
1315  Fw::CmdResponse response
1316  ) const;
1317 
1319  void log_ACTIVITY_HI_SequenceDone(const Fw::StringBase& filePath) const;
1320 
1322  void log_ACTIVITY_HI_SequenceCancelled(const Fw::StringBase& filePath) const;
1323 
1326  U32 opcode,
1327  U32 stmtIdx,
1328  const Fw::StringBase& filePath
1329  ) const;
1330 
1333  U32 cmdOpcode,
1334  U64 bufCapacity,
1335  U64 curPos,
1336  U64 writeSize,
1337  U8 errorCode,
1338  U32 stmtIdx
1339  ) const;
1340 
1343  I32 state,
1344  U32 opcode,
1345  Fw::CmdResponse response
1346  ) const;
1347 
1350  U32 opcode,
1351  Fw::CmdResponse response,
1352  U16 oldSequenceIdx,
1353  U16 currentSequenceIdx
1354  ) const;
1355 
1358  U32 opcode,
1359  Fw::CmdResponse response
1360  ) const;
1361 
1364  U32 opcode,
1365  Fw::CmdResponse response,
1366  U32 expectedOpcode
1367  ) const;
1368 
1371  U32 opcode,
1372  Fw::CmdResponse response,
1373  U16 actualCmdIdx,
1374  U16 expectedCmdIdx
1375  ) const;
1376 
1379  U32 opcode,
1380  U32 stmtIdx,
1381  I32 errorCode,
1382  U64 buffLeft,
1383  U64 buffLength
1384  ) const;
1385 
1388  I32 internalTimeBase,
1389  I32 otherTimeBase
1390  ) const;
1391 
1394  I32 internalTimeContext,
1395  I32 otherTimeContext
1396  ) const;
1397 
1400  Svc::Fpy::StatementType stmtType,
1401  U32 stmtOpcode,
1402  U32 stmtIdx,
1403  const Fw::StringBase& filePath
1404  ) const;
1405 
1408  U8 count,
1409  U8 max
1410  ) const;
1411 
1414  U16 count,
1415  U16 max
1416  ) const;
1417 
1418  PROTECTED:
1419 
1420  // ----------------------------------------------------------------------
1421  // Telemetry write functions
1422  // ----------------------------------------------------------------------
1423 
1428  U64 arg,
1429  Fw::Time _tlmTime = Fw::Time()
1430  );
1431 
1436  U64 arg,
1437  Fw::Time _tlmTime = Fw::Time()
1438  );
1439 
1444  U64 arg,
1445  Fw::Time _tlmTime = Fw::Time()
1446  );
1447 
1454  U64 arg,
1455  Fw::Time _tlmTime = Fw::Time()
1456  );
1457 
1462  U64 arg,
1463  Fw::Time _tlmTime = Fw::Time()
1464  );
1465 
1469  void tlmWrite_SeqPath(
1470  const Fw::StringBase& arg,
1471  Fw::Time _tlmTime = Fw::Time()
1472  );
1473 
1478  F32 arg,
1479  Fw::Time _tlmTime = Fw::Time()
1480  );
1481 
1482  PROTECTED:
1483 
1484  // ----------------------------------------------------------------------
1485  // Parameter update hook
1486  // ----------------------------------------------------------------------
1487 
1491  virtual void parameterUpdated(
1492  FwPrmIdType id
1493  );
1494 
1495  // ----------------------------------------------------------------------
1496  // Parameter load hook
1497  // ----------------------------------------------------------------------
1498 
1502  virtual void parametersLoaded();
1503 
1504  PROTECTED:
1505 
1506  // ----------------------------------------------------------------------
1507  // Parameter get functions
1508  // ----------------------------------------------------------------------
1509 
1519  Fw::ParamValid& valid
1520  );
1521 
1522  PROTECTED:
1523 
1524  // ----------------------------------------------------------------------
1525  // Time
1526  // ----------------------------------------------------------------------
1527 
1531  Fw::Time getTime() const;
1532 
1533  PRIVATE:
1534 
1535  // ----------------------------------------------------------------------
1536  // Message dispatch functions
1537  // ----------------------------------------------------------------------
1538 
1540  virtual MsgDispatchStatus doDispatch();
1541 
1542  PRIVATE:
1543 
1544  // ----------------------------------------------------------------------
1545  // Calls for messages received on special input ports
1546  // ----------------------------------------------------------------------
1547 
1549  static void m_p_cmdIn_in(
1550  Fw::PassiveComponentBase* callComp,
1551  FwIndexType portNum,
1552  FwOpcodeType opCode,
1553  U32 cmdSeq,
1554  Fw::CmdArgBuffer& args
1555  );
1556 
1557  PRIVATE:
1558 
1559  // ----------------------------------------------------------------------
1560  // Calls for messages received on typed input ports
1561  // ----------------------------------------------------------------------
1562 
1564  static void m_p_checkTimers_in(
1565  Fw::PassiveComponentBase* callComp,
1566  FwIndexType portNum,
1567  U32 context
1568  );
1569 
1571  static void m_p_cmdResponseIn_in(
1572  Fw::PassiveComponentBase* callComp,
1573  FwIndexType portNum,
1574  FwOpcodeType opCode,
1575  U32 cmdSeq,
1576  const Fw::CmdResponse& response
1577  );
1578 
1580  static void m_p_pingIn_in(
1581  Fw::PassiveComponentBase* callComp,
1582  FwIndexType portNum,
1583  U32 key
1584  );
1585 
1587  static void m_p_tlmWrite_in(
1588  Fw::PassiveComponentBase* callComp,
1589  FwIndexType portNum,
1590  U32 context
1591  );
1592 
1593  PRIVATE:
1594 
1595  // ----------------------------------------------------------------------
1596  // Send signal helper functions
1597  // ----------------------------------------------------------------------
1598 
1600  void sendSignalStart(
1601  SmId smId,
1602  FwEnumStoreType signal,
1603  Fw::SerializeBufferBase& buffer
1604  );
1605 
1607  void sequencer_sendSignalFinish(
1608  Fw::SerializeBufferBase& buffer
1609  );
1610 
1611  PRIVATE:
1612 
1613  // ----------------------------------------------------------------------
1614  // Helper functions for state machine dispatch
1615  // ----------------------------------------------------------------------
1616 
1618  void smDispatch(
1619  Fw::SerializeBufferBase& buffer
1620  );
1621 
1623  static void deserializeSmIdAndSignal(
1624  Fw::SerializeBufferBase& buffer,
1625  FwEnumStoreType& smId,
1626  FwEnumStoreType& signal
1627  );
1628 
1630  void Svc_FpySequencer_SequencerStateMachine_smDispatch(
1631  Fw::SerializeBufferBase& buffer,
1634  );
1635 
1636  PRIVATE:
1637 
1638  // ----------------------------------------------------------------------
1639  // Parameter set functions
1640  // ----------------------------------------------------------------------
1641 
1645  Fw::CmdResponse paramSet_STATEMENT_TIMEOUT_SECS(
1647  );
1648 
1649  PRIVATE:
1650 
1651  // ----------------------------------------------------------------------
1652  // Parameter save functions
1653  // ----------------------------------------------------------------------
1654 
1658  Fw::CmdResponse paramSave_STATEMENT_TIMEOUT_SECS();
1659 
1660  PRIVATE:
1661 
1662  // ----------------------------------------------------------------------
1663  // Special input ports
1664  // ----------------------------------------------------------------------
1665 
1667  Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
1668 
1669  PRIVATE:
1670 
1671  // ----------------------------------------------------------------------
1672  // Typed input ports
1673  // ----------------------------------------------------------------------
1674 
1676  Svc::InputSchedPort m_checkTimers_InputPort[NUM_CHECKTIMERS_INPUT_PORTS];
1677 
1679  Fw::InputCmdResponsePort m_cmdResponseIn_InputPort[NUM_CMDRESPONSEIN_INPUT_PORTS];
1680 
1682  Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
1683 
1685  Svc::InputSchedPort m_tlmWrite_InputPort[NUM_TLMWRITE_INPUT_PORTS];
1686 
1687  PRIVATE:
1688 
1689  // ----------------------------------------------------------------------
1690  // Special output ports
1691  // ----------------------------------------------------------------------
1692 
1694  Fw::OutputCmdRegPort m_cmdRegOut_OutputPort[NUM_CMDREGOUT_OUTPUT_PORTS];
1695 
1697  Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS];
1698 
1700  Fw::OutputLogPort m_logOut_OutputPort[NUM_LOGOUT_OUTPUT_PORTS];
1701 
1702 #if FW_ENABLE_TEXT_LOGGING == 1
1703 
1705  Fw::OutputLogTextPort m_logTextOut_OutputPort[NUM_LOGTEXTOUT_OUTPUT_PORTS];
1706 
1707 #endif
1708 
1710  Fw::OutputPrmGetPort m_prmGet_OutputPort[NUM_PRMGET_OUTPUT_PORTS];
1711 
1713  Fw::OutputPrmSetPort m_prmSet_OutputPort[NUM_PRMSET_OUTPUT_PORTS];
1714 
1716  Fw::OutputTimePort m_timeCaller_OutputPort[NUM_TIMECALLER_OUTPUT_PORTS];
1717 
1719  Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
1720 
1721  PRIVATE:
1722 
1723  // ----------------------------------------------------------------------
1724  // Typed output ports
1725  // ----------------------------------------------------------------------
1726 
1728  Fw::OutputComPort m_cmdOut_OutputPort[NUM_CMDOUT_OUTPUT_PORTS];
1729 
1731  Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
1732 
1733  PRIVATE:
1734 
1735  // ----------------------------------------------------------------------
1736  // First update flags for telemetry channels
1737  // ----------------------------------------------------------------------
1738 
1740  bool m_first_update_SequencesSucceeded;
1741 
1743  bool m_first_update_SequencesFailed;
1744 
1746  bool m_first_update_SequencesCancelled;
1747 
1749  bool m_first_update_StatementsDispatched;
1750 
1752  bool m_first_update_StatementsFailed;
1753 
1755  bool m_first_update_SeqPath;
1756 
1758  bool m_first_update_STATEMENT_TIMEOUT_SECS;
1759 
1760  PRIVATE:
1761 
1762  // ----------------------------------------------------------------------
1763  // Last value storage for telemetry channels
1764  // ----------------------------------------------------------------------
1765 
1767  U64 m_last_SequencesSucceeded;
1768 
1770  U64 m_last_SequencesFailed;
1771 
1773  U64 m_last_SequencesCancelled;
1774 
1776  U64 m_last_StatementsDispatched;
1777 
1779  U64 m_last_StatementsFailed;
1780 
1782  Fw::TlmString m_last_SeqPath;
1783 
1785  F32 m_last_STATEMENT_TIMEOUT_SECS;
1786 
1787  PRIVATE:
1788 
1789  // ----------------------------------------------------------------------
1790  // Parameter validity flags
1791  // ----------------------------------------------------------------------
1792 
1794  Fw::ParamValid m_param_STATEMENT_TIMEOUT_SECS_valid;
1795 
1796  PRIVATE:
1797 
1798  // ----------------------------------------------------------------------
1799  // Parameter variables
1800  // ----------------------------------------------------------------------
1801 
1808  F32 m_STATEMENT_TIMEOUT_SECS;
1809 
1810  PRIVATE:
1811 
1812  // ----------------------------------------------------------------------
1813  // State machine instances
1814  // ----------------------------------------------------------------------
1815 
1817  Svc_FpySequencer_SequencerStateMachine m_stateMachine_sequencer;
1818 
1819  PRIVATE:
1820 
1821  // ----------------------------------------------------------------------
1822  // Mutexes
1823  // ----------------------------------------------------------------------
1824 
1826  Os::Mutex m_paramLock;
1827 
1828  };
1829 
1830 }
1831 
1832 #endif
bool isConnected_tlmOut_OutputPort(FwIndexType portNum)
void sequencer_sendSignal_result_dispatchStatement_noMoreStatements()
Send signal result_dispatchStatement_noMoreStatements to state machine sequencer. ...
void sequencer_sendSignal_result_checkShouldWake_keepSleeping()
Send signal result_checkShouldWake_keepSleeping to state machine sequencer.
virtual void directive_waitRel_internalInterfaceHandler(const Svc::FpySequencer_WaitRelDirective &directive)=0
Internal interface handler for directive_waitRel.
virtual void Svc_FpySequencer_SequencerStateMachine_action_checkStatementTimeout(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal)=0
virtual void Svc_FpySequencer_SequencerStateMachine_action_incrementSequenceCounter(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal)=0
Definition: Time.hpp:9
virtual void Svc_FpySequencer_SequencerStateMachine_action_setSequenceFilePath(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal, const Svc::FpySequencer_SequenceExecutionArgs &value)=0
virtual void Svc_FpySequencer_SequencerStateMachine_action_signalEntered(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal)=0
Fw::InputCmdResponsePort * get_cmdResponseIn_InputPort(FwIndexType portNum)
void set_cmdOut_OutputPort(FwIndexType portNum, Fw::InputComPort *port)
Connect port to cmdOut[portNum].
virtual void parametersLoaded()
Called whenever parameters are loaded.
void log_WARNING_HI_StatementFailed(Svc::Fpy::StatementType stmtType, U32 stmtOpcode, U32 stmtIdx, const Fw::StringBase &filePath, Fw::CmdResponse response) const
Log event StatementFailed.
void log_WARNING_HI_InsufficientBufferSpace(U64 bufferSize, const Fw::StringBase &filePath) const
Log event InsufficientBufferSpace.
PlatformSizeType FwSizeType
FwIndexType getNum_cmdResponseOut_OutputPorts() const
void log_WARNING_HI_CmdResponseWhileNotAwaiting(U32 opcode, Fw::CmdResponse response) const
Log event CmdResponseWhileNotAwaiting.
I32 FwEnumStoreType
void sequencer_sendSignal_result_dispatchStatement_success()
Send signal result_dispatchStatement_success to state machine sequencer.
virtual void cmdResponseIn_handler(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)=0
Handler for input port cmdResponseIn.
void log_WARNING_HI_WrongCRC(U32 expected, U32 actual) const
Log event WrongCRC.
virtual void parameterUpdated(FwPrmIdType id)
Called whenever a parameter is updated.
virtual void Svc_FpySequencer_SequencerStateMachine_action_sendCmdResponse_OK(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal)=0
virtual void tlmWrite_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port tlmWrite.
void RUN_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
virtual void Svc_FpySequencer_SequencerStateMachine_action_setGoalState_IDLE(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal)=0
virtual void CANCEL_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void log_WARNING_HI_FileReadError(const Fw::StringBase &filePath, I32 errorCode) const
Log event FileReadError.
void sequencer_sendSignal_result_checkShouldWake_wakeup()
Send signal result_checkShouldWake_wakeup to state machine sequencer.
friend class FpySequencerTesterBase
Friend class tester to support autocoded test harness.
void sequencer_sendSignal_result_success()
Send signal result_success to state machine sequencer.
void log_WARNING_HI_FileReadDeserializeError(const Fw::StringBase &filePath, I32 errorCode, U64 buffLeft, U64 buffLength) const
Log event FileReadDeserializeError.
void cmdResponseIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Handler base-class function for input port cmdResponseIn.
void sequencer_sendSignal_stmtResponse_success()
Send signal stmtResponse_success to state machine sequencer.
virtual ~FpySequencerComponentBase()
Destroy FpySequencerComponentBase object.
void sequencer_sendSignal_cmd_VALIDATE(const Svc::FpySequencer_SequenceExecutionArgs &value)
Send signal cmd_VALIDATE to state machine sequencer.
Enum representing a command response.
virtual void Svc_FpySequencer_SequencerStateMachine_action_validate(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal)=0
virtual void RUN_VALIDATED_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command RUN_VALIDATED.
void set_logOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to logOut[portNum].
void tlmWrite_SequencesSucceeded(U64 arg, Fw::Time _tlmTime=Fw::Time())
virtual void Svc_FpySequencer_SequencerStateMachine_action_clearSequenceFile(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal)=0
virtual void directive_waitAbs_internalInterfaceHandler(const Svc::FpySequencer_WaitAbsDirective &directive)=0
Internal interface handler for directive_waitAbs.
virtual void RUN_VALIDATED_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, Svc::FpySequencer_BlockState block)=0
bool isConnected_pingOut_OutputPort(FwIndexType portNum)
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
void sequencer_sendSignal_stmtResponse_unexpected()
Send signal stmtResponse_unexpected to state machine sequencer.
virtual void RUN_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName, Svc::FpySequencer_BlockState block)=0
void sequencer_sendSignal_result_dispatchStatement_failure()
Send signal result_dispatchStatement_failure to state machine sequencer.
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
Svc::InputSchedPort * get_checkTimers_InputPort(FwIndexType portNum)
void RUN_VALIDATED_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void init()
Object initializer.
Definition: ObjBase.cpp:26
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
Svc_FpySequencer_SequencerStateMachine::State sequencer_getState() const
Get the state of state machine instance sequencer.
float F32
32-bit floating point
Definition: BasicTypes.h:86
virtual void checkTimers_handler(FwIndexType portNum, U32 context)=0
Handler for input port checkTimers.
bool isConnected_timeCaller_OutputPort(FwIndexType portNum)
void log_WARNING_HI_ExtraBytesInSequence(U32 remaining) const
Log event ExtraBytesInSequence.
void tlmWrite_StatementsFailed(U64 arg, Fw::Time _tlmTime=Fw::Time())
void log_WARNING_HI_StatementTimedOut(Svc::Fpy::StatementType stmtType, U32 stmtOpcode, U32 stmtIdx, const Fw::StringBase &filePath) const
Log event StatementTimedOut.
void regCommands()
Register commands with the Command Dispatcher.
F32 paramGet_STATEMENT_TIMEOUT_SECS(Fw::ParamValid &valid)
void log_WARNING_HI_EndOfFileError(const Fw::StringBase &filePath) const
Log event EndOfFileError.
void log_WARNING_HI_WrongCmdResponseOpcode(U32 opcode, Fw::CmdResponse response, U32 expectedOpcode) const
Log event WrongCmdResponseOpcode.
U32 FwOpcodeType
The type of a command opcode.
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
void tlmWrite_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port tlmWrite.
bool isConnected_prmSet_OutputPort(FwIndexType portNum)
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
Loads, validates and runs a sequence.
virtual void Svc_FpySequencer_SequencerStateMachine_action_dispatchStatement(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal)=0
void sequencer_sendSignal_cmd_RUN_VALIDATED(const Svc::FpySequencer_SequenceExecutionArgs &value)
Send signal cmd_RUN_VALIDATED to state machine sequencer.
Must be called after VALIDATE. Runs the sequence that was validated.
Svc_FpySequencer_SequencerStateMachine(FpySequencerComponentBase &component)
Constructor.
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
void log_WARNING_HI_WrongCmdResponseIndex(U32 opcode, Fw::CmdResponse response, U16 actualCmdIdx, U16 expectedCmdIdx) const
Log event WrongCmdResponseIndex.
FpySequencerComponentBase(const char *compName="")
Construct FpySequencerComponentBase object.
void sequencer_sendSignal_checkTimersIn()
Send signal checkTimersIn to state machine sequencer.
void tlmWrite_StatementsDispatched(U64 arg, Fw::Time _tlmTime=Fw::Time())
void VALIDATE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Implementation of state machine Svc_FpySequencer_SequencerStateMachine.
void sequencer_sendSignal_stmtResponse_failure()
Send signal stmtResponse_failure to state machine sequencer.
void log_WARNING_LO_CmdResponseWhileNotRunningSequence(I32 state, U32 opcode, Fw::CmdResponse response) const
Log event CmdResponseWhileNotRunningSequence.
void CANCEL_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void directive_waitAbs_internalInterfaceInvoke(const Svc::FpySequencer_WaitAbsDirective &directive)
Internal interface base-class function for directive_waitAbs.
void log_WARNING_HI_DirectiveDeserializeError(U32 opcode, U32 stmtIdx, I32 errorCode, U64 buffLeft, U64 buffLength) const
Log event DirectiveDeserializeError.
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
void sequencer_sendSignal_stmtResponse_beginSleep()
Send signal stmtResponse_beginSleep to state machine sequencer.
void sequencer_sendSignal_result_checkStatementTimeout_noTimeout()
Send signal result_checkStatementTimeout_noTimeout to state machine sequencer.
U32 FwPrmIdType
The type of a parameter identifier.
virtual void tlmWrite_handler(FwIndexType portNum, U32 context)=0
Handler for input port tlmWrite.
void loadParameters()
Load the parameters from a parameter source.
virtual void Svc_FpySequencer_SequencerStateMachine_action_sendCmdResponse_EXECUTION_ERROR(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal)=0
void log_WARNING_HI_CommandSerializeError(U32 cmdOpcode, U64 bufCapacity, U64 curPos, U64 writeSize, U8 errorCode, U32 stmtIdx) const
Log event CommandSerializeError.
virtual void Svc_FpySequencer_SequencerStateMachine_action_setGoalState_VALID(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal)=0
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:56
void log_WARNING_HI_TooManySequenceStatements(U16 count, U16 max) const
Log event TooManySequenceStatements.
void tlmWrite_STATEMENT_TIMEOUT_SECS(F32 arg, Fw::Time _tlmTime=Fw::Time())
void sequencer_sendSignal_result_timeOpFailed()
Send signal result_timeOpFailed to state machine sequencer.
void log_WARNING_HI_FileOpenError(const Fw::StringBase &filePath, I32 errorCode) const
Log event FileOpenError.
void init(FpySequencerComponentBase::SmId smId)
Initialize the state machine.
void set_prmSet_OutputPort(FwIndexType portNum, Fw::InputPrmSetPort *port)
Connect port to prmSet[portNum].
virtual void Svc_FpySequencer_SequencerStateMachine_action_setSequenceBlockState(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal, const Svc::FpySequencer_SequenceExecutionArgs &value)=0
void sequencer_sendSignal_cmd_CANCEL()
Send signal cmd_CANCEL to state machine sequencer.
void sequencer_sendSignal_result_checkStatementTimeout_statementTimeout()
Send signal result_checkStatementTimeout_statementTimeout to state machine sequencer.
virtual void Svc_FpySequencer_SequencerStateMachine_action_resetRuntime(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal)=0
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum)
void log_WARNING_HI_InvalidCommand(I32 state) const
Log event InvalidCommand.
void log_ACTIVITY_HI_SequenceCancelled(const Fw::StringBase &filePath) const
Log event SequenceCancelled.
virtual void RUN_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command RUN.
void pingOut_out(FwIndexType portNum, U32 key)
Invoke output port pingOut.
void log_WARNING_LO_CmdResponseFromOldSequence(U32 opcode, Fw::CmdResponse response, U16 oldSequenceIdx, U16 currentSequenceIdx) const
Log event CmdResponseFromOldSequence.
bool isConnected_cmdOut_OutputPort(FwIndexType portNum)
void tlmWrite_SequencesFailed(U64 arg, Fw::Time _tlmTime=Fw::Time())
bool isConnected_logOut_OutputPort(FwIndexType portNum)
void tlmWrite_SeqPath(const Fw::StringBase &arg, Fw::Time _tlmTime=Fw::Time())
PlatformIndexType FwIndexType
virtual void VALIDATE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command VALIDATE.
bool isConnected_prmGet_OutputPort(FwIndexType portNum)
void log_WARNING_HI_MismatchedTimeContext(I32 internalTimeContext, I32 otherTimeContext) const
Log event MismatchedTimeContext.
Svc::InputSchedPort * get_tlmWrite_InputPort(FwIndexType portNum)
void log_WARNING_HI_WrongSchemaVersion(U8 expected, U8 actual) const
Log event WrongSchemaVersion.
void cmdOut_out(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Invoke output port cmdOut.
virtual void VALIDATE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &fileName)=0
virtual void Svc_FpySequencer_SequencerStateMachine_action_report_seqSucceeded(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal)=0
RateGroupDivider component implementation.
virtual void Svc_FpySequencer_SequencerStateMachine_action_setGoalState_RUNNING(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal)=0
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum)
virtual void cmdResponseIn_preMsgHook(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Pre-message hook for async input port cmdResponseIn.
Enum representing parameter validity.
void log_WARNING_HI_TooManySequenceArgs(U8 count, U8 max) const
Log event TooManySequenceArgs.
void log_WARNING_HI_MismatchedTimeBase(I32 internalTimeBase, I32 otherTimeBase) const
Log event MismatchedTimeBase.
void sequencer_sendSignal_result_failure()
Send signal result_failure to state machine sequencer.
virtual void checkTimers_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port checkTimers.
void sequencer_sendSignal_entered()
Send signal entered to state machine sequencer.
virtual void Svc_FpySequencer_SequencerStateMachine_action_checkShouldWake(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal)=0
friend class FpySequencerComponentBaseFriend
Friend class for white-box testing.
FpySequencerComponentBase::SmId getId() const
Get the state machine id.
void log_ACTIVITY_HI_SequenceDone(const Fw::StringBase &filePath) const
Log event SequenceDone.
void directive_waitRel_internalInterfaceInvoke(const Svc::FpySequencer_WaitRelDirective &directive)
Internal interface base-class function for directive_waitRel.
virtual bool Svc_FpySequencer_SequencerStateMachine_guard_goalStateIs_RUNNING(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal) const =0
Auto-generated base for FpySequencer component.
void sequencer_sendSignal_cmd_RUN(const Svc::FpySequencer_SequenceExecutionArgs &value)
Send signal cmd_RUN to state machine sequencer.
void checkTimers_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port checkTimers.
virtual void CANCEL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CANCEL.
void log_WARNING_HI_UnknownSequencerDirective(U32 opcode, U32 stmtIdx, const Fw::StringBase &filePath) const
Log event UnknownSequencerDirective.
void tlmWrite_SequencesCancelled(U64 arg, Fw::Time _tlmTime=Fw::Time())
virtual void Svc_FpySequencer_SequencerStateMachine_action_report_seqCancelled(SmId smId, Svc_FpySequencer_SequencerStateMachine::Signal signal)=0
void set_prmGet_OutputPort(FwIndexType portNum, Fw::InputPrmGetPort *port)
Connect port to prmGet[portNum].
#define U64(C)
Definition: sha.h:180