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 {
227  };
229 
231  enum {
233  };
234 
236  enum {
248  };
249 
250  public:
251 
252  // ----------------------------------------------------------------------
253  // Component initialization
254  // ----------------------------------------------------------------------
255 
257  void init(
258  FwSizeType queueDepth,
259  FwEnumStoreType instance = 0
260  );
261 
262 #if !FW_DIRECT_PORT_CALLS
263 
264  public:
265 
266  // ----------------------------------------------------------------------
267  // Getters for special input ports
268  // ----------------------------------------------------------------------
269 
274  FwIndexType portNum
275  );
276 
277 #endif
278 
279 #if !FW_DIRECT_PORT_CALLS
280 
281  public:
282 
283  // ----------------------------------------------------------------------
284  // Getters for typed input ports
285  // ----------------------------------------------------------------------
286 
291  FwIndexType portNum
292  );
293 
298  FwIndexType portNum
299  );
300 
305  FwIndexType portNum
306  );
307 
312  FwIndexType portNum
313  );
314 
319  FwIndexType portNum
320  );
321 
322 #endif
323 
324 #if !FW_DIRECT_PORT_CALLS
325 
326  public:
327 
328  // ----------------------------------------------------------------------
329  // Connect input ports to special output ports
330  // ----------------------------------------------------------------------
331 
334  FwIndexType portNum,
335  Fw::InputCmdRegPort* port
336  );
337 
340  FwIndexType portNum,
342  );
343 
346  FwIndexType portNum,
347  Fw::InputLogPort* port
348  );
349 
350 #if FW_ENABLE_TEXT_LOGGING == 1
351 
353  void set_logTextOut_OutputPort(
354  FwIndexType portNum,
355  Fw::InputLogTextPort* port
356  );
357 
358 #endif
359 
362  FwIndexType portNum,
363  Fw::InputPrmGetPort* port
364  );
365 
368  FwIndexType portNum,
369  Fw::InputPrmSetPort* port
370  );
371 
374  FwIndexType portNum,
375  Fw::InputTimePort* port
376  );
377 
380  FwIndexType portNum,
381  Fw::InputTlmPort* port
382  );
383 
384 #endif
385 
386 #if !FW_DIRECT_PORT_CALLS
387 
388  public:
389 
390  // ----------------------------------------------------------------------
391  // Connect typed input ports to typed output ports
392  // ----------------------------------------------------------------------
393 
396  FwIndexType portNum,
398  );
399 
402  FwIndexType portNum,
404  );
405 
408  FwIndexType portNum,
410  );
411 
414  FwIndexType portNum,
416  );
417 
420  FwIndexType portNum,
422  );
423 
426  FwIndexType portNum,
427  Svc::InputPingPort* port
428  );
429 
430 #endif
431 
432 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
433 
434  public:
435 
436  // ----------------------------------------------------------------------
437  // Connect serial input ports to special output ports
438  // ----------------------------------------------------------------------
439 
442  FwIndexType portNum,
443  Fw::InputSerializePort* port
444  );
445 
448  FwIndexType portNum,
449  Fw::InputSerializePort* port
450  );
451 
454  FwIndexType portNum,
455  Fw::InputSerializePort* port
456  );
457 
458 #if FW_ENABLE_TEXT_LOGGING == 1
459 
461  void set_logTextOut_OutputPort(
462  FwIndexType portNum,
463  Fw::InputSerializePort* port
464  );
465 
466 #endif
467 
470  FwIndexType portNum,
471  Fw::InputSerializePort* port
472  );
473 
476  FwIndexType portNum,
477  Fw::InputSerializePort* port
478  );
479 
482  FwIndexType portNum,
483  Fw::InputSerializePort* port
484  );
485 
486 #endif
487 
488 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
489 
490  public:
491 
492  // ----------------------------------------------------------------------
493  // Connect serial input ports to typed output ports
494  // ----------------------------------------------------------------------
495 
498  FwIndexType portNum,
499  Fw::InputSerializePort* port
500  );
501 
504  FwIndexType portNum,
505  Fw::InputSerializePort* port
506  );
507 
510  FwIndexType portNum,
511  Fw::InputSerializePort* port
512  );
513 
516  FwIndexType portNum,
517  Fw::InputSerializePort* port
518  );
519 
522  FwIndexType portNum,
523  Fw::InputSerializePort* port
524  );
525 
526 #endif
527 
528  public:
529 
530  // ----------------------------------------------------------------------
531  // Command registration
532  // ----------------------------------------------------------------------
533 
537  void regCommands();
538 
539  public:
540 
541  // ----------------------------------------------------------------------
542  // Parameter loading
543  // ----------------------------------------------------------------------
544 
548  void loadParameters();
549 
550  protected:
551 
552  // ----------------------------------------------------------------------
553  // Component construction and destruction
554  // ----------------------------------------------------------------------
555 
558  const char* compName = ""
559  );
560 
562  virtual ~CfdpManagerComponentBase();
563 
564  protected:
565 
566  // ----------------------------------------------------------------------
567  // Getters for numbers of special input ports
568  // ----------------------------------------------------------------------
569 
574  return NUM_CMDIN_INPUT_PORTS;
575  }
576 
577  protected:
578 
579  // ----------------------------------------------------------------------
580  // Getters for numbers of typed input ports
581  // ----------------------------------------------------------------------
582 
587  return NUM_DATAIN_INPUT_PORTS;
588  }
589 
595  }
596 
601  return NUM_FILEIN_INPUT_PORTS;
602  }
603 
608  return NUM_PINGIN_INPUT_PORTS;
609  }
610 
615  return NUM_RUN1HZ_INPUT_PORTS;
616  }
617 
618  protected:
619 
620  // ----------------------------------------------------------------------
621  // Getters for numbers of special output ports
622  // ----------------------------------------------------------------------
623 
629  }
630 
636  }
637 
643  }
644 
645 #if FW_ENABLE_TEXT_LOGGING == 1
646 
650  static constexpr FwIndexType getNum_logTextOut_OutputPorts() {
652  }
653 
654 #endif
655 
661  }
662 
668  }
669 
675  }
676 
682  }
683 
684  protected:
685 
686  // ----------------------------------------------------------------------
687  // Getters for numbers of typed output ports
688  // ----------------------------------------------------------------------
689 
695  }
696 
702  }
703 
709  }
710 
716  }
717 
723  }
724 
730  }
731 
732  protected:
733 
734  // ----------------------------------------------------------------------
735  // Connection status queries for special output ports
736  // ----------------------------------------------------------------------
737 
742  FwIndexType portNum
743  ) const;
744 
749  FwIndexType portNum
750  ) const;
751 
756  FwIndexType portNum
757  ) const;
758 
759 #if FW_ENABLE_TEXT_LOGGING == 1
760 
764  bool isConnected_logTextOut_OutputPort(
765  FwIndexType portNum
766  ) const;
767 
768 #endif
769 
774  FwIndexType portNum
775  ) const;
776 
781  FwIndexType portNum
782  ) const;
783 
788  FwIndexType portNum
789  ) const;
790 
795  FwIndexType portNum
796  ) const;
797 
798  protected:
799 
800  // ----------------------------------------------------------------------
801  // Connection status queries for typed output ports
802  // ----------------------------------------------------------------------
803 
808  FwIndexType portNum
809  ) const;
810 
815  FwIndexType portNum
816  ) const;
817 
822  FwIndexType portNum
823  ) const;
824 
829  FwIndexType portNum
830  ) const;
831 
836  FwIndexType portNum
837  ) const;
838 
843  FwIndexType portNum
844  ) const;
845 
846 #if FW_DIRECT_PORT_CALLS
847  public:
848 #else
849  protected:
850 #endif
851 
852  // ----------------------------------------------------------------------
853  // Port handler base-class functions for special input ports
854  //
855  // Call these functions directly to bypass the corresponding ports
856  // ----------------------------------------------------------------------
857 
859  void cmdIn_handlerBase(
860  FwIndexType portNum,
861  FwOpcodeType opCode,
862  U32 cmdSeq,
863  Fw::CmdArgBuffer& args
864  );
865 
866  protected:
867 
868  // ----------------------------------------------------------------------
869  // Handlers to implement for typed input ports
870  // ----------------------------------------------------------------------
871 
873  virtual void dataIn_handler(
874  FwIndexType portNum,
875  Fw::Buffer& fwBuffer
876  ) = 0;
877 
879  virtual void dataReturnIn_handler(
880  FwIndexType portNum,
881  Fw::Buffer& fwBuffer
882  ) = 0;
883 
886  FwIndexType portNum,
887  const Fw::StringBase& sourceFileName,
888  const Fw::StringBase& destFileName,
889  U32 offset,
890  U32 length
891  ) = 0;
892 
894  virtual void pingIn_handler(
895  FwIndexType portNum,
896  U32 key
897  ) = 0;
898 
900  virtual void run1Hz_handler(
901  FwIndexType portNum,
902  U32 context
903  ) = 0;
904 
905 #if FW_DIRECT_PORT_CALLS
906  public:
907 #else
908  protected:
909 #endif
910 
911  // ----------------------------------------------------------------------
912  // Port handler base-class functions for typed input ports
913  //
914  // Call these functions directly to bypass the corresponding ports
915  // ----------------------------------------------------------------------
916 
918  void dataIn_handlerBase(
919  FwIndexType portNum,
920  Fw::Buffer& fwBuffer
921  );
922 
925  FwIndexType portNum,
926  Fw::Buffer& fwBuffer
927  );
928 
931  FwIndexType portNum,
932  const Fw::StringBase& sourceFileName,
933  const Fw::StringBase& destFileName,
934  U32 offset,
935  U32 length
936  );
937 
939  void pingIn_handlerBase(
940  FwIndexType portNum,
941  U32 key
942  );
943 
945  void run1Hz_handlerBase(
946  FwIndexType portNum,
947  U32 context
948  );
949 
950  protected:
951 
952  // ----------------------------------------------------------------------
953  // Pre-message hooks for typed async input ports
954  //
955  // Each of these functions is invoked just before processing a message
956  // on the corresponding port. By default, they do nothing. You can
957  // override them to provide specific pre-message behavior.
958  // ----------------------------------------------------------------------
959 
961  virtual void dataIn_preMsgHook(
962  FwIndexType portNum,
963  Fw::Buffer& fwBuffer
964  );
965 
967  virtual void dataReturnIn_preMsgHook(
968  FwIndexType portNum,
969  Fw::Buffer& fwBuffer
970  );
971 
973  virtual void pingIn_preMsgHook(
974  FwIndexType portNum,
975  U32 key
976  );
977 
979  virtual void run1Hz_preMsgHook(
980  FwIndexType portNum,
981  U32 context
982  );
983 
984  protected:
985 
986  // ----------------------------------------------------------------------
987  // Invocation functions for typed output ports
988  // ----------------------------------------------------------------------
989 
992  FwIndexType portNum,
993  FwSizeType size
994  ) const;
995 
998  FwIndexType portNum,
999  Fw::Buffer& fwBuffer
1000  ) const;
1001 
1003  void dataInReturn_out(
1004  FwIndexType portNum,
1005  Fw::Buffer& fwBuffer
1006  ) const;
1007 
1009  void dataOut_out(
1010  FwIndexType portNum,
1011  Fw::Buffer& fwBuffer
1012  ) const;
1013 
1015  void fileDoneOut_out(
1016  FwIndexType portNum,
1017  const Svc::SendFileResponse& resp
1018  ) const;
1019 
1021  void pingOut_out(
1022  FwIndexType portNum,
1023  U32 key
1024  ) const;
1025 
1026  protected:
1027 
1028  // ----------------------------------------------------------------------
1029  // Command response
1030  // ----------------------------------------------------------------------
1031 
1033  void cmdResponse_out(
1034  FwOpcodeType opCode,
1035  U32 cmdSeq,
1036  Fw::CmdResponse response
1037  );
1038 
1039  protected:
1040 
1041  // ----------------------------------------------------------------------
1042  // Command handlers to implement
1043  // ----------------------------------------------------------------------
1044 
1048  virtual void SendFile_cmdHandler(
1049  FwOpcodeType opCode,
1050  U32 cmdSeq,
1051  U8 channelId,
1053  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1054  const Svc::Ccsds::Cfdp::Keep& keep,
1055  U8 priority,
1056  const Fw::CmdStringArg& sourceFileName,
1057  const Fw::CmdStringArg& destFileName
1058  ) = 0;
1059 
1063  virtual void PlaybackDirectory_cmdHandler(
1064  FwOpcodeType opCode,
1065  U32 cmdSeq,
1066  U8 channelId,
1068  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1069  const Svc::Ccsds::Cfdp::Keep& keep,
1070  U8 priority,
1071  const Fw::CmdStringArg& sourceDirectory,
1072  const Fw::CmdStringArg& destDirectory
1073  ) = 0;
1074 
1078  virtual void PollDirectory_cmdHandler(
1079  FwOpcodeType opCode,
1080  U32 cmdSeq,
1081  U8 channelId,
1082  U8 pollId,
1084  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1085  U8 priority,
1086  U32 interval,
1087  const Fw::CmdStringArg& sourceDirectory,
1088  const Fw::CmdStringArg& destDirectory
1089  ) = 0;
1090 
1094  virtual void StopPollDirectory_cmdHandler(
1095  FwOpcodeType opCode,
1096  U32 cmdSeq,
1097  U8 channelId,
1098  U8 pollId
1099  ) = 0;
1100 
1104  virtual void SetChannelFlow_cmdHandler(
1105  FwOpcodeType opCode,
1106  U32 cmdSeq,
1107  U8 channelId,
1108  const Svc::Ccsds::Cfdp::Flow& freeze
1109  ) = 0;
1110 
1115  FwOpcodeType opCode,
1116  U32 cmdSeq,
1117  U8 channelId,
1118  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1119  Svc::Ccsds::Cfdp::EntityId entityId,
1120  const Svc::Ccsds::Cfdp::SuspendResume& action
1121  ) = 0;
1122 
1126  virtual void CancelTransaction_cmdHandler(
1127  FwOpcodeType opCode,
1128  U32 cmdSeq,
1129  U8 channelId,
1130  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1131  Svc::Ccsds::Cfdp::EntityId entityId
1132  ) = 0;
1133 
1137  virtual void AbandonTransaction_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 ResetCounters_cmdHandler(
1149  FwOpcodeType opCode,
1150  U32 cmdSeq,
1151  U8 channelId
1152  ) = 0;
1153 
1154  protected:
1155 
1156  // ----------------------------------------------------------------------
1157  // Command handler base-class functions
1158  //
1159  // Call these functions directly to bypass the command input port
1160  // ----------------------------------------------------------------------
1161 
1166  FwOpcodeType opCode,
1167  U32 cmdSeq,
1168  Fw::CmdArgBuffer& args
1169  );
1170 
1175  FwOpcodeType opCode,
1176  U32 cmdSeq,
1177  Fw::CmdArgBuffer& args
1178  );
1179 
1184  FwOpcodeType opCode,
1185  U32 cmdSeq,
1186  Fw::CmdArgBuffer& args
1187  );
1188 
1193  FwOpcodeType opCode,
1194  U32 cmdSeq,
1195  Fw::CmdArgBuffer& args
1196  );
1197 
1202  FwOpcodeType opCode,
1203  U32 cmdSeq,
1204  Fw::CmdArgBuffer& args
1205  );
1206 
1211  FwOpcodeType opCode,
1212  U32 cmdSeq,
1213  Fw::CmdArgBuffer& args
1214  );
1215 
1220  FwOpcodeType opCode,
1221  U32 cmdSeq,
1222  Fw::CmdArgBuffer& args
1223  );
1224 
1229  FwOpcodeType opCode,
1230  U32 cmdSeq,
1231  Fw::CmdArgBuffer& args
1232  );
1233 
1238  FwOpcodeType opCode,
1239  U32 cmdSeq,
1240  Fw::CmdArgBuffer& args
1241  );
1242 
1243  protected:
1244 
1245  // ----------------------------------------------------------------------
1246  // Pre-message hooks for async commands
1247  //
1248  // Each of these functions is invoked just before processing the
1249  // corresponding command. By default they do nothing. You can
1250  // override them to provide specific pre-command behavior.
1251  // ----------------------------------------------------------------------
1252 
1254  virtual void SendFile_preMsgHook(
1255  FwOpcodeType opCode,
1256  U32 cmdSeq
1257  );
1258 
1260  virtual void PlaybackDirectory_preMsgHook(
1261  FwOpcodeType opCode,
1262  U32 cmdSeq
1263  );
1264 
1266  virtual void PollDirectory_preMsgHook(
1267  FwOpcodeType opCode,
1268  U32 cmdSeq
1269  );
1270 
1272  virtual void StopPollDirectory_preMsgHook(
1273  FwOpcodeType opCode,
1274  U32 cmdSeq
1275  );
1276 
1278  virtual void SetChannelFlow_preMsgHook(
1279  FwOpcodeType opCode,
1280  U32 cmdSeq
1281  );
1282 
1285  FwOpcodeType opCode,
1286  U32 cmdSeq
1287  );
1288 
1290  virtual void CancelTransaction_preMsgHook(
1291  FwOpcodeType opCode,
1292  U32 cmdSeq
1293  );
1294 
1296  virtual void AbandonTransaction_preMsgHook(
1297  FwOpcodeType opCode,
1298  U32 cmdSeq
1299  );
1300 
1302  virtual void ResetCounters_preMsgHook(
1303  FwOpcodeType opCode,
1304  U32 cmdSeq
1305  );
1306 
1307  protected:
1308 
1309  // ----------------------------------------------------------------------
1310  // Event logging functions
1311  // ----------------------------------------------------------------------
1312 
1314  void log_WARNING_LO_BuffersExhausted() const;
1315 
1318  U8 channelId,
1319  U8 maxChannelId
1320  ) const;
1321 
1324  const Fw::StringBase& sourceFileName,
1325  U32 transactionSeq
1326  ) const;
1327 
1330  U32 offset,
1331  U32 length
1332  ) const;
1333 
1336  const Fw::StringBase& sourceFileName
1337  ) const;
1338 
1341  const Fw::StringBase& sourceDirectory
1342  ) const;
1343 
1346  const Fw::StringBase& sourceDirectory
1347  ) const;
1348 
1351  U8 channelId,
1352  U8 pollId
1353  ) const;
1354 
1357  U8 channelId,
1358  U8 pollId
1359  ) const;
1360 
1363  U8 channelId,
1364  U8 pollId
1365  ) const;
1366 
1369  U8 channelId,
1370  const Svc::Ccsds::Cfdp::Flow& flowState
1371  ) const;
1372 
1375  U8 pollId,
1376  U8 maxPollId
1377  ) const;
1378 
1381  const Fw::StringBase& srcFile,
1382  const Fw::StringBase& moveDir,
1383  I32 status
1384  ) const;
1385 
1388  const Fw::StringBase& srcFile,
1389  const Fw::StringBase& failDir,
1390  I32 status
1391  ) const;
1392 
1395  U8 channelId,
1396  I32 status
1397  ) const;
1398 
1401  U8 channelId,
1402  const Svc::Ccsds::Cfdp::PduTypeEnum& pduType,
1403  I32 status
1404  ) const;
1405 
1408  U8 channelId,
1409  I32 status
1410  ) const;
1411 
1414  U8 channelId,
1415  I32 status
1416  ) const;
1417 
1420  U8 channelId,
1421  I32 status
1422  ) const;
1423 
1426  U8 channelId,
1427  I32 status
1428  ) const;
1429 
1432  U8 channelId,
1433  I32 status
1434  ) const;
1435 
1438  U8 channelId,
1439  I32 status
1440  ) const;
1441 
1444  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1445  U32 srcEid,
1446  U32 seqNum
1447  ) const;
1448 
1451  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1452  U32 srcEid,
1453  U32 seqNum,
1454  const Fw::StringBase& filename
1455  ) const;
1456 
1459  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1460  U32 srcEid,
1461  U32 seqNum,
1462  const Fw::StringBase& filename,
1463  I32 status
1464  ) const;
1465 
1468  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1469  U32 srcEid,
1470  U32 seqNum,
1471  U32 expected,
1472  U32 actual
1473  ) const;
1474 
1477  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1478  U32 srcEid,
1479  U32 seqNum
1480  ) const;
1481 
1484  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1485  U32 srcEid,
1486  U32 seqNum,
1487  U32 offset,
1488  I32 status
1489  ) const;
1490 
1493  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1494  U32 srcEid,
1495  U32 seqNum,
1496  U32 expected,
1497  I32 actual
1498  ) const;
1499 
1502  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1503  U32 srcEid,
1504  U32 seqNum,
1505  U32 offset,
1506  U32 dataSize,
1507  U32 fileSize
1508  ) const;
1509 
1512  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1513  U32 srcEid,
1514  U32 seqNum,
1515  U32 expected,
1516  U32 actual
1517  ) const;
1518 
1521  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1522  U32 srcEid,
1523  U32 seqNum
1524  ) const;
1525 
1528  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1529  U32 srcEid,
1530  U32 seqNum,
1531  U8 conditionCode
1532  ) const;
1533 
1536  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1537  U32 srcEid,
1538  U32 seqNum,
1539  U32 offset,
1540  I32 status
1541  ) const;
1542 
1545  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1546  U32 srcEid,
1547  U32 seqNum,
1548  U32 expected,
1549  I32 actual
1550  ) const;
1551 
1554  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1555  U32 srcEid,
1556  U32 seqNum,
1557  U32 mdSize,
1558  U32 eofSize
1559  ) const;
1560 
1563  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1564  U32 srcEid,
1565  U32 seqNum,
1566  const Fw::StringBase& tempFile,
1567  const Fw::StringBase& finalFile,
1568  I32 status
1569  ) const;
1570 
1573  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1574  U32 srcEid,
1575  U32 seqNum,
1576  const Fw::StringBase& filename,
1577  I32 status
1578  ) const;
1579 
1582  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1583  U32 srcEid,
1584  U32 seqNum
1585  ) const;
1586 
1589  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1590  U32 srcEid,
1591  U32 seqNum,
1592  U8 directiveCode,
1593  U8 substate
1594  ) const;
1595 
1598  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1599  U32 srcEid,
1600  U32 seqNum
1601  ) const;
1602 
1605  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1606  U32 srcEid,
1607  U32 seqNum
1608  ) const;
1609 
1612  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1613  U32 srcEid,
1614  U32 seqNum,
1615  const Fw::StringBase& filename
1616  ) const;
1617 
1620  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1621  U32 srcEid,
1622  U32 seqNum,
1623  const Fw::StringBase& filename,
1624  I32 status
1625  ) const;
1626 
1629  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1630  U32 srcEid,
1631  U32 seqNum,
1632  I32 status
1633  ) const;
1634 
1637  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1638  U32 srcEid,
1639  U32 seqNum
1640  ) const;
1641 
1644  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1645  U32 srcEid,
1646  U32 seqNum
1647  ) const;
1648 
1651  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1652  U32 srcEid,
1653  U32 seqNum
1654  ) const;
1655 
1658  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1659  U32 srcEid,
1660  U32 seqNum,
1661  U32 badCount
1662  ) const;
1663 
1666  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1667  U32 srcEid,
1668  U32 seqNum
1669  ) const;
1670 
1673  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1674  U32 srcEid,
1675  U32 seqNum,
1676  U8 directiveCode,
1677  U8 substate
1678  ) const;
1679 
1682  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1683  U32 seqNum,
1684  U32 srcEid,
1685  const Fw::StringBase& srcFile,
1686  U32 destEid,
1687  const Fw::StringBase& destFile,
1688  U32 fileSize
1689  ) const;
1690 
1693  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1694  U32 seqNum,
1695  U32 srcEid,
1696  const Fw::StringBase& srcFile,
1697  U32 destEid,
1698  const Fw::StringBase& destFile,
1699  U32 fileSize
1700  ) const;
1701 
1704  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1705  U32 seqNum,
1706  U32 srcEid,
1707  const Fw::StringBase& srcFile,
1708  U32 destEid,
1709  const Fw::StringBase& destFile,
1710  U8 conditionCode
1711  ) const;
1712 
1715  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1716  U32 seqNum,
1717  U32 srcEid,
1718  const Fw::StringBase& srcFile,
1719  U32 destEid,
1720  const Fw::StringBase& destFile,
1721  U32 fileSize
1722  ) const;
1723 
1726  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1727  U32 seqNum,
1728  U32 srcEid,
1729  const Fw::StringBase& srcFile,
1730  U32 destEid,
1731  const Fw::StringBase& destFile,
1732  U8 conditionCode
1733  ) const;
1734 
1737  const Fw::StringBase& srcFile,
1738  const Fw::StringBase& destFile,
1739  U32 transactionSeq
1740  ) const;
1741 
1744 
1747  U32 transactionSeq
1748  ) const;
1749 
1752 
1755  U32 srcEid,
1756  U32 transactionSeq
1757  ) const;
1758 
1761  U32 destEid
1762  ) const;
1763 
1766 
1769  const Fw::StringBase& directory,
1770  I32 status
1771  ) const;
1772 
1775 
1778  U8 channelId,
1779  U32 transactionSeq
1780  ) const;
1781 
1784  const Fw::StringBase& directory,
1785  I32 status
1786  ) const;
1787 
1790 
1793  const Fw::StringBase& filename,
1794  I32 status
1795  ) const;
1796 
1801  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1802  Svc::Ccsds::Cfdp::EntityId entityId
1803  ) const;
1804 
1809  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1810  Svc::Ccsds::Cfdp::EntityId entityId
1811  ) const;
1812 
1817  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1818  Svc::Ccsds::Cfdp::EntityId entityId
1819  ) const;
1820 
1825  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1826  Svc::Ccsds::Cfdp::EntityId entityId
1827  ) const;
1828 
1833  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1834  Svc::Ccsds::Cfdp::EntityId entityId
1835  ) const;
1836 
1839  U8 channelId
1840  ) const;
1841 
1849  ) const;
1850 
1851  protected:
1852 
1853  // ----------------------------------------------------------------------
1854  // Telemetry serialized write
1855  // ----------------------------------------------------------------------
1856 
1861  void tlmWrite(
1862  FwChanIdType id,
1863  Fw::TlmBuffer& _tlmBuff,
1864  Fw::Time _tlmTime = Fw::Time()
1865  ) const;
1866 
1867  protected:
1868 
1869  // ----------------------------------------------------------------------
1870  // Telemetry write functions
1871  // ----------------------------------------------------------------------
1872 
1880  Fw::Time _tlmTime = Fw::Time()
1881  ) const;
1882 
1883  protected:
1884 
1885  // ----------------------------------------------------------------------
1886  // Parameter hook functions
1887  // ----------------------------------------------------------------------
1888 
1892  virtual void parameterUpdated(
1893  FwPrmIdType id
1894  );
1895 
1899  virtual void parametersLoaded();
1900 
1901  protected:
1902 
1903  // ----------------------------------------------------------------------
1904  // Parameter get functions
1905  // ----------------------------------------------------------------------
1906 
1913  Fw::ParamValid& valid
1914  );
1915 
1922  Fw::ParamValid& valid
1923  );
1924 
1931  Fw::ParamValid& valid
1932  );
1933 
1941  Fw::ParamValid& valid
1942  );
1943 
1950  Fw::ParamValid& valid
1951  );
1952 
1959  Fw::ParamValid& valid
1960  );
1961 
1968  Fw::ParamValid& valid
1969  );
1970 
1977  Fw::ParamValid& valid
1978  );
1979 
1986  Fw::ParamValid& valid
1987  );
1988 
1995  Fw::ParamValid& valid
1996  );
1997 
1998  protected:
1999 
2000  // ----------------------------------------------------------------------
2001  // Time
2002  // ----------------------------------------------------------------------
2003 
2007  Fw::Time getTime() const;
2008 
2009  protected:
2010 
2011  // ----------------------------------------------------------------------
2012  // Mutex operations for guarded ports
2013  //
2014  // You can override these operations to provide more sophisticated
2015  // synchronization
2016  // ----------------------------------------------------------------------
2017 
2019  virtual void lock();
2020 
2022  virtual void unLock();
2023 
2024  private:
2025 
2026  // ----------------------------------------------------------------------
2027  // Message dispatch functions
2028  // ----------------------------------------------------------------------
2029 
2031  virtual MsgDispatchStatus doDispatch();
2032 
2033  private:
2034 
2035  // ----------------------------------------------------------------------
2036  // Calls for messages received on special input ports
2037  // ----------------------------------------------------------------------
2038 
2040  static void m_p_cmdIn_in(
2041  Fw::PassiveComponentBase* callComp,
2042  FwIndexType portNum,
2043  FwOpcodeType opCode,
2044  U32 cmdSeq,
2045  Fw::CmdArgBuffer& args
2046  );
2047 
2048  private:
2049 
2050  // ----------------------------------------------------------------------
2051  // Calls for messages received on typed input ports
2052  // ----------------------------------------------------------------------
2053 
2055  static void m_p_dataIn_in(
2056  Fw::PassiveComponentBase* callComp,
2057  FwIndexType portNum,
2058  Fw::Buffer& fwBuffer
2059  );
2060 
2062  static void m_p_dataReturnIn_in(
2063  Fw::PassiveComponentBase* callComp,
2064  FwIndexType portNum,
2065  Fw::Buffer& fwBuffer
2066  );
2067 
2069  static Svc::SendFileResponse m_p_fileIn_in(
2070  Fw::PassiveComponentBase* callComp,
2071  FwIndexType portNum,
2072  const Fw::StringBase& sourceFileName,
2073  const Fw::StringBase& destFileName,
2074  U32 offset,
2075  U32 length
2076  );
2077 
2079  static void m_p_pingIn_in(
2080  Fw::PassiveComponentBase* callComp,
2081  FwIndexType portNum,
2082  U32 key
2083  );
2084 
2086  static void m_p_run1Hz_in(
2087  Fw::PassiveComponentBase* callComp,
2088  FwIndexType portNum,
2089  U32 context
2090  );
2091 
2092  private:
2093 
2094  // ----------------------------------------------------------------------
2095  // Invocation functions for special output ports
2096  // ----------------------------------------------------------------------
2097 
2099  void cmdRegOut_out(
2100  FwIndexType portNum,
2101  FwOpcodeType opCode
2102  ) const;
2103 
2105  void cmdResponseOut_out(
2106  FwIndexType portNum,
2107  FwOpcodeType opCode,
2108  U32 cmdSeq,
2109  const Fw::CmdResponse& response
2110  ) const;
2111 
2113  void logOut_out(
2114  FwIndexType portNum,
2115  FwEventIdType id,
2116  Fw::Time& timeTag,
2117  const Fw::LogSeverity& severity,
2118  Fw::LogBuffer& args
2119  ) const;
2120 
2121 #if FW_ENABLE_TEXT_LOGGING
2122 
2124  void logTextOut_out(
2125  FwIndexType portNum,
2126  FwEventIdType id,
2127  Fw::Time& timeTag,
2128  const Fw::LogSeverity& severity,
2129  Fw::TextLogString& text
2130  ) const;
2131 
2132 #endif
2133 
2135  Fw::ParamValid prmGetOut_out(
2136  FwIndexType portNum,
2137  FwPrmIdType id,
2138  Fw::ParamBuffer& val
2139  ) const;
2141 
2143  void prmSetOut_out(
2144  FwIndexType portNum,
2145  FwPrmIdType id,
2146  Fw::ParamBuffer& val
2147  ) const;
2148 
2150  void timeCaller_out(
2151  FwIndexType portNum,
2152  Fw::Time& time
2153  ) const;
2154 
2156  void tlmOut_out(
2157  FwIndexType portNum,
2158  FwChanIdType id,
2159  Fw::Time& timeTag,
2160  Fw::TlmBuffer& val
2161  ) const;
2162 
2163  private:
2164 
2165  // ----------------------------------------------------------------------
2166  // Parameter set functions
2167  // ----------------------------------------------------------------------
2168 
2172  Fw::CmdResponse paramSet_LocalEid(
2173  Fw::SerialBufferBase& val
2174  );
2175 
2179  Fw::CmdResponse paramSet_OutgoingFileChunkSize(
2180  Fw::SerialBufferBase& val
2181  );
2182 
2186  Fw::CmdResponse paramSet_RxCrcCalcBytesPerCycle(
2187  Fw::SerialBufferBase& val
2188  );
2189 
2193  Fw::CmdResponse paramSet_PostInactivitySendRetries(
2194  Fw::SerialBufferBase& val
2195  );
2196 
2200  Fw::CmdResponse paramSet_FileInDefaultChannel(
2201  Fw::SerialBufferBase& val
2202  );
2203 
2207  Fw::CmdResponse paramSet_FileInDefaultDestEntityId(
2208  Fw::SerialBufferBase& val
2209  );
2210 
2214  Fw::CmdResponse paramSet_FileInDefaultClass(
2215  Fw::SerialBufferBase& val
2216  );
2217 
2221  Fw::CmdResponse paramSet_FileInDefaultKeep(
2222  Fw::SerialBufferBase& val
2223  );
2224 
2228  Fw::CmdResponse paramSet_FileInDefaultPriority(
2229  Fw::SerialBufferBase& val
2230  );
2231 
2235  Fw::CmdResponse paramSet_ChannelConfig(
2236  Fw::SerialBufferBase& val
2237  );
2238 
2239  private:
2240 
2241  // ----------------------------------------------------------------------
2242  // Parameter save functions
2243  // ----------------------------------------------------------------------
2244 
2248  Fw::CmdResponse paramSave_LocalEid();
2249 
2253  Fw::CmdResponse paramSave_OutgoingFileChunkSize();
2254 
2258  Fw::CmdResponse paramSave_RxCrcCalcBytesPerCycle();
2259 
2263  Fw::CmdResponse paramSave_PostInactivitySendRetries();
2264 
2268  Fw::CmdResponse paramSave_FileInDefaultChannel();
2269 
2273  Fw::CmdResponse paramSave_FileInDefaultDestEntityId();
2274 
2278  Fw::CmdResponse paramSave_FileInDefaultClass();
2279 
2283  Fw::CmdResponse paramSave_FileInDefaultKeep();
2284 
2288  Fw::CmdResponse paramSave_FileInDefaultPriority();
2289 
2293  Fw::CmdResponse paramSave_ChannelConfig();
2294 
2295 #if !FW_DIRECT_PORT_CALLS
2296 
2297  private:
2298 
2299  // ----------------------------------------------------------------------
2300  // Special input ports
2301  // ----------------------------------------------------------------------
2302 
2304  Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
2305 
2306 #endif
2307 
2308 #if !FW_DIRECT_PORT_CALLS
2309 
2310  private:
2311 
2312  // ----------------------------------------------------------------------
2313  // Typed input ports
2314  // ----------------------------------------------------------------------
2315 
2317  Fw::InputBufferSendPort m_dataIn_InputPort[NUM_DATAIN_INPUT_PORTS];
2318 
2320  Fw::InputBufferSendPort m_dataReturnIn_InputPort[NUM_DATARETURNIN_INPUT_PORTS];
2321 
2324 
2326  Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
2327 
2329  Svc::InputSchedPort m_run1Hz_InputPort[NUM_RUN1HZ_INPUT_PORTS];
2330 
2331 #endif
2332 
2333 #if !FW_DIRECT_PORT_CALLS
2334 
2335  private:
2336 
2337  // ----------------------------------------------------------------------
2338  // Special output ports
2339  // ----------------------------------------------------------------------
2340 
2342  Fw::OutputCmdRegPort m_cmdRegOut_OutputPort[NUM_CMDREGOUT_OUTPUT_PORTS];
2343 
2345  Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS];
2346 
2348  Fw::OutputLogPort m_logOut_OutputPort[NUM_LOGOUT_OUTPUT_PORTS];
2349 
2350 #if FW_ENABLE_TEXT_LOGGING == 1
2351 
2353  Fw::OutputLogTextPort m_logTextOut_OutputPort[NUM_LOGTEXTOUT_OUTPUT_PORTS];
2354 
2355 #endif
2356 
2358  Fw::OutputPrmGetPort m_prmGetOut_OutputPort[NUM_PRMGETOUT_OUTPUT_PORTS];
2359 
2361  Fw::OutputPrmSetPort m_prmSetOut_OutputPort[NUM_PRMSETOUT_OUTPUT_PORTS];
2362 
2364  Fw::OutputTimePort m_timeCaller_OutputPort[NUM_TIMECALLER_OUTPUT_PORTS];
2365 
2367  Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
2368 
2369 #endif
2370 
2371 #if !FW_DIRECT_PORT_CALLS
2372 
2373  private:
2374 
2375  // ----------------------------------------------------------------------
2376  // Typed output ports
2377  // ----------------------------------------------------------------------
2378 
2380  Fw::OutputBufferGetPort m_bufferAllocate_OutputPort[NUM_BUFFERALLOCATE_OUTPUT_PORTS];
2381 
2383  Fw::OutputBufferSendPort m_bufferDeallocate_OutputPort[NUM_BUFFERDEALLOCATE_OUTPUT_PORTS];
2384 
2386  Fw::OutputBufferSendPort m_dataInReturn_OutputPort[NUM_DATAINRETURN_OUTPUT_PORTS];
2387 
2389  Fw::OutputBufferSendPort m_dataOut_OutputPort[NUM_DATAOUT_OUTPUT_PORTS];
2390 
2393 
2395  Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
2396 
2397 #endif
2398 
2399  private:
2400 
2401  // ----------------------------------------------------------------------
2402  // Parameter validity flags
2403  // ----------------------------------------------------------------------
2404 
2406  Fw::ParamValid m_param_LocalEid_valid = Fw::ParamValid::UNINIT;
2407 
2409  Fw::ParamValid m_param_OutgoingFileChunkSize_valid = Fw::ParamValid::UNINIT;
2410 
2412  Fw::ParamValid m_param_RxCrcCalcBytesPerCycle_valid = Fw::ParamValid::UNINIT;
2413 
2415  Fw::ParamValid m_param_PostInactivitySendRetries_valid = Fw::ParamValid::UNINIT;
2416 
2418  Fw::ParamValid m_param_FileInDefaultChannel_valid = Fw::ParamValid::UNINIT;
2419 
2421  Fw::ParamValid m_param_FileInDefaultDestEntityId_valid = Fw::ParamValid::UNINIT;
2422 
2424  Fw::ParamValid m_param_FileInDefaultClass_valid = Fw::ParamValid::UNINIT;
2425 
2427  Fw::ParamValid m_param_FileInDefaultKeep_valid = Fw::ParamValid::UNINIT;
2428 
2430  Fw::ParamValid m_param_FileInDefaultPriority_valid = Fw::ParamValid::UNINIT;
2431 
2433  Fw::ParamValid m_param_ChannelConfig_valid = Fw::ParamValid::UNINIT;
2434 
2435  private:
2436 
2437  // ----------------------------------------------------------------------
2438  // Parameter variables
2439  // ----------------------------------------------------------------------
2440 
2444  Svc::Ccsds::Cfdp::EntityId m_LocalEid;
2445 
2449  U32 m_OutgoingFileChunkSize;
2450 
2454  U32 m_RxCrcCalcBytesPerCycle;
2455 
2460  U8 m_PostInactivitySendRetries;
2461 
2465  U8 m_FileInDefaultChannel;
2466 
2470  Svc::Ccsds::Cfdp::EntityId m_FileInDefaultDestEntityId;
2471 
2475  Svc::Ccsds::Cfdp::Class m_FileInDefaultClass;
2476 
2480  Svc::Ccsds::Cfdp::Keep m_FileInDefaultKeep;
2481 
2485  U8 m_FileInDefaultPriority;
2486 
2490  Svc::Ccsds::Cfdp::ChannelArrayParams m_ChannelConfig;
2491 
2492  private:
2493 
2494  // ----------------------------------------------------------------------
2495  // Mutexes
2496  // ----------------------------------------------------------------------
2497 
2499  Os::Mutex m_guardedPortMutex;
2500 
2502  Os::Mutex m_paramLock;
2503 
2504  };
2505 
2506  }
2507 
2508  }
2509 
2510 }
2511 
2512 #endif
void tlmWrite(FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
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
CFDP ID to denote the current node when sending PDUs.
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()
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_ACTIVITY_LO_PollDirInitiated(const Fw::StringBase &sourceDirectory) const
Log event PollDirInitiated.
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.
virtual void CancelTransaction_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId)=0
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.
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)
Default CFDP channel for fileIn port-initiated file transfers.
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()
void log_WARNING_LO_SendFileInitiateFail(const Fw::StringBase &sourceFileName) const
Log event SendFileInitiateFail.
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.
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.
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 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 log_WARNING_LO_RxFileCreateFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &filename, I32 status) const
Log event RxFileCreateFailed.
Command to cancel a transaction with graceful close-out.
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
The maximum number of received bytes to calculate a CRC for in a single scheduler cycle...
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.
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
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.
Default destination entity ID for fileIn port-initiated file transfers.
static constexpr FwIndexType getNum_run1Hz_InputPorts()
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
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)
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 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.
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.
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 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.
Default file retention policy for fileIn port-initiated file transfers.
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 set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
Parameter configuration for an array CFDP channels.
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)
Default priority for fileIn port-initiated file transfers.
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 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.
Default CFDP class for fileIn port-initiated file transfers.