F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
CfdpManagerComponentAc.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title CfdpManagerComponentAc.hpp
3 // \author Generated by fpp-to-cpp
4 // \brief hpp file for CfdpManager component base class
5 // ======================================================================
6 
7 #ifndef Svc_Ccsds_Cfdp_CfdpManagerComponentAc_HPP
8 #define Svc_Ccsds_Cfdp_CfdpManagerComponentAc_HPP
9 
10 #include <atomic>
11 
14 #include "Fw/Cmd/CmdPortAc.hpp"
15 #include "Fw/Cmd/CmdRegPortAc.hpp"
17 #include "Fw/Cmd/CmdString.hpp"
19 #include "Fw/FPrimeBasicTypes.hpp"
20 #include "Fw/Log/LogPortAc.hpp"
21 #include "Fw/Log/LogString.hpp"
22 #include "Fw/Log/LogTextPortAc.hpp"
23 #if !FW_DIRECT_PORT_CALLS
25 #endif
26 #if !FW_DIRECT_PORT_CALLS
28 #endif
29 #include "Fw/Prm/PrmGetPortAc.hpp"
30 #include "Fw/Prm/PrmSetPortAc.hpp"
31 #include "Fw/Prm/PrmString.hpp"
32 #include "Fw/Time/TimePortAc.hpp"
33 #include "Fw/Tlm/TlmPortAc.hpp"
34 #include "Fw/Tlm/TlmString.hpp"
35 #include "Os/Mutex.hpp"
45 #include "Svc/Ping/PingPortAc.hpp"
50 
51 namespace Svc {
52 
53  namespace Ccsds {
54 
55  namespace Cfdp {
56 
63  {
64 
65  // ----------------------------------------------------------------------
66  // Friend classes
67  // ----------------------------------------------------------------------
68 
70  friend class CfdpManagerTesterBase;
72  friend class CfdpManagerTester;
73 
74  protected:
75 
76  // ----------------------------------------------------------------------
77  // Constants
78  // ----------------------------------------------------------------------
79 
81  enum {
83  };
84 
86  enum {
92  };
93 
95  enum {
104  };
105 
107  enum {
114  };
115 
117  enum {
147  };
148 
150  enum {
228  };
230 
232  enum {
244  };
245 
247  enum {
259  };
260 
261  public:
262 
263  // ----------------------------------------------------------------------
264  // Component initialization
265  // ----------------------------------------------------------------------
266 
268  void init(
269  FwSizeType queueDepth,
270  FwEnumStoreType instance = 0
271  );
272 
273 #if !FW_DIRECT_PORT_CALLS
274 
275  public:
276 
277  // ----------------------------------------------------------------------
278  // Getters for special input ports
279  // ----------------------------------------------------------------------
280 
285  FwIndexType portNum
286  );
287 
288 #endif
289 
290 #if !FW_DIRECT_PORT_CALLS
291 
292  public:
293 
294  // ----------------------------------------------------------------------
295  // Getters for typed input ports
296  // ----------------------------------------------------------------------
297 
302  FwIndexType portNum
303  );
304 
309  FwIndexType portNum
310  );
311 
316  FwIndexType portNum
317  );
318 
323  FwIndexType portNum
324  );
325 
330  FwIndexType portNum
331  );
332 
333 #endif
334 
335 #if !FW_DIRECT_PORT_CALLS
336 
337  public:
338 
339  // ----------------------------------------------------------------------
340  // Connect input ports to special output ports
341  // ----------------------------------------------------------------------
342 
345  FwIndexType portNum,
346  Fw::InputCmdRegPort* port
347  );
348 
351  FwIndexType portNum,
353  );
354 
357  FwIndexType portNum,
358  Fw::InputLogPort* port
359  );
360 
361 #if FW_ENABLE_TEXT_LOGGING == 1
362 
364  void set_logTextOut_OutputPort(
365  FwIndexType portNum,
366  Fw::InputLogTextPort* port
367  );
368 
369 #endif
370 
373  FwIndexType portNum,
374  Fw::InputPrmGetPort* port
375  );
376 
379  FwIndexType portNum,
380  Fw::InputPrmSetPort* port
381  );
382 
385  FwIndexType portNum,
386  Fw::InputTimePort* port
387  );
388 
391  FwIndexType portNum,
392  Fw::InputTlmPort* port
393  );
394 
395 #endif
396 
397 #if !FW_DIRECT_PORT_CALLS
398 
399  public:
400 
401  // ----------------------------------------------------------------------
402  // Connect typed input ports to typed output ports
403  // ----------------------------------------------------------------------
404 
407  FwIndexType portNum,
409  );
410 
413  FwIndexType portNum,
415  );
416 
419  FwIndexType portNum,
421  );
422 
425  FwIndexType portNum,
427  );
428 
431  FwIndexType portNum,
433  );
434 
437  FwIndexType portNum,
438  Svc::InputPingPort* port
439  );
440 
441 #endif
442 
443 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
444 
445  public:
446 
447  // ----------------------------------------------------------------------
448  // Connect serial input ports to special output ports
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 
469 #if FW_ENABLE_TEXT_LOGGING == 1
470 
472  void set_logTextOut_OutputPort(
473  FwIndexType portNum,
474  Fw::InputSerializePort* port
475  );
476 
477 #endif
478 
481  FwIndexType portNum,
482  Fw::InputSerializePort* port
483  );
484 
487  FwIndexType portNum,
488  Fw::InputSerializePort* port
489  );
490 
493  FwIndexType portNum,
494  Fw::InputSerializePort* port
495  );
496 
497 #endif
498 
499 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
500 
501  public:
502 
503  // ----------------------------------------------------------------------
504  // Connect serial input ports to typed output ports
505  // ----------------------------------------------------------------------
506 
509  FwIndexType portNum,
510  Fw::InputSerializePort* port
511  );
512 
515  FwIndexType portNum,
516  Fw::InputSerializePort* port
517  );
518 
521  FwIndexType portNum,
522  Fw::InputSerializePort* port
523  );
524 
527  FwIndexType portNum,
528  Fw::InputSerializePort* port
529  );
530 
533  FwIndexType portNum,
534  Fw::InputSerializePort* port
535  );
536 
537 #endif
538 
539  public:
540 
541  // ----------------------------------------------------------------------
542  // Command registration
543  // ----------------------------------------------------------------------
544 
548  void regCommands();
549 
550  public:
551 
552  // ----------------------------------------------------------------------
553  // Parameter loading
554  // ----------------------------------------------------------------------
555 
559  void loadParameters();
560 
561  protected:
562 
563  // ----------------------------------------------------------------------
564  // Component construction and destruction
565  // ----------------------------------------------------------------------
566 
569  const char* compName = ""
570  );
571 
573  virtual ~CfdpManagerComponentBase();
574 
575  protected:
576 
577  // ----------------------------------------------------------------------
578  // Getters for numbers of special input ports
579  // ----------------------------------------------------------------------
580 
585  return NUM_CMDIN_INPUT_PORTS;
586  }
587 
588  protected:
589 
590  // ----------------------------------------------------------------------
591  // Getters for numbers of typed input ports
592  // ----------------------------------------------------------------------
593 
598  return NUM_DATAIN_INPUT_PORTS;
599  }
600 
606  }
607 
612  return NUM_FILEIN_INPUT_PORTS;
613  }
614 
619  return NUM_PINGIN_INPUT_PORTS;
620  }
621 
626  return NUM_RUN1HZ_INPUT_PORTS;
627  }
628 
629  protected:
630 
631  // ----------------------------------------------------------------------
632  // Getters for numbers of special output ports
633  // ----------------------------------------------------------------------
634 
640  }
641 
647  }
648 
654  }
655 
656 #if FW_ENABLE_TEXT_LOGGING == 1
657 
661  static constexpr FwIndexType getNum_logTextOut_OutputPorts() {
663  }
664 
665 #endif
666 
672  }
673 
679  }
680 
686  }
687 
693  }
694 
695  protected:
696 
697  // ----------------------------------------------------------------------
698  // Getters for numbers of typed output ports
699  // ----------------------------------------------------------------------
700 
706  }
707 
713  }
714 
720  }
721 
727  }
728 
734  }
735 
741  }
742 
743  protected:
744 
745  // ----------------------------------------------------------------------
746  // Connection status queries for special output ports
747  // ----------------------------------------------------------------------
748 
753  FwIndexType portNum
754  ) const;
755 
760  FwIndexType portNum
761  ) const;
762 
767  FwIndexType portNum
768  ) const;
769 
770 #if FW_ENABLE_TEXT_LOGGING == 1
771 
775  bool isConnected_logTextOut_OutputPort(
776  FwIndexType portNum
777  ) const;
778 
779 #endif
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 
809  protected:
810 
811  // ----------------------------------------------------------------------
812  // Connection status queries for typed output ports
813  // ----------------------------------------------------------------------
814 
819  FwIndexType portNum
820  ) const;
821 
826  FwIndexType portNum
827  ) const;
828 
833  FwIndexType portNum
834  ) const;
835 
840  FwIndexType portNum
841  ) const;
842 
847  FwIndexType portNum
848  ) const;
849 
854  FwIndexType portNum
855  ) const;
856 
857 #if FW_DIRECT_PORT_CALLS
858  public:
859 #else
860  protected:
861 #endif
862 
863  // ----------------------------------------------------------------------
864  // Port handler base-class functions for special input ports
865  //
866  // Call these functions directly to bypass the corresponding ports
867  // ----------------------------------------------------------------------
868 
870  void cmdIn_handlerBase(
871  FwIndexType portNum,
872  FwOpcodeType opCode,
873  U32 cmdSeq,
874  Fw::CmdArgBuffer& args
875  );
876 
877  protected:
878 
879  // ----------------------------------------------------------------------
880  // Handlers to implement for typed input ports
881  // ----------------------------------------------------------------------
882 
884  virtual void dataIn_handler(
885  FwIndexType portNum,
886  Fw::Buffer& fwBuffer
887  ) = 0;
888 
890  virtual void dataReturnIn_handler(
891  FwIndexType portNum,
892  Fw::Buffer& fwBuffer
893  ) = 0;
894 
897  FwIndexType portNum,
898  const Fw::StringBase& sourceFileName,
899  const Fw::StringBase& destFileName,
900  U32 offset,
901  U32 length
902  ) = 0;
903 
905  virtual void pingIn_handler(
906  FwIndexType portNum,
907  U32 key
908  ) = 0;
909 
911  virtual void run1Hz_handler(
912  FwIndexType portNum,
913  U32 context
914  ) = 0;
915 
916 #if FW_DIRECT_PORT_CALLS
917  public:
918 #else
919  protected:
920 #endif
921 
922  // ----------------------------------------------------------------------
923  // Port handler base-class functions for typed input ports
924  //
925  // Call these functions directly to bypass the corresponding ports
926  // ----------------------------------------------------------------------
927 
929  void dataIn_handlerBase(
930  FwIndexType portNum,
931  Fw::Buffer& fwBuffer
932  );
933 
936  FwIndexType portNum,
937  Fw::Buffer& fwBuffer
938  );
939 
942  FwIndexType portNum,
943  const Fw::StringBase& sourceFileName,
944  const Fw::StringBase& destFileName,
945  U32 offset,
946  U32 length
947  );
948 
950  void pingIn_handlerBase(
951  FwIndexType portNum,
952  U32 key
953  );
954 
956  void run1Hz_handlerBase(
957  FwIndexType portNum,
958  U32 context
959  );
960 
961  protected:
962 
963  // ----------------------------------------------------------------------
964  // Pre-message hooks for typed async input ports
965  //
966  // Each of these functions is invoked just before processing a message
967  // on the corresponding port. By default, they do nothing. You can
968  // override them to provide specific pre-message behavior.
969  // ----------------------------------------------------------------------
970 
972  virtual void dataIn_preMsgHook(
973  FwIndexType portNum,
974  Fw::Buffer& fwBuffer
975  );
976 
978  virtual void dataReturnIn_preMsgHook(
979  FwIndexType portNum,
980  Fw::Buffer& fwBuffer
981  );
982 
984  virtual void pingIn_preMsgHook(
985  FwIndexType portNum,
986  U32 key
987  );
988 
990  virtual void run1Hz_preMsgHook(
991  FwIndexType portNum,
992  U32 context
993  );
994 
995  protected:
996 
997  // ----------------------------------------------------------------------
998  // Invocation functions for typed output ports
999  // ----------------------------------------------------------------------
1000 
1003  FwIndexType portNum,
1004  FwSizeType size
1005  ) const;
1006 
1008  void bufferDeallocate_out(
1009  FwIndexType portNum,
1010  Fw::Buffer& fwBuffer
1011  ) const;
1012 
1014  void dataInReturn_out(
1015  FwIndexType portNum,
1016  Fw::Buffer& fwBuffer
1017  ) const;
1018 
1020  void dataOut_out(
1021  FwIndexType portNum,
1022  Fw::Buffer& fwBuffer
1023  ) const;
1024 
1026  void fileDoneOut_out(
1027  FwIndexType portNum,
1028  const Svc::SendFileResponse& resp
1029  ) const;
1030 
1032  void pingOut_out(
1033  FwIndexType portNum,
1034  U32 key
1035  ) const;
1036 
1037  protected:
1038 
1039  // ----------------------------------------------------------------------
1040  // Command response
1041  // ----------------------------------------------------------------------
1042 
1044  void cmdResponse_out(
1045  FwOpcodeType opCode,
1046  U32 cmdSeq,
1047  Fw::CmdResponse response
1048  );
1049 
1050  protected:
1051 
1052  // ----------------------------------------------------------------------
1053  // Command handlers to implement
1054  // ----------------------------------------------------------------------
1055 
1059  virtual void SendFile_cmdHandler(
1060  FwOpcodeType opCode,
1061  U32 cmdSeq,
1062  U8 channelId,
1064  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1065  const Svc::Ccsds::Cfdp::Keep& keep,
1066  U8 priority,
1067  const Fw::CmdStringArg& sourceFileName,
1068  const Fw::CmdStringArg& destFileName
1069  ) = 0;
1070 
1074  virtual void PlaybackDirectory_cmdHandler(
1075  FwOpcodeType opCode,
1076  U32 cmdSeq,
1077  U8 channelId,
1079  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1080  const Svc::Ccsds::Cfdp::Keep& keep,
1081  U8 priority,
1082  const Fw::CmdStringArg& sourceDirectory,
1083  const Fw::CmdStringArg& destDirectory
1084  ) = 0;
1085 
1089  virtual void PollDirectory_cmdHandler(
1090  FwOpcodeType opCode,
1091  U32 cmdSeq,
1092  U8 channelId,
1093  U8 pollId,
1095  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1096  U8 priority,
1097  U32 interval,
1098  const Fw::CmdStringArg& sourceDirectory,
1099  const Fw::CmdStringArg& destDirectory
1100  ) = 0;
1101 
1105  virtual void StopPollDirectory_cmdHandler(
1106  FwOpcodeType opCode,
1107  U32 cmdSeq,
1108  U8 channelId,
1109  U8 pollId
1110  ) = 0;
1111 
1115  virtual void SetChannelFlow_cmdHandler(
1116  FwOpcodeType opCode,
1117  U32 cmdSeq,
1118  U8 channelId,
1119  const Svc::Ccsds::Cfdp::Flow& freeze
1120  ) = 0;
1121 
1126  FwOpcodeType opCode,
1127  U32 cmdSeq,
1128  U8 channelId,
1129  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1130  Svc::Ccsds::Cfdp::EntityId entityId,
1131  const Svc::Ccsds::Cfdp::SuspendResume& action
1132  ) = 0;
1133 
1137  virtual void CancelTransaction_cmdHandler(
1138  FwOpcodeType opCode,
1139  U32 cmdSeq,
1140  U8 channelId,
1141  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1142  Svc::Ccsds::Cfdp::EntityId entityId
1143  ) = 0;
1144 
1148  virtual void AbandonTransaction_cmdHandler(
1149  FwOpcodeType opCode,
1150  U32 cmdSeq,
1151  U8 channelId,
1152  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1153  Svc::Ccsds::Cfdp::EntityId entityId
1154  ) = 0;
1155 
1159  virtual void ResetCounters_cmdHandler(
1160  FwOpcodeType opCode,
1161  U32 cmdSeq,
1162  U8 channelId
1163  ) = 0;
1164 
1165  protected:
1166 
1167  // ----------------------------------------------------------------------
1168  // Command handler base-class functions
1169  //
1170  // Call these functions directly to bypass the command input port
1171  // ----------------------------------------------------------------------
1172 
1177  FwOpcodeType opCode,
1178  U32 cmdSeq,
1179  Fw::CmdArgBuffer& args
1180  );
1181 
1186  FwOpcodeType opCode,
1187  U32 cmdSeq,
1188  Fw::CmdArgBuffer& args
1189  );
1190 
1195  FwOpcodeType opCode,
1196  U32 cmdSeq,
1197  Fw::CmdArgBuffer& args
1198  );
1199 
1204  FwOpcodeType opCode,
1205  U32 cmdSeq,
1206  Fw::CmdArgBuffer& args
1207  );
1208 
1213  FwOpcodeType opCode,
1214  U32 cmdSeq,
1215  Fw::CmdArgBuffer& args
1216  );
1217 
1222  FwOpcodeType opCode,
1223  U32 cmdSeq,
1224  Fw::CmdArgBuffer& args
1225  );
1226 
1231  FwOpcodeType opCode,
1232  U32 cmdSeq,
1233  Fw::CmdArgBuffer& args
1234  );
1235 
1240  FwOpcodeType opCode,
1241  U32 cmdSeq,
1242  Fw::CmdArgBuffer& args
1243  );
1244 
1249  FwOpcodeType opCode,
1250  U32 cmdSeq,
1251  Fw::CmdArgBuffer& args
1252  );
1253 
1254  protected:
1255 
1256  // ----------------------------------------------------------------------
1257  // Pre-message hooks for async commands
1258  //
1259  // Each of these functions is invoked just before processing the
1260  // corresponding command. By default they do nothing. You can
1261  // override them to provide specific pre-command behavior.
1262  // ----------------------------------------------------------------------
1263 
1265  virtual void SendFile_preMsgHook(
1266  FwOpcodeType opCode,
1267  U32 cmdSeq
1268  );
1269 
1271  virtual void PlaybackDirectory_preMsgHook(
1272  FwOpcodeType opCode,
1273  U32 cmdSeq
1274  );
1275 
1277  virtual void PollDirectory_preMsgHook(
1278  FwOpcodeType opCode,
1279  U32 cmdSeq
1280  );
1281 
1283  virtual void StopPollDirectory_preMsgHook(
1284  FwOpcodeType opCode,
1285  U32 cmdSeq
1286  );
1287 
1289  virtual void SetChannelFlow_preMsgHook(
1290  FwOpcodeType opCode,
1291  U32 cmdSeq
1292  );
1293 
1296  FwOpcodeType opCode,
1297  U32 cmdSeq
1298  );
1299 
1301  virtual void CancelTransaction_preMsgHook(
1302  FwOpcodeType opCode,
1303  U32 cmdSeq
1304  );
1305 
1307  virtual void AbandonTransaction_preMsgHook(
1308  FwOpcodeType opCode,
1309  U32 cmdSeq
1310  );
1311 
1313  virtual void ResetCounters_preMsgHook(
1314  FwOpcodeType opCode,
1315  U32 cmdSeq
1316  );
1317 
1318  protected:
1319 
1320  // ----------------------------------------------------------------------
1321  // Event logging functions
1322  // ----------------------------------------------------------------------
1323 
1325  void log_WARNING_LO_BuffersExhausted() const;
1326 
1329  U8 channelId,
1330  U8 maxChannelId
1331  ) const;
1332 
1335  const Fw::StringBase& sourceFileName,
1336  U32 transactionSeq
1337  ) const;
1338 
1341  U32 offset,
1342  U32 length
1343  ) const;
1344 
1347  const Fw::StringBase& sourceFileName
1348  ) const;
1349 
1352  const Fw::StringBase& sourceDirectory
1353  ) const;
1354 
1357  const Fw::StringBase& sourceDirectory,
1358  U8 pollId
1359  ) const;
1360 
1363  U8 channelId,
1364  U8 pollId
1365  ) const;
1366 
1369  U8 channelId,
1370  U8 pollId
1371  ) const;
1372 
1375  U8 channelId,
1376  U8 pollId
1377  ) const;
1378 
1381  U8 channelId,
1382  const Svc::Ccsds::Cfdp::Flow& flowState
1383  ) const;
1384 
1387  U8 pollId,
1388  U8 maxPollId
1389  ) const;
1390 
1393  U32 interval
1394  ) const;
1395 
1398  const Fw::StringBase& srcFile,
1399  const Fw::StringBase& moveDir,
1400  I32 status
1401  ) const;
1402 
1405  const Fw::StringBase& srcFile,
1406  const Fw::StringBase& failDir,
1407  I32 status
1408  ) const;
1409 
1412  U8 channelId,
1413  I32 status
1414  ) const;
1415 
1418  U8 channelId,
1419  const Svc::Ccsds::Cfdp::PduTypeEnum& pduType,
1420  I32 status
1421  ) const;
1422 
1425  U8 channelId,
1426  I32 status
1427  ) const;
1428 
1431  U8 channelId,
1432  I32 status
1433  ) const;
1434 
1437  U8 channelId,
1438  I32 status
1439  ) const;
1440 
1443  U8 channelId,
1444  I32 status
1445  ) const;
1446 
1449  U8 channelId,
1450  I32 status
1451  ) const;
1452 
1455  U8 channelId,
1456  I32 status
1457  ) const;
1458 
1461  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1462  U32 srcEid,
1463  U32 seqNum
1464  ) const;
1465 
1468  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1469  U32 srcEid,
1470  U32 seqNum,
1471  const Fw::StringBase& filename
1472  ) const;
1473 
1476  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1477  U32 srcEid,
1478  U32 seqNum,
1479  const Fw::StringBase& filename,
1480  I32 status
1481  ) const;
1482 
1485  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1486  U32 srcEid,
1487  U32 seqNum,
1488  U32 expected,
1489  U32 actual
1490  ) const;
1491 
1494  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1495  U32 srcEid,
1496  U32 seqNum
1497  ) const;
1498 
1501  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1502  U32 srcEid,
1503  U32 seqNum,
1504  U32 offset,
1505  I32 status
1506  ) const;
1507 
1510  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1511  U32 srcEid,
1512  U32 seqNum,
1513  U32 expected,
1514  I32 actual
1515  ) const;
1516 
1519  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1520  U32 srcEid,
1521  U32 seqNum,
1522  U32 offset,
1523  U32 dataSize,
1524  U32 fileSize
1525  ) const;
1526 
1529  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1530  U32 srcEid,
1531  U32 seqNum,
1532  U32 expected,
1533  U32 actual
1534  ) const;
1535 
1538  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1539  U32 srcEid,
1540  U32 seqNum
1541  ) const;
1542 
1545  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1546  U32 srcEid,
1547  U32 seqNum,
1548  U8 conditionCode
1549  ) const;
1550 
1553  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1554  U32 srcEid,
1555  U32 seqNum,
1556  U32 offset,
1557  I32 status
1558  ) const;
1559 
1562  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1563  U32 srcEid,
1564  U32 seqNum,
1565  U32 expected,
1566  I32 actual
1567  ) const;
1568 
1571  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1572  U32 srcEid,
1573  U32 seqNum,
1574  U32 mdSize,
1575  U32 eofSize
1576  ) const;
1577 
1580  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1581  U32 srcEid,
1582  U32 seqNum,
1583  const Fw::StringBase& tempFile,
1584  const Fw::StringBase& finalFile,
1585  I32 status
1586  ) const;
1587 
1590  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1591  U32 srcEid,
1592  U32 seqNum,
1593  const Fw::StringBase& filename,
1594  I32 status
1595  ) const;
1596 
1599  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1600  U32 srcEid,
1601  U32 seqNum
1602  ) const;
1603 
1606  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1607  U32 srcEid,
1608  U32 seqNum,
1609  U8 directiveCode,
1610  U8 substate
1611  ) const;
1612 
1615  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1616  U32 srcEid,
1617  U32 seqNum
1618  ) const;
1619 
1622  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1623  U32 srcEid,
1624  U32 seqNum
1625  ) const;
1626 
1629  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1630  U32 srcEid,
1631  U32 seqNum,
1632  const Fw::StringBase& filename
1633  ) const;
1634 
1637  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1638  U32 srcEid,
1639  U32 seqNum,
1640  const Fw::StringBase& filename,
1641  I32 status
1642  ) const;
1643 
1646  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1647  U32 srcEid,
1648  U32 seqNum,
1649  I32 status
1650  ) const;
1651 
1654  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1655  U32 srcEid,
1656  U32 seqNum
1657  ) const;
1658 
1661  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1662  U32 srcEid,
1663  U32 seqNum
1664  ) const;
1665 
1668  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1669  U32 srcEid,
1670  U32 seqNum
1671  ) const;
1672 
1675  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1676  U32 srcEid,
1677  U32 seqNum,
1678  U32 badCount
1679  ) const;
1680 
1683  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1684  U32 srcEid,
1685  U32 seqNum
1686  ) const;
1687 
1690  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1691  U32 srcEid,
1692  U32 seqNum,
1693  U8 directiveCode,
1694  U8 substate
1695  ) const;
1696 
1699  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1700  U32 seqNum,
1701  U32 srcEid,
1702  const Fw::StringBase& srcFile,
1703  U32 destEid,
1704  const Fw::StringBase& destFile,
1705  U32 fileSize
1706  ) const;
1707 
1710  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1711  U32 seqNum,
1712  U32 srcEid,
1713  const Fw::StringBase& srcFile,
1714  U32 destEid,
1715  const Fw::StringBase& destFile,
1716  U32 fileSize
1717  ) const;
1718 
1721  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1722  U32 seqNum,
1723  U32 srcEid,
1724  const Fw::StringBase& srcFile,
1725  U32 destEid,
1726  const Fw::StringBase& destFile,
1727  U8 conditionCode
1728  ) const;
1729 
1732  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1733  U32 seqNum,
1734  U32 srcEid,
1735  const Fw::StringBase& srcFile,
1736  U32 destEid,
1737  const Fw::StringBase& destFile,
1738  U32 fileSize
1739  ) const;
1740 
1743  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1744  U32 seqNum,
1745  U32 srcEid,
1746  const Fw::StringBase& srcFile,
1747  U32 destEid,
1748  const Fw::StringBase& destFile,
1749  U8 conditionCode
1750  ) const;
1751 
1754  const Fw::StringBase& srcFile,
1755  const Fw::StringBase& destFile,
1756  U32 transactionSeq
1757  ) const;
1758 
1761 
1764  U32 transactionSeq
1765  ) const;
1766 
1769 
1772  U32 srcEid,
1773  U32 transactionSeq
1774  ) const;
1775 
1778  U32 destEid
1779  ) const;
1780 
1783 
1786  const Fw::StringBase& directory,
1787  I32 status
1788  ) const;
1789 
1792 
1795  U8 channelId,
1796  U32 transactionSeq
1797  ) const;
1798 
1801  const Fw::StringBase& directory,
1802  I32 status
1803  ) const;
1804 
1807 
1810  const Fw::StringBase& filename,
1811  I32 status
1812  ) const;
1813 
1818  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1819  Svc::Ccsds::Cfdp::EntityId entityId
1820  ) const;
1821 
1826  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1827  Svc::Ccsds::Cfdp::EntityId entityId
1828  ) const;
1829 
1834  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1835  Svc::Ccsds::Cfdp::EntityId entityId
1836  ) const;
1837 
1842  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1843  Svc::Ccsds::Cfdp::EntityId entityId
1844  ) const;
1845 
1850  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1851  Svc::Ccsds::Cfdp::EntityId entityId
1852  ) const;
1853 
1856  U8 channelId
1857  ) const;
1858 
1866  ) const;
1867 
1868  protected:
1869 
1870  // ----------------------------------------------------------------------
1871  // Telemetry serialized write
1872  // ----------------------------------------------------------------------
1873 
1878  void tlmWrite(
1879  FwChanIdType id,
1880  Fw::TlmBuffer& _tlmBuff,
1881  Fw::Time _tlmTime = Fw::Time()
1882  ) const;
1883 
1884  protected:
1885 
1886  // ----------------------------------------------------------------------
1887  // Telemetry write functions
1888  // ----------------------------------------------------------------------
1889 
1897  Fw::Time _tlmTime = Fw::Time()
1898  ) const;
1899 
1903  Fw::Time _tlmTime = Fw::Time()
1904  );
1905 
1908  U32 arg,
1909  Fw::Time _tlmTime = Fw::Time()
1910  );
1911 
1914  U32 arg,
1915  Fw::Time _tlmTime = Fw::Time()
1916  );
1917 
1920  U8 arg,
1921  Fw::Time _tlmTime = Fw::Time()
1922  );
1923 
1926  U8 arg,
1927  Fw::Time _tlmTime = Fw::Time()
1928  );
1929 
1933  Fw::Time _tlmTime = Fw::Time()
1934  );
1935 
1938  const Svc::Ccsds::Cfdp::Class& arg,
1939  Fw::Time _tlmTime = Fw::Time()
1940  );
1941 
1944  const Svc::Ccsds::Cfdp::Keep& arg,
1945  Fw::Time _tlmTime = Fw::Time()
1946  );
1947 
1950  U8 arg,
1951  Fw::Time _tlmTime = Fw::Time()
1952  );
1953 
1957  Fw::Time _tlmTime = Fw::Time()
1958  );
1959 
1960  protected:
1961 
1962  // ----------------------------------------------------------------------
1963  // Parameter hook functions
1964  // ----------------------------------------------------------------------
1965 
1969  virtual void parameterUpdated(
1970  FwPrmIdType id
1971  );
1972 
1978  virtual void parametersLoaded();
1979 
1985  virtual void parameterLoaded(
1986  FwPrmIdType id,
1987  Fw::ParamValid valid
1988  );
1989 
1990  protected:
1991 
1992  // ----------------------------------------------------------------------
1993  // Parameter get functions
1994  // ----------------------------------------------------------------------
1995 
2002  Fw::ParamValid& valid
2003  );
2004 
2011  Fw::ParamValid& valid
2012  );
2013 
2020  Fw::ParamValid& valid
2021  );
2022 
2030  Fw::ParamValid& valid
2031  );
2032 
2039  Fw::ParamValid& valid
2040  );
2041 
2048  Fw::ParamValid& valid
2049  );
2050 
2057  Fw::ParamValid& valid
2058  );
2059 
2066  Fw::ParamValid& valid
2067  );
2068 
2075  Fw::ParamValid& valid
2076  );
2077 
2084  Fw::ParamValid& valid
2085  );
2086 
2087  protected:
2088 
2089  // ----------------------------------------------------------------------
2090  // Time
2091  // ----------------------------------------------------------------------
2092 
2096  Fw::Time getTime() const;
2097 
2098  protected:
2099 
2100  // ----------------------------------------------------------------------
2101  // Mutex operations for guarded ports
2102  //
2103  // You can override these operations to provide more sophisticated
2104  // synchronization
2105  // ----------------------------------------------------------------------
2106 
2108  virtual void lock();
2109 
2111  virtual void unLock();
2112 
2113  private:
2114 
2115  // ----------------------------------------------------------------------
2116  // Message dispatch functions
2117  // ----------------------------------------------------------------------
2118 
2120  virtual MsgDispatchStatus doDispatch();
2121 
2122  private:
2123 
2124  // ----------------------------------------------------------------------
2125  // Calls for messages received on special input ports
2126  // ----------------------------------------------------------------------
2127 
2129  static void m_p_cmdIn_in(
2130  Fw::PassiveComponentBase* callComp,
2131  FwIndexType portNum,
2132  FwOpcodeType opCode,
2133  U32 cmdSeq,
2134  Fw::CmdArgBuffer& args
2135  );
2136 
2137  private:
2138 
2139  // ----------------------------------------------------------------------
2140  // Calls for messages received on typed input ports
2141  // ----------------------------------------------------------------------
2142 
2144  static void m_p_dataIn_in(
2145  Fw::PassiveComponentBase* callComp,
2146  FwIndexType portNum,
2147  Fw::Buffer& fwBuffer
2148  );
2149 
2151  static void m_p_dataReturnIn_in(
2152  Fw::PassiveComponentBase* callComp,
2153  FwIndexType portNum,
2154  Fw::Buffer& fwBuffer
2155  );
2156 
2158  static Svc::SendFileResponse m_p_fileIn_in(
2159  Fw::PassiveComponentBase* callComp,
2160  FwIndexType portNum,
2161  const Fw::StringBase& sourceFileName,
2162  const Fw::StringBase& destFileName,
2163  U32 offset,
2164  U32 length
2165  );
2166 
2168  static void m_p_pingIn_in(
2169  Fw::PassiveComponentBase* callComp,
2170  FwIndexType portNum,
2171  U32 key
2172  );
2173 
2175  static void m_p_run1Hz_in(
2176  Fw::PassiveComponentBase* callComp,
2177  FwIndexType portNum,
2178  U32 context
2179  );
2180 
2181  private:
2182 
2183  // ----------------------------------------------------------------------
2184  // Invocation functions for special output ports
2185  // ----------------------------------------------------------------------
2186 
2188  void cmdRegOut_out(
2189  FwIndexType portNum,
2190  FwOpcodeType opCode
2191  ) const;
2192 
2194  void cmdResponseOut_out(
2195  FwIndexType portNum,
2196  FwOpcodeType opCode,
2197  U32 cmdSeq,
2198  const Fw::CmdResponse& response
2199  ) const;
2200 
2202  void logOut_out(
2203  FwIndexType portNum,
2204  FwEventIdType id,
2205  Fw::Time& timeTag,
2206  const Fw::LogSeverity& severity,
2207  Fw::LogBuffer& args
2208  ) const;
2209 
2210 #if FW_ENABLE_TEXT_LOGGING
2211 
2213  void logTextOut_out(
2214  FwIndexType portNum,
2215  FwEventIdType id,
2216  Fw::Time& timeTag,
2217  const Fw::LogSeverity& severity,
2218  Fw::TextLogString& text
2219  ) const;
2220 
2221 #endif
2222 
2224  Fw::ParamValid prmGetOut_out(
2225  FwIndexType portNum,
2226  FwPrmIdType id,
2227  Fw::ParamBuffer& val
2228  ) const;
2230 
2232  void prmSetOut_out(
2233  FwIndexType portNum,
2234  FwPrmIdType id,
2235  Fw::ParamBuffer& val
2236  ) const;
2237 
2239  void timeCaller_out(
2240  FwIndexType portNum,
2241  Fw::Time& time
2242  ) const;
2243 
2245  void tlmOut_out(
2246  FwIndexType portNum,
2247  FwChanIdType id,
2248  Fw::Time& timeTag,
2249  Fw::TlmBuffer& val
2250  ) const;
2251 
2252  private:
2253 
2254  // ----------------------------------------------------------------------
2255  // Parameter set functions
2256  // ----------------------------------------------------------------------
2257 
2261  Fw::CmdResponse paramSet_LocalEid(
2262  Fw::SerialBufferBase& val
2263  );
2264 
2268  Fw::CmdResponse paramSet_OutgoingFileChunkSize(
2269  Fw::SerialBufferBase& val
2270  );
2271 
2275  Fw::CmdResponse paramSet_RxCrcCalcBytesPerCycle(
2276  Fw::SerialBufferBase& val
2277  );
2278 
2282  Fw::CmdResponse paramSet_PostInactivitySendRetries(
2283  Fw::SerialBufferBase& val
2284  );
2285 
2289  Fw::CmdResponse paramSet_FileInDefaultChannel(
2290  Fw::SerialBufferBase& val
2291  );
2292 
2296  Fw::CmdResponse paramSet_FileInDefaultDestEntityId(
2297  Fw::SerialBufferBase& val
2298  );
2299 
2303  Fw::CmdResponse paramSet_FileInDefaultClass(
2304  Fw::SerialBufferBase& val
2305  );
2306 
2310  Fw::CmdResponse paramSet_FileInDefaultKeep(
2311  Fw::SerialBufferBase& val
2312  );
2313 
2317  Fw::CmdResponse paramSet_FileInDefaultPriority(
2318  Fw::SerialBufferBase& val
2319  );
2320 
2324  Fw::CmdResponse paramSet_ChannelConfig(
2325  Fw::SerialBufferBase& val
2326  );
2327 
2328  private:
2329 
2330  // ----------------------------------------------------------------------
2331  // Parameter save functions
2332  // ----------------------------------------------------------------------
2333 
2337  Fw::CmdResponse paramSave_LocalEid();
2338 
2342  Fw::CmdResponse paramSave_OutgoingFileChunkSize();
2343 
2347  Fw::CmdResponse paramSave_RxCrcCalcBytesPerCycle();
2348 
2352  Fw::CmdResponse paramSave_PostInactivitySendRetries();
2353 
2357  Fw::CmdResponse paramSave_FileInDefaultChannel();
2358 
2362  Fw::CmdResponse paramSave_FileInDefaultDestEntityId();
2363 
2367  Fw::CmdResponse paramSave_FileInDefaultClass();
2368 
2372  Fw::CmdResponse paramSave_FileInDefaultKeep();
2373 
2377  Fw::CmdResponse paramSave_FileInDefaultPriority();
2378 
2382  Fw::CmdResponse paramSave_ChannelConfig();
2383 
2384 #if !FW_DIRECT_PORT_CALLS
2385 
2386  private:
2387 
2388  // ----------------------------------------------------------------------
2389  // Special input ports
2390  // ----------------------------------------------------------------------
2391 
2393  Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
2394 
2395 #endif
2396 
2397 #if !FW_DIRECT_PORT_CALLS
2398 
2399  private:
2400 
2401  // ----------------------------------------------------------------------
2402  // Typed input ports
2403  // ----------------------------------------------------------------------
2404 
2406  Fw::InputBufferSendPort m_dataIn_InputPort[NUM_DATAIN_INPUT_PORTS];
2407 
2409  Fw::InputBufferSendPort m_dataReturnIn_InputPort[NUM_DATARETURNIN_INPUT_PORTS];
2410 
2413 
2415  Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
2416 
2418  Svc::InputSchedPort m_run1Hz_InputPort[NUM_RUN1HZ_INPUT_PORTS];
2419 
2420 #endif
2421 
2422 #if !FW_DIRECT_PORT_CALLS
2423 
2424  private:
2425 
2426  // ----------------------------------------------------------------------
2427  // Special output ports
2428  // ----------------------------------------------------------------------
2429 
2431  Fw::OutputCmdRegPort m_cmdRegOut_OutputPort[NUM_CMDREGOUT_OUTPUT_PORTS];
2432 
2434  Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS];
2435 
2437  Fw::OutputLogPort m_logOut_OutputPort[NUM_LOGOUT_OUTPUT_PORTS];
2438 
2439 #if FW_ENABLE_TEXT_LOGGING == 1
2440 
2442  Fw::OutputLogTextPort m_logTextOut_OutputPort[NUM_LOGTEXTOUT_OUTPUT_PORTS];
2443 
2444 #endif
2445 
2447  Fw::OutputPrmGetPort m_prmGetOut_OutputPort[NUM_PRMGETOUT_OUTPUT_PORTS];
2448 
2450  Fw::OutputPrmSetPort m_prmSetOut_OutputPort[NUM_PRMSETOUT_OUTPUT_PORTS];
2451 
2453  Fw::OutputTimePort m_timeCaller_OutputPort[NUM_TIMECALLER_OUTPUT_PORTS];
2454 
2456  Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
2457 
2458 #endif
2459 
2460 #if !FW_DIRECT_PORT_CALLS
2461 
2462  private:
2463 
2464  // ----------------------------------------------------------------------
2465  // Typed output ports
2466  // ----------------------------------------------------------------------
2467 
2469  Fw::OutputBufferGetPort m_bufferAllocate_OutputPort[NUM_BUFFERALLOCATE_OUTPUT_PORTS];
2470 
2472  Fw::OutputBufferSendPort m_bufferDeallocate_OutputPort[NUM_BUFFERDEALLOCATE_OUTPUT_PORTS];
2473 
2475  Fw::OutputBufferSendPort m_dataInReturn_OutputPort[NUM_DATAINRETURN_OUTPUT_PORTS];
2476 
2478  Fw::OutputBufferSendPort m_dataOut_OutputPort[NUM_DATAOUT_OUTPUT_PORTS];
2479 
2482 
2484  Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
2485 
2486 #endif
2487 
2488  private:
2489 
2490  // ----------------------------------------------------------------------
2491  // First update flags for telemetry channels
2492  // ----------------------------------------------------------------------
2493 
2495  bool m_first_update_PRM_LOCAL_EID = true;
2496 
2498  bool m_first_update_PRM_OUTGOING_FILE_CHUNK_SIZE = true;
2499 
2501  bool m_first_update_PRM_RX_CRC_CALC_BYTES_PER_CYCLE = true;
2502 
2504  bool m_first_update_PRM_POST_INACTIVITY_SEND_RETRIES = true;
2505 
2507  bool m_first_update_PRM_FILE_IN_DEFAULT_CHANNEL = true;
2508 
2510  bool m_first_update_PRM_FILE_IN_DEFAULT_DEST_ENTITY_ID = true;
2511 
2513  bool m_first_update_PRM_FILE_IN_DEFAULT_CLASS = true;
2514 
2516  bool m_first_update_PRM_FILE_IN_DEFAULT_KEEP = true;
2517 
2519  bool m_first_update_PRM_FILE_IN_DEFAULT_PRIORITY = true;
2520 
2522  bool m_first_update_PRM_CHANNEL_CONFIG = true;
2523 
2524  private:
2525 
2526  // ----------------------------------------------------------------------
2527  // Last value storage for telemetry channels
2528  // ----------------------------------------------------------------------
2529 
2531  Svc::Ccsds::Cfdp::EntityId m_last_PRM_LOCAL_EID = {};
2532 
2534  U32 m_last_PRM_OUTGOING_FILE_CHUNK_SIZE = {};
2535 
2537  U32 m_last_PRM_RX_CRC_CALC_BYTES_PER_CYCLE = {};
2538 
2540  U8 m_last_PRM_POST_INACTIVITY_SEND_RETRIES = {};
2541 
2543  U8 m_last_PRM_FILE_IN_DEFAULT_CHANNEL = {};
2544 
2546  Svc::Ccsds::Cfdp::EntityId m_last_PRM_FILE_IN_DEFAULT_DEST_ENTITY_ID = {};
2547 
2549  Svc::Ccsds::Cfdp::Class m_last_PRM_FILE_IN_DEFAULT_CLASS = {};
2550 
2552  Svc::Ccsds::Cfdp::Keep m_last_PRM_FILE_IN_DEFAULT_KEEP = {};
2553 
2555  U8 m_last_PRM_FILE_IN_DEFAULT_PRIORITY = {};
2556 
2558  Svc::Ccsds::Cfdp::ChannelArrayParams m_last_PRM_CHANNEL_CONFIG = {};
2559 
2560  private:
2561 
2562  // ----------------------------------------------------------------------
2563  // Parameter validity flags
2564  // ----------------------------------------------------------------------
2565 
2567  Fw::ParamValid m_param_LocalEid_valid = Fw::ParamValid::UNINIT;
2568 
2570  Fw::ParamValid m_param_OutgoingFileChunkSize_valid = Fw::ParamValid::UNINIT;
2571 
2573  Fw::ParamValid m_param_RxCrcCalcBytesPerCycle_valid = Fw::ParamValid::UNINIT;
2574 
2576  Fw::ParamValid m_param_PostInactivitySendRetries_valid = Fw::ParamValid::UNINIT;
2577 
2579  Fw::ParamValid m_param_FileInDefaultChannel_valid = Fw::ParamValid::UNINIT;
2580 
2582  Fw::ParamValid m_param_FileInDefaultDestEntityId_valid = Fw::ParamValid::UNINIT;
2583 
2585  Fw::ParamValid m_param_FileInDefaultClass_valid = Fw::ParamValid::UNINIT;
2586 
2588  Fw::ParamValid m_param_FileInDefaultKeep_valid = Fw::ParamValid::UNINIT;
2589 
2591  Fw::ParamValid m_param_FileInDefaultPriority_valid = Fw::ParamValid::UNINIT;
2592 
2594  Fw::ParamValid m_param_ChannelConfig_valid = Fw::ParamValid::UNINIT;
2595 
2596  private:
2597 
2598  // ----------------------------------------------------------------------
2599  // Parameter variables
2600  // ----------------------------------------------------------------------
2601 
2605  Svc::Ccsds::Cfdp::EntityId m_LocalEid;
2606 
2610  U32 m_OutgoingFileChunkSize;
2611 
2615  U32 m_RxCrcCalcBytesPerCycle;
2616 
2621  U8 m_PostInactivitySendRetries;
2622 
2626  U8 m_FileInDefaultChannel;
2627 
2631  Svc::Ccsds::Cfdp::EntityId m_FileInDefaultDestEntityId;
2632 
2636  Svc::Ccsds::Cfdp::Class m_FileInDefaultClass;
2637 
2641  Svc::Ccsds::Cfdp::Keep m_FileInDefaultKeep;
2642 
2646  U8 m_FileInDefaultPriority;
2647 
2651  Svc::Ccsds::Cfdp::ChannelArrayParams m_ChannelConfig;
2652 
2653  private:
2654 
2655  // ----------------------------------------------------------------------
2656  // Mutexes
2657  // ----------------------------------------------------------------------
2658 
2660  Os::Mutex m_guardedPortMutex;
2661 
2663  Os::Mutex m_paramLock;
2664 
2665  };
2666 
2667  }
2668 
2669  }
2670 
2671 }
2672 
2673 #endif
void tlmWrite(FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
void tlmWrite_PRM_FILE_IN_DEFAULT_CHANNEL(U8 arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_FILE_IN_DEFAULT_CHANNEL.
Svc::Ccsds::Cfdp::Keep paramGet_FileInDefaultKeep(Fw::ParamValid &valid)
void dataReturnIn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port dataReturnIn.
void log_ACTIVITY_LO_TransactionResumed(Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId) const
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts()
virtual void run1Hz_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port run1Hz.
bool isConnected_prmGetOut_OutputPort(FwIndexType portNum) const
Enum used to determine if a file should be kept or deleted after a CFDP transaction.
Definition: KeepEnumAc.hpp:22
virtual void run1Hz_handler(FwIndexType portNum, U32 context)=0
Handler for input port run1Hz.
void log_WARNING_LO_FailAckPduDeserialization(U8 channelId, I32 status) const
Log event FailAckPduDeserialization.
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_bufferDeallocate_OutputPorts()
void log_WARNING_LO_FailFileDataPduDeserialization(U8 channelId, I32 status) const
Log event FailFileDataPduDeserialization.
FwIdType FwOpcodeType
The type of a command opcode.
void log_WARNING_LO_TxFileSeekFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, I32 status) const
Log event TxFileSeekFailed.
void log_WARNING_LO_FailPollFileMove(const Fw::StringBase &srcFile, const Fw::StringBase &failDir, I32 status) const
Log event FailPollFileMove.
void log_WARNING_LO_RxEofWithError(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U8 conditionCode) const
Log event RxEofWithError.
PlatformSizeType FwSizeType
void PlaybackDirectory_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
I32 FwEnumStoreType
void log_ACTIVITY_LO_RxTempFileCreated(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &filename) const
Log event RxTempFileCreated.
virtual void dataReturnIn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port dataReturnIn.
void regCommands()
Register commands with the Command Dispatcher.
void log_WARNING_LO_TxSendMetadataFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event TxSendMetadataFailed.
Svc::SendFileResponse fileIn_handlerBase(FwIndexType portNum, const Fw::StringBase &sourceFileName, const Fw::StringBase &destFileName, U32 offset, U32 length)
Handler base-class function for input port fileIn.
void pingOut_out(FwIndexType portNum, U32 key) const
Invoke output port pingOut.
virtual void CancelTransaction_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CancelTransaction.
virtual Svc::SendFileResponse fileIn_handler(FwIndexType portNum, const Fw::StringBase &sourceFileName, const Fw::StringBase &destFileName, U32 offset, U32 length)=0
Handler for input port fileIn.
void set_dataOut_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to dataOut[portNum].
virtual void parametersLoaded()
Called whenever parameters are loaded.
void log_WARNING_LO_TxInactivityTimeout(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event TxInactivityTimeout.
U32 EntityId
Entity id size.
void log_ACTIVITY_LO_TransactionSuspended(Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId) const
void log_WARNING_LO_RxAckLimitReached(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event RxAckLimitReached.
void dataInReturn_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port dataInReturn.
virtual void SetChannelFlow_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, const Svc::Ccsds::Cfdp::Flow &freeze)=0
bool isConnected_pingOut_OutputPort(FwIndexType portNum) const
void set_bufferDeallocate_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to bufferDeallocate[portNum].
static constexpr FwIndexType getNum_fileIn_InputPorts()
void tlmWrite_PRM_POST_INACTIVITY_SEND_RETRIES(U8 arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_POST_INACTIVITY_SEND_RETRIES.
Auto-generated base for CfdpManager component.
virtual void AbandonTransaction_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId)=0
void set_prmGetOut_OutputPort(FwIndexType portNum, Fw::InputPrmGetPort *port)
Connect port to prmGetOut[portNum].
void log_WARNING_LO_InvalidDestinationEid(U32 destEid) const
Log event InvalidDestinationEid.
FwIdType FwPrmIdType
The type of a parameter identifier.
static constexpr FwIndexType getNum_dataInReturn_OutputPorts()
void log_WARNING_LO_TxAckLimitReached(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event TxAckLimitReached.
void log_WARNING_LO_RxSeekCrcFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 offset, I32 status) const
Log event RxSeekCrcFailed.
Default file retention policy for fileIn port-initiated file transfers.
virtual void CancelTransaction_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId)=0
Link-time delegating Mutex implementation.
void log_WARNING_LO_TxFileTransferFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 seqNum, U32 srcEid, const Fw::StringBase &srcFile, U32 destEid, const Fw::StringBase &destFile, U8 conditionCode) const
Log event TxFileTransferFailed.
virtual void parameterUpdated(FwPrmIdType id)
Called whenever a parameter is updated.
static constexpr FwIndexType getNum_timeCaller_OutputPorts()
void fileDoneOut_out(FwIndexType portNum, const Svc::SendFileResponse &resp) const
Invoke output port fileDoneOut.
void tlmWrite_ChannelTelemetry(const Svc::Ccsds::Cfdp::ChannelTelemetryArray &arg, Fw::Time _tlmTime=Fw::Time()) const
void SetChannelFlow_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_WARNING_LO_RxFileSizeMismatch(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 expected, U32 actual) const
Log event RxFileSizeMismatch.
void log_WARNING_LO_ChunklistUnavailable(U32 transactionSeq) const
Log event ChunklistUnavailable.
void log_WARNING_LO_RxWriteFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 expected, I32 actual) const
Log event RxWriteFailed.
virtual void dataIn_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port dataIn.
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
void log_ACTIVITY_HI_TransactionAbandoned(Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId) const
Enum representing a command response.
void CancelTransaction_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void ResetCounters_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command ResetCounters.
void log_ACTIVITY_HI_ResetCounters(U8 channelId) const
Log event ResetCounters.
Parameter configuration for an array CFDP channels.
virtual void lock()
Lock the guarded mutex.
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
void set_bufferAllocate_OutputPort(FwIndexType portNum, Fw::InputBufferGetPort *port)
Connect port to bufferAllocate[portNum].
void log_WARNING_LO_RxNakLimitReached(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event RxNakLimitReached.
void SendFile_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
void set_dataInReturn_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to dataInReturn[portNum].
void log_ACTIVITY_HI_TxFileTransferCompleted(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 seqNum, U32 srcEid, const Fw::StringBase &srcFile, U32 destEid, const Fw::StringBase &destFile, U32 fileSize) const
Log event TxFileTransferCompleted.
void SuspendResumeTransaction_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void set_prmSetOut_OutputPort(FwIndexType portNum, Fw::InputPrmSetPort *port)
Connect port to prmSetOut[portNum].
void init()
Object initializer.
Definition: ObjBase.cpp:24
virtual void dataIn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port dataIn.
static constexpr FwIndexType getNum_logOut_OutputPorts()
CFDP ID to denote the current node when sending PDUs.
void log_WARNING_LO_SendFileInitiateFail(const Fw::StringBase &sourceFileName) const
Log event SendFileInitiateFail.
virtual void parameterLoaded(FwPrmIdType id, Fw::ParamValid valid)
Called for each parameter when parameters are loaded.
void log_ACTIVITY_LO_MetadataReceived(const Fw::StringBase &srcFile, const Fw::StringBase &destFile, U32 transactionSeq) const
Log event MetadataReceived.
static constexpr FwIndexType getNum_tlmOut_OutputPorts()
void log_WARNING_LO_TxInvalidSegmentRequests(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 badCount) const
Log event TxInvalidSegmentRequests.
void dataIn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port dataIn.
virtual void ResetCounters_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId)=0
U32 TransactionSeq
transaction sequence number size
Fw::InputBufferSendPort * get_dataIn_InputPort(FwIndexType portNum)
virtual void PlaybackDirectory_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, Svc::Ccsds::Cfdp::EntityId destId, const Svc::Ccsds::Cfdp::Class &cfdpClass, const Svc::Ccsds::Cfdp::Keep &keep, U8 priority, const Fw::CmdStringArg &sourceDirectory, const Fw::CmdStringArg &destDirectory)=0
FwIdType FwEventIdType
The type of an event identifier.
The maximum number of received bytes to calculate a CRC for in a single scheduler cycle...
void log_WARNING_LO_MaxTxTransactionsReached() const
Log event MaxTxTransactionsReached.
static constexpr FwIndexType getNum_prmGetOut_OutputPorts()
CfdpManagerComponentBase(const char *compName="")
Construct CfdpManagerComponentBase object.
bool isConnected_fileDoneOut_OutputPort(FwIndexType portNum) const
void log_ACTIVITY_LO_PlaybackInitiated(const Fw::StringBase &sourceDirectory) const
Log event PlaybackInitiated.
friend class CfdpManagerTesterBase
Friend class tester to support autocoded test harness.
Default CFDP channel for fileIn port-initiated file transfers.
static constexpr FwIndexType getNum_cmdRegOut_OutputPorts()
Svc::Ccsds::Cfdp::Class paramGet_FileInDefaultClass(Fw::ParamValid &valid)
virtual void AbandonTransaction_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command AbandonTransaction.
void PollDirectory_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Fw::InputBufferSendPort * get_dataReturnIn_InputPort(FwIndexType portNum)
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
void tlmWrite_PRM_LOCAL_EID(Svc::Ccsds::Cfdp::EntityId arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_LOCAL_EID.
void log_WARNING_LO_TxZeroLengthFile(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &filename) const
Log event TxZeroLengthFile.
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
void log_ACTIVITY_HI_TxFileTransferStarted(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 seqNum, U32 srcEid, const Fw::StringBase &srcFile, U32 destEid, const Fw::StringBase &destFile, U32 fileSize) const
Log event TxFileTransferStarted.
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
virtual void unLock()
Unlock the guarded mutex.
void log_WARNING_LO_FileDataSegmentMetadata() const
Log event FileDataSegmentMetadata.
virtual void SuspendResumeTransaction_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SuspendResumeTransaction.
Svc::Ccsds::Cfdp::EntityId paramGet_LocalEid(Fw::ParamValid &valid)
void log_WARNING_LO_InvalidChannelPoll(U8 pollId, U8 maxPollId) const
Log event InvalidChannelPoll.
virtual void StopPollDirectory_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command StopPollDirectory.
static constexpr FwIndexType getNum_pingOut_OutputPorts()
static constexpr FwIndexType getNum_dataReturnIn_InputPorts()
bool isConnected_tlmOut_OutputPort(FwIndexType portNum) const
void log_WARNING_LO_RxFileTransferFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 seqNum, U32 srcEid, const Fw::StringBase &srcFile, U32 destEid, const Fw::StringBase &destFile, U8 conditionCode) const
Log event RxFileTransferFailed.
void cmdIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Handler base-class function for input port cmdIn.
void tlmWrite_PRM_FILE_IN_DEFAULT_PRIORITY(U8 arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_FILE_IN_DEFAULT_PRIORITY.
void log_WARNING_LO_RxFileCreateFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &filename, I32 status) const
Log event RxFileCreateFailed.
void log_WARNING_LO_TxInvalidNakPdu(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event TxInvalidNakPdu.
void log_ACTIVITY_HI_TransactionCanceled(Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId) const
void set_logOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to logOut[portNum].
FwIdType FwChanIdType
The type of a telemetry channel identifier.
bool isConnected_dataOut_OutputPort(FwIndexType portNum) const
void log_WARNING_LO_RxFileReopenFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &filename, I32 status) const
Log event RxFileReopenFailed.
void log_WARNING_LO_InvalidChannel(U8 channelId, U8 maxChannelId) const
Log event InvalidChannel.
void log_WARNING_LO_TransactionNotFound(Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId) const
virtual ~CfdpManagerComponentBase()
Destroy CfdpManagerComponentBase object.
Default destination entity ID for fileIn port-initiated file transfers.
virtual void SendFile_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, Svc::Ccsds::Cfdp::EntityId destId, const Svc::Ccsds::Cfdp::Class &cfdpClass, const Svc::Ccsds::Cfdp::Keep &keep, U8 priority, const Fw::CmdStringArg &sourceFileName, const Fw::CmdStringArg &destFileName)=0
Default CFDP class for fileIn port-initiated file transfers.
static constexpr FwIndexType getNum_prmSetOut_OutputPorts()
virtual void SetChannelFlow_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SetChannelFlow.
void log_WARNING_LO_UnsupportedSendFileArguments(U32 offset, U32 length) const
Log event UnsupportedSendFileArguments.
static constexpr FwIndexType getNum_cmdIn_InputPorts()
void log_WARNING_LO_FailEofPduDeserialization(U8 channelId, I32 status) const
Log event FailEofPduDeserialization.
void log_ACTIVITY_LO_PollDirInitiated(const Fw::StringBase &sourceDirectory, U8 pollId) const
Log event PollDirInitiated.
static constexpr FwIndexType getNum_run1Hz_InputPorts()
void tlmWrite_PRM_CHANNEL_CONFIG(const Svc::Ccsds::Cfdp::ChannelArrayParams &arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_CHANNEL_CONFIG.
virtual void dataReturnIn_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port dataReturnIn.
Enum representing event severity.
virtual void PollDirectory_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command PollDirectory.
void log_WARNING_LO_RxSeekFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 offset, I32 status) const
Log event RxSeekFailed.
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
void log_WARNING_LO_TxNonFileDirectivePduReceived(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event TxNonFileDirectivePduReceived.
virtual void SuspendResumeTransaction_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId, const Svc::Ccsds::Cfdp::SuspendResume &action)=0
void tlmWrite_PRM_OUTGOING_FILE_CHUNK_SIZE(U32 arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_OUTGOING_FILE_CHUNK_SIZE.
Svc::InputSendFileRequestPort * get_fileIn_InputPort(FwIndexType portNum)
void log_WARNING_LO_RxTransactionLimitReached(U32 srcEid, U32 transactionSeq) const
Log event RxTransactionLimitReached.
void loadParameters()
Load the parameters from a parameter source.
void log_WARNING_LO_FailKeepFileMove(const Fw::StringBase &srcFile, const Fw::StringBase &moveDir, I32 status) const
Log event FailKeepFileMove.
Svc::InputSchedPort * get_run1Hz_InputPort(FwIndexType portNum)
Default priority for fileIn port-initiated file transfers.
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:54
void log_WARNING_LO_RxEofMdSizeMismatch(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 mdSize, U32 eofSize) const
Log event RxEofMdSizeMismatch.
void dataOut_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port dataOut.
void tlmWrite_PRM_RX_CRC_CALC_BYTES_PER_CYCLE(U32 arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_RX_CRC_CALC_BYTES_PER_CYCLE.
void log_ACTIVITY_HI_RxEofCancelReceived(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event RxEofCancelReceived.
void bufferDeallocate_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port bufferDeallocate.
Command to cancel a transaction with graceful close-out.
bool isConnected_prmSetOut_OutputPort(FwIndexType portNum) const
void log_ACTIVITY_LO_SetFlowState(U8 channelId, const Svc::Ccsds::Cfdp::Flow &flowState) const
Log event SetFlowState.
Fw::Buffer bufferAllocate_out(FwIndexType portNum, FwSizeType size) const
Invoke output port bufferAllocate.
void log_WARNING_LO_RxFileRenameFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &tempFile, const Fw::StringBase &finalFile, I32 status) const
Log event RxFileRenameFailed.
Structure for telemetry counters for a single CFDP channel.
void AbandonTransaction_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
void tlmWrite_PRM_FILE_IN_DEFAULT_DEST_ENTITY_ID(Svc::Ccsds::Cfdp::EntityId arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_FILE_IN_DEFAULT_DEST_ENTITY_ID.
bool isConnected_bufferAllocate_OutputPort(FwIndexType portNum) const
void log_WARNING_LO_TxFileOpenFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &filename, I32 status) const
Log event TxFileOpenFailed.
void log_WARNING_LO_TxInvalidDirectiveCode(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U8 directiveCode, U8 substate) const
Log event TxInvalidDirectiveCode.
static constexpr FwIndexType getNum_dataIn_InputPorts()
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
void tlmWrite_PRM_FILE_IN_DEFAULT_CLASS(const Svc::Ccsds::Cfdp::Class &arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_FILE_IN_DEFAULT_CLASS.
void log_WARNING_LO_PlaybackDirReadFailed(const Fw::StringBase &directory, I32 status) const
Log event PlaybackDirReadFailed.
void log_ACTIVITY_LO_TxFileQueued(const Fw::StringBase &sourceFileName, U32 transactionSeq) const
Log event TxFileQueued.
void log_WARNING_LO_PlaybackDirSlotUnavailable() const
Log event PlaybackDirSlotUnavailable.
void log_WARNING_LO_UnhandledPduInIdleState() const
Log event UnhandledPduInIdleState.
bool isConnected_logOut_OutputPort(FwIndexType portNum) const
void log_WARNING_LO_BuffersExhausted() const
Log event BuffersExhausted.
PlatformIndexType FwIndexType
friend class CfdpManagerTester
Friend class tester implementation to support white-box testing.
void log_WARNING_LO_RxCrcMismatch(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 expected, U32 actual) const
Log event RxCrcMismatch.
void log_WARNING_LO_RxFileDataOutOfBounds(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 offset, U32 dataSize, U32 fileSize) const
Log event RxFileDataOutOfBounds.
Send file response struct.
void log_WARNING_LO_FailPduSerialization(U8 channelId, const Svc::Ccsds::Cfdp::PduTypeEnum &pduType, I32 status) const
Log event FailPduSerialization.
void log_ACTIVITY_HI_RxFileTransferCompleted(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 seqNum, U32 srcEid, const Fw::StringBase &srcFile, U32 destEid, const Fw::StringBase &destFile, U32 fileSize) const
Log event RxFileTransferCompleted.
bool isConnected_dataInReturn_OutputPort(FwIndexType portNum) const
virtual void StopPollDirectory_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, U8 pollId)=0
void log_WARNING_LO_InvalidPollInterval(U32 interval) const
Log event InvalidPollInterval.
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
RateGroupDivider component implementation.
static constexpr FwIndexType getNum_dataOut_OutputPorts()
void run1Hz_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port run1Hz.
void log_WARNING_LO_RxInvalidDirectiveCode(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U8 directiveCode, U8 substate) const
Log event RxInvalidDirectiveCode.
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
virtual void SendFile_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SendFile.
Svc::Ccsds::Cfdp::EntityId paramGet_FileInDefaultDestEntityId(Fw::ParamValid &valid)
Enum representing parameter validity.
static constexpr FwIndexType getNum_fileDoneOut_OutputPorts()
virtual void PlaybackDirectory_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command PlaybackDirectory.
static constexpr FwIndexType getNum_pingIn_InputPorts()
bool isConnected_timeCaller_OutputPort(FwIndexType portNum) const
void log_WARNING_LO_RxReadCrcFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 expected, I32 actual) const
Log event RxReadCrcFailed.
void log_WARNING_LO_FileRemoveFailed(const Fw::StringBase &filename, I32 status) const
Log event FileRemoveFailed.
void log_WARNING_LO_PlaybackDirOpenFailed(const Fw::StringBase &directory, I32 status) const
Log event PlaybackDirOpenFailed.
void log_WARNING_LO_DanglingFileHandleClosed(U8 channelId, U32 transactionSeq) const
Log event DanglingFileHandleClosed.
void log_WARNING_LO_RxInactivityTimeout(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event RxInactivityTimeout.
void log_WARNING_LO_PollDirNotActive(U8 channelId, U8 pollId) const
Log event PollDirNotActive.
Svc::Ccsds::Cfdp::ChannelArrayParams paramGet_ChannelConfig(Fw::ParamValid &valid)
void log_WARNING_LO_FailPduHeaderDeserialization(U8 channelId, I32 status) const
Log event FailPduHeaderDeserialization.
void log_DIAGNOSTIC_ResetFreedTransaction() const
Log event ResetFreedTransaction.
virtual void PollDirectory_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, U8 pollId, Svc::Ccsds::Cfdp::EntityId destId, const Svc::Ccsds::Cfdp::Class &cfdpClass, U8 priority, U32 interval, const Fw::CmdStringArg &sourceDirectory, const Fw::CmdStringArg &destDirectory)=0
void log_WARNING_LO_PollDirBusy(U8 channelId, U8 pollId) const
Log event PollDirBusy.
void StopPollDirectory_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void ResetCounters_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
static constexpr FwIndexType getNum_bufferAllocate_OutputPorts()
bool isConnected_bufferDeallocate_OutputPort(FwIndexType portNum) const
void set_fileDoneOut_OutputPort(FwIndexType portNum, Svc::InputSendFileCompletePort *port)
Connect port to fileDoneOut[portNum].
void log_DIAGNOSTIC_TxLateFinAcked(Svc::Ccsds::Cfdp::EntityId srcEid, Svc::Ccsds::Cfdp::TransactionSeq seqNum) const
void tlmWrite_PRM_FILE_IN_DEFAULT_KEEP(const Svc::Ccsds::Cfdp::Keep &arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_FILE_IN_DEFAULT_KEEP.
void log_WARNING_LO_TxEarlyFinReceived(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event TxEarlyFinReceived.
void log_WARNING_LO_FailFinPduDeserialization(U8 channelId, I32 status) const
Log event FailFinPduDeserialization.
void log_ACTIVITY_LO_PollDirStopped(U8 channelId, U8 pollId) const
Log event PollDirStopped.
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum) const
void log_WARNING_LO_FailNakPduDeserialization(U8 channelId, I32 status) const
Log event FailNakPduDeserialization.
void log_WARNING_LO_FailMetadataPduDeserialization(U8 channelId, I32 status) const
Log event FailMetadataPduDeserialization.