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"
46 #include "Svc/Ping/PingPortAc.hpp"
52 
53 namespace Svc {
54 
55  namespace Ccsds {
56 
57  namespace Cfdp {
58 
65  {
66 
67  // ----------------------------------------------------------------------
68  // Friend classes
69  // ----------------------------------------------------------------------
70 
72  friend class CfdpManagerTesterBase;
74  friend class CfdpManagerTester;
75 
76  protected:
77 
78  // ----------------------------------------------------------------------
79  // Constants
80  // ----------------------------------------------------------------------
81 
83  enum {
85  };
86 
88  enum {
94  };
95 
97  enum {
106  };
107 
109  enum {
116  };
117 
119  enum {
149  };
150 
152  enum {
235  };
237 
239  enum {
251  };
252 
254  enum {
268  };
269 
270  public:
271 
272  // ----------------------------------------------------------------------
273  // Component initialization
274  // ----------------------------------------------------------------------
275 
277  void init(
278  FwSizeType queueDepth,
279  FwEnumStoreType instance = 0
280  );
281 
282 #if !FW_DIRECT_PORT_CALLS
283 
284  public:
285 
286  // ----------------------------------------------------------------------
287  // Getters for special input ports
288  // ----------------------------------------------------------------------
289 
294  FwIndexType portNum
295  );
296 
297 #endif
298 
299 #if !FW_DIRECT_PORT_CALLS
300 
301  public:
302 
303  // ----------------------------------------------------------------------
304  // Getters for typed input ports
305  // ----------------------------------------------------------------------
306 
311  FwIndexType portNum
312  );
313 
318  FwIndexType portNum
319  );
320 
325  FwIndexType portNum
326  );
327 
332  FwIndexType portNum
333  );
334 
339  FwIndexType portNum
340  );
341 
342 #endif
343 
344 #if !FW_DIRECT_PORT_CALLS
345 
346  public:
347 
348  // ----------------------------------------------------------------------
349  // Connect input ports to special output ports
350  // ----------------------------------------------------------------------
351 
354  FwIndexType portNum,
355  Fw::InputCmdRegPort* port
356  );
357 
360  FwIndexType portNum,
362  );
363 
366  FwIndexType portNum,
367  Fw::InputLogPort* port
368  );
369 
370 #if FW_ENABLE_TEXT_LOGGING == 1
371 
373  void set_logTextOut_OutputPort(
374  FwIndexType portNum,
375  Fw::InputLogTextPort* port
376  );
377 
378 #endif
379 
382  FwIndexType portNum,
383  Fw::InputPrmGetPort* port
384  );
385 
388  FwIndexType portNum,
389  Fw::InputPrmSetPort* port
390  );
391 
394  FwIndexType portNum,
395  Fw::InputTimePort* port
396  );
397 
400  FwIndexType portNum,
401  Fw::InputTlmPort* port
402  );
403 
404 #endif
405 
406 #if !FW_DIRECT_PORT_CALLS
407 
408  public:
409 
410  // ----------------------------------------------------------------------
411  // Connect typed input ports to typed output ports
412  // ----------------------------------------------------------------------
413 
416  FwIndexType portNum,
418  );
419 
422  FwIndexType portNum,
424  );
425 
428  FwIndexType portNum,
430  );
431 
434  FwIndexType portNum,
436  );
437 
440  FwIndexType portNum,
442  );
443 
446  FwIndexType portNum,
447  Svc::InputPingPort* port
448  );
449 
450 #endif
451 
452 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
453 
454  public:
455 
456  // ----------------------------------------------------------------------
457  // Connect serial input ports to special output ports
458  // ----------------------------------------------------------------------
459 
462  FwIndexType portNum,
463  Fw::InputSerializePort* port
464  );
465 
468  FwIndexType portNum,
469  Fw::InputSerializePort* port
470  );
471 
474  FwIndexType portNum,
475  Fw::InputSerializePort* port
476  );
477 
478 #if FW_ENABLE_TEXT_LOGGING == 1
479 
481  void set_logTextOut_OutputPort(
482  FwIndexType portNum,
483  Fw::InputSerializePort* port
484  );
485 
486 #endif
487 
490  FwIndexType portNum,
491  Fw::InputSerializePort* port
492  );
493 
496  FwIndexType portNum,
497  Fw::InputSerializePort* port
498  );
499 
502  FwIndexType portNum,
503  Fw::InputSerializePort* port
504  );
505 
506 #endif
507 
508 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
509 
510  public:
511 
512  // ----------------------------------------------------------------------
513  // Connect serial input ports to typed output ports
514  // ----------------------------------------------------------------------
515 
518  FwIndexType portNum,
519  Fw::InputSerializePort* port
520  );
521 
524  FwIndexType portNum,
525  Fw::InputSerializePort* port
526  );
527 
530  FwIndexType portNum,
531  Fw::InputSerializePort* port
532  );
533 
536  FwIndexType portNum,
537  Fw::InputSerializePort* port
538  );
539 
542  FwIndexType portNum,
543  Fw::InputSerializePort* port
544  );
545 
546 #endif
547 
548  public:
549 
550  // ----------------------------------------------------------------------
551  // Command registration
552  // ----------------------------------------------------------------------
553 
557  void regCommands();
558 
559  public:
560 
561  // ----------------------------------------------------------------------
562  // Parameter loading
563  // ----------------------------------------------------------------------
564 
568  void loadParameters();
569 
570  protected:
571 
572  // ----------------------------------------------------------------------
573  // Component construction and destruction
574  // ----------------------------------------------------------------------
575 
578  const char* compName = ""
579  );
580 
582  virtual ~CfdpManagerComponentBase();
583 
584  protected:
585 
586  // ----------------------------------------------------------------------
587  // Getters for numbers of special input ports
588  // ----------------------------------------------------------------------
589 
594  return NUM_CMDIN_INPUT_PORTS;
595  }
596 
597  protected:
598 
599  // ----------------------------------------------------------------------
600  // Getters for numbers of typed input ports
601  // ----------------------------------------------------------------------
602 
607  return NUM_DATAIN_INPUT_PORTS;
608  }
609 
615  }
616 
621  return NUM_FILEIN_INPUT_PORTS;
622  }
623 
628  return NUM_PINGIN_INPUT_PORTS;
629  }
630 
635  return NUM_RUN1HZ_INPUT_PORTS;
636  }
637 
638  protected:
639 
640  // ----------------------------------------------------------------------
641  // Getters for numbers of special output ports
642  // ----------------------------------------------------------------------
643 
649  }
650 
656  }
657 
663  }
664 
665 #if FW_ENABLE_TEXT_LOGGING == 1
666 
670  static constexpr FwIndexType getNum_logTextOut_OutputPorts() {
672  }
673 
674 #endif
675 
681  }
682 
688  }
689 
695  }
696 
702  }
703 
704  protected:
705 
706  // ----------------------------------------------------------------------
707  // Getters for numbers of typed output ports
708  // ----------------------------------------------------------------------
709 
715  }
716 
722  }
723 
729  }
730 
736  }
737 
743  }
744 
750  }
751 
752  protected:
753 
754  // ----------------------------------------------------------------------
755  // Connection status queries for special output ports
756  // ----------------------------------------------------------------------
757 
762  FwIndexType portNum
763  ) const;
764 
769  FwIndexType portNum
770  ) const;
771 
776  FwIndexType portNum
777  ) const;
778 
779 #if FW_ENABLE_TEXT_LOGGING == 1
780 
784  bool isConnected_logTextOut_OutputPort(
785  FwIndexType portNum
786  ) const;
787 
788 #endif
789 
794  FwIndexType portNum
795  ) const;
796 
801  FwIndexType portNum
802  ) const;
803 
808  FwIndexType portNum
809  ) const;
810 
815  FwIndexType portNum
816  ) const;
817 
818  protected:
819 
820  // ----------------------------------------------------------------------
821  // Connection status queries for typed output ports
822  // ----------------------------------------------------------------------
823 
828  FwIndexType portNum
829  ) const;
830 
835  FwIndexType portNum
836  ) const;
837 
842  FwIndexType portNum
843  ) const;
844 
849  FwIndexType portNum
850  ) const;
851 
856  FwIndexType portNum
857  ) const;
858 
863  FwIndexType portNum
864  ) const;
865 
866 #if FW_DIRECT_PORT_CALLS
867  public:
868 #else
869  protected:
870 #endif
871 
872  // ----------------------------------------------------------------------
873  // Port handler base-class functions for special input ports
874  //
875  // Call these functions directly to bypass the corresponding ports
876  // ----------------------------------------------------------------------
877 
879  void cmdIn_handlerBase(
880  FwIndexType portNum,
881  FwOpcodeType opCode,
882  U32 cmdSeq,
883  Fw::CmdArgBuffer& args
884  );
885 
886  protected:
887 
888  // ----------------------------------------------------------------------
889  // Handlers to implement for typed input ports
890  // ----------------------------------------------------------------------
891 
893  virtual void dataIn_handler(
894  FwIndexType portNum,
895  Fw::Buffer& fwBuffer
896  ) = 0;
897 
899  virtual void dataReturnIn_handler(
900  FwIndexType portNum,
901  Fw::Buffer& fwBuffer
902  ) = 0;
903 
906  FwIndexType portNum,
907  const Fw::StringBase& sourceFileName,
908  const Fw::StringBase& destFileName,
909  U32 offset,
910  U32 length
911  ) = 0;
912 
914  virtual void pingIn_handler(
915  FwIndexType portNum,
916  U32 key
917  ) = 0;
918 
920  virtual void run1Hz_handler(
921  FwIndexType portNum,
922  U32 context
923  ) = 0;
924 
925 #if FW_DIRECT_PORT_CALLS
926  public:
927 #else
928  protected:
929 #endif
930 
931  // ----------------------------------------------------------------------
932  // Port handler base-class functions for typed input ports
933  //
934  // Call these functions directly to bypass the corresponding ports
935  // ----------------------------------------------------------------------
936 
938  void dataIn_handlerBase(
939  FwIndexType portNum,
940  Fw::Buffer& fwBuffer
941  );
942 
945  FwIndexType portNum,
946  Fw::Buffer& fwBuffer
947  );
948 
951  FwIndexType portNum,
952  const Fw::StringBase& sourceFileName,
953  const Fw::StringBase& destFileName,
954  U32 offset,
955  U32 length
956  );
957 
959  void pingIn_handlerBase(
960  FwIndexType portNum,
961  U32 key
962  );
963 
965  void run1Hz_handlerBase(
966  FwIndexType portNum,
967  U32 context
968  );
969 
970  protected:
971 
972  // ----------------------------------------------------------------------
973  // Pre-message hooks for typed async input ports
974  //
975  // Each of these functions is invoked just before processing a message
976  // on the corresponding port. By default, they do nothing. You can
977  // override them to provide specific pre-message behavior.
978  // ----------------------------------------------------------------------
979 
981  virtual void dataIn_preMsgHook(
982  FwIndexType portNum,
983  Fw::Buffer& fwBuffer
984  );
985 
987  virtual void dataReturnIn_preMsgHook(
988  FwIndexType portNum,
989  Fw::Buffer& fwBuffer
990  );
991 
993  virtual void pingIn_preMsgHook(
994  FwIndexType portNum,
995  U32 key
996  );
997 
999  virtual void run1Hz_preMsgHook(
1000  FwIndexType portNum,
1001  U32 context
1002  );
1003 
1004  protected:
1005 
1006  // ----------------------------------------------------------------------
1007  // Invocation functions for typed output ports
1008  // ----------------------------------------------------------------------
1009 
1012  FwIndexType portNum,
1013  FwSizeType size
1014  ) const;
1015 
1017  void bufferDeallocate_out(
1018  FwIndexType portNum,
1019  Fw::Buffer& fwBuffer
1020  ) const;
1021 
1023  void dataInReturn_out(
1024  FwIndexType portNum,
1025  Fw::Buffer& fwBuffer
1026  ) const;
1027 
1029  void dataOut_out(
1030  FwIndexType portNum,
1031  Fw::Buffer& fwBuffer
1032  ) const;
1033 
1035  void fileDoneOut_out(
1036  FwIndexType portNum,
1037  const Svc::SendFileResponse& resp
1038  ) const;
1039 
1041  void pingOut_out(
1042  FwIndexType portNum,
1043  U32 key
1044  ) const;
1045 
1046  protected:
1047 
1048  // ----------------------------------------------------------------------
1049  // Command response
1050  // ----------------------------------------------------------------------
1051 
1053  void cmdResponse_out(
1054  FwOpcodeType opCode,
1055  U32 cmdSeq,
1056  Fw::CmdResponse response
1057  );
1058 
1059  protected:
1060 
1061  // ----------------------------------------------------------------------
1062  // Command handlers to implement
1063  // ----------------------------------------------------------------------
1064 
1068  virtual void SendFile_cmdHandler(
1069  FwOpcodeType opCode,
1070  U32 cmdSeq,
1071  U8 channelId,
1073  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1074  const Svc::Ccsds::Cfdp::Keep& keep,
1075  U8 priority,
1076  const Fw::CmdStringArg& sourceFileName,
1077  const Fw::CmdStringArg& destFileName
1078  ) = 0;
1079 
1083  virtual void PlaybackDirectory_cmdHandler(
1084  FwOpcodeType opCode,
1085  U32 cmdSeq,
1086  U8 channelId,
1088  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1089  const Svc::Ccsds::Cfdp::Keep& keep,
1090  U8 priority,
1091  const Fw::CmdStringArg& sourceDirectory,
1092  const Fw::CmdStringArg& destDirectory
1093  ) = 0;
1094 
1098  virtual void PollDirectory_cmdHandler(
1099  FwOpcodeType opCode,
1100  U32 cmdSeq,
1101  U8 channelId,
1102  U8 pollId,
1104  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1105  U8 priority,
1106  U32 interval,
1107  const Fw::CmdStringArg& sourceDirectory,
1108  const Fw::CmdStringArg& destDirectory
1109  ) = 0;
1110 
1114  virtual void StopPollDirectory_cmdHandler(
1115  FwOpcodeType opCode,
1116  U32 cmdSeq,
1117  U8 channelId,
1118  U8 pollId
1119  ) = 0;
1120 
1124  virtual void SetChannelFlow_cmdHandler(
1125  FwOpcodeType opCode,
1126  U32 cmdSeq,
1127  U8 channelId,
1128  const Svc::Ccsds::Cfdp::Flow& freeze
1129  ) = 0;
1130 
1135  FwOpcodeType opCode,
1136  U32 cmdSeq,
1137  U8 channelId,
1138  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1139  Svc::Ccsds::Cfdp::EntityId entityId,
1140  const Svc::Ccsds::Cfdp::SuspendResume& action
1141  ) = 0;
1142 
1146  virtual void CancelTransaction_cmdHandler(
1147  FwOpcodeType opCode,
1148  U32 cmdSeq,
1149  U8 channelId,
1150  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1151  Svc::Ccsds::Cfdp::EntityId entityId
1152  ) = 0;
1153 
1157  virtual void AbandonTransaction_cmdHandler(
1158  FwOpcodeType opCode,
1159  U32 cmdSeq,
1160  U8 channelId,
1161  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1162  Svc::Ccsds::Cfdp::EntityId entityId
1163  ) = 0;
1164 
1168  virtual void ResetCounters_cmdHandler(
1169  FwOpcodeType opCode,
1170  U32 cmdSeq,
1171  U8 channelId
1172  ) = 0;
1173 
1174  protected:
1175 
1176  // ----------------------------------------------------------------------
1177  // Command handler base-class functions
1178  //
1179  // Call these functions directly to bypass the command input port
1180  // ----------------------------------------------------------------------
1181 
1186  FwOpcodeType opCode,
1187  U32 cmdSeq,
1188  Fw::CmdArgBuffer& args
1189  );
1190 
1195  FwOpcodeType opCode,
1196  U32 cmdSeq,
1197  Fw::CmdArgBuffer& args
1198  );
1199 
1204  FwOpcodeType opCode,
1205  U32 cmdSeq,
1206  Fw::CmdArgBuffer& args
1207  );
1208 
1213  FwOpcodeType opCode,
1214  U32 cmdSeq,
1215  Fw::CmdArgBuffer& args
1216  );
1217 
1222  FwOpcodeType opCode,
1223  U32 cmdSeq,
1224  Fw::CmdArgBuffer& args
1225  );
1226 
1231  FwOpcodeType opCode,
1232  U32 cmdSeq,
1233  Fw::CmdArgBuffer& args
1234  );
1235 
1240  FwOpcodeType opCode,
1241  U32 cmdSeq,
1242  Fw::CmdArgBuffer& args
1243  );
1244 
1249  FwOpcodeType opCode,
1250  U32 cmdSeq,
1251  Fw::CmdArgBuffer& args
1252  );
1253 
1258  FwOpcodeType opCode,
1259  U32 cmdSeq,
1260  Fw::CmdArgBuffer& args
1261  );
1262 
1263  protected:
1264 
1265  // ----------------------------------------------------------------------
1266  // Pre-message hooks for async commands
1267  //
1268  // Each of these functions is invoked just before processing the
1269  // corresponding command. By default they do nothing. You can
1270  // override them to provide specific pre-command behavior.
1271  // ----------------------------------------------------------------------
1272 
1274  virtual void SendFile_preMsgHook(
1275  FwOpcodeType opCode,
1276  U32 cmdSeq
1277  );
1278 
1280  virtual void PlaybackDirectory_preMsgHook(
1281  FwOpcodeType opCode,
1282  U32 cmdSeq
1283  );
1284 
1286  virtual void PollDirectory_preMsgHook(
1287  FwOpcodeType opCode,
1288  U32 cmdSeq
1289  );
1290 
1292  virtual void StopPollDirectory_preMsgHook(
1293  FwOpcodeType opCode,
1294  U32 cmdSeq
1295  );
1296 
1298  virtual void SetChannelFlow_preMsgHook(
1299  FwOpcodeType opCode,
1300  U32 cmdSeq
1301  );
1302 
1305  FwOpcodeType opCode,
1306  U32 cmdSeq
1307  );
1308 
1310  virtual void CancelTransaction_preMsgHook(
1311  FwOpcodeType opCode,
1312  U32 cmdSeq
1313  );
1314 
1316  virtual void AbandonTransaction_preMsgHook(
1317  FwOpcodeType opCode,
1318  U32 cmdSeq
1319  );
1320 
1322  virtual void ResetCounters_preMsgHook(
1323  FwOpcodeType opCode,
1324  U32 cmdSeq
1325  );
1326 
1327  protected:
1328 
1329  // ----------------------------------------------------------------------
1330  // Event logging functions
1331  // ----------------------------------------------------------------------
1332 
1334  void log_WARNING_LO_BuffersExhausted() const;
1335 
1338  U8 channelId,
1339  U8 maxChannelId
1340  ) const;
1341 
1344  const Fw::StringBase& sourceFileName,
1345  U32 transactionSeq
1346  ) const;
1347 
1350  U32 offset,
1351  U32 length
1352  ) const;
1353 
1356  const Fw::StringBase& sourceFileName
1357  ) const;
1358 
1361  const Fw::StringBase& sourceDirectory
1362  ) const;
1363 
1366  const Fw::StringBase& sourceDirectory,
1367  U8 pollId
1368  ) const;
1369 
1372  U8 channelId,
1373  U8 pollId
1374  ) const;
1375 
1378  U8 channelId,
1379  U8 pollId
1380  ) const;
1381 
1384  U8 channelId,
1385  U8 pollId
1386  ) const;
1387 
1390  U8 channelId,
1391  const Svc::Ccsds::Cfdp::Flow& flowState
1392  ) const;
1393 
1396  U8 pollId,
1397  U8 maxPollId
1398  ) const;
1399 
1402  U32 interval
1403  ) const;
1404 
1407  const Fw::StringBase& srcFile,
1408  const Fw::StringBase& moveDir,
1409  I32 status
1410  ) const;
1411 
1414  const Fw::StringBase& srcFile,
1415  const Fw::StringBase& failDir,
1416  I32 status
1417  ) const;
1418 
1421  U8 channelId,
1422  I32 status
1423  ) const;
1424 
1427  U8 channelId,
1428  const Svc::Ccsds::Cfdp::PduTypeEnum& pduType,
1429  I32 status
1430  ) const;
1431 
1434  U8 channelId,
1435  I32 status
1436  ) const;
1437 
1440  U8 channelId,
1441  I32 status
1442  ) const;
1443 
1446  U8 channelId,
1447  I32 status
1448  ) const;
1449 
1452  U8 channelId,
1453  I32 status
1454  ) const;
1455 
1458  U8 channelId,
1459  I32 status
1460  ) const;
1461 
1464  U8 channelId,
1465  I32 status
1466  ) const;
1467 
1470  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1471  U32 srcEid,
1472  U32 seqNum
1473  ) const;
1474 
1477  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1478  U32 srcEid,
1479  U32 seqNum,
1480  const Fw::StringBase& filename
1481  ) const;
1482 
1485  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1486  U32 srcEid,
1487  U32 seqNum,
1488  const Fw::StringBase& filename,
1489  I32 status
1490  ) const;
1491 
1496  U8 channelId,
1497  U32 srcEid,
1498  U32 seqNum,
1499  const Fw::StringBase& filename,
1500  const Fw::StringBase& rxDir,
1502  ) const;
1503 
1506  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1507  U32 srcEid,
1508  U32 seqNum,
1509  U32 expected,
1510  U32 actual
1511  ) const;
1512 
1515  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1516  U32 srcEid,
1517  U32 seqNum
1518  ) const;
1519 
1522  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1523  U32 srcEid,
1524  U32 seqNum,
1525  U32 offset,
1526  I32 status
1527  ) const;
1528 
1531  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1532  U32 srcEid,
1533  U32 seqNum,
1534  U32 expected,
1535  I32 actual
1536  ) const;
1537 
1540  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1541  U32 srcEid,
1542  U32 seqNum,
1543  U32 offset,
1544  U32 dataSize,
1545  U32 fileSize
1546  ) const;
1547 
1550  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1551  U32 srcEid,
1552  U32 seqNum,
1553  U32 expected,
1554  U32 actual
1555  ) const;
1556 
1559  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1560  U32 srcEid,
1561  U32 seqNum
1562  ) const;
1563 
1566  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1567  U32 srcEid,
1568  U32 seqNum,
1569  U8 conditionCode
1570  ) const;
1571 
1574  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1575  U32 srcEid,
1576  U32 seqNum,
1577  U32 offset,
1578  I32 status
1579  ) const;
1580 
1583  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1584  U32 srcEid,
1585  U32 seqNum,
1586  U32 expected,
1587  I32 actual
1588  ) const;
1589 
1592  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1593  U32 srcEid,
1594  U32 seqNum,
1595  U32 mdSize,
1596  U32 eofSize
1597  ) const;
1598 
1601  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1602  U32 srcEid,
1603  U32 seqNum,
1604  const Fw::StringBase& tempFile,
1605  const Fw::StringBase& finalFile,
1606  I32 status
1607  ) const;
1608 
1611  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1612  U32 srcEid,
1613  U32 seqNum,
1614  const Fw::StringBase& filename,
1615  I32 status
1616  ) const;
1617 
1620  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1621  U32 srcEid,
1622  U32 seqNum
1623  ) const;
1624 
1627  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1628  U32 srcEid,
1629  U32 seqNum,
1630  U8 directiveCode,
1631  U8 substate
1632  ) const;
1633 
1636  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1637  U32 srcEid,
1638  U32 seqNum
1639  ) const;
1640 
1643  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1644  U32 srcEid,
1645  U32 seqNum
1646  ) const;
1647 
1650  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1651  U32 srcEid,
1652  U32 seqNum,
1653  const Fw::StringBase& filename
1654  ) const;
1655 
1658  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1659  U32 srcEid,
1660  U32 seqNum,
1661  const Fw::StringBase& filename,
1662  I32 status
1663  ) const;
1664 
1667  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1668  U32 srcEid,
1669  U32 seqNum,
1670  I32 status
1671  ) const;
1672 
1675  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1676  U32 srcEid,
1677  U32 seqNum
1678  ) const;
1679 
1682  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1683  U32 srcEid,
1684  U32 seqNum
1685  ) const;
1686 
1689  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1690  U32 srcEid,
1691  U32 seqNum
1692  ) const;
1693 
1696  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1697  U32 srcEid,
1698  U32 seqNum,
1699  U32 badCount
1700  ) const;
1701 
1704  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1705  U32 srcEid,
1706  U32 seqNum
1707  ) const;
1708 
1711  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1712  U32 srcEid,
1713  U32 seqNum,
1714  U8 directiveCode,
1715  U8 substate
1716  ) const;
1717 
1720  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1721  U32 seqNum,
1722  U32 srcEid,
1723  const Fw::StringBase& srcFile,
1724  U32 destEid,
1725  const Fw::StringBase& destFile,
1726  U32 fileSize
1727  ) const;
1728 
1731  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1732  U32 seqNum,
1733  U32 srcEid,
1734  const Fw::StringBase& srcFile,
1735  U32 destEid,
1736  const Fw::StringBase& destFile,
1737  U32 fileSize
1738  ) const;
1739 
1742  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1743  U32 seqNum,
1744  U32 srcEid,
1745  const Fw::StringBase& srcFile,
1746  U32 destEid,
1747  const Fw::StringBase& destFile,
1748  U8 conditionCode
1749  ) const;
1750 
1753  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1754  U32 seqNum,
1755  U32 srcEid,
1756  const Fw::StringBase& srcFile,
1757  U32 destEid,
1758  const Fw::StringBase& destFile,
1759  U32 fileSize
1760  ) const;
1761 
1764  const Svc::Ccsds::Cfdp::Class& cfdpClass,
1765  U32 seqNum,
1766  U32 srcEid,
1767  const Fw::StringBase& srcFile,
1768  U32 destEid,
1769  const Fw::StringBase& destFile,
1770  U8 conditionCode
1771  ) const;
1772 
1775  const Fw::StringBase& srcFile,
1776  const Fw::StringBase& destFile,
1777  U32 transactionSeq
1778  ) const;
1779 
1782 
1785  U32 transactionSeq
1786  ) const;
1787 
1790 
1793  U32 srcEid,
1794  U32 transactionSeq
1795  ) const;
1796 
1799  U32 destEid
1800  ) const;
1801 
1804 
1807  const Fw::StringBase& directory,
1808  I32 status
1809  ) const;
1810 
1813 
1816  U8 channelId,
1817  U32 transactionSeq
1818  ) const;
1819 
1822  const Fw::StringBase& directory,
1823  I32 status
1824  ) const;
1825 
1831  FwSizeType length,
1832  FwSizeType maxLength,
1833  const Fw::StringBase& directory,
1834  const Fw::StringBase& entry
1835  ) const;
1836 
1842  FwSizeType length,
1843  FwSizeType maxLength,
1844  const Fw::StringBase& directory,
1845  const Fw::StringBase& entry
1846  ) const;
1847 
1850 
1853  const Fw::StringBase& filename,
1854  I32 status
1855  ) const;
1856 
1861  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1862  Svc::Ccsds::Cfdp::EntityId entityId
1863  ) const;
1864 
1869  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1870  Svc::Ccsds::Cfdp::EntityId entityId
1871  ) const;
1872 
1877  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1878  Svc::Ccsds::Cfdp::EntityId entityId
1879  ) const;
1880 
1885  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1886  Svc::Ccsds::Cfdp::EntityId entityId
1887  ) const;
1888 
1893  Svc::Ccsds::Cfdp::TransactionSeq transactionSeq,
1894  Svc::Ccsds::Cfdp::EntityId entityId
1895  ) const;
1896 
1899  U8 channelId
1900  ) const;
1901 
1909  ) const;
1910 
1911  protected:
1912 
1913  // ----------------------------------------------------------------------
1914  // Telemetry serialized write
1915  // ----------------------------------------------------------------------
1916 
1921  void tlmWrite(
1922  FwChanIdType id,
1923  Fw::TlmBuffer& _tlmBuff,
1924  Fw::Time _tlmTime = Fw::Time()
1925  ) const;
1926 
1927  protected:
1928 
1929  // ----------------------------------------------------------------------
1930  // Telemetry write functions
1931  // ----------------------------------------------------------------------
1932 
1940  Fw::Time _tlmTime = Fw::Time()
1941  ) const;
1942 
1946  Fw::Time _tlmTime = Fw::Time()
1947  );
1948 
1951  U32 arg,
1952  Fw::Time _tlmTime = Fw::Time()
1953  );
1954 
1957  U32 arg,
1958  Fw::Time _tlmTime = Fw::Time()
1959  );
1960 
1963  U8 arg,
1964  Fw::Time _tlmTime = Fw::Time()
1965  );
1966 
1969  U8 arg,
1970  Fw::Time _tlmTime = Fw::Time()
1971  );
1972 
1976  Fw::Time _tlmTime = Fw::Time()
1977  );
1978 
1981  const Svc::Ccsds::Cfdp::Class& arg,
1982  Fw::Time _tlmTime = Fw::Time()
1983  );
1984 
1987  const Svc::Ccsds::Cfdp::Keep& arg,
1988  Fw::Time _tlmTime = Fw::Time()
1989  );
1990 
1993  U8 arg,
1994  Fw::Time _tlmTime = Fw::Time()
1995  );
1996 
2000  Fw::Time _tlmTime = Fw::Time()
2001  );
2002 
2003  protected:
2004 
2005  // ----------------------------------------------------------------------
2006  // Parameter hook functions
2007  // ----------------------------------------------------------------------
2008 
2012  virtual void parameterUpdated(
2013  FwPrmIdType id
2014  );
2015 
2021  virtual void parametersLoaded();
2022 
2028  virtual void parameterLoaded(
2029  FwPrmIdType id,
2030  Fw::ParamValid valid
2031  );
2032 
2033  protected:
2034 
2035  // ----------------------------------------------------------------------
2036  // Parameter get functions
2037  // ----------------------------------------------------------------------
2038 
2045  Fw::ParamValid& valid
2046  );
2047 
2056  Fw::ParamValid& valid
2057  );
2058 
2065  Fw::ParamValid& valid
2066  );
2067 
2075  Fw::ParamValid& valid
2076  );
2077 
2084  Fw::ParamValid& valid
2085  );
2086 
2093  Fw::ParamValid& valid
2094  );
2095 
2102  Fw::ParamValid& valid
2103  );
2104 
2111  Fw::ParamValid& valid
2112  );
2113 
2120  Fw::ParamValid& valid
2121  );
2122 
2129  Fw::ParamValid& valid
2130  );
2131 
2132  protected:
2133 
2134  // ----------------------------------------------------------------------
2135  // Time
2136  // ----------------------------------------------------------------------
2137 
2141  Fw::Time getTime() const;
2142 
2143  protected:
2144 
2145  // ----------------------------------------------------------------------
2146  // Mutex operations for guarded ports
2147  //
2148  // You can override these operations to provide more sophisticated
2149  // synchronization
2150  // ----------------------------------------------------------------------
2151 
2153  virtual void lock();
2154 
2156  virtual void unLock();
2157 
2158  private:
2159 
2160  // ----------------------------------------------------------------------
2161  // Message dispatch functions
2162  // ----------------------------------------------------------------------
2163 
2165  virtual MsgDispatchStatus doDispatch();
2166 
2167  private:
2168 
2169  // ----------------------------------------------------------------------
2170  // Calls for messages received on special input ports
2171  // ----------------------------------------------------------------------
2172 
2174  static void m_p_cmdIn_in(
2175  Fw::PassiveComponentBase* callComp,
2176  FwIndexType portNum,
2177  FwOpcodeType opCode,
2178  U32 cmdSeq,
2179  Fw::CmdArgBuffer& args
2180  );
2181 
2182  private:
2183 
2184  // ----------------------------------------------------------------------
2185  // Calls for messages received on typed input ports
2186  // ----------------------------------------------------------------------
2187 
2189  static void m_p_dataIn_in(
2190  Fw::PassiveComponentBase* callComp,
2191  FwIndexType portNum,
2192  Fw::Buffer& fwBuffer
2193  );
2194 
2196  static void m_p_dataReturnIn_in(
2197  Fw::PassiveComponentBase* callComp,
2198  FwIndexType portNum,
2199  Fw::Buffer& fwBuffer
2200  );
2201 
2203  static Svc::SendFileResponse m_p_fileIn_in(
2204  Fw::PassiveComponentBase* callComp,
2205  FwIndexType portNum,
2206  const Fw::StringBase& sourceFileName,
2207  const Fw::StringBase& destFileName,
2208  U32 offset,
2209  U32 length
2210  );
2211 
2213  static void m_p_pingIn_in(
2214  Fw::PassiveComponentBase* callComp,
2215  FwIndexType portNum,
2216  U32 key
2217  );
2218 
2220  static void m_p_run1Hz_in(
2221  Fw::PassiveComponentBase* callComp,
2222  FwIndexType portNum,
2223  U32 context
2224  );
2225 
2226  private:
2227 
2228  // ----------------------------------------------------------------------
2229  // Invocation functions for special output ports
2230  // ----------------------------------------------------------------------
2231 
2233  void cmdRegOut_out(
2234  FwIndexType portNum,
2235  FwOpcodeType opCode
2236  ) const;
2237 
2239  void cmdResponseOut_out(
2240  FwIndexType portNum,
2241  FwOpcodeType opCode,
2242  U32 cmdSeq,
2243  const Fw::CmdResponse& response
2244  ) const;
2245 
2247  void logOut_out(
2248  FwIndexType portNum,
2249  FwEventIdType id,
2250  Fw::Time& timeTag,
2251  const Fw::LogSeverity& severity,
2252  Fw::LogBuffer& args
2253  ) const;
2254 
2255 #if FW_ENABLE_TEXT_LOGGING
2256 
2258  void logTextOut_out(
2259  FwIndexType portNum,
2260  FwEventIdType id,
2261  Fw::Time& timeTag,
2262  const Fw::LogSeverity& severity,
2263  Fw::TextLogString& text
2264  ) const;
2265 
2266 #endif
2267 
2269  Fw::ParamValid prmGetOut_out(
2270  FwIndexType portNum,
2271  FwPrmIdType id,
2272  Fw::ParamBuffer& val
2273  ) const;
2275 
2277  void prmSetOut_out(
2278  FwIndexType portNum,
2279  FwPrmIdType id,
2280  Fw::ParamBuffer& val
2281  ) const;
2282 
2284  void timeCaller_out(
2285  FwIndexType portNum,
2286  Fw::Time& time
2287  ) const;
2288 
2290  void tlmOut_out(
2291  FwIndexType portNum,
2292  FwChanIdType id,
2293  Fw::Time& timeTag,
2294  Fw::TlmBuffer& val
2295  ) const;
2296 
2297  private:
2298 
2299  // ----------------------------------------------------------------------
2300  // Parameter set functions
2301  // ----------------------------------------------------------------------
2302 
2306  Fw::CmdResponse paramSet_LocalEid(
2307  Fw::SerialBufferBase& val
2308  );
2309 
2313  Fw::CmdResponse paramSet_OutgoingFileChunkSize(
2314  Fw::SerialBufferBase& val
2315  );
2316 
2320  Fw::CmdResponse paramSet_RxCrcCalcBytesPerCycle(
2321  Fw::SerialBufferBase& val
2322  );
2323 
2327  Fw::CmdResponse paramSet_PostInactivitySendRetries(
2328  Fw::SerialBufferBase& val
2329  );
2330 
2334  Fw::CmdResponse paramSet_FileInDefaultChannel(
2335  Fw::SerialBufferBase& val
2336  );
2337 
2341  Fw::CmdResponse paramSet_FileInDefaultDestEntityId(
2342  Fw::SerialBufferBase& val
2343  );
2344 
2348  Fw::CmdResponse paramSet_FileInDefaultClass(
2349  Fw::SerialBufferBase& val
2350  );
2351 
2355  Fw::CmdResponse paramSet_FileInDefaultKeep(
2356  Fw::SerialBufferBase& val
2357  );
2358 
2362  Fw::CmdResponse paramSet_FileInDefaultPriority(
2363  Fw::SerialBufferBase& val
2364  );
2365 
2369  Fw::CmdResponse paramSet_ChannelConfig(
2370  Fw::SerialBufferBase& val
2371  );
2372 
2373  private:
2374 
2375  // ----------------------------------------------------------------------
2376  // Parameter save functions
2377  // ----------------------------------------------------------------------
2378 
2382  Fw::CmdResponse paramSave_LocalEid();
2383 
2387  Fw::CmdResponse paramSave_OutgoingFileChunkSize();
2388 
2392  Fw::CmdResponse paramSave_RxCrcCalcBytesPerCycle();
2393 
2397  Fw::CmdResponse paramSave_PostInactivitySendRetries();
2398 
2402  Fw::CmdResponse paramSave_FileInDefaultChannel();
2403 
2407  Fw::CmdResponse paramSave_FileInDefaultDestEntityId();
2408 
2412  Fw::CmdResponse paramSave_FileInDefaultClass();
2413 
2417  Fw::CmdResponse paramSave_FileInDefaultKeep();
2418 
2422  Fw::CmdResponse paramSave_FileInDefaultPriority();
2423 
2427  Fw::CmdResponse paramSave_ChannelConfig();
2428 
2429 #if !FW_DIRECT_PORT_CALLS
2430 
2431  private:
2432 
2433  // ----------------------------------------------------------------------
2434  // Special input ports
2435  // ----------------------------------------------------------------------
2436 
2438  Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
2439 
2440 #endif
2441 
2442 #if !FW_DIRECT_PORT_CALLS
2443 
2444  private:
2445 
2446  // ----------------------------------------------------------------------
2447  // Typed input ports
2448  // ----------------------------------------------------------------------
2449 
2451  Fw::InputBufferSendPort m_dataIn_InputPort[NUM_DATAIN_INPUT_PORTS];
2452 
2454  Fw::InputBufferSendPort m_dataReturnIn_InputPort[NUM_DATARETURNIN_INPUT_PORTS];
2455 
2458 
2460  Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
2461 
2463  Svc::InputSchedPort m_run1Hz_InputPort[NUM_RUN1HZ_INPUT_PORTS];
2464 
2465 #endif
2466 
2467 #if !FW_DIRECT_PORT_CALLS
2468 
2469  private:
2470 
2471  // ----------------------------------------------------------------------
2472  // Special output ports
2473  // ----------------------------------------------------------------------
2474 
2476  Fw::OutputCmdRegPort m_cmdRegOut_OutputPort[NUM_CMDREGOUT_OUTPUT_PORTS];
2477 
2479  Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS];
2480 
2482  Fw::OutputLogPort m_logOut_OutputPort[NUM_LOGOUT_OUTPUT_PORTS];
2483 
2484 #if FW_ENABLE_TEXT_LOGGING == 1
2485 
2487  Fw::OutputLogTextPort m_logTextOut_OutputPort[NUM_LOGTEXTOUT_OUTPUT_PORTS];
2488 
2489 #endif
2490 
2492  Fw::OutputPrmGetPort m_prmGetOut_OutputPort[NUM_PRMGETOUT_OUTPUT_PORTS];
2493 
2495  Fw::OutputPrmSetPort m_prmSetOut_OutputPort[NUM_PRMSETOUT_OUTPUT_PORTS];
2496 
2498  Fw::OutputTimePort m_timeCaller_OutputPort[NUM_TIMECALLER_OUTPUT_PORTS];
2499 
2501  Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
2502 
2503 #endif
2504 
2505 #if !FW_DIRECT_PORT_CALLS
2506 
2507  private:
2508 
2509  // ----------------------------------------------------------------------
2510  // Typed output ports
2511  // ----------------------------------------------------------------------
2512 
2514  Fw::OutputBufferGetPort m_bufferAllocate_OutputPort[NUM_BUFFERALLOCATE_OUTPUT_PORTS];
2515 
2517  Fw::OutputBufferSendPort m_bufferDeallocate_OutputPort[NUM_BUFFERDEALLOCATE_OUTPUT_PORTS];
2518 
2520  Fw::OutputBufferSendPort m_dataInReturn_OutputPort[NUM_DATAINRETURN_OUTPUT_PORTS];
2521 
2523  Fw::OutputBufferSendPort m_dataOut_OutputPort[NUM_DATAOUT_OUTPUT_PORTS];
2524 
2527 
2529  Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
2530 
2531 #endif
2532 
2533  private:
2534 
2535  // ----------------------------------------------------------------------
2536  // First update flags for telemetry channels
2537  // ----------------------------------------------------------------------
2538 
2540  bool m_first_update_PRM_LOCAL_EID = true;
2541 
2543  bool m_first_update_PRM_OUTGOING_FILE_CHUNK_SIZE = true;
2544 
2546  bool m_first_update_PRM_RX_CRC_CALC_BYTES_PER_CYCLE = true;
2547 
2549  bool m_first_update_PRM_POST_INACTIVITY_SEND_RETRIES = true;
2550 
2552  bool m_first_update_PRM_FILE_IN_DEFAULT_CHANNEL = true;
2553 
2555  bool m_first_update_PRM_FILE_IN_DEFAULT_DEST_ENTITY_ID = true;
2556 
2558  bool m_first_update_PRM_FILE_IN_DEFAULT_CLASS = true;
2559 
2561  bool m_first_update_PRM_FILE_IN_DEFAULT_KEEP = true;
2562 
2564  bool m_first_update_PRM_FILE_IN_DEFAULT_PRIORITY = true;
2565 
2567  bool m_first_update_PRM_CHANNEL_CONFIG = true;
2568 
2569  private:
2570 
2571  // ----------------------------------------------------------------------
2572  // Last value storage for telemetry channels
2573  // ----------------------------------------------------------------------
2574 
2576  Svc::Ccsds::Cfdp::EntityId m_last_PRM_LOCAL_EID = {};
2577 
2579  U32 m_last_PRM_OUTGOING_FILE_CHUNK_SIZE = {};
2580 
2582  U32 m_last_PRM_RX_CRC_CALC_BYTES_PER_CYCLE = {};
2583 
2585  U8 m_last_PRM_POST_INACTIVITY_SEND_RETRIES = {};
2586 
2588  U8 m_last_PRM_FILE_IN_DEFAULT_CHANNEL = {};
2589 
2591  Svc::Ccsds::Cfdp::EntityId m_last_PRM_FILE_IN_DEFAULT_DEST_ENTITY_ID = {};
2592 
2594  Svc::Ccsds::Cfdp::Class m_last_PRM_FILE_IN_DEFAULT_CLASS = {};
2595 
2597  Svc::Ccsds::Cfdp::Keep m_last_PRM_FILE_IN_DEFAULT_KEEP = {};
2598 
2600  U8 m_last_PRM_FILE_IN_DEFAULT_PRIORITY = {};
2601 
2603  Svc::Ccsds::Cfdp::ChannelArrayParams m_last_PRM_CHANNEL_CONFIG = {};
2604 
2605  private:
2606 
2607  // ----------------------------------------------------------------------
2608  // Parameter validity flags
2609  // ----------------------------------------------------------------------
2610 
2612  Fw::ParamValid m_param_LocalEid_valid = Fw::ParamValid::UNINIT;
2613 
2615  Fw::ParamValid m_param_OutgoingFileChunkSize_valid = Fw::ParamValid::UNINIT;
2616 
2618  Fw::ParamValid m_param_RxCrcCalcBytesPerCycle_valid = Fw::ParamValid::UNINIT;
2619 
2621  Fw::ParamValid m_param_PostInactivitySendRetries_valid = Fw::ParamValid::UNINIT;
2622 
2624  Fw::ParamValid m_param_FileInDefaultChannel_valid = Fw::ParamValid::UNINIT;
2625 
2627  Fw::ParamValid m_param_FileInDefaultDestEntityId_valid = Fw::ParamValid::UNINIT;
2628 
2630  Fw::ParamValid m_param_FileInDefaultClass_valid = Fw::ParamValid::UNINIT;
2631 
2633  Fw::ParamValid m_param_FileInDefaultKeep_valid = Fw::ParamValid::UNINIT;
2634 
2636  Fw::ParamValid m_param_FileInDefaultPriority_valid = Fw::ParamValid::UNINIT;
2637 
2639  Fw::ParamValid m_param_ChannelConfig_valid = Fw::ParamValid::UNINIT;
2640 
2641  private:
2642 
2643  // ----------------------------------------------------------------------
2644  // Parameter variables
2645  // ----------------------------------------------------------------------
2646 
2650  Svc::Ccsds::Cfdp::EntityId m_LocalEid;
2651 
2657  U32 m_OutgoingFileChunkSize;
2658 
2662  U32 m_RxCrcCalcBytesPerCycle;
2663 
2668  U8 m_PostInactivitySendRetries;
2669 
2673  U8 m_FileInDefaultChannel;
2674 
2678  Svc::Ccsds::Cfdp::EntityId m_FileInDefaultDestEntityId;
2679 
2683  Svc::Ccsds::Cfdp::Class m_FileInDefaultClass;
2684 
2688  Svc::Ccsds::Cfdp::Keep m_FileInDefaultKeep;
2689 
2693  U8 m_FileInDefaultPriority;
2694 
2698  Svc::Ccsds::Cfdp::ChannelArrayParams m_ChannelConfig;
2699 
2700  private:
2701 
2702  // ----------------------------------------------------------------------
2703  // Mutexes
2704  // ----------------------------------------------------------------------
2705 
2707  Os::Mutex m_guardedPortMutex;
2708 
2710  Os::Mutex m_paramLock;
2711 
2712  };
2713 
2714  }
2715 
2716  }
2717 
2718 }
2719 
2720 #endif
Default CFDP channel for fileIn port-initiated file transfers.
void tlmWrite(FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
void tlmWrite_PRM_FILE_IN_DEFAULT_CHANNEL(U8 arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_FILE_IN_DEFAULT_CHANNEL.
Svc::Ccsds::Cfdp::Keep paramGet_FileInDefaultKeep(Fw::ParamValid &valid)
void dataReturnIn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port dataReturnIn.
void log_ACTIVITY_LO_TransactionResumed(Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId) const
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts()
virtual void run1Hz_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port run1Hz.
bool isConnected_prmGetOut_OutputPort(FwIndexType portNum) const
Enum used to determine if a file should be kept or deleted after a CFDP transaction.
Definition: KeepEnumAc.hpp:22
Default CFDP class for fileIn port-initiated file transfers.
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.
void log_WARNING_LO_PlaybackDestinationPathTooLong(FwSizeType length, FwSizeType maxLength, const Fw::StringBase &directory, const Fw::StringBase &entry) const
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.
CFDP ID to denote the current node when sending PDUs.
void set_dataOut_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to dataOut[portNum].
virtual void parametersLoaded()
Called whenever parameters are loaded.
void log_WARNING_LO_TxInactivityTimeout(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event TxInactivityTimeout.
U32 EntityId
Entity id size.
void log_ACTIVITY_LO_TransactionSuspended(Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId) const
void log_WARNING_LO_RxAckLimitReached(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event RxAckLimitReached.
void dataInReturn_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port dataInReturn.
virtual void SetChannelFlow_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, const Svc::Ccsds::Cfdp::Flow &freeze)=0
bool isConnected_pingOut_OutputPort(FwIndexType portNum) const
void set_bufferDeallocate_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to bufferDeallocate[portNum].
static constexpr FwIndexType getNum_fileIn_InputPorts()
void tlmWrite_PRM_POST_INACTIVITY_SEND_RETRIES(U8 arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_POST_INACTIVITY_SEND_RETRIES.
Auto-generated base for CfdpManager component.
virtual void AbandonTransaction_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId)=0
void set_prmGetOut_OutputPort(FwIndexType portNum, Fw::InputPrmGetPort *port)
Connect port to prmGetOut[portNum].
void log_WARNING_LO_InvalidDestinationEid(U32 destEid) const
Log event InvalidDestinationEid.
FwIdType FwPrmIdType
The type of a parameter identifier.
static constexpr FwIndexType getNum_dataInReturn_OutputPorts()
void log_WARNING_LO_TxAckLimitReached(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event TxAckLimitReached.
void log_WARNING_LO_RxSeekCrcFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 offset, I32 status) const
Log event RxSeekCrcFailed.
virtual void CancelTransaction_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId)=0
Link-time delegating Mutex implementation.
void log_WARNING_LO_TxFileTransferFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 seqNum, U32 srcEid, const Fw::StringBase &srcFile, U32 destEid, const Fw::StringBase &destFile, U8 conditionCode) const
Log event TxFileTransferFailed.
virtual void parameterUpdated(FwPrmIdType id)
Called whenever a parameter is updated.
static constexpr FwIndexType getNum_timeCaller_OutputPorts()
void fileDoneOut_out(FwIndexType portNum, const Svc::SendFileResponse &resp) const
Invoke output port fileDoneOut.
Default destination entity ID for fileIn port-initiated file transfers.
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.
Destination path in a received Metadata PDU was rejected by the channel&#39;s rx_dir sandbox.
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].
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
void log_WARNING_HI_RxDestPathRejected(U8 channelId, U32 srcEid, U32 seqNum, const Fw::StringBase &filename, const Fw::StringBase &rxDir, const Svc::Ccsds::Cfdp::RxDestPathRejectReason &reason) const
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.
virtual void parameterLoaded(FwPrmIdType id, Fw::ParamValid valid)
Called for each parameter when parameters are loaded.
void log_ACTIVITY_LO_MetadataReceived(const Fw::StringBase &srcFile, const Fw::StringBase &destFile, U32 transactionSeq) const
Log event MetadataReceived.
static constexpr FwIndexType getNum_tlmOut_OutputPorts()
void log_WARNING_LO_TxInvalidSegmentRequests(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 badCount) const
Log event TxInvalidSegmentRequests.
void dataIn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port dataIn.
virtual void ResetCounters_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId)=0
U32 TransactionSeq
transaction sequence number size
Fw::InputBufferSendPort * get_dataIn_InputPort(FwIndexType portNum)
virtual void PlaybackDirectory_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, Svc::Ccsds::Cfdp::EntityId destId, const Svc::Ccsds::Cfdp::Class &cfdpClass, const Svc::Ccsds::Cfdp::Keep &keep, U8 priority, const Fw::CmdStringArg &sourceDirectory, const Fw::CmdStringArg &destDirectory)=0
FwIdType FwEventIdType
The type of an event identifier.
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 tlmWrite_PRM_LOCAL_EID(Svc::Ccsds::Cfdp::EntityId arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_LOCAL_EID.
void log_WARNING_LO_TxZeroLengthFile(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &filename) const
Log event TxZeroLengthFile.
Command to cancel a transaction with graceful close-out.
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
void log_ACTIVITY_HI_TxFileTransferStarted(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 seqNum, U32 srcEid, const Fw::StringBase &srcFile, U32 destEid, const Fw::StringBase &destFile, U32 fileSize) const
Log event TxFileTransferStarted.
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
virtual void unLock()
Unlock the guarded mutex.
void log_WARNING_LO_FileDataSegmentMetadata() const
Log event FileDataSegmentMetadata.
virtual void SuspendResumeTransaction_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SuspendResumeTransaction.
Svc::Ccsds::Cfdp::EntityId paramGet_LocalEid(Fw::ParamValid &valid)
void log_WARNING_LO_InvalidChannelPoll(U8 pollId, U8 maxPollId) const
Log event InvalidChannelPoll.
virtual void StopPollDirectory_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command StopPollDirectory.
static constexpr FwIndexType getNum_pingOut_OutputPorts()
static constexpr FwIndexType getNum_dataReturnIn_InputPorts()
bool isConnected_tlmOut_OutputPort(FwIndexType portNum) const
void log_WARNING_LO_RxFileTransferFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 seqNum, U32 srcEid, const Fw::StringBase &srcFile, U32 destEid, const Fw::StringBase &destFile, U8 conditionCode) const
Log event RxFileTransferFailed.
void cmdIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Handler base-class function for input port cmdIn.
void tlmWrite_PRM_FILE_IN_DEFAULT_PRIORITY(U8 arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_FILE_IN_DEFAULT_PRIORITY.
void log_WARNING_LO_RxFileCreateFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &filename, I32 status) const
Log event RxFileCreateFailed.
void log_WARNING_LO_TxInvalidNakPdu(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event TxInvalidNakPdu.
void log_ACTIVITY_HI_TransactionCanceled(Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId) const
void set_logOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to logOut[portNum].
FwIdType FwChanIdType
The type of a telemetry channel identifier.
bool isConnected_dataOut_OutputPort(FwIndexType portNum) const
void log_WARNING_LO_RxFileReopenFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &filename, I32 status) const
Log event RxFileReopenFailed.
void log_WARNING_LO_InvalidChannel(U8 channelId, U8 maxChannelId) const
Log event InvalidChannel.
void log_WARNING_LO_TransactionNotFound(Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId) const
virtual ~CfdpManagerComponentBase()
Destroy CfdpManagerComponentBase object.
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()
void tlmWrite_PRM_CHANNEL_CONFIG(const Svc::Ccsds::Cfdp::ChannelArrayParams &arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_CHANNEL_CONFIG.
virtual void dataReturnIn_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port dataReturnIn.
Enum representing event severity.
virtual void PollDirectory_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command PollDirectory.
void log_WARNING_LO_RxSeekFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 offset, I32 status) const
Log event RxSeekFailed.
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
void log_WARNING_LO_TxNonFileDirectivePduReceived(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event TxNonFileDirectivePduReceived.
virtual void SuspendResumeTransaction_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, Svc::Ccsds::Cfdp::TransactionSeq transactionSeq, Svc::Ccsds::Cfdp::EntityId entityId, const Svc::Ccsds::Cfdp::SuspendResume &action)=0
void tlmWrite_PRM_OUTGOING_FILE_CHUNK_SIZE(U32 arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_OUTGOING_FILE_CHUNK_SIZE.
Svc::InputSendFileRequestPort * get_fileIn_InputPort(FwIndexType portNum)
void log_WARNING_LO_RxTransactionLimitReached(U32 srcEid, U32 transactionSeq) const
Log event RxTransactionLimitReached.
void loadParameters()
Load the parameters from a parameter source.
void log_WARNING_LO_FailKeepFileMove(const Fw::StringBase &srcFile, const Fw::StringBase &moveDir, I32 status) const
Log event FailKeepFileMove.
Svc::InputSchedPort * get_run1Hz_InputPort(FwIndexType portNum)
The maximum number of received bytes to calculate a CRC for in a single scheduler cycle...
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:54
void log_WARNING_LO_RxEofMdSizeMismatch(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 mdSize, U32 eofSize) const
Log event RxEofMdSizeMismatch.
void dataOut_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port dataOut.
void tlmWrite_PRM_RX_CRC_CALC_BYTES_PER_CYCLE(U32 arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_RX_CRC_CALC_BYTES_PER_CYCLE.
void log_ACTIVITY_HI_RxEofCancelReceived(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event RxEofCancelReceived.
void bufferDeallocate_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port bufferDeallocate.
bool isConnected_prmSetOut_OutputPort(FwIndexType portNum) const
void log_ACTIVITY_LO_SetFlowState(U8 channelId, const Svc::Ccsds::Cfdp::Flow &flowState) const
Log event SetFlowState.
Default file retention policy for fileIn port-initiated file transfers.
Fw::Buffer bufferAllocate_out(FwIndexType portNum, FwSizeType size) const
Invoke output port bufferAllocate.
void log_WARNING_LO_RxFileRenameFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &tempFile, const Fw::StringBase &finalFile, I32 status) const
Log event RxFileRenameFailed.
Structure for telemetry counters for a single CFDP channel.
void AbandonTransaction_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
void tlmWrite_PRM_FILE_IN_DEFAULT_DEST_ENTITY_ID(Svc::Ccsds::Cfdp::EntityId arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_FILE_IN_DEFAULT_DEST_ENTITY_ID.
bool isConnected_bufferAllocate_OutputPort(FwIndexType portNum) const
void log_WARNING_LO_TxFileOpenFailed(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, const Fw::StringBase &filename, I32 status) const
Log event TxFileOpenFailed.
void log_WARNING_LO_TxInvalidDirectiveCode(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U8 directiveCode, U8 substate) const
Log event TxInvalidDirectiveCode.
static constexpr FwIndexType getNum_dataIn_InputPorts()
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
void tlmWrite_PRM_FILE_IN_DEFAULT_CLASS(const Svc::Ccsds::Cfdp::Class &arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_FILE_IN_DEFAULT_CLASS.
void log_WARNING_LO_PlaybackDirReadFailed(const Fw::StringBase &directory, I32 status) const
Log event PlaybackDirReadFailed.
void log_ACTIVITY_LO_TxFileQueued(const Fw::StringBase &sourceFileName, U32 transactionSeq) const
Log event TxFileQueued.
void log_WARNING_LO_PlaybackDirSlotUnavailable() const
Log event PlaybackDirSlotUnavailable.
void log_WARNING_LO_UnhandledPduInIdleState() const
Log event UnhandledPduInIdleState.
Default priority for fileIn port-initiated file transfers.
bool isConnected_logOut_OutputPort(FwIndexType portNum) const
void log_WARNING_LO_BuffersExhausted() const
Log event BuffersExhausted.
PlatformIndexType FwIndexType
friend class CfdpManagerTester
Friend class tester implementation to support white-box testing.
void log_WARNING_LO_RxCrcMismatch(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 expected, U32 actual) const
Log event RxCrcMismatch.
void log_WARNING_LO_RxFileDataOutOfBounds(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U32 offset, U32 dataSize, U32 fileSize) const
Log event RxFileDataOutOfBounds.
Send file response struct.
void log_WARNING_LO_FailPduSerialization(U8 channelId, const Svc::Ccsds::Cfdp::PduTypeEnum &pduType, I32 status) const
Log event FailPduSerialization.
void log_ACTIVITY_HI_RxFileTransferCompleted(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 seqNum, U32 srcEid, const Fw::StringBase &srcFile, U32 destEid, const Fw::StringBase &destFile, U32 fileSize) const
Log event RxFileTransferCompleted.
bool isConnected_dataInReturn_OutputPort(FwIndexType portNum) const
virtual void StopPollDirectory_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U8 channelId, U8 pollId)=0
void log_WARNING_LO_InvalidPollInterval(U32 interval) const
Log event InvalidPollInterval.
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
RateGroupDivider component implementation.
static constexpr FwIndexType getNum_dataOut_OutputPorts()
void run1Hz_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port run1Hz.
void log_WARNING_LO_RxInvalidDirectiveCode(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum, U8 directiveCode, U8 substate) const
Log event RxInvalidDirectiveCode.
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
virtual void SendFile_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SendFile.
Svc::Ccsds::Cfdp::EntityId paramGet_FileInDefaultDestEntityId(Fw::ParamValid &valid)
Enum representing parameter validity.
static constexpr FwIndexType getNum_fileDoneOut_OutputPorts()
Why a received Metadata PDU destination path was rejected by the channel rx_dir check.
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)
void log_WARNING_LO_PlaybackSourcePathTooLong(FwSizeType length, FwSizeType maxLength, const Fw::StringBase &directory, const Fw::StringBase &entry) const
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
Parameter configuration for an array CFDP channels.
void tlmWrite_PRM_FILE_IN_DEFAULT_KEEP(const Svc::Ccsds::Cfdp::Keep &arg, Fw::Time _tlmTime=Fw::Time())
Write telemetry channel PRM_FILE_IN_DEFAULT_KEEP.
void log_WARNING_LO_TxEarlyFinReceived(const Svc::Ccsds::Cfdp::Class &cfdpClass, U32 srcEid, U32 seqNum) const
Log event TxEarlyFinReceived.
void log_WARNING_LO_FailFinPduDeserialization(U8 channelId, I32 status) const
Log event FailFinPduDeserialization.
void log_ACTIVITY_LO_PollDirStopped(U8 channelId, U8 pollId) const
Log event PollDirStopped.
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum) const
void log_WARNING_LO_FailNakPduDeserialization(U8 channelId, I32 status) const
Log event FailNakPduDeserialization.
void log_WARNING_LO_FailMetadataPduDeserialization(U8 channelId, I32 status) const
Log event FailMetadataPduDeserialization.