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 {
234  };
235 
237  enum {
249  };
250 
251  public:
252 
253  // ----------------------------------------------------------------------
254  // Component initialization
255  // ----------------------------------------------------------------------
256 
258  void init(
259  FwSizeType queueDepth,
260  FwEnumStoreType instance = 0
261  );
262 
263 #if !FW_DIRECT_PORT_CALLS
264 
265  public:
266 
267  // ----------------------------------------------------------------------
268  // Getters for special input ports
269  // ----------------------------------------------------------------------
270 
275  FwIndexType portNum
276  );
277 
278 #endif
279 
280 #if !FW_DIRECT_PORT_CALLS
281 
282  public:
283 
284  // ----------------------------------------------------------------------
285  // Getters for typed input ports
286  // ----------------------------------------------------------------------
287 
292  FwIndexType portNum
293  );
294 
299  FwIndexType portNum
300  );
301 
306  FwIndexType portNum
307  );
308 
313  FwIndexType portNum
314  );
315 
320  FwIndexType portNum
321  );
322 
323 #endif
324 
325 #if !FW_DIRECT_PORT_CALLS
326 
327  public:
328 
329  // ----------------------------------------------------------------------
330  // Connect input ports to special output ports
331  // ----------------------------------------------------------------------
332 
335  FwIndexType portNum,
336  Fw::InputCmdRegPort* port
337  );
338 
341  FwIndexType portNum,
343  );
344 
347  FwIndexType portNum,
348  Fw::InputLogPort* port
349  );
350 
351 #if FW_ENABLE_TEXT_LOGGING == 1
352 
354  void set_logTextOut_OutputPort(
355  FwIndexType portNum,
356  Fw::InputLogTextPort* port
357  );
358 
359 #endif
360 
363  FwIndexType portNum,
364  Fw::InputPrmGetPort* port
365  );
366 
369  FwIndexType portNum,
370  Fw::InputPrmSetPort* port
371  );
372 
375  FwIndexType portNum,
376  Fw::InputTimePort* port
377  );
378 
381  FwIndexType portNum,
382  Fw::InputTlmPort* port
383  );
384 
385 #endif
386 
387 #if !FW_DIRECT_PORT_CALLS
388 
389  public:
390 
391  // ----------------------------------------------------------------------
392  // Connect typed input ports to typed output ports
393  // ----------------------------------------------------------------------
394 
397  FwIndexType portNum,
399  );
400 
403  FwIndexType portNum,
405  );
406 
409  FwIndexType portNum,
411  );
412 
415  FwIndexType portNum,
417  );
418 
421  FwIndexType portNum,
423  );
424 
427  FwIndexType portNum,
428  Svc::InputPingPort* port
429  );
430 
431 #endif
432 
433 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
434 
435  public:
436 
437  // ----------------------------------------------------------------------
438  // Connect serial input ports to special output ports
439  // ----------------------------------------------------------------------
440 
443  FwIndexType portNum,
444  Fw::InputSerializePort* port
445  );
446 
449  FwIndexType portNum,
450  Fw::InputSerializePort* port
451  );
452 
455  FwIndexType portNum,
456  Fw::InputSerializePort* port
457  );
458 
459 #if FW_ENABLE_TEXT_LOGGING == 1
460 
462  void set_logTextOut_OutputPort(
463  FwIndexType portNum,
464  Fw::InputSerializePort* port
465  );
466 
467 #endif
468 
471  FwIndexType portNum,
472  Fw::InputSerializePort* port
473  );
474 
477  FwIndexType portNum,
478  Fw::InputSerializePort* port
479  );
480 
483  FwIndexType portNum,
484  Fw::InputSerializePort* port
485  );
486 
487 #endif
488 
489 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
490 
491  public:
492 
493  // ----------------------------------------------------------------------
494  // Connect serial input ports to typed output ports
495  // ----------------------------------------------------------------------
496 
499  FwIndexType portNum,
500  Fw::InputSerializePort* port
501  );
502 
505  FwIndexType portNum,
506  Fw::InputSerializePort* port
507  );
508 
511  FwIndexType portNum,
512  Fw::InputSerializePort* port
513  );
514 
517  FwIndexType portNum,
518  Fw::InputSerializePort* port
519  );
520 
523  FwIndexType portNum,
524  Fw::InputSerializePort* port
525  );
526 
527 #endif
528 
529  public:
530 
531  // ----------------------------------------------------------------------
532  // Command registration
533  // ----------------------------------------------------------------------
534 
538  void regCommands();
539 
540  public:
541 
542  // ----------------------------------------------------------------------
543  // Parameter loading
544  // ----------------------------------------------------------------------
545 
549  void loadParameters();
550 
551  protected:
552 
553  // ----------------------------------------------------------------------
554  // Component construction and destruction
555  // ----------------------------------------------------------------------
556 
559  const char* compName = ""
560  );
561 
563  virtual ~CfdpManagerComponentBase();
564 
565  protected:
566 
567  // ----------------------------------------------------------------------
568  // Getters for numbers of special input ports
569  // ----------------------------------------------------------------------
570 
575  return NUM_CMDIN_INPUT_PORTS;
576  }
577 
578  protected:
579 
580  // ----------------------------------------------------------------------
581  // Getters for numbers of typed input ports
582  // ----------------------------------------------------------------------
583 
588  return NUM_DATAIN_INPUT_PORTS;
589  }
590 
596  }
597 
602  return NUM_FILEIN_INPUT_PORTS;
603  }
604 
609  return NUM_PINGIN_INPUT_PORTS;
610  }
611 
616  return NUM_RUN1HZ_INPUT_PORTS;
617  }
618 
619  protected:
620 
621  // ----------------------------------------------------------------------
622  // Getters for numbers of special output ports
623  // ----------------------------------------------------------------------
624 
630  }
631 
637  }
638 
644  }
645 
646 #if FW_ENABLE_TEXT_LOGGING == 1
647 
651  static constexpr FwIndexType getNum_logTextOut_OutputPorts() {
653  }
654 
655 #endif
656 
662  }
663 
669  }
670 
676  }
677 
683  }
684 
685  protected:
686 
687  // ----------------------------------------------------------------------
688  // Getters for numbers of typed output ports
689  // ----------------------------------------------------------------------
690 
696  }
697 
703  }
704 
710  }
711 
717  }
718 
724  }
725 
731  }
732 
733  protected:
734 
735  // ----------------------------------------------------------------------
736  // Connection status queries for special output ports
737  // ----------------------------------------------------------------------
738 
743  FwIndexType portNum
744  ) const;
745 
750  FwIndexType portNum
751  ) const;
752 
757  FwIndexType portNum
758  ) const;
759 
760 #if FW_ENABLE_TEXT_LOGGING == 1
761 
765  bool isConnected_logTextOut_OutputPort(
766  FwIndexType portNum
767  ) const;
768 
769 #endif
770 
775  FwIndexType portNum
776  ) const;
777 
782  FwIndexType portNum
783  ) const;
784 
789  FwIndexType portNum
790  ) const;
791 
796  FwIndexType portNum
797  ) const;
798 
799  protected:
800 
801  // ----------------------------------------------------------------------
802  // Connection status queries for typed output ports
803  // ----------------------------------------------------------------------
804 
809  FwIndexType portNum
810  ) const;
811 
816  FwIndexType portNum
817  ) const;
818 
823  FwIndexType portNum
824  ) const;
825 
830  FwIndexType portNum
831  ) const;
832 
837  FwIndexType portNum
838  ) const;
839 
844  FwIndexType portNum
845  ) const;
846 
847 #if FW_DIRECT_PORT_CALLS
848  public:
849 #else
850  protected:
851 #endif
852 
853  // ----------------------------------------------------------------------
854  // Port handler base-class functions for special input ports
855  //
856  // Call these functions directly to bypass the corresponding ports
857  // ----------------------------------------------------------------------
858 
860  void cmdIn_handlerBase(
861  FwIndexType portNum,
862  FwOpcodeType opCode,
863  U32 cmdSeq,
864  Fw::CmdArgBuffer& args
865  );
866 
867  protected:
868 
869  // ----------------------------------------------------------------------
870  // Handlers to implement for typed input ports
871  // ----------------------------------------------------------------------
872 
874  virtual void dataIn_handler(
875  FwIndexType portNum,
876  Fw::Buffer& fwBuffer
877  ) = 0;
878 
880  virtual void dataReturnIn_handler(
881  FwIndexType portNum,
882  Fw::Buffer& fwBuffer
883  ) = 0;
884 
887  FwIndexType portNum,
888  const Fw::StringBase& sourceFileName,
889  const Fw::StringBase& destFileName,
890  U32 offset,
891  U32 length
892  ) = 0;
893 
895  virtual void pingIn_handler(
896  FwIndexType portNum,
897  U32 key
898  ) = 0;
899 
901  virtual void run1Hz_handler(
902  FwIndexType portNum,
903  U32 context
904  ) = 0;
905 
906 #if FW_DIRECT_PORT_CALLS
907  public:
908 #else
909  protected:
910 #endif
911 
912  // ----------------------------------------------------------------------
913  // Port handler base-class functions for typed input ports
914  //
915  // Call these functions directly to bypass the corresponding ports
916  // ----------------------------------------------------------------------
917 
919  void dataIn_handlerBase(
920  FwIndexType portNum,
921  Fw::Buffer& fwBuffer
922  );
923 
926  FwIndexType portNum,
927  Fw::Buffer& fwBuffer
928  );
929 
932  FwIndexType portNum,
933  const Fw::StringBase& sourceFileName,
934  const Fw::StringBase& destFileName,
935  U32 offset,
936  U32 length
937  );
938 
940  void pingIn_handlerBase(
941  FwIndexType portNum,
942  U32 key
943  );
944 
946  void run1Hz_handlerBase(
947  FwIndexType portNum,
948  U32 context
949  );
950 
951  protected:
952 
953  // ----------------------------------------------------------------------
954  // Pre-message hooks for typed async input ports
955  //
956  // Each of these functions is invoked just before processing a message
957  // on the corresponding port. By default, they do nothing. You can
958  // override them to provide specific pre-message behavior.
959  // ----------------------------------------------------------------------
960 
962  virtual void dataIn_preMsgHook(
963  FwIndexType portNum,
964  Fw::Buffer& fwBuffer
965  );
966 
968  virtual void dataReturnIn_preMsgHook(
969  FwIndexType portNum,
970  Fw::Buffer& fwBuffer
971  );
972 
974  virtual void pingIn_preMsgHook(
975  FwIndexType portNum,
976  U32 key
977  );
978 
980  virtual void run1Hz_preMsgHook(
981  FwIndexType portNum,
982  U32 context
983  );
984 
985  protected:
986 
987  // ----------------------------------------------------------------------
988  // Invocation functions for typed output ports
989  // ----------------------------------------------------------------------
990 
993  FwIndexType portNum,
994  FwSizeType size
995  ) const;
996 
999  FwIndexType portNum,
1000  Fw::Buffer& fwBuffer
1001  ) const;
1002 
1004  void dataInReturn_out(
1005  FwIndexType portNum,
1006  Fw::Buffer& fwBuffer
1007  ) const;
1008 
1010  void dataOut_out(
1011  FwIndexType portNum,
1012  Fw::Buffer& fwBuffer
1013  ) const;
1014 
1016  void fileDoneOut_out(
1017  FwIndexType portNum,
1018  const Svc::SendFileResponse& resp
1019  ) const;
1020 
1022  void pingOut_out(
1023  FwIndexType portNum,
1024  U32 key
1025  ) const;
1026 
1027  protected:
1028 
1029  // ----------------------------------------------------------------------
1030  // Command response
1031  // ----------------------------------------------------------------------
1032 
1034  void cmdResponse_out(
1035  FwOpcodeType opCode,
1036  U32 cmdSeq,
1037  Fw::CmdResponse response
1038  );
1039 
1040  protected:
1041 
1042  // ----------------------------------------------------------------------
1043  // Command handlers to implement
1044  // ----------------------------------------------------------------------
1045 
1049  virtual void SendFile_cmdHandler(
1050  FwOpcodeType opCode,
1051  U32 cmdSeq,
1052  U8 channelId,
1054  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1055  const Svc::Ccsds::Cfdp::Keep& keep,
1056  U8 priority,
1057  const Fw::CmdStringArg& sourceFileName,
1058  const Fw::CmdStringArg& destFileName
1059  ) = 0;
1060 
1064  virtual void PlaybackDirectory_cmdHandler(
1065  FwOpcodeType opCode,
1066  U32 cmdSeq,
1067  U8 channelId,
1069  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1070  const Svc::Ccsds::Cfdp::Keep& keep,
1071  U8 priority,
1072  const Fw::CmdStringArg& sourceDirectory,
1073  const Fw::CmdStringArg& destDirectory
1074  ) = 0;
1075 
1079  virtual void PollDirectory_cmdHandler(
1080  FwOpcodeType opCode,
1081  U32 cmdSeq,
1082  U8 channelId,
1083  U8 pollId,
1085  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1086  U8 priority,
1087  U32 interval,
1088  const Fw::CmdStringArg& sourceDirectory,
1089  const Fw::CmdStringArg& destDirectory
1090  ) = 0;
1091 
1095  virtual void StopPollDirectory_cmdHandler(
1096  FwOpcodeType opCode,
1097  U32 cmdSeq,
1098  U8 channelId,
1099  U8 pollId
1100  ) = 0;
1101 
1105  virtual void SetChannelFlow_cmdHandler(
1106  FwOpcodeType opCode,
1107  U32 cmdSeq,
1108  U8 channelId,
1109  const Svc::Ccsds::Cfdp::Flow& freeze
1110  ) = 0;
1111 
1116  FwOpcodeType opCode,
1117  U32 cmdSeq,
1118  U8 channelId,
1119  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1120  Svc::Ccsds::Cfdp::EntityId entityId,
1121  const Svc::Ccsds::Cfdp::SuspendResume& action
1122  ) = 0;
1123 
1127  virtual void CancelTransaction_cmdHandler(
1128  FwOpcodeType opCode,
1129  U32 cmdSeq,
1130  U8 channelId,
1131  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1132  Svc::Ccsds::Cfdp::EntityId entityId
1133  ) = 0;
1134 
1138  virtual void AbandonTransaction_cmdHandler(
1139  FwOpcodeType opCode,
1140  U32 cmdSeq,
1141  U8 channelId,
1142  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1143  Svc::Ccsds::Cfdp::EntityId entityId
1144  ) = 0;
1145 
1149  virtual void ResetCounters_cmdHandler(
1150  FwOpcodeType opCode,
1151  U32 cmdSeq,
1152  U8 channelId
1153  ) = 0;
1154 
1155  protected:
1156 
1157  // ----------------------------------------------------------------------
1158  // Command handler base-class functions
1159  //
1160  // Call these functions directly to bypass the command input port
1161  // ----------------------------------------------------------------------
1162 
1167  FwOpcodeType opCode,
1168  U32 cmdSeq,
1169  Fw::CmdArgBuffer& args
1170  );
1171 
1176  FwOpcodeType opCode,
1177  U32 cmdSeq,
1178  Fw::CmdArgBuffer& args
1179  );
1180 
1185  FwOpcodeType opCode,
1186  U32 cmdSeq,
1187  Fw::CmdArgBuffer& args
1188  );
1189 
1194  FwOpcodeType opCode,
1195  U32 cmdSeq,
1196  Fw::CmdArgBuffer& args
1197  );
1198 
1203  FwOpcodeType opCode,
1204  U32 cmdSeq,
1205  Fw::CmdArgBuffer& args
1206  );
1207 
1212  FwOpcodeType opCode,
1213  U32 cmdSeq,
1214  Fw::CmdArgBuffer& args
1215  );
1216 
1221  FwOpcodeType opCode,
1222  U32 cmdSeq,
1223  Fw::CmdArgBuffer& args
1224  );
1225 
1230  FwOpcodeType opCode,
1231  U32 cmdSeq,
1232  Fw::CmdArgBuffer& args
1233  );
1234 
1239  FwOpcodeType opCode,
1240  U32 cmdSeq,
1241  Fw::CmdArgBuffer& args
1242  );
1243 
1244  protected:
1245 
1246  // ----------------------------------------------------------------------
1247  // Pre-message hooks for async commands
1248  //
1249  // Each of these functions is invoked just before processing the
1250  // corresponding command. By default they do nothing. You can
1251  // override them to provide specific pre-command behavior.
1252  // ----------------------------------------------------------------------
1253 
1255  virtual void SendFile_preMsgHook(
1256  FwOpcodeType opCode,
1257  U32 cmdSeq
1258  );
1259 
1261  virtual void PlaybackDirectory_preMsgHook(
1262  FwOpcodeType opCode,
1263  U32 cmdSeq
1264  );
1265 
1267  virtual void PollDirectory_preMsgHook(
1268  FwOpcodeType opCode,
1269  U32 cmdSeq
1270  );
1271 
1273  virtual void StopPollDirectory_preMsgHook(
1274  FwOpcodeType opCode,
1275  U32 cmdSeq
1276  );
1277 
1279  virtual void SetChannelFlow_preMsgHook(
1280  FwOpcodeType opCode,
1281  U32 cmdSeq
1282  );
1283 
1286  FwOpcodeType opCode,
1287  U32 cmdSeq
1288  );
1289 
1291  virtual void CancelTransaction_preMsgHook(
1292  FwOpcodeType opCode,
1293  U32 cmdSeq
1294  );
1295 
1297  virtual void AbandonTransaction_preMsgHook(
1298  FwOpcodeType opCode,
1299  U32 cmdSeq
1300  );
1301 
1303  virtual void ResetCounters_preMsgHook(
1304  FwOpcodeType opCode,
1305  U32 cmdSeq
1306  );
1307 
1308  protected:
1309 
1310  // ----------------------------------------------------------------------
1311  // Event logging functions
1312  // ----------------------------------------------------------------------
1313 
1315  void log_WARNING_LO_BuffersExhausted() const;
1316 
1319  U8 channelId,
1320  U8 maxChannelId
1321  ) const;
1322 
1325  const Fw::StringBase& sourceFileName,
1326  U32 transactionSeq
1327  ) const;
1328 
1331  U32 offset,
1332  U32 length
1333  ) const;
1334 
1337  const Fw::StringBase& sourceFileName
1338  ) const;
1339 
1342  const Fw::StringBase& sourceDirectory
1343  ) const;
1344 
1347  const Fw::StringBase& sourceDirectory,
1348  U8 pollId
1349  ) const;
1350 
1353  U8 channelId,
1354  U8 pollId
1355  ) const;
1356 
1359  U8 channelId,
1360  U8 pollId
1361  ) const;
1362 
1365  U8 channelId,
1366  U8 pollId
1367  ) const;
1368 
1371  U8 channelId,
1372  const Svc::Ccsds::Cfdp::Flow& flowState
1373  ) const;
1374 
1377  U8 pollId,
1378  U8 maxPollId
1379  ) const;
1380 
1383  U32 interval
1384  ) const;
1385 
1388  const Fw::StringBase& srcFile,
1389  const Fw::StringBase& moveDir,
1390  I32 status
1391  ) const;
1392 
1395  const Fw::StringBase& srcFile,
1396  const Fw::StringBase& failDir,
1397  I32 status
1398  ) const;
1399 
1402  U8 channelId,
1403  I32 status
1404  ) const;
1405 
1408  U8 channelId,
1409  const Svc::Ccsds::Cfdp::PduTypeEnum& pduType,
1410  I32 status
1411  ) const;
1412 
1415  U8 channelId,
1416  I32 status
1417  ) const;
1418 
1421  U8 channelId,
1422  I32 status
1423  ) const;
1424 
1427  U8 channelId,
1428  I32 status
1429  ) const;
1430 
1433  U8 channelId,
1434  I32 status
1435  ) const;
1436 
1439  U8 channelId,
1440  I32 status
1441  ) const;
1442 
1445  U8 channelId,
1446  I32 status
1447  ) const;
1448 
1451  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1452  U32 srcEid,
1453  U32 seqNum
1454  ) const;
1455 
1458  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1459  U32 srcEid,
1460  U32 seqNum,
1461  const Fw::StringBase& filename
1462  ) const;
1463 
1466  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1467  U32 srcEid,
1468  U32 seqNum,
1469  const Fw::StringBase& filename,
1470  I32 status
1471  ) const;
1472 
1475  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1476  U32 srcEid,
1477  U32 seqNum,
1478  U32 expected,
1479  U32 actual
1480  ) const;
1481 
1484  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1485  U32 srcEid,
1486  U32 seqNum
1487  ) const;
1488 
1491  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1492  U32 srcEid,
1493  U32 seqNum,
1494  U32 offset,
1495  I32 status
1496  ) const;
1497 
1500  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1501  U32 srcEid,
1502  U32 seqNum,
1503  U32 expected,
1504  I32 actual
1505  ) const;
1506 
1509  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1510  U32 srcEid,
1511  U32 seqNum,
1512  U32 offset,
1513  U32 dataSize,
1514  U32 fileSize
1515  ) const;
1516 
1519  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1520  U32 srcEid,
1521  U32 seqNum,
1522  U32 expected,
1523  U32 actual
1524  ) const;
1525 
1528  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1529  U32 srcEid,
1530  U32 seqNum
1531  ) const;
1532 
1535  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1536  U32 srcEid,
1537  U32 seqNum,
1538  U8 conditionCode
1539  ) const;
1540 
1543  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1544  U32 srcEid,
1545  U32 seqNum,
1546  U32 offset,
1547  I32 status
1548  ) const;
1549 
1552  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1553  U32 srcEid,
1554  U32 seqNum,
1555  U32 expected,
1556  I32 actual
1557  ) const;
1558 
1561  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1562  U32 srcEid,
1563  U32 seqNum,
1564  U32 mdSize,
1565  U32 eofSize
1566  ) const;
1567 
1570  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1571  U32 srcEid,
1572  U32 seqNum,
1573  const Fw::StringBase& tempFile,
1574  const Fw::StringBase& finalFile,
1575  I32 status
1576  ) const;
1577 
1580  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1581  U32 srcEid,
1582  U32 seqNum,
1583  const Fw::StringBase& filename,
1584  I32 status
1585  ) const;
1586 
1589  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1590  U32 srcEid,
1591  U32 seqNum
1592  ) const;
1593 
1596  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1597  U32 srcEid,
1598  U32 seqNum,
1599  U8 directiveCode,
1600  U8 substate
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;
1616 
1619  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1620  U32 srcEid,
1621  U32 seqNum,
1622  const Fw::StringBase& filename
1623  ) const;
1624 
1627  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1628  U32 srcEid,
1629  U32 seqNum,
1630  const Fw::StringBase& filename,
1631  I32 status
1632  ) const;
1633 
1636  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1637  U32 srcEid,
1638  U32 seqNum,
1639  I32 status
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  ) const;
1662 
1665  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1666  U32 srcEid,
1667  U32 seqNum,
1668  U32 badCount
1669  ) const;
1670 
1673  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1674  U32 srcEid,
1675  U32 seqNum
1676  ) const;
1677 
1680  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1681  U32 srcEid,
1682  U32 seqNum,
1683  U8 directiveCode,
1684  U8 substate
1685  ) const;
1686 
1689  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1690  U32 seqNum,
1691  U32 srcEid,
1692  const Fw::StringBase& srcFile,
1693  U32 destEid,
1694  const Fw::StringBase& destFile,
1695  U32 fileSize
1696  ) const;
1697 
1700  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1701  U32 seqNum,
1702  U32 srcEid,
1703  const Fw::StringBase& srcFile,
1704  U32 destEid,
1705  const Fw::StringBase& destFile,
1706  U32 fileSize
1707  ) const;
1708 
1711  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1712  U32 seqNum,
1713  U32 srcEid,
1714  const Fw::StringBase& srcFile,
1715  U32 destEid,
1716  const Fw::StringBase& destFile,
1717  U8 conditionCode
1718  ) const;
1719 
1722  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1723  U32 seqNum,
1724  U32 srcEid,
1725  const Fw::StringBase& srcFile,
1726  U32 destEid,
1727  const Fw::StringBase& destFile,
1728  U32 fileSize
1729  ) const;
1730 
1733  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1734  U32 seqNum,
1735  U32 srcEid,
1736  const Fw::StringBase& srcFile,
1737  U32 destEid,
1738  const Fw::StringBase& destFile,
1739  U8 conditionCode
1740  ) const;
1741 
1744  const Fw::StringBase& srcFile,
1745  const Fw::StringBase& destFile,
1746  U32 transactionSeq
1747  ) const;
1748 
1751 
1754  U32 transactionSeq
1755  ) const;
1756 
1759 
1762  U32 srcEid,
1763  U32 transactionSeq
1764  ) const;
1765 
1768  U32 destEid
1769  ) const;
1770 
1773 
1776  const Fw::StringBase& directory,
1777  I32 status
1778  ) const;
1779 
1782 
1785  U8 channelId,
1786  U32 transactionSeq
1787  ) const;
1788 
1791  const Fw::StringBase& directory,
1792  I32 status
1793  ) const;
1794 
1797 
1800  const Fw::StringBase& filename,
1801  I32 status
1802  ) const;
1803 
1808  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1809  Svc::Ccsds::Cfdp::EntityId entityId
1810  ) const;
1811 
1816  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1817  Svc::Ccsds::Cfdp::EntityId entityId
1818  ) const;
1819 
1824  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1825  Svc::Ccsds::Cfdp::EntityId entityId
1826  ) const;
1827 
1832  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1833  Svc::Ccsds::Cfdp::EntityId entityId
1834  ) const;
1835 
1840  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1841  Svc::Ccsds::Cfdp::EntityId entityId
1842  ) const;
1843 
1846  U8 channelId
1847  ) const;
1848 
1856  ) const;
1857 
1858  protected:
1859 
1860  // ----------------------------------------------------------------------
1861  // Telemetry serialized write
1862  // ----------------------------------------------------------------------
1863 
1868  void tlmWrite(
1869  FwChanIdType id,
1870  Fw::TlmBuffer& _tlmBuff,
1871  Fw::Time _tlmTime = Fw::Time()
1872  ) const;
1873 
1874  protected:
1875 
1876  // ----------------------------------------------------------------------
1877  // Telemetry write functions
1878  // ----------------------------------------------------------------------
1879 
1887  Fw::Time _tlmTime = Fw::Time()
1888  ) const;
1889 
1890  protected:
1891 
1892  // ----------------------------------------------------------------------
1893  // Parameter hook functions
1894  // ----------------------------------------------------------------------
1895 
1899  virtual void parameterUpdated(
1900  FwPrmIdType id
1901  );
1902 
1906  virtual void parametersLoaded();
1907 
1908  protected:
1909 
1910  // ----------------------------------------------------------------------
1911  // Parameter get functions
1912  // ----------------------------------------------------------------------
1913 
1920  Fw::ParamValid& valid
1921  );
1922 
1929  Fw::ParamValid& valid
1930  );
1931 
1938  Fw::ParamValid& valid
1939  );
1940 
1948  Fw::ParamValid& valid
1949  );
1950 
1957  Fw::ParamValid& valid
1958  );
1959 
1966  Fw::ParamValid& valid
1967  );
1968 
1975  Fw::ParamValid& valid
1976  );
1977 
1984  Fw::ParamValid& valid
1985  );
1986 
1993  Fw::ParamValid& valid
1994  );
1995 
2002  Fw::ParamValid& valid
2003  );
2004 
2005  protected:
2006 
2007  // ----------------------------------------------------------------------
2008  // Time
2009  // ----------------------------------------------------------------------
2010 
2014  Fw::Time getTime() const;
2015 
2016  protected:
2017 
2018  // ----------------------------------------------------------------------
2019  // Mutex operations for guarded ports
2020  //
2021  // You can override these operations to provide more sophisticated
2022  // synchronization
2023  // ----------------------------------------------------------------------
2024 
2026  virtual void lock();
2027 
2029  virtual void unLock();
2030 
2031  private:
2032 
2033  // ----------------------------------------------------------------------
2034  // Message dispatch functions
2035  // ----------------------------------------------------------------------
2036 
2038  virtual MsgDispatchStatus doDispatch();
2039 
2040  private:
2041 
2042  // ----------------------------------------------------------------------
2043  // Calls for messages received on special input ports
2044  // ----------------------------------------------------------------------
2045 
2047  static void m_p_cmdIn_in(
2048  Fw::PassiveComponentBase* callComp,
2049  FwIndexType portNum,
2050  FwOpcodeType opCode,
2051  U32 cmdSeq,
2052  Fw::CmdArgBuffer& args
2053  );
2054 
2055  private:
2056 
2057  // ----------------------------------------------------------------------
2058  // Calls for messages received on typed input ports
2059  // ----------------------------------------------------------------------
2060 
2062  static void m_p_dataIn_in(
2063  Fw::PassiveComponentBase* callComp,
2064  FwIndexType portNum,
2065  Fw::Buffer& fwBuffer
2066  );
2067 
2069  static void m_p_dataReturnIn_in(
2070  Fw::PassiveComponentBase* callComp,
2071  FwIndexType portNum,
2072  Fw::Buffer& fwBuffer
2073  );
2074 
2076  static Svc::SendFileResponse m_p_fileIn_in(
2077  Fw::PassiveComponentBase* callComp,
2078  FwIndexType portNum,
2079  const Fw::StringBase& sourceFileName,
2080  const Fw::StringBase& destFileName,
2081  U32 offset,
2082  U32 length
2083  );
2084 
2086  static void m_p_pingIn_in(
2087  Fw::PassiveComponentBase* callComp,
2088  FwIndexType portNum,
2089  U32 key
2090  );
2091 
2093  static void m_p_run1Hz_in(
2094  Fw::PassiveComponentBase* callComp,
2095  FwIndexType portNum,
2096  U32 context
2097  );
2098 
2099  private:
2100 
2101  // ----------------------------------------------------------------------
2102  // Invocation functions for special output ports
2103  // ----------------------------------------------------------------------
2104 
2106  void cmdRegOut_out(
2107  FwIndexType portNum,
2108  FwOpcodeType opCode
2109  ) const;
2110 
2112  void cmdResponseOut_out(
2113  FwIndexType portNum,
2114  FwOpcodeType opCode,
2115  U32 cmdSeq,
2116  const Fw::CmdResponse& response
2117  ) const;
2118 
2120  void logOut_out(
2121  FwIndexType portNum,
2122  FwEventIdType id,
2123  Fw::Time& timeTag,
2124  const Fw::LogSeverity& severity,
2125  Fw::LogBuffer& args
2126  ) const;
2127 
2128 #if FW_ENABLE_TEXT_LOGGING
2129 
2131  void logTextOut_out(
2132  FwIndexType portNum,
2133  FwEventIdType id,
2134  Fw::Time& timeTag,
2135  const Fw::LogSeverity& severity,
2136  Fw::TextLogString& text
2137  ) const;
2138 
2139 #endif
2140 
2142  Fw::ParamValid prmGetOut_out(
2143  FwIndexType portNum,
2144  FwPrmIdType id,
2145  Fw::ParamBuffer& val
2146  ) const;
2148 
2150  void prmSetOut_out(
2151  FwIndexType portNum,
2152  FwPrmIdType id,
2153  Fw::ParamBuffer& val
2154  ) const;
2155 
2157  void timeCaller_out(
2158  FwIndexType portNum,
2159  Fw::Time& time
2160  ) const;
2161 
2163  void tlmOut_out(
2164  FwIndexType portNum,
2165  FwChanIdType id,
2166  Fw::Time& timeTag,
2167  Fw::TlmBuffer& val
2168  ) const;
2169 
2170  private:
2171 
2172  // ----------------------------------------------------------------------
2173  // Parameter set functions
2174  // ----------------------------------------------------------------------
2175 
2179  Fw::CmdResponse paramSet_LocalEid(
2180  Fw::SerialBufferBase& val
2181  );
2182 
2186  Fw::CmdResponse paramSet_OutgoingFileChunkSize(
2187  Fw::SerialBufferBase& val
2188  );
2189 
2193  Fw::CmdResponse paramSet_RxCrcCalcBytesPerCycle(
2194  Fw::SerialBufferBase& val
2195  );
2196 
2200  Fw::CmdResponse paramSet_PostInactivitySendRetries(
2201  Fw::SerialBufferBase& val
2202  );
2203 
2207  Fw::CmdResponse paramSet_FileInDefaultChannel(
2208  Fw::SerialBufferBase& val
2209  );
2210 
2214  Fw::CmdResponse paramSet_FileInDefaultDestEntityId(
2215  Fw::SerialBufferBase& val
2216  );
2217 
2221  Fw::CmdResponse paramSet_FileInDefaultClass(
2222  Fw::SerialBufferBase& val
2223  );
2224 
2228  Fw::CmdResponse paramSet_FileInDefaultKeep(
2229  Fw::SerialBufferBase& val
2230  );
2231 
2235  Fw::CmdResponse paramSet_FileInDefaultPriority(
2236  Fw::SerialBufferBase& val
2237  );
2238 
2242  Fw::CmdResponse paramSet_ChannelConfig(
2243  Fw::SerialBufferBase& val
2244  );
2245 
2246  private:
2247 
2248  // ----------------------------------------------------------------------
2249  // Parameter save functions
2250  // ----------------------------------------------------------------------
2251 
2255  Fw::CmdResponse paramSave_LocalEid();
2256 
2260  Fw::CmdResponse paramSave_OutgoingFileChunkSize();
2261 
2265  Fw::CmdResponse paramSave_RxCrcCalcBytesPerCycle();
2266 
2270  Fw::CmdResponse paramSave_PostInactivitySendRetries();
2271 
2275  Fw::CmdResponse paramSave_FileInDefaultChannel();
2276 
2280  Fw::CmdResponse paramSave_FileInDefaultDestEntityId();
2281 
2285  Fw::CmdResponse paramSave_FileInDefaultClass();
2286 
2290  Fw::CmdResponse paramSave_FileInDefaultKeep();
2291 
2295  Fw::CmdResponse paramSave_FileInDefaultPriority();
2296 
2300  Fw::CmdResponse paramSave_ChannelConfig();
2301 
2302 #if !FW_DIRECT_PORT_CALLS
2303 
2304  private:
2305 
2306  // ----------------------------------------------------------------------
2307  // Special input ports
2308  // ----------------------------------------------------------------------
2309 
2311  Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
2312 
2313 #endif
2314 
2315 #if !FW_DIRECT_PORT_CALLS
2316 
2317  private:
2318 
2319  // ----------------------------------------------------------------------
2320  // Typed input ports
2321  // ----------------------------------------------------------------------
2322 
2324  Fw::InputBufferSendPort m_dataIn_InputPort[NUM_DATAIN_INPUT_PORTS];
2325 
2327  Fw::InputBufferSendPort m_dataReturnIn_InputPort[NUM_DATARETURNIN_INPUT_PORTS];
2328 
2331 
2333  Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
2334 
2336  Svc::InputSchedPort m_run1Hz_InputPort[NUM_RUN1HZ_INPUT_PORTS];
2337 
2338 #endif
2339 
2340 #if !FW_DIRECT_PORT_CALLS
2341 
2342  private:
2343 
2344  // ----------------------------------------------------------------------
2345  // Special output ports
2346  // ----------------------------------------------------------------------
2347 
2349  Fw::OutputCmdRegPort m_cmdRegOut_OutputPort[NUM_CMDREGOUT_OUTPUT_PORTS];
2350 
2352  Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS];
2353 
2355  Fw::OutputLogPort m_logOut_OutputPort[NUM_LOGOUT_OUTPUT_PORTS];
2356 
2357 #if FW_ENABLE_TEXT_LOGGING == 1
2358 
2360  Fw::OutputLogTextPort m_logTextOut_OutputPort[NUM_LOGTEXTOUT_OUTPUT_PORTS];
2361 
2362 #endif
2363 
2365  Fw::OutputPrmGetPort m_prmGetOut_OutputPort[NUM_PRMGETOUT_OUTPUT_PORTS];
2366 
2368  Fw::OutputPrmSetPort m_prmSetOut_OutputPort[NUM_PRMSETOUT_OUTPUT_PORTS];
2369 
2371  Fw::OutputTimePort m_timeCaller_OutputPort[NUM_TIMECALLER_OUTPUT_PORTS];
2372 
2374  Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
2375 
2376 #endif
2377 
2378 #if !FW_DIRECT_PORT_CALLS
2379 
2380  private:
2381 
2382  // ----------------------------------------------------------------------
2383  // Typed output ports
2384  // ----------------------------------------------------------------------
2385 
2387  Fw::OutputBufferGetPort m_bufferAllocate_OutputPort[NUM_BUFFERALLOCATE_OUTPUT_PORTS];
2388 
2390  Fw::OutputBufferSendPort m_bufferDeallocate_OutputPort[NUM_BUFFERDEALLOCATE_OUTPUT_PORTS];
2391 
2393  Fw::OutputBufferSendPort m_dataInReturn_OutputPort[NUM_DATAINRETURN_OUTPUT_PORTS];
2394 
2396  Fw::OutputBufferSendPort m_dataOut_OutputPort[NUM_DATAOUT_OUTPUT_PORTS];
2397 
2400 
2402  Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
2403 
2404 #endif
2405 
2406  private:
2407 
2408  // ----------------------------------------------------------------------
2409  // Parameter validity flags
2410  // ----------------------------------------------------------------------
2411 
2413  Fw::ParamValid m_param_LocalEid_valid = Fw::ParamValid::UNINIT;
2414 
2416  Fw::ParamValid m_param_OutgoingFileChunkSize_valid = Fw::ParamValid::UNINIT;
2417 
2419  Fw::ParamValid m_param_RxCrcCalcBytesPerCycle_valid = Fw::ParamValid::UNINIT;
2420 
2422  Fw::ParamValid m_param_PostInactivitySendRetries_valid = Fw::ParamValid::UNINIT;
2423 
2425  Fw::ParamValid m_param_FileInDefaultChannel_valid = Fw::ParamValid::UNINIT;
2426 
2428  Fw::ParamValid m_param_FileInDefaultDestEntityId_valid = Fw::ParamValid::UNINIT;
2429 
2431  Fw::ParamValid m_param_FileInDefaultClass_valid = Fw::ParamValid::UNINIT;
2432 
2434  Fw::ParamValid m_param_FileInDefaultKeep_valid = Fw::ParamValid::UNINIT;
2435 
2437  Fw::ParamValid m_param_FileInDefaultPriority_valid = Fw::ParamValid::UNINIT;
2438 
2440  Fw::ParamValid m_param_ChannelConfig_valid = Fw::ParamValid::UNINIT;
2441 
2442  private:
2443 
2444  // ----------------------------------------------------------------------
2445  // Parameter variables
2446  // ----------------------------------------------------------------------
2447 
2451  Svc::Ccsds::Cfdp::EntityId m_LocalEid;
2452 
2456  U32 m_OutgoingFileChunkSize;
2457 
2461  U32 m_RxCrcCalcBytesPerCycle;
2462 
2467  U8 m_PostInactivitySendRetries;
2468 
2472  U8 m_FileInDefaultChannel;
2473 
2477  Svc::Ccsds::Cfdp::EntityId m_FileInDefaultDestEntityId;
2478 
2482  Svc::Ccsds::Cfdp::Class m_FileInDefaultClass;
2483 
2487  Svc::Ccsds::Cfdp::Keep m_FileInDefaultKeep;
2488 
2492  U8 m_FileInDefaultPriority;
2493 
2497  Svc::Ccsds::Cfdp::ChannelArrayParams m_ChannelConfig;
2498 
2499  private:
2500 
2501  // ----------------------------------------------------------------------
2502  // Mutexes
2503  // ----------------------------------------------------------------------
2504 
2506  Os::Mutex m_guardedPortMutex;
2507 
2509  Os::Mutex m_paramLock;
2510 
2511  };
2512 
2513  }
2514 
2515  }
2516 
2517 }
2518 
2519 #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
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.
Parameter configuration for an array CFDP channels.
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_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)
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].
Default CFDP class for fileIn port-initiated file transfers.
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.
Command to cancel a transaction with graceful close-out.
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()
Default priority for fileIn port-initiated file transfers.
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.
The maximum number of received bytes to calculate a CRC for in a single scheduler cycle...
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.
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.
void log_ACTIVITY_LO_PollDirInitiated(const Fw::StringBase &sourceDirectory, U8 pollId) const
Log event PollDirInitiated.
static constexpr FwIndexType getNum_run1Hz_InputPorts()
Default destination entity ID for fileIn port-initiated file transfers.
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.
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.
Default CFDP channel for fileIn port-initiated file transfers.
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.
Default file retention policy for fileIn port-initiated file transfers.
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
CFDP ID to denote the current node when sending PDUs.
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.