F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
DpWriterComponentAc.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title DpWriterComponentAc.hpp
3 // \author Generated by fpp-to-cpp
4 // \brief hpp file for DpWriter component base class
5 // ======================================================================
6 
7 #ifndef Svc_DpWriterComponentAc_HPP
8 #define Svc_DpWriterComponentAc_HPP
9 
10 #include <atomic>
11 
13 #include "Fw/Cmd/CmdPortAc.hpp"
14 #include "Fw/Cmd/CmdRegPortAc.hpp"
16 #include "Fw/Cmd/CmdString.hpp"
18 #include "Fw/FPrimeBasicTypes.hpp"
19 #include "Fw/Log/LogPortAc.hpp"
20 #include "Fw/Log/LogString.hpp"
21 #if FW_ENABLE_TEXT_LOGGING == 1
22 #include "Fw/Log/LogTextPortAc.hpp"
23 #endif
26 #include "Fw/Time/TimePortAc.hpp"
27 #include "Fw/Tlm/TlmPortAc.hpp"
28 #include "Fw/Tlm/TlmString.hpp"
32 
33 namespace Svc {
34 
41  {
42 
43  // ----------------------------------------------------------------------
44  // Friend classes
45  // ----------------------------------------------------------------------
46 
48  friend class DpWriterTesterBase;
50  friend class DpWriterTester;
51 
52  protected:
53 
54  // ----------------------------------------------------------------------
55  // Constants
56  // ----------------------------------------------------------------------
57 
59  enum {
61  };
62 
64  enum {
67  };
68 
70  enum {
77  };
78 
80  enum {
84  };
85 
87  enum {
89  };
90 
92  enum {
101  };
102 
104  enum {
112  };
113 
115  enum {
121  };
122 
123  public:
124 
125  // ----------------------------------------------------------------------
126  // Component initialization
127  // ----------------------------------------------------------------------
128 
130  void init(
131  FwSizeType queueDepth,
132  FwEnumStoreType instance = 0
133  );
134 
135  public:
136 
137  // ----------------------------------------------------------------------
138  // Getters for special input ports
139  // ----------------------------------------------------------------------
140 
145  FwIndexType portNum
146  );
147 
148  public:
149 
150  // ----------------------------------------------------------------------
151  // Getters for typed input ports
152  // ----------------------------------------------------------------------
153 
158  FwIndexType portNum
159  );
160 
165  FwIndexType portNum
166  );
167 
168  public:
169 
170  // ----------------------------------------------------------------------
171  // Connect input ports to special output ports
172  // ----------------------------------------------------------------------
173 
176  FwIndexType portNum,
177  Fw::InputCmdRegPort* port
178  );
179 
182  FwIndexType portNum,
184  );
185 
188  FwIndexType portNum,
189  Fw::InputLogPort* port
190  );
191 
192 #if FW_ENABLE_TEXT_LOGGING == 1
193 
195  void set_textEventOut_OutputPort(
196  FwIndexType portNum,
197  Fw::InputLogTextPort* port
198  );
199 
200 #endif
201 
204  FwIndexType portNum,
205  Fw::InputTimePort* port
206  );
207 
210  FwIndexType portNum,
211  Fw::InputTlmPort* port
212  );
213 
214  public:
215 
216  // ----------------------------------------------------------------------
217  // Connect typed input ports to typed output ports
218  // ----------------------------------------------------------------------
219 
222  FwIndexType portNum,
224  );
225 
228  FwIndexType portNum,
230  );
231 
234  FwIndexType portNum,
236  );
237 
238 #if FW_PORT_SERIALIZATION
239 
240  public:
241 
242  // ----------------------------------------------------------------------
243  // Connect serial input ports to special output ports
244  // ----------------------------------------------------------------------
245 
248  FwIndexType portNum,
249  Fw::InputSerializePort* port
250  );
251 
254  FwIndexType portNum,
255  Fw::InputSerializePort* port
256  );
257 
260  FwIndexType portNum,
261  Fw::InputSerializePort* port
262  );
263 
264 #if FW_ENABLE_TEXT_LOGGING == 1
265 
267  void set_textEventOut_OutputPort(
268  FwIndexType portNum,
269  Fw::InputSerializePort* port
270  );
271 
272 #endif
273 
276  FwIndexType portNum,
277  Fw::InputSerializePort* port
278  );
279 
282  FwIndexType portNum,
283  Fw::InputSerializePort* port
284  );
285 
286 #endif
287 
288 #if FW_PORT_SERIALIZATION
289 
290  public:
291 
292  // ----------------------------------------------------------------------
293  // Connect serial input ports to typed output ports
294  // ----------------------------------------------------------------------
295 
298  FwIndexType portNum,
299  Fw::InputSerializePort* port
300  );
301 
304  FwIndexType portNum,
305  Fw::InputSerializePort* port
306  );
307 
310  FwIndexType portNum,
311  Fw::InputSerializePort* port
312  );
313 
314 #endif
315 
316  public:
317 
318  // ----------------------------------------------------------------------
319  // Command registration
320  // ----------------------------------------------------------------------
321 
325  void regCommands();
326 
327  protected:
328 
329  // ----------------------------------------------------------------------
330  // Component construction and destruction
331  // ----------------------------------------------------------------------
332 
335  const char* compName = ""
336  );
337 
339  virtual ~DpWriterComponentBase();
340 
341  protected:
342 
343  // ----------------------------------------------------------------------
344  // Getters for numbers of special input ports
345  // ----------------------------------------------------------------------
346 
351  return NUM_CMDIN_INPUT_PORTS;
352  }
353 
354  protected:
355 
356  // ----------------------------------------------------------------------
357  // Getters for numbers of typed input ports
358  // ----------------------------------------------------------------------
359 
365  }
366 
372  }
373 
374  protected:
375 
376  // ----------------------------------------------------------------------
377  // Getters for numbers of special output ports
378  // ----------------------------------------------------------------------
379 
385  }
386 
392  }
393 
399  }
400 
401 #if FW_ENABLE_TEXT_LOGGING == 1
402 
406  static constexpr FwIndexType getNum_textEventOut_OutputPorts() {
408  }
409 
410 #endif
411 
417  }
418 
424  }
425 
426  protected:
427 
428  // ----------------------------------------------------------------------
429  // Getters for numbers of typed output ports
430  // ----------------------------------------------------------------------
431 
437  }
438 
444  }
445 
451  }
452 
453  protected:
454 
455  // ----------------------------------------------------------------------
456  // Connection status queries for special output ports
457  // ----------------------------------------------------------------------
458 
463  FwIndexType portNum
464  );
465 
470  FwIndexType portNum
471  );
472 
477  FwIndexType portNum
478  );
479 
480 #if FW_ENABLE_TEXT_LOGGING == 1
481 
485  bool isConnected_textEventOut_OutputPort(
486  FwIndexType portNum
487  );
488 
489 #endif
490 
495  FwIndexType portNum
496  );
497 
502  FwIndexType portNum
503  );
504 
505  protected:
506 
507  // ----------------------------------------------------------------------
508  // Connection status queries for typed output ports
509  // ----------------------------------------------------------------------
510 
515  FwIndexType portNum
516  );
517 
522  FwIndexType portNum
523  );
524 
529  FwIndexType portNum
530  );
531 
532  protected:
533 
534  // ----------------------------------------------------------------------
535  // Handlers to implement for typed input ports
536  // ----------------------------------------------------------------------
537 
539  virtual void bufferSendIn_handler(
540  FwIndexType portNum,
541  Fw::Buffer& fwBuffer
542  ) = 0;
543 
545  virtual void schedIn_handler(
546  FwIndexType portNum,
547  U32 context
548  ) = 0;
549 
550  protected:
551 
552  // ----------------------------------------------------------------------
553  // Port handler base-class functions for typed input ports
554  //
555  // Call these functions directly to bypass the corresponding ports
556  // ----------------------------------------------------------------------
557 
560  FwIndexType portNum,
561  Fw::Buffer& fwBuffer
562  );
563 
565  void schedIn_handlerBase(
566  FwIndexType portNum,
567  U32 context
568  );
569 
570  protected:
571 
572  // ----------------------------------------------------------------------
573  // Pre-message hooks for typed async input ports
574  //
575  // Each of these functions is invoked just before processing a message
576  // on the corresponding port. By default, they do nothing. You can
577  // override them to provide specific pre-message behavior.
578  // ----------------------------------------------------------------------
579 
581  virtual void bufferSendIn_preMsgHook(
582  FwIndexType portNum,
583  Fw::Buffer& fwBuffer
584  );
585 
587  virtual void schedIn_preMsgHook(
588  FwIndexType portNum,
589  U32 context
590  );
591 
592  protected:
593 
594  // ----------------------------------------------------------------------
595  // Invocation functions for typed output ports
596  // ----------------------------------------------------------------------
597 
600  FwIndexType portNum,
601  Fw::Buffer& fwBuffer
602  );
603 
605  void dpWrittenOut_out(
606  FwIndexType portNum,
607  const Fw::StringBase& fileName,
608  FwDpPriorityType priority,
609  FwSizeType size
610  );
611 
614  FwIndexType portNum,
615  Fw::Buffer& fwBuffer
616  );
617 
618  protected:
619 
620  // ----------------------------------------------------------------------
621  // Command response
622  // ----------------------------------------------------------------------
623 
625  void cmdResponse_out(
626  FwOpcodeType opCode,
627  U32 cmdSeq,
628  Fw::CmdResponse response
629  );
630 
631  protected:
632 
633  // ----------------------------------------------------------------------
634  // Command handlers to implement
635  // ----------------------------------------------------------------------
636 
640  virtual void CLEAR_EVENT_THROTTLE_cmdHandler(
641  FwOpcodeType opCode,
642  U32 cmdSeq
643  ) = 0;
644 
645  protected:
646 
647  // ----------------------------------------------------------------------
648  // Command handler base-class functions
649  //
650  // Call these functions directly to bypass the command input port
651  // ----------------------------------------------------------------------
652 
657  FwOpcodeType opCode,
658  U32 cmdSeq,
659  Fw::CmdArgBuffer& args
660  );
661 
662  protected:
663 
664  // ----------------------------------------------------------------------
665  // Pre-message hooks for async commands
666  //
667  // Each of these functions is invoked just before processing the
668  // corresponding command. By default they do nothing. You can
669  // override them to provide specific pre-command behavior.
670  // ----------------------------------------------------------------------
671 
673  virtual void CLEAR_EVENT_THROTTLE_preMsgHook(
674  FwOpcodeType opCode,
675  U32 cmdSeq
676  );
677 
678  protected:
679 
680  // ----------------------------------------------------------------------
681  // Event logging functions
682  // ----------------------------------------------------------------------
683 
688 
693  FwSizeType bufferSize,
694  U32 minSize
695  );
696 
701  FwSizeType bufferSize,
702  U32 storedHash,
703  U32 computedHash
704  );
705 
710  FwSizeType bufferSize,
711  U32 errorCode
712  );
713 
718  FwSizeType bufferSize,
719  U32 minSize
720  );
721 
726  U32 status,
727  const Fw::StringBase& file
728  );
729 
734  U32 status,
735  U32 bytesWritten,
736  U32 bytesToWrite,
737  const Fw::StringBase& file
738  );
739 
744  U32 bytes,
745  const Fw::StringBase& file
746  ) const;
747 
748  protected:
749 
750  // ----------------------------------------------------------------------
751  // Event throttle reset functions
752  // ----------------------------------------------------------------------
753 
756 
759 
762 
765 
768 
771 
774 
775  protected:
776 
777  // ----------------------------------------------------------------------
778  // Telemetry write functions
779  // ----------------------------------------------------------------------
780 
785  U32 arg,
786  Fw::Time _tlmTime = Fw::Time()
787  );
788 
793  U64 arg,
794  Fw::Time _tlmTime = Fw::Time()
795  );
796 
801  U32 arg,
802  Fw::Time _tlmTime = Fw::Time()
803  );
804 
809  U32 arg,
810  Fw::Time _tlmTime = Fw::Time()
811  );
812 
816  void tlmWrite_NumErrors(
817  U32 arg,
818  Fw::Time _tlmTime = Fw::Time()
819  );
820 
821  protected:
822 
823  // ----------------------------------------------------------------------
824  // Time
825  // ----------------------------------------------------------------------
826 
830  Fw::Time getTime() const;
831 
832  private:
833 
834  // ----------------------------------------------------------------------
835  // Message dispatch functions
836  // ----------------------------------------------------------------------
837 
839  virtual MsgDispatchStatus doDispatch();
840 
841  private:
842 
843  // ----------------------------------------------------------------------
844  // Calls for messages received on special input ports
845  // ----------------------------------------------------------------------
846 
848  static void m_p_cmdIn_in(
849  Fw::PassiveComponentBase* callComp,
850  FwIndexType portNum,
851  FwOpcodeType opCode,
852  U32 cmdSeq,
853  Fw::CmdArgBuffer& args
854  );
855 
856  private:
857 
858  // ----------------------------------------------------------------------
859  // Calls for messages received on typed input ports
860  // ----------------------------------------------------------------------
861 
863  static void m_p_bufferSendIn_in(
864  Fw::PassiveComponentBase* callComp,
865  FwIndexType portNum,
866  Fw::Buffer& fwBuffer
867  );
868 
870  static void m_p_schedIn_in(
871  Fw::PassiveComponentBase* callComp,
872  FwIndexType portNum,
873  U32 context
874  );
875 
876  private:
877 
878  // ----------------------------------------------------------------------
879  // Special input ports
880  // ----------------------------------------------------------------------
881 
883  Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
884 
885  private:
886 
887  // ----------------------------------------------------------------------
888  // Typed input ports
889  // ----------------------------------------------------------------------
890 
892  Fw::InputBufferSendPort m_bufferSendIn_InputPort[NUM_BUFFERSENDIN_INPUT_PORTS];
893 
895  Svc::InputSchedPort m_schedIn_InputPort[NUM_SCHEDIN_INPUT_PORTS];
896 
897  private:
898 
899  // ----------------------------------------------------------------------
900  // Special output ports
901  // ----------------------------------------------------------------------
902 
904  Fw::OutputCmdRegPort m_cmdRegIn_OutputPort[NUM_CMDREGIN_OUTPUT_PORTS];
905 
907  Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS];
908 
910  Fw::OutputLogPort m_eventOut_OutputPort[NUM_EVENTOUT_OUTPUT_PORTS];
911 
912 #if FW_ENABLE_TEXT_LOGGING == 1
913 
915  Fw::OutputLogTextPort m_textEventOut_OutputPort[NUM_TEXTEVENTOUT_OUTPUT_PORTS];
916 
917 #endif
918 
920  Fw::OutputTimePort m_timeGetOut_OutputPort[NUM_TIMEGETOUT_OUTPUT_PORTS];
921 
923  Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
924 
925  private:
926 
927  // ----------------------------------------------------------------------
928  // Typed output ports
929  // ----------------------------------------------------------------------
930 
932  Fw::OutputBufferSendPort m_deallocBufferSendOut_OutputPort[NUM_DEALLOCBUFFERSENDOUT_OUTPUT_PORTS];
933 
935  Svc::OutputDpWrittenPort m_dpWrittenOut_OutputPort[NUM_DPWRITTENOUT_OUTPUT_PORTS];
936 
938  Fw::OutputBufferSendPort m_procBufferSendOut_OutputPort[NUM_PROCBUFFERSENDOUT_OUTPUT_PORTS];
939 
940  private:
941 
942  // ----------------------------------------------------------------------
943  // Counter values for event throttling
944  // ----------------------------------------------------------------------
945 
947  std::atomic<FwIndexType> m_InvalidBufferThrottle;
948 
950  std::atomic<FwIndexType> m_BufferTooSmallForPacketThrottle;
951 
953  std::atomic<FwIndexType> m_InvalidHeaderHashThrottle;
954 
956  std::atomic<FwIndexType> m_InvalidHeaderThrottle;
957 
959  std::atomic<FwIndexType> m_BufferTooSmallForDataThrottle;
960 
962  std::atomic<FwIndexType> m_FileOpenErrorThrottle;
963 
965  std::atomic<FwIndexType> m_FileWriteErrorThrottle;
966 
967  private:
968 
969  // ----------------------------------------------------------------------
970  // First update flags for telemetry channels
971  // ----------------------------------------------------------------------
972 
974  bool m_first_update_NumBuffersReceived = true;
975 
977  bool m_first_update_NumBytesWritten = true;
978 
980  bool m_first_update_NumSuccessfulWrites = true;
981 
983  bool m_first_update_NumFailedWrites = true;
984 
986  bool m_first_update_NumErrors = true;
987 
988  private:
989 
990  // ----------------------------------------------------------------------
991  // Last value storage for telemetry channels
992  // ----------------------------------------------------------------------
993 
995  U32 m_last_NumBuffersReceived = {};
996 
998  U64 m_last_NumBytesWritten = {};
999 
1001  U32 m_last_NumSuccessfulWrites = {};
1002 
1004  U32 m_last_NumFailedWrites = {};
1005 
1007  U32 m_last_NumErrors = {};
1008 
1009  };
1010 
1011 }
1012 
1013 #endif
static constexpr FwIndexType getNum_bufferSendIn_InputPorts()
void deallocBufferSendOut_out(FwIndexType portNum, Fw::Buffer &fwBuffer)
Invoke output port deallocBufferSendOut.
virtual ~DpWriterComponentBase()
Destroy DpWriterComponentBase object.
bool isConnected_procBufferSendOut_OutputPort(FwIndexType portNum)
FwIdType FwOpcodeType
The type of a command opcode.
void log_WARNING_HI_BufferTooSmallForData(FwSizeType bufferSize, U32 minSize)
void schedIn_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port schedIn.
virtual void CLEAR_EVENT_THROTTLE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
PlatformSizeType FwSizeType
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts()
U32 FwDpPriorityType
The type of a data product priority.
I32 FwEnumStoreType
static constexpr FwIndexType getNum_eventOut_OutputPorts()
void set_dpWrittenOut_OutputPort(FwIndexType portNum, Svc::InputDpWrittenPort *port)
Connect port to dpWrittenOut[portNum].
bool isConnected_deallocBufferSendOut_OutputPort(FwIndexType portNum)
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
An error occurred when opening a file.
friend class DpWriterTester
Friend class tester implementation to support white-box testing.
Enum representing a command response.
virtual void bufferSendIn_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port bufferSendIn.
static constexpr FwIndexType getNum_schedIn_InputPorts()
static constexpr FwIndexType getNum_timeGetOut_OutputPorts()
static constexpr FwIndexType getNum_deallocBufferSendOut_OutputPorts()
Received buffer is too small to hold the data specified in the header.
bool isConnected_tlmOut_OutputPort(FwIndexType portNum)
void tlmWrite_NumErrors(U32 arg, Fw::Time _tlmTime=Fw::Time())
void init()
Object initializer.
Definition: ObjBase.cpp:24
Fw::InputBufferSendPort * get_bufferSendIn_InputPort(FwIndexType portNum)
void log_WARNING_HI_InvalidBuffer_ThrottleClear()
Reset throttle value for InvalidBuffer.
void tlmWrite_NumFailedWrites(U32 arg, Fw::Time _tlmTime=Fw::Time())
void log_WARNING_HI_FileWriteError_ThrottleClear()
Reset throttle value for FileWriteError.
void CLEAR_EVENT_THROTTLE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
bool isConnected_dpWrittenOut_OutputPort(FwIndexType portNum)
void procBufferSendOut_out(FwIndexType portNum, Fw::Buffer &fwBuffer)
Invoke output port procBufferSendOut.
void dpWrittenOut_out(FwIndexType portNum, const Fw::StringBase &fileName, FwDpPriorityType priority, FwSizeType size)
Invoke output port dpWrittenOut.
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
void log_WARNING_HI_InvalidHeaderHash(FwSizeType bufferSize, U32 storedHash, U32 computedHash)
void set_deallocBufferSendOut_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to deallocBufferSendOut[portNum].
void tlmWrite_NumBuffersReceived(U32 arg, Fw::Time _tlmTime=Fw::Time())
static constexpr FwIndexType getNum_procBufferSendOut_OutputPorts()
bool isConnected_eventOut_OutputPort(FwIndexType portNum)
void log_WARNING_HI_BufferTooSmallForData_ThrottleClear()
Reset throttle value for BufferTooSmallForData.
void log_WARNING_HI_FileOpenError_ThrottleClear()
Reset throttle value for FileOpenError.
static constexpr FwIndexType getNum_tlmOut_OutputPorts()
DpWriterComponentBase(const char *compName="")
Construct DpWriterComponentBase object.
void log_WARNING_HI_FileOpenError(U32 status, const Fw::StringBase &file)
void log_WARNING_HI_InvalidHeader_ThrottleClear()
Reset throttle value for InvalidHeader.
void log_WARNING_HI_InvalidHeaderHash_ThrottleClear()
Reset throttle value for InvalidHeaderHash.
void log_WARNING_HI_BufferTooSmallForPacket(FwSizeType bufferSize, U32 minSize)
An error occurred when writing to a file.
void regCommands()
Register commands with the Command Dispatcher.
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
Error occurred when deserializing the packet header.
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
void log_ACTIVITY_LO_FileWritten(U32 bytes, const Fw::StringBase &file) const
static constexpr FwIndexType getNum_cmdRegIn_OutputPorts()
virtual void CLEAR_EVENT_THROTTLE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CLEAR_EVENT_THROTTLE.
virtual void schedIn_handler(FwIndexType portNum, U32 context)=0
Handler for input port schedIn.
PlatformIndexType FwIndexType
static constexpr FwIndexType getNum_dpWrittenOut_OutputPorts()
void set_eventOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to eventOut[portNum].
virtual void bufferSendIn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port bufferSendIn.
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum)
void log_WARNING_HI_FileWriteError(U32 status, U32 bytesWritten, U32 bytesToWrite, const Fw::StringBase &file)
void set_timeGetOut_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeGetOut[portNum].
RateGroupDivider component implementation.
bool isConnected_cmdRegIn_OutputPort(FwIndexType portNum)
friend class DpWriterTesterBase
Friend class tester to support autocoded test harness.
void bufferSendIn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port bufferSendIn.
void tlmWrite_NumBytesWritten(U64 arg, Fw::Time _tlmTime=Fw::Time())
virtual void schedIn_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port schedIn.
void log_WARNING_HI_InvalidHeader(FwSizeType bufferSize, U32 errorCode)
void tlmWrite_NumSuccessfulWrites(U32 arg, Fw::Time _tlmTime=Fw::Time())
Received buffer is too small to hold a data product packet.
void log_WARNING_HI_BufferTooSmallForPacket_ThrottleClear()
Reset throttle value for BufferTooSmallForPacket.
void set_procBufferSendOut_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to procBufferSendOut[portNum].
The received buffer has an invalid header hash.
Svc::InputSchedPort * get_schedIn_InputPort(FwIndexType portNum)
void set_cmdRegIn_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegIn[portNum].
Auto-generated base for DpWriter component.
bool isConnected_timeGetOut_OutputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_cmdIn_InputPorts()
#define U64(C)
Definition: sha.h:181