F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
TlmPacketizerComponentAc.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title TlmPacketizerComponentAc.hpp
3 // \author Generated by fpp-to-cpp
4 // \brief hpp file for TlmPacketizer component base class
5 // ======================================================================
6 
7 #ifndef Svc_TlmPacketizerComponentAc_HPP
8 #define Svc_TlmPacketizerComponentAc_HPP
9 
10 #include <atomic>
11 
14 #include "Fw/Cmd/CmdPortAc.hpp"
15 #include "Fw/Cmd/CmdRegPortAc.hpp"
17 #include "Fw/Cmd/CmdString.hpp"
18 #include "Fw/Com/ComPortAc.hpp"
20 #include "Fw/FPrimeBasicTypes.hpp"
21 #include "Fw/Log/LogPortAc.hpp"
22 #include "Fw/Log/LogString.hpp"
23 #include "Fw/Log/LogTextPortAc.hpp"
24 #if !FW_DIRECT_PORT_CALLS
26 #endif
27 #if !FW_DIRECT_PORT_CALLS
29 #endif
31 #include "Fw/Prm/PrmGetPortAc.hpp"
32 #include "Fw/Prm/PrmSetPortAc.hpp"
33 #include "Fw/Prm/PrmString.hpp"
34 #include "Fw/Time/TimePortAc.hpp"
35 #include "Fw/Tlm/TlmGetPortAc.hpp"
36 #include "Fw/Tlm/TlmPortAc.hpp"
37 #include "Fw/Tlm/TlmString.hpp"
40 #include "Os/Mutex.hpp"
41 #include "Svc/Ping/PingPortAc.hpp"
58 
59 namespace Svc {
60 
67  {
68 
69  // ----------------------------------------------------------------------
70  // Friend classes
71  // ----------------------------------------------------------------------
72 
76  friend class TlmPacketizerTester;
77 
78  protected:
79 
80  // ----------------------------------------------------------------------
81  // Constants
82  // ----------------------------------------------------------------------
83 
85  enum {
87  };
88 
90  enum {
99  };
100 
102  enum {
111  };
112 
114  enum {
121  };
122 
124  enum {
138  };
139 
141  enum {
158  };
159 
161  enum {
164  };
165 
167  enum {
170  };
171 
173  enum {
176  };
177 
178  public:
179 
180  // ----------------------------------------------------------------------
181  // Component initialization
182  // ----------------------------------------------------------------------
183 
185  void init(
186  FwSizeType queueDepth,
187  FwEnumStoreType instance = 0
188  );
189 
190 #if !FW_DIRECT_PORT_CALLS
191 
192  public:
193 
194  // ----------------------------------------------------------------------
195  // Getters for special input ports
196  // ----------------------------------------------------------------------
197 
202  FwIndexType portNum
203  );
204 
205 #endif
206 
207 #if !FW_DIRECT_PORT_CALLS
208 
209  public:
210 
211  // ----------------------------------------------------------------------
212  // Getters for typed input ports
213  // ----------------------------------------------------------------------
214 
219  FwIndexType portNum
220  );
221 
226  FwIndexType portNum
227  );
228 
233  FwIndexType portNum
234  );
235 
240  FwIndexType portNum
241  );
242 
247  FwIndexType portNum
248  );
249 
254  FwIndexType portNum
255  );
256 
261  FwIndexType portNum
262  );
263 
268  FwIndexType portNum
269  );
270 
271 #endif
272 
273 #if !FW_DIRECT_PORT_CALLS
274 
275  public:
276 
277  // ----------------------------------------------------------------------
278  // Connect input ports to special output ports
279  // ----------------------------------------------------------------------
280 
283  FwIndexType portNum,
284  Fw::InputCmdRegPort* port
285  );
286 
289  FwIndexType portNum,
291  );
292 
295  FwIndexType portNum,
296  Fw::InputLogPort* port
297  );
298 
301  FwIndexType portNum,
302  Fw::InputPrmGetPort* port
303  );
304 
307  FwIndexType portNum,
308  Fw::InputPrmSetPort* port
309  );
310 
311 #if FW_ENABLE_TEXT_LOGGING == 1
312 
314  void set_textEventOut_OutputPort(
315  FwIndexType portNum,
316  Fw::InputLogTextPort* port
317  );
318 
319 #endif
320 
323  FwIndexType portNum,
324  Fw::InputTimePort* port
325  );
326 
329  FwIndexType portNum,
330  Fw::InputTlmPort* port
331  );
332 
333 #endif
334 
335 #if !FW_DIRECT_PORT_CALLS
336 
337  public:
338 
339  // ----------------------------------------------------------------------
340  // Connect typed input ports to typed output ports
341  // ----------------------------------------------------------------------
342 
345  FwIndexType portNum,
346  Fw::InputComPort* port
347  );
348 
351  FwIndexType portNum,
353  );
354 
357  FwIndexType portNum,
359  );
360 
363  FwIndexType portNum,
365  );
366 
369  FwIndexType portNum,
371  );
372 
375  FwIndexType portNum,
376  Svc::InputPingPort* port
377  );
378 
379 #endif
380 
381 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
382 
383  public:
384 
385  // ----------------------------------------------------------------------
386  // Connect serial input ports to special output ports
387  // ----------------------------------------------------------------------
388 
391  FwIndexType portNum,
392  Fw::InputSerializePort* port
393  );
394 
397  FwIndexType portNum,
398  Fw::InputSerializePort* port
399  );
400 
403  FwIndexType portNum,
404  Fw::InputSerializePort* port
405  );
406 
409  FwIndexType portNum,
410  Fw::InputSerializePort* port
411  );
412 
413 #if FW_ENABLE_TEXT_LOGGING == 1
414 
416  void set_textEventOut_OutputPort(
417  FwIndexType portNum,
418  Fw::InputSerializePort* port
419  );
420 
421 #endif
422 
425  FwIndexType portNum,
426  Fw::InputSerializePort* port
427  );
428 
431  FwIndexType portNum,
432  Fw::InputSerializePort* port
433  );
434 
435 #endif
436 
437 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
438 
439  public:
440 
441  // ----------------------------------------------------------------------
442  // Connect serial input ports to typed output ports
443  // ----------------------------------------------------------------------
444 
447  FwIndexType portNum,
448  Fw::InputSerializePort* port
449  );
450 
453  FwIndexType portNum,
454  Fw::InputSerializePort* port
455  );
456 
459  FwIndexType portNum,
460  Fw::InputSerializePort* port
461  );
462 
465  FwIndexType portNum,
466  Fw::InputSerializePort* port
467  );
468 
471  FwIndexType portNum,
472  Fw::InputSerializePort* port
473  );
474 
475 #endif
476 
477  public:
478 
479  // ----------------------------------------------------------------------
480  // Command registration
481  // ----------------------------------------------------------------------
482 
486  void regCommands();
487 
488  public:
489 
490  // ----------------------------------------------------------------------
491  // Parameter loading
492  // ----------------------------------------------------------------------
493 
497  void loadParameters();
498 
499  protected:
500 
501  // ----------------------------------------------------------------------
502  // Component construction and destruction
503  // ----------------------------------------------------------------------
504 
507  const char* compName = ""
508  );
509 
511  virtual ~TlmPacketizerComponentBase();
512 
513  protected:
514 
515  // ----------------------------------------------------------------------
516  // Getters for numbers of special input ports
517  // ----------------------------------------------------------------------
518 
523  return NUM_CMDIN_INPUT_PORTS;
524  }
525 
526  protected:
527 
528  // ----------------------------------------------------------------------
529  // Getters for numbers of typed input ports
530  // ----------------------------------------------------------------------
531 
535  static constexpr FwIndexType getNum_Run_InputPorts() {
536  return NUM_RUN_INPUT_PORTS;
537  }
538 
543  return NUM_TLMGET_INPUT_PORTS;
544  }
545 
551  }
552 
558  }
559 
565  }
566 
572  }
573 
579  }
580 
585  return NUM_PINGIN_INPUT_PORTS;
586  }
587 
588  protected:
589 
590  // ----------------------------------------------------------------------
591  // Getters for numbers of special output ports
592  // ----------------------------------------------------------------------
593 
599  }
600 
606  }
607 
613  }
614 
620  }
621 
627  }
628 
629 #if FW_ENABLE_TEXT_LOGGING == 1
630 
634  static constexpr FwIndexType getNum_textEventOut_OutputPorts() {
636  }
637 
638 #endif
639 
645  }
646 
652  }
653 
654  protected:
655 
656  // ----------------------------------------------------------------------
657  // Getters for numbers of typed output ports
658  // ----------------------------------------------------------------------
659 
665  }
666 
672  }
673 
679  }
680 
686  }
687 
693  }
694 
700  }
701 
702  protected:
703 
704  // ----------------------------------------------------------------------
705  // Connection status queries for special output ports
706  // ----------------------------------------------------------------------
707 
712  FwIndexType portNum
713  ) const;
714 
719  FwIndexType portNum
720  ) const;
721 
726  FwIndexType portNum
727  ) const;
728 
733  FwIndexType portNum
734  ) const;
735 
740  FwIndexType portNum
741  ) const;
742 
743 #if FW_ENABLE_TEXT_LOGGING == 1
744 
748  bool isConnected_textEventOut_OutputPort(
749  FwIndexType portNum
750  ) const;
751 
752 #endif
753 
758  FwIndexType portNum
759  ) const;
760 
765  FwIndexType portNum
766  ) const;
767 
768  protected:
769 
770  // ----------------------------------------------------------------------
771  // Connection status queries for typed output ports
772  // ----------------------------------------------------------------------
773 
778  FwIndexType portNum
779  ) const;
780 
785  FwIndexType portNum
786  ) const;
787 
792  FwIndexType portNum
793  ) const;
794 
799  FwIndexType portNum
800  ) const;
801 
806  FwIndexType portNum
807  ) const;
808 
813  FwIndexType portNum
814  ) const;
815 
816 #if FW_DIRECT_PORT_CALLS
817  public:
818 #else
819  protected:
820 #endif
821 
822  // ----------------------------------------------------------------------
823  // Port handler base-class functions for special input ports
824  //
825  // Call these functions directly to bypass the corresponding ports
826  // ----------------------------------------------------------------------
827 
829  void cmdIn_handlerBase(
830  FwIndexType portNum,
831  FwOpcodeType opCode,
832  U32 cmdSeq,
833  Fw::CmdArgBuffer& args
834  );
835 
836  protected:
837 
838  // ----------------------------------------------------------------------
839  // Handlers to implement for typed input ports
840  // ----------------------------------------------------------------------
841 
843  virtual void Run_handler(
844  FwIndexType portNum,
845  U32 context
846  ) = 0;
847 
850  FwIndexType portNum,
851  FwChanIdType id,
852  Fw::Time& timeTag,
853  Fw::TlmBuffer& val
854  ) = 0;
857 
859  virtual void TlmRecv_handler(
860  FwIndexType portNum,
861  FwChanIdType id,
862  Fw::Time& timeTag,
863  Fw::TlmBuffer& val
864  ) = 0;
865 
868  FwIndexType portNum,
869  const Svc::TelemetrySection& section,
870  FwChanIdType tlmGroup,
871  const Svc::RateLogic& rateLogic,
872  U32 minDelta,
873  U32 maxDelta
874  ) = 0;
875 
877  virtual void controlIn_handler(
878  FwIndexType portNum,
879  const Svc::TelemetrySection& section,
880  const Fw::Enabled& enabled
881  ) = 0;
882 
884  virtual void packetOverrideIn_handler(
885  FwIndexType portNum,
886  Fw::Buffer& fwBuffer
887  ) = 0;
888 
890  virtual void packetOverrideReturnIn_handler(
891  FwIndexType portNum,
892  Fw::Buffer& fwBuffer
893  ) = 0;
894 
896  virtual void pingIn_handler(
897  FwIndexType portNum,
898  U32 key
899  ) = 0;
900 
901 #if FW_DIRECT_PORT_CALLS
902  public:
903 #else
904  protected:
905 #endif
906 
907  // ----------------------------------------------------------------------
908  // Port handler base-class functions for typed input ports
909  //
910  // Call these functions directly to bypass the corresponding ports
911  // ----------------------------------------------------------------------
912 
914  void Run_handlerBase(
915  FwIndexType portNum,
916  U32 context
917  );
918 
921  FwIndexType portNum,
922  FwChanIdType id,
923  Fw::Time& timeTag,
924  Fw::TlmBuffer& val
925  );
928 
930  void TlmRecv_handlerBase(
931  FwIndexType portNum,
932  FwChanIdType id,
933  Fw::Time& timeTag,
934  Fw::TlmBuffer& val
935  );
936 
939  FwIndexType portNum,
940  const Svc::TelemetrySection& section,
941  FwChanIdType tlmGroup,
942  const Svc::RateLogic& rateLogic,
943  U32 minDelta,
944  U32 maxDelta
945  );
946 
949  FwIndexType portNum,
950  const Svc::TelemetrySection& section,
951  const Fw::Enabled& enabled
952  );
953 
956  FwIndexType portNum,
957  Fw::Buffer& fwBuffer
958  );
959 
962  FwIndexType portNum,
963  Fw::Buffer& fwBuffer
964  );
965 
967  void pingIn_handlerBase(
968  FwIndexType portNum,
969  U32 key
970  );
971 
972  protected:
973 
974  // ----------------------------------------------------------------------
975  // Pre-message hooks for typed async input ports
976  //
977  // Each of these functions is invoked just before processing a message
978  // on the corresponding port. By default, they do nothing. You can
979  // override them to provide specific pre-message behavior.
980  // ----------------------------------------------------------------------
981 
983  virtual void Run_preMsgHook(
984  FwIndexType portNum,
985  U32 context
986  );
987 
990  FwIndexType portNum,
991  const Svc::TelemetrySection& section,
992  FwChanIdType tlmGroup,
993  const Svc::RateLogic& rateLogic,
994  U32 minDelta,
995  U32 maxDelta
996  );
997 
999  virtual void controlIn_preMsgHook(
1000  FwIndexType portNum,
1001  const Svc::TelemetrySection& section,
1002  const Fw::Enabled& enabled
1003  );
1004 
1006  virtual void packetOverrideIn_preMsgHook(
1007  FwIndexType portNum,
1008  Fw::Buffer& fwBuffer
1009  );
1010 
1012  virtual void pingIn_preMsgHook(
1013  FwIndexType portNum,
1014  U32 key
1015  );
1016 
1017  protected:
1018 
1019  // ----------------------------------------------------------------------
1020  // Invocation functions for typed output ports
1021  // ----------------------------------------------------------------------
1022 
1024  void PktSend_out(
1025  FwIndexType portNum,
1026  Fw::ComBuffer& data,
1027  U32 context
1028  ) const;
1029 
1032  FwIndexType portNum,
1033  FwSizeType size
1034  ) const;
1035 
1037  void deallocate_out(
1038  FwIndexType portNum,
1039  Fw::Buffer& fwBuffer
1040  ) const;
1041 
1043  void packetOverrideOut_out(
1044  FwIndexType portNum,
1045  Fw::Buffer& fwBuffer
1046  ) const;
1047 
1050  FwIndexType portNum,
1051  Fw::Buffer& fwBuffer
1052  ) const;
1053 
1055  void pingOut_out(
1056  FwIndexType portNum,
1057  U32 key
1058  ) const;
1059 
1060  protected:
1061 
1062  // ----------------------------------------------------------------------
1063  // Command response
1064  // ----------------------------------------------------------------------
1065 
1067  void cmdResponse_out(
1068  FwOpcodeType opCode,
1069  U32 cmdSeq,
1070  Fw::CmdResponse response
1071  );
1072 
1073  protected:
1074 
1075  // ----------------------------------------------------------------------
1076  // Command handlers to implement
1077  // ----------------------------------------------------------------------
1078 
1082  virtual void SET_LEVEL_cmdHandler(
1083  FwOpcodeType opCode,
1084  U32 cmdSeq,
1085  FwChanIdType level
1086  ) = 0;
1087 
1091  virtual void SEND_PKT_cmdHandler(
1092  FwOpcodeType opCode,
1093  U32 cmdSeq,
1094  U32 id,
1095  const Svc::TelemetrySection& section
1096  ) = 0;
1097 
1101  virtual void ENABLE_SECTION_cmdHandler(
1102  FwOpcodeType opCode,
1103  U32 cmdSeq,
1104  const Svc::TelemetrySection& section,
1105  const Fw::Enabled& enable
1106  ) = 0;
1107 
1111  virtual void CONFIGURE_GROUP_SEND_cmdHandler(
1112  FwOpcodeType opCode,
1113  U32 cmdSeq,
1114  const Svc::TelemetrySection& section,
1115  FwChanIdType tlmGroup,
1116  const Svc::TlmSendState& sendState
1117  ) = 0;
1118 
1122  virtual void CONFIGURE_GROUP_RATES_cmdHandler(
1123  FwOpcodeType opCode,
1124  U32 cmdSeq,
1125  const Svc::TelemetrySection& section,
1126  FwChanIdType tlmGroup,
1127  const Svc::RateLogic& rateLogic,
1128  U32 minDelta,
1129  U32 maxDelta
1130  ) = 0;
1131 
1135  virtual void GET_PACKET_CONFIG_cmdHandler(
1136  FwOpcodeType opCode,
1137  U32 cmdSeq,
1138  const Svc::TelemetrySection& section,
1139  U32 packetId
1140  ) = 0;
1141 
1145  virtual void OVERRIDE_PACKET_SEND_cmdHandler(
1146  FwOpcodeType opCode,
1147  U32 cmdSeq,
1148  const Svc::TelemetrySection& section,
1149  U32 packetId,
1150  const Svc::TlmSendState& sendState
1151  ) = 0;
1152 
1156  virtual void OVERRIDE_PACKET_RATES_cmdHandler(
1157  FwOpcodeType opCode,
1158  U32 cmdSeq,
1159  const Svc::TelemetrySection& section,
1160  U32 packetId,
1161  const Svc::RateLogic& rateLogic,
1162  U32 minDelta,
1163  U32 maxDelta
1164  ) = 0;
1165 
1169  virtual void CLEAR_PACKET_OVERRIDE_cmdHandler(
1170  FwOpcodeType opCode,
1171  U32 cmdSeq,
1172  const Svc::TelemetrySection& section,
1173  U32 packetId
1174  ) = 0;
1175 
1176  protected:
1177 
1178  // ----------------------------------------------------------------------
1179  // Command handler base-class functions
1180  //
1181  // Call these functions directly to bypass the command input port
1182  // ----------------------------------------------------------------------
1183 
1188  FwOpcodeType opCode,
1189  U32 cmdSeq,
1190  Fw::CmdArgBuffer& args
1191  );
1192 
1197  FwOpcodeType opCode,
1198  U32 cmdSeq,
1199  Fw::CmdArgBuffer& args
1200  );
1201 
1206  FwOpcodeType opCode,
1207  U32 cmdSeq,
1208  Fw::CmdArgBuffer& args
1209  );
1210 
1215  FwOpcodeType opCode,
1216  U32 cmdSeq,
1217  Fw::CmdArgBuffer& args
1218  );
1219 
1224  FwOpcodeType opCode,
1225  U32 cmdSeq,
1226  Fw::CmdArgBuffer& args
1227  );
1228 
1233  FwOpcodeType opCode,
1234  U32 cmdSeq,
1235  Fw::CmdArgBuffer& args
1236  );
1237 
1242  FwOpcodeType opCode,
1243  U32 cmdSeq,
1244  Fw::CmdArgBuffer& args
1245  );
1246 
1251  FwOpcodeType opCode,
1252  U32 cmdSeq,
1253  Fw::CmdArgBuffer& args
1254  );
1255 
1260  FwOpcodeType opCode,
1261  U32 cmdSeq,
1262  Fw::CmdArgBuffer& args
1263  );
1264 
1265  protected:
1266 
1267  // ----------------------------------------------------------------------
1268  // Pre-message hooks for async commands
1269  //
1270  // Each of these functions is invoked just before processing the
1271  // corresponding command. By default they do nothing. You can
1272  // override them to provide specific pre-command behavior.
1273  // ----------------------------------------------------------------------
1274 
1276  virtual void SET_LEVEL_preMsgHook(
1277  FwOpcodeType opCode,
1278  U32 cmdSeq
1279  );
1280 
1282  virtual void SEND_PKT_preMsgHook(
1283  FwOpcodeType opCode,
1284  U32 cmdSeq
1285  );
1286 
1288  virtual void ENABLE_SECTION_preMsgHook(
1289  FwOpcodeType opCode,
1290  U32 cmdSeq
1291  );
1292 
1294  virtual void CONFIGURE_GROUP_SEND_preMsgHook(
1295  FwOpcodeType opCode,
1296  U32 cmdSeq
1297  );
1298 
1300  virtual void CONFIGURE_GROUP_RATES_preMsgHook(
1301  FwOpcodeType opCode,
1302  U32 cmdSeq
1303  );
1304 
1306  virtual void GET_PACKET_CONFIG_preMsgHook(
1307  FwOpcodeType opCode,
1308  U32 cmdSeq
1309  );
1310 
1312  virtual void OVERRIDE_PACKET_SEND_preMsgHook(
1313  FwOpcodeType opCode,
1314  U32 cmdSeq
1315  );
1316 
1318  virtual void OVERRIDE_PACKET_RATES_preMsgHook(
1319  FwOpcodeType opCode,
1320  U32 cmdSeq
1321  );
1322 
1324  virtual void CLEAR_PACKET_OVERRIDE_preMsgHook(
1325  FwOpcodeType opCode,
1326  U32 cmdSeq
1327  );
1328 
1329  protected:
1330 
1331  // ----------------------------------------------------------------------
1332  // Event logging functions
1333  // ----------------------------------------------------------------------
1334 
1338  void log_WARNING_LO_NoChan(
1339  FwChanIdType Id
1340  ) const;
1341 
1346  FwChanIdType level
1347  ) const;
1348 
1353  FwChanIdType level,
1354  FwChanIdType max
1355  ) const;
1356 
1361  U32 packetId
1362  ) const;
1363 
1368  U32 packetId
1369  ) const;
1370 
1373  const Svc::TelemetrySection& section,
1374  const Fw::Enabled& enable
1375  ) const;
1376 
1381  FwChanIdType Id,
1382  FwSizeType valSize,
1383  FwSizeType expected
1384  );
1385 
1390  U32 packetId
1391  ) const;
1392 
1397 
1402  const Svc::TelemetrySection& section,
1403  U32 packetId,
1404  const Svc::PacketOverrideConfig& override,
1405  const Svc::TlmSendConfig& effective
1406  ) const;
1407 
1412  const Svc::TelemetrySection& section,
1413  U32 packetId,
1414  const Svc::PacketOverrideConfig& override
1415  ) const;
1416 
1421  const Svc::TelemetrySection& section,
1422  U32 packetId
1423  ) const;
1424 
1429  const Fw::DeserialStatus& status
1430  ) const;
1431 
1436  U32 packetId
1437  ) const;
1438 
1443  U32 packetId
1444  ) const;
1445 
1450  const Svc::TelemetrySection& section,
1451  FwChanIdType tlmGroup,
1452  const Svc::TlmSendState& sendState
1453  ) const;
1454 
1455  protected:
1456 
1457  // ----------------------------------------------------------------------
1458  // Event throttle reset functions
1459  // ----------------------------------------------------------------------
1460 
1463 
1466 
1467  protected:
1468 
1469  // ----------------------------------------------------------------------
1470  // Telemetry serialized write
1471  // ----------------------------------------------------------------------
1472 
1477  void tlmWrite(
1478  FwChanIdType id,
1479  Fw::TlmBuffer& _tlmBuff,
1480  Fw::Time _tlmTime = Fw::Time()
1481  ) const;
1482 
1483  protected:
1484 
1485  // ----------------------------------------------------------------------
1486  // Telemetry write functions
1487  // ----------------------------------------------------------------------
1488 
1492  void tlmWrite_GroupConfigs(
1494  Fw::Time _tlmTime = Fw::Time()
1495  ) const;
1496 
1500  Fw::Time _tlmTime = Fw::Time()
1501  ) const;
1502 
1503  protected:
1504 
1505  // ----------------------------------------------------------------------
1506  // Parameter hook functions
1507  // ----------------------------------------------------------------------
1508 
1512  virtual void parameterUpdated(
1513  FwPrmIdType id
1514  );
1515 
1521  virtual void parametersLoaded();
1522 
1528  virtual void parameterLoaded(
1529  FwPrmIdType id,
1530  Fw::ParamValid valid
1531  );
1532 
1533  protected:
1534 
1535  // ----------------------------------------------------------------------
1536  // Parameter get functions
1537  // ----------------------------------------------------------------------
1538 
1545  Fw::ParamValid& valid
1546  );
1547 
1554  Fw::ParamValid& valid
1555  );
1556 
1557  protected:
1558 
1559  // ----------------------------------------------------------------------
1560  // External parameter delegate initialization
1561  // ----------------------------------------------------------------------
1562 
1565  Fw::ParamExternalDelegate* paramExternalDelegatePtr
1566  );
1567 
1568  protected:
1569 
1570  // ----------------------------------------------------------------------
1571  // Time
1572  // ----------------------------------------------------------------------
1573 
1577  Fw::Time getTime() const;
1578 
1579  private:
1580 
1581  // ----------------------------------------------------------------------
1582  // Message dispatch functions
1583  // ----------------------------------------------------------------------
1584 
1586  virtual MsgDispatchStatus doDispatch();
1587 
1588  private:
1589 
1590  // ----------------------------------------------------------------------
1591  // Calls for messages received on special input ports
1592  // ----------------------------------------------------------------------
1593 
1595  static void m_p_cmdIn_in(
1596  Fw::PassiveComponentBase* callComp,
1597  FwIndexType portNum,
1598  FwOpcodeType opCode,
1599  U32 cmdSeq,
1600  Fw::CmdArgBuffer& args
1601  );
1602 
1603  private:
1604 
1605  // ----------------------------------------------------------------------
1606  // Calls for messages received on typed input ports
1607  // ----------------------------------------------------------------------
1608 
1610  static void m_p_Run_in(
1611  Fw::PassiveComponentBase* callComp,
1612  FwIndexType portNum,
1613  U32 context
1614  );
1615 
1617  static Fw::TlmValid m_p_TlmGet_in(
1618  Fw::PassiveComponentBase* callComp,
1619  FwIndexType portNum,
1620  FwChanIdType id,
1621  Fw::Time& timeTag,
1622  Fw::TlmBuffer& val
1623  );
1626 
1628  static void m_p_TlmRecv_in(
1629  Fw::PassiveComponentBase* callComp,
1630  FwIndexType portNum,
1631  FwChanIdType id,
1632  Fw::Time& timeTag,
1633  Fw::TlmBuffer& val
1634  );
1635 
1637  static void m_p_configureSectionGroupRate_in(
1638  Fw::PassiveComponentBase* callComp,
1639  FwIndexType portNum,
1640  const Svc::TelemetrySection& section,
1641  FwChanIdType tlmGroup,
1642  const Svc::RateLogic& rateLogic,
1643  U32 minDelta,
1644  U32 maxDelta
1645  );
1646 
1648  static void m_p_controlIn_in(
1649  Fw::PassiveComponentBase* callComp,
1650  FwIndexType portNum,
1651  const Svc::TelemetrySection& section,
1652  const Fw::Enabled& enabled
1653  );
1654 
1656  static void m_p_packetOverrideIn_in(
1657  Fw::PassiveComponentBase* callComp,
1658  FwIndexType portNum,
1659  Fw::Buffer& fwBuffer
1660  );
1661 
1663  static void m_p_packetOverrideReturnIn_in(
1664  Fw::PassiveComponentBase* callComp,
1665  FwIndexType portNum,
1666  Fw::Buffer& fwBuffer
1667  );
1668 
1670  static void m_p_pingIn_in(
1671  Fw::PassiveComponentBase* callComp,
1672  FwIndexType portNum,
1673  U32 key
1674  );
1675 
1676  private:
1677 
1678  // ----------------------------------------------------------------------
1679  // Invocation functions for special output ports
1680  // ----------------------------------------------------------------------
1681 
1683  void cmdRegOut_out(
1684  FwIndexType portNum,
1685  FwOpcodeType opCode
1686  ) const;
1687 
1689  void cmdResponseOut_out(
1690  FwIndexType portNum,
1691  FwOpcodeType opCode,
1692  U32 cmdSeq,
1693  const Fw::CmdResponse& response
1694  ) const;
1695 
1697  void eventOut_out(
1698  FwIndexType portNum,
1699  FwEventIdType id,
1700  Fw::Time& timeTag,
1701  const Fw::LogSeverity& severity,
1702  Fw::LogBuffer& args
1703  ) const;
1704 
1706  Fw::ParamValid paramGetOut_out(
1707  FwIndexType portNum,
1708  FwPrmIdType id,
1709  Fw::ParamBuffer& val
1710  ) const;
1712 
1714  void paramSetOut_out(
1715  FwIndexType portNum,
1716  FwPrmIdType id,
1717  Fw::ParamBuffer& val
1718  ) const;
1719 
1720 #if FW_ENABLE_TEXT_LOGGING
1721 
1723  void textEventOut_out(
1724  FwIndexType portNum,
1725  FwEventIdType id,
1726  Fw::Time& timeTag,
1727  const Fw::LogSeverity& severity,
1728  Fw::TextLogString& text
1729  ) const;
1730 
1731 #endif
1732 
1734  void timeGetOut_out(
1735  FwIndexType portNum,
1736  Fw::Time& time
1737  ) const;
1738 
1740  void tlmOut_out(
1741  FwIndexType portNum,
1742  FwChanIdType id,
1743  Fw::Time& timeTag,
1744  Fw::TlmBuffer& val
1745  ) const;
1746 
1747  private:
1748 
1749  // ----------------------------------------------------------------------
1750  // Parameter set functions
1751  // ----------------------------------------------------------------------
1752 
1756  Fw::CmdResponse paramSet_SECTION_ENABLED(
1757  Fw::SerialBufferBase& val
1758  );
1759 
1763  Fw::CmdResponse paramSet_SECTION_CONFIGS(
1764  Fw::SerialBufferBase& val
1765  );
1766 
1767  private:
1768 
1769  // ----------------------------------------------------------------------
1770  // Parameter save functions
1771  // ----------------------------------------------------------------------
1772 
1776  Fw::CmdResponse paramSave_SECTION_ENABLED();
1777 
1781  Fw::CmdResponse paramSave_SECTION_CONFIGS();
1782 
1783 #if !FW_DIRECT_PORT_CALLS
1784 
1785  private:
1786 
1787  // ----------------------------------------------------------------------
1788  // Special input ports
1789  // ----------------------------------------------------------------------
1790 
1792  Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
1793 
1794 #endif
1795 
1796 #if !FW_DIRECT_PORT_CALLS
1797 
1798  private:
1799 
1800  // ----------------------------------------------------------------------
1801  // Typed input ports
1802  // ----------------------------------------------------------------------
1803 
1805  Svc::InputSchedPort m_Run_InputPort[NUM_RUN_INPUT_PORTS];
1806 
1808  Fw::InputTlmGetPort m_TlmGet_InputPort[NUM_TLMGET_INPUT_PORTS];
1809 
1811  Fw::InputTlmPort m_TlmRecv_InputPort[NUM_TLMRECV_INPUT_PORTS];
1812 
1814  Svc::InputConfigureGroupRatePort m_configureSectionGroupRate_InputPort[NUM_CONFIGURESECTIONGROUPRATE_INPUT_PORTS];
1815 
1818 
1820  Fw::InputBufferSendPort m_packetOverrideIn_InputPort[NUM_PACKETOVERRIDEIN_INPUT_PORTS];
1821 
1823  Fw::InputBufferSendPort m_packetOverrideReturnIn_InputPort[NUM_PACKETOVERRIDERETURNIN_INPUT_PORTS];
1824 
1826  Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
1827 
1828 #endif
1829 
1830 #if !FW_DIRECT_PORT_CALLS
1831 
1832  private:
1833 
1834  // ----------------------------------------------------------------------
1835  // Special output ports
1836  // ----------------------------------------------------------------------
1837 
1839  Fw::OutputCmdRegPort m_cmdRegOut_OutputPort[NUM_CMDREGOUT_OUTPUT_PORTS];
1840 
1842  Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS];
1843 
1845  Fw::OutputLogPort m_eventOut_OutputPort[NUM_EVENTOUT_OUTPUT_PORTS];
1846 
1848  Fw::OutputPrmGetPort m_paramGetOut_OutputPort[NUM_PARAMGETOUT_OUTPUT_PORTS];
1849 
1851  Fw::OutputPrmSetPort m_paramSetOut_OutputPort[NUM_PARAMSETOUT_OUTPUT_PORTS];
1852 
1853 #if FW_ENABLE_TEXT_LOGGING == 1
1854 
1856  Fw::OutputLogTextPort m_textEventOut_OutputPort[NUM_TEXTEVENTOUT_OUTPUT_PORTS];
1857 
1858 #endif
1859 
1861  Fw::OutputTimePort m_timeGetOut_OutputPort[NUM_TIMEGETOUT_OUTPUT_PORTS];
1862 
1864  Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
1865 
1866 #endif
1867 
1868 #if !FW_DIRECT_PORT_CALLS
1869 
1870  private:
1871 
1872  // ----------------------------------------------------------------------
1873  // Typed output ports
1874  // ----------------------------------------------------------------------
1875 
1877  Fw::OutputComPort m_PktSend_OutputPort[NUM_PKTSEND_OUTPUT_PORTS];
1878 
1880  Fw::OutputBufferGetPort m_allocate_OutputPort[NUM_ALLOCATE_OUTPUT_PORTS];
1881 
1883  Fw::OutputBufferSendPort m_deallocate_OutputPort[NUM_DEALLOCATE_OUTPUT_PORTS];
1884 
1886  Fw::OutputBufferSendPort m_packetOverrideOut_OutputPort[NUM_PACKETOVERRIDEOUT_OUTPUT_PORTS];
1887 
1889  Fw::OutputBufferSendPort m_packetOverrideReturnOut_OutputPort[NUM_PACKETOVERRIDERETURNOUT_OUTPUT_PORTS];
1890 
1892  Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
1893 
1894 #endif
1895 
1896  private:
1897 
1898  // ----------------------------------------------------------------------
1899  // Counter values for event throttling
1900  // ----------------------------------------------------------------------
1901 
1903  std::atomic<FwIndexType> m_OversizedChannelThrottle;
1904 
1906  std::atomic<FwIndexType> m_ConfigMirrorAllocFailedThrottle;
1907 
1908  private:
1909 
1910  // ----------------------------------------------------------------------
1911  // Parameter validity flags
1912  // ----------------------------------------------------------------------
1913 
1915  Fw::ParamValid m_param_SECTION_ENABLED_valid = Fw::ParamValid::UNINIT;
1916 
1918  Fw::ParamValid m_param_SECTION_CONFIGS_valid = Fw::ParamValid::UNINIT;
1919 
1920  private:
1921 
1922  // ----------------------------------------------------------------------
1923  // Parameter delegate
1924  // ----------------------------------------------------------------------
1925 
1927  Fw::ParamExternalDelegate* paramDelegatePtr = nullptr;
1928 
1929  private:
1930 
1931  // ----------------------------------------------------------------------
1932  // Mutexes
1933  // ----------------------------------------------------------------------
1934 
1936  Os::Mutex m_paramLock;
1937 
1938  };
1939 
1940 }
1941 
1942 #endif
bool isConnected_PktSend_OutputPort(FwIndexType portNum) const
A group&#39;s send state was set by CONFIGURE_GROUP_SEND.
static constexpr FwIndexType getNum_packetOverrideIn_InputPorts()
void CLEAR_PACKET_OVERRIDE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void SEND_PKT_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Could not allocate a buffer to mirror a per-packet override out packetOverrideOut.
Svc::InputEnableSectionPort * get_controlIn_InputPort(FwIndexType portNum)
A packetOverrideIn reload record referenced a packet id not in this deployment; the record was skippe...
A per-packet override was cleared by command; the packet reverts to its group policy.
friend class TlmPacketizerTesterBase
Friend class tester to support autocoded test harness.
bool isConnected_packetOverrideOut_OutputPort(FwIndexType portNum) const
void set_PktSend_OutputPort(FwIndexType portNum, Fw::InputComPort *port)
Connect port to PktSend[portNum].
virtual void packetOverrideIn_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port packetOverrideIn.
void OVERRIDE_PACKET_SEND_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
FwIdType FwOpcodeType
The type of a command opcode.
bool isConnected_eventOut_OutputPort(FwIndexType portNum) const
A packetOverrideIn reload record carried a section out of range; the record was skipped.
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
PlatformSizeType FwSizeType
void tlmWrite_GroupConfigs(const Svc::TlmPacketizer_SectionConfigs &arg, Fw::Time _tlmTime=Fw::Time()) const
bool isConnected_tlmOut_OutputPort(FwIndexType portNum) const
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
I32 FwEnumStoreType
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts()
bool isConnected_paramGetOut_OutputPort(FwIndexType portNum) const
Send policy of a group or packet. Resolution: packet -> group -> section enable.
void log_ACTIVITY_HI_LevelSet(FwChanIdType level) const
Svc::InputConfigureGroupRatePort * get_configureSectionGroupRate_InputPort(FwIndexType portNum)
virtual void TlmRecv_handler(FwIndexType portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)=0
Handler for input port TlmRecv.
void Run_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port Run.
virtual void parameterLoaded(FwPrmIdType id, Fw::ParamValid valid)
Called for each parameter when parameters are loaded.
Telemetry send policy (send state + rates), shared by the per-group config and per-packet override...
void set_allocate_OutputPort(FwIndexType portNum, Fw::InputBufferGetPort *port)
Connect port to allocate[portNum].
void log_ACTIVITY_HI_GroupSendStateSet(const Svc::TelemetrySection &section, FwChanIdType tlmGroup, const Svc::TlmSendState &sendState) const
A per-packet override was applied by command; carries the stored override.
Deserialization status.
static constexpr FwIndexType getNum_PktSend_OutputPorts()
FwIdType FwPrmIdType
The type of a parameter identifier.
void log_WARNING_LO_NoChan(FwChanIdType Id) const
static constexpr FwIndexType getNum_pingIn_InputPorts()
void log_ACTIVITY_HI_PacketSent(U32 packetId) const
virtual void configureSectionGroupRate_handler(FwIndexType portNum, const Svc::TelemetrySection &section, FwChanIdType tlmGroup, const Svc::RateLogic &rateLogic, U32 minDelta, U32 maxDelta)=0
Handler for input port configureSectionGroupRate.
Link-time delegating Mutex implementation.
Set the rate logic and Min / Max deltas between successive packets of a group on a section...
A packet&#39;s override and effective configuration, emitted in response to GET_PACKET_CONFIG.
bool isConnected_allocate_OutputPort(FwIndexType portNum) const
void TlmRecv_handlerBase(FwIndexType portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)
Handler base-class function for input port TlmRecv.
void controlIn_handlerBase(FwIndexType portNum, const Svc::TelemetrySection &section, const Fw::Enabled &enabled)
Handler base-class function for input port controlIn.
Per-packet override: which fields apply and their values.
void set_packetOverrideReturnOut_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to packetOverrideReturnOut[portNum].
virtual void SEND_PKT_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U32 id, const Svc::TelemetrySection &section)=0
bool isConnected_pingOut_OutputPort(FwIndexType portNum) const
void log_ACTIVITY_HI_PacketOverrideCleared(const Svc::TelemetrySection &section, U32 packetId) const
void packetOverrideIn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port packetOverrideIn.
virtual void controlIn_handler(FwIndexType portNum, const Svc::TelemetrySection &section, const Fw::Enabled &enabled)=0
Handler for input port controlIn.
virtual void packetOverrideIn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port packetOverrideIn.
virtual void OVERRIDE_PACKET_SEND_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Svc::TelemetrySection &section, U32 packetId, const Svc::TlmSendState &sendState)=0
void log_WARNING_LO_ReloadRecordInvalid(U32 packetId) const
Override the send state of a single packet in a section (rates follow the group unless also overridde...
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
Enum representing a command response.
A command carried an invalid section for a per-packet operation.
bool isConnected_paramSetOut_OutputPort(FwIndexType portNum) const
void log_ACTIVITY_HI_PacketOverrideSet(const Svc::TelemetrySection &section, U32 packetId, const Svc::PacketOverrideConfig &override) const
void cmdIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Handler base-class function for input port cmdIn.
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
Fw::InputBufferSendPort * get_packetOverrideReturnIn_InputPort(FwIndexType portNum)
virtual void SET_LEVEL_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, FwChanIdType level)=0
void log_WARNING_LO_PacketNotFound(U32 packetId) const
void CONFIGURE_GROUP_SEND_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void packetOverrideReturnIn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port packetOverrideReturnIn.
void log_WARNING_LO_InvalidPacketConfig(U32 packetId) const
void loadParameters()
Load the parameters from a parameter source.
void set_paramSetOut_OutputPort(FwIndexType portNum, Fw::InputPrmSetPort *port)
Connect port to paramSetOut[portNum].
virtual ~TlmPacketizerComponentBase()
Destroy TlmPacketizerComponentBase object.
void tlmWrite_SectionEnabled(const Svc::TlmPacketizer_SectionEnabled &arg, Fw::Time _tlmTime=Fw::Time()) const
Write telemetry channel SectionEnabled.
static constexpr FwIndexType getNum_deallocate_OutputPorts()
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
void init()
Object initializer.
Definition: ObjBase.cpp:24
void set_deallocate_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to deallocate[portNum].
void registerExternalParameters(Fw::ParamExternalDelegate *paramExternalDelegatePtr)
Initialize the external parameter delegate.
void OVERRIDE_PACKET_RATES_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void configureSectionGroupRate_preMsgHook(FwIndexType portNum, const Svc::TelemetrySection &section, FwChanIdType tlmGroup, const Svc::RateLogic &rateLogic, U32 minDelta, U32 maxDelta)
Pre-message hook for async input port configureSectionGroupRate.
bool isConnected_deallocate_OutputPort(FwIndexType portNum) const
FwIdType FwEventIdType
The type of an event identifier.
virtual void OVERRIDE_PACKET_RATES_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command OVERRIDE_PACKET_RATES.
virtual void CLEAR_PACKET_OVERRIDE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Svc::TelemetrySection &section, U32 packetId)=0
static constexpr FwIndexType getNum_packetOverrideOut_OutputPorts()
virtual void ENABLE_SECTION_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Svc::TelemetrySection &section, const Fw::Enabled &enable)=0
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_cmdRegOut_OutputPorts()
Fw::InputTlmGetPort * get_TlmGet_InputPort(FwIndexType portNum)
void log_WARNING_LO_SectionUnconfigurable(const Svc::TelemetrySection &section, const Fw::Enabled &enable) const
Log event SectionUnconfigurable.
bool isConnected_timeGetOut_OutputPort(FwIndexType portNum) const
virtual void CONFIGURE_GROUP_RATES_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CONFIGURE_GROUP_RATES.
void GET_PACKET_CONFIG_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_WARNING_HI_OversizedChannel_ThrottleClear()
Reset throttle value for OversizedChannel.
virtual void Run_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port Run.
Enumeration for rate logic types for telemetry groups.
void tlmWrite(FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_timeGetOut_OutputPorts()
void deallocate_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port deallocate.
static constexpr FwIndexType getNum_paramGetOut_OutputPorts()
FwIdType FwChanIdType
The type of a telemetry channel identifier.
virtual void CLEAR_PACKET_OVERRIDE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CLEAR_PACKET_OVERRIDE.
Report a packet&#39;s override and effective configuration (PacketConfigReport event) ...
static constexpr FwIndexType getNum_packetOverrideReturnOut_OutputPorts()
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
Fw::Buffer allocate_out(FwIndexType portNum, FwSizeType size) const
Invoke output port allocate.
static constexpr FwIndexType getNum_packetOverrideReturnIn_InputPorts()
virtual void OVERRIDE_PACKET_RATES_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Svc::TelemetrySection &section, U32 packetId, const Svc::RateLogic &rateLogic, U32 minDelta, U32 maxDelta)=0
void set_eventOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to eventOut[portNum].
virtual void GET_PACKET_CONFIG_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command GET_PACKET_CONFIG.
Enum representing event severity.
static constexpr FwIndexType getNum_tlmOut_OutputPorts()
void log_WARNING_HI_ConfigReloadFailed(const Fw::DeserialStatus &status) const
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
Enabled and disabled states.
friend class TlmPacketizerTester
Friend class tester implementation to support white-box testing.
Fw::TlmValid TlmGet_handlerBase(FwIndexType portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)
Handler base-class function for input port TlmGet.
Override the rate logic and thresholds of a single packet (send state follows the group unless also o...
virtual void Run_handler(FwIndexType portNum, U32 context)=0
Handler for input port Run.
bool isConnected_packetOverrideReturnOut_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_eventOut_OutputPorts()
void log_ACTIVITY_HI_PacketConfigReport(const Svc::TelemetrySection &section, U32 packetId, const Svc::PacketOverrideConfig &override, const Svc::TlmSendConfig &effective) const
Clear a single packet&#39;s override. The packet follows its group again.
Svc::TlmPacketizer_SectionEnabled paramGet_SECTION_ENABLED(Fw::ParamValid &valid)
void PktSend_out(FwIndexType portNum, Fw::ComBuffer &data, U32 context) const
Invoke output port PktSend.
static constexpr FwIndexType getNum_paramSetOut_OutputPorts()
void log_WARNING_LO_MaxLevelExceed(FwChanIdType level, FwChanIdType max) const
virtual void controlIn_preMsgHook(FwIndexType portNum, const Svc::TelemetrySection &section, const Fw::Enabled &enabled)
Pre-message hook for async input port controlIn.
Fw::InputBufferSendPort * get_packetOverrideIn_InputPort(FwIndexType portNum)
void log_WARNING_LO_ReloadRecordUnknownPacket(U32 packetId) const
static constexpr FwIndexType getNum_allocate_OutputPorts()
PlatformIndexType FwIndexType
TlmPacketizerComponentBase(const char *compName="")
Construct TlmPacketizerComponentBase object.
static constexpr FwIndexType getNum_configureSectionGroupRate_InputPorts()
void packetOverrideOut_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port packetOverrideOut.
virtual void parametersLoaded()
Called whenever parameters are loaded.
void set_timeGetOut_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeGetOut[portNum].
virtual void OVERRIDE_PACKET_SEND_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command OVERRIDE_PACKET_SEND.
void log_WARNING_HI_OversizedChannel(FwChanIdType Id, FwSizeType valSize, FwSizeType expected)
void ENABLE_SECTION_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void SEND_PKT_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SEND_PKT.
void configureSectionGroupRate_handlerBase(FwIndexType portNum, const Svc::TelemetrySection &section, FwChanIdType tlmGroup, const Svc::RateLogic &rateLogic, U32 minDelta, U32 maxDelta)
Handler base-class function for input port configureSectionGroupRate.
RateGroupDivider component implementation.
A packetOverrideIn reload buffer was malformed: a record failed to deserialize; later records were no...
void packetOverrideReturnOut_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port packetOverrideReturnOut.
virtual void parameterUpdated(FwPrmIdType id)
Called whenever a parameter is updated.
Enum representing parameter validity.
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum) const
Svc::InputSchedPort * get_Run_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_TlmGet_InputPorts()
void packetOverrideReturnIn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port packetOverrideReturnIn.
Fw::InputTlmPort * get_TlmRecv_InputPort(FwIndexType portNum)
virtual void CONFIGURE_GROUP_RATES_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Svc::TelemetrySection &section, FwChanIdType tlmGroup, const Svc::RateLogic &rateLogic, U32 minDelta, U32 maxDelta)=0
Svc::TlmPacketizer_SectionConfigs paramGet_SECTION_CONFIGS(Fw::ParamValid &valid)
static constexpr FwIndexType getNum_controlIn_InputPorts()
virtual void ENABLE_SECTION_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command ENABLE_SECTION.
Telemetry value larger than the configured channel size.
void regCommands()
Register commands with the Command Dispatcher.
void set_packetOverrideOut_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to packetOverrideOut[portNum].
Telemetry channel is not part of a telemetry packet.
void pingOut_out(FwIndexType portNum, U32 key) const
Invoke output port pingOut.
void CONFIGURE_GROUP_RATES_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void SET_LEVEL_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void SET_LEVEL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SET_LEVEL.
static constexpr FwIndexType getNum_pingOut_OutputPorts()
void log_WARNING_HI_ConfigMirrorAllocFailed_ThrottleClear()
Reset throttle value for ConfigMirrorAllocFailed.
void set_paramGetOut_OutputPort(FwIndexType portNum, Fw::InputPrmGetPort *port)
Connect port to paramGetOut[portNum].
virtual void CONFIGURE_GROUP_SEND_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CONFIGURE_GROUP_SEND.
static constexpr FwIndexType getNum_Run_InputPorts()
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
virtual void GET_PACKET_CONFIG_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Svc::TelemetrySection &section, U32 packetId)=0
virtual Fw::TlmValid TlmGet_handler(FwIndexType portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)=0
Handler for input port TlmGet.
virtual void CONFIGURE_GROUP_SEND_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Svc::TelemetrySection &section, FwChanIdType tlmGroup, const Svc::TlmSendState &sendState)=0
static constexpr FwIndexType getNum_TlmRecv_InputPorts()
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
Auto-generated base for TlmPacketizer component.
static constexpr FwIndexType getNum_cmdIn_InputPorts()