F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
BufferLoggerComponentAc.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title BufferLoggerComponentAc.hpp
3 // \author Generated by fpp-to-cpp
4 // \brief hpp file for BufferLogger component base class
5 // ======================================================================
6 
7 #ifndef Svc_BufferLoggerComponentAc_HPP
8 #define Svc_BufferLoggerComponentAc_HPP
9 
10 #include <atomic>
11 
13 #include "Fw/Cmd/CmdPortAc.hpp"
14 #include "Fw/Cmd/CmdRegPortAc.hpp"
16 #include "Fw/Cmd/CmdString.hpp"
17 #include "Fw/Com/ComPortAc.hpp"
19 #include "Fw/FPrimeBasicTypes.hpp"
20 #include "Fw/Log/LogPortAc.hpp"
21 #include "Fw/Log/LogString.hpp"
22 #if FW_ENABLE_TEXT_LOGGING == 1
23 #include "Fw/Log/LogTextPortAc.hpp"
24 #endif
27 #include "Fw/Time/TimePortAc.hpp"
28 #include "Fw/Tlm/TlmPortAc.hpp"
29 #include "Fw/Tlm/TlmString.hpp"
31 #include "Svc/Ping/PingPortAc.hpp"
33 
34 namespace Svc {
35 
40  {
41 
42  // ----------------------------------------------------------------------
43  // Friend classes
44  // ----------------------------------------------------------------------
45 
47  friend class BufferLoggerTesterBase;
49  friend class BufferLoggerTester;
50 
51  PROTECTED:
52 
53  // ----------------------------------------------------------------------
54  // Constants
55  // ----------------------------------------------------------------------
56 
58  enum {
60  };
61 
63  enum {
68  };
69 
71  enum {
78  };
79 
81  enum {
84  };
85 
87  enum {
92  };
93 
95  enum {
103  };
104 
106  enum {
108  };
109 
110  public:
111 
112  // ----------------------------------------------------------------------
113  // Component initialization
114  // ----------------------------------------------------------------------
115 
117  void init(
118  FwSizeType queueDepth,
119  FwEnumStoreType instance = 0
120  );
121 
122  public:
123 
124  // ----------------------------------------------------------------------
125  // Getters for special input ports
126  // ----------------------------------------------------------------------
127 
132  FwIndexType portNum
133  );
134 
135  public:
136 
137  // ----------------------------------------------------------------------
138  // Getters for typed input ports
139  // ----------------------------------------------------------------------
140 
145  FwIndexType portNum
146  );
147 
152  FwIndexType portNum
153  );
154 
159  FwIndexType portNum
160  );
161 
166  FwIndexType portNum
167  );
168 
169  public:
170 
171  // ----------------------------------------------------------------------
172  // Connect input ports to special output ports
173  // ----------------------------------------------------------------------
174 
177  FwIndexType portNum,
178  Fw::InputCmdRegPort* port
179  );
180 
183  FwIndexType portNum,
185  );
186 
189  FwIndexType portNum,
190  Fw::InputLogPort* port
191  );
192 
193 #if FW_ENABLE_TEXT_LOGGING == 1
194 
196  void set_eventOutText_OutputPort(
197  FwIndexType portNum,
198  Fw::InputLogTextPort* port
199  );
200 
201 #endif
202 
205  FwIndexType portNum,
206  Fw::InputTimePort* port
207  );
208 
211  FwIndexType portNum,
212  Fw::InputTlmPort* port
213  );
214 
215  public:
216 
217  // ----------------------------------------------------------------------
218  // Connect typed input ports to typed output ports
219  // ----------------------------------------------------------------------
220 
223  FwIndexType portNum,
225  );
226 
229  FwIndexType portNum,
230  Svc::InputPingPort* port
231  );
232 
233 #if FW_PORT_SERIALIZATION
234 
235  public:
236 
237  // ----------------------------------------------------------------------
238  // Connect serial input ports to special output ports
239  // ----------------------------------------------------------------------
240 
243  FwIndexType portNum,
244  Fw::InputSerializePort* port
245  );
246 
249  FwIndexType portNum,
250  Fw::InputSerializePort* port
251  );
252 
255  FwIndexType portNum,
256  Fw::InputSerializePort* port
257  );
258 
259 #if FW_ENABLE_TEXT_LOGGING == 1
260 
262  void set_eventOutText_OutputPort(
263  FwIndexType portNum,
264  Fw::InputSerializePort* port
265  );
266 
267 #endif
268 
271  FwIndexType portNum,
272  Fw::InputSerializePort* port
273  );
274 
277  FwIndexType portNum,
278  Fw::InputSerializePort* port
279  );
280 
281 #endif
282 
283 #if FW_PORT_SERIALIZATION
284 
285  public:
286 
287  // ----------------------------------------------------------------------
288  // Connect serial input ports to typed output ports
289  // ----------------------------------------------------------------------
290 
293  FwIndexType portNum,
294  Fw::InputSerializePort* port
295  );
296 
299  FwIndexType portNum,
300  Fw::InputSerializePort* port
301  );
302 
303 #endif
304 
305  public:
306 
307  // ----------------------------------------------------------------------
308  // Command registration
309  // ----------------------------------------------------------------------
310 
314  void regCommands();
315 
316  PROTECTED:
317 
318  // ----------------------------------------------------------------------
319  // Component construction and destruction
320  // ----------------------------------------------------------------------
321 
324  const char* compName = ""
325  );
326 
328  virtual ~BufferLoggerComponentBase();
329 
330  PROTECTED:
331 
332  // ----------------------------------------------------------------------
333  // Getters for numbers of special input ports
334  // ----------------------------------------------------------------------
335 
340 
341  PROTECTED:
342 
343  // ----------------------------------------------------------------------
344  // Getters for numbers of typed input ports
345  // ----------------------------------------------------------------------
346 
351 
356 
361 
366 
367  PROTECTED:
368 
369  // ----------------------------------------------------------------------
370  // Getters for numbers of special output ports
371  // ----------------------------------------------------------------------
372 
377 
382 
387 
388 #if FW_ENABLE_TEXT_LOGGING == 1
389 
393  FwIndexType getNum_eventOutText_OutputPorts() const;
394 
395 #endif
396 
401 
406 
407  PROTECTED:
408 
409  // ----------------------------------------------------------------------
410  // Getters for numbers of typed output ports
411  // ----------------------------------------------------------------------
412 
417 
422 
423  PROTECTED:
424 
425  // ----------------------------------------------------------------------
426  // Connection status queries for special output ports
427  // ----------------------------------------------------------------------
428 
433  FwIndexType portNum
434  );
435 
440  FwIndexType portNum
441  );
442 
447  FwIndexType portNum
448  );
449 
450 #if FW_ENABLE_TEXT_LOGGING == 1
451 
455  bool isConnected_eventOutText_OutputPort(
456  FwIndexType portNum
457  );
458 
459 #endif
460 
465  FwIndexType portNum
466  );
467 
472  FwIndexType portNum
473  );
474 
475  PROTECTED:
476 
477  // ----------------------------------------------------------------------
478  // Connection status queries for typed output ports
479  // ----------------------------------------------------------------------
480 
485  FwIndexType portNum
486  );
487 
492  FwIndexType portNum
493  );
494 
495  PROTECTED:
496 
497  // ----------------------------------------------------------------------
498  // Handlers to implement for typed input ports
499  // ----------------------------------------------------------------------
500 
502  virtual void bufferSendIn_handler(
503  FwIndexType portNum,
504  Fw::Buffer& fwBuffer
505  ) = 0;
506 
508  virtual void comIn_handler(
509  FwIndexType portNum,
510  Fw::ComBuffer& data,
511  U32 context
512  ) = 0;
513 
515  virtual void pingIn_handler(
516  FwIndexType portNum,
517  U32 key
518  ) = 0;
519 
521  virtual void schedIn_handler(
522  FwIndexType portNum,
523  U32 context
524  ) = 0;
525 
526  PROTECTED:
527 
528  // ----------------------------------------------------------------------
529  // Port handler base-class functions for typed input ports
530  //
531  // Call these functions directly to bypass the corresponding ports
532  // ----------------------------------------------------------------------
533 
536  FwIndexType portNum,
537  Fw::Buffer& fwBuffer
538  );
539 
541  void comIn_handlerBase(
542  FwIndexType portNum,
543  Fw::ComBuffer& data,
544  U32 context
545  );
546 
548  void pingIn_handlerBase(
549  FwIndexType portNum,
550  U32 key
551  );
552 
554  void schedIn_handlerBase(
555  FwIndexType portNum,
556  U32 context
557  );
558 
559  PROTECTED:
560 
561  // ----------------------------------------------------------------------
562  // Pre-message hooks for typed async input ports
563  //
564  // Each of these functions is invoked just before processing a message
565  // on the corresponding port. By default, they do nothing. You can
566  // override them to provide specific pre-message behavior.
567  // ----------------------------------------------------------------------
568 
570  virtual void bufferSendIn_preMsgHook(
571  FwIndexType portNum,
572  Fw::Buffer& fwBuffer
573  );
574 
576  virtual void comIn_preMsgHook(
577  FwIndexType portNum,
578  Fw::ComBuffer& data,
579  U32 context
580  );
581 
583  virtual void pingIn_preMsgHook(
584  FwIndexType portNum,
585  U32 key
586  );
587 
589  virtual void schedIn_preMsgHook(
590  FwIndexType portNum,
591  U32 context
592  );
593 
594  PROTECTED:
595 
596  // ----------------------------------------------------------------------
597  // Invocation functions for typed output ports
598  // ----------------------------------------------------------------------
599 
601  void bufferSendOut_out(
602  FwIndexType portNum,
603  Fw::Buffer& fwBuffer
604  );
605 
607  void pingOut_out(
608  FwIndexType portNum,
609  U32 key
610  );
611 
612  PROTECTED:
613 
614  // ----------------------------------------------------------------------
615  // Command response
616  // ----------------------------------------------------------------------
617 
619  void cmdResponse_out(
620  FwOpcodeType opCode,
621  U32 cmdSeq,
622  Fw::CmdResponse response
623  );
624 
625  PROTECTED:
626 
627  // ----------------------------------------------------------------------
628  // Command handlers to implement
629  // ----------------------------------------------------------------------
630 
634  virtual void BL_OpenFile_cmdHandler(
635  FwOpcodeType opCode,
636  U32 cmdSeq,
637  const Fw::CmdStringArg& file
638  ) = 0;
639 
643  virtual void BL_CloseFile_cmdHandler(
644  FwOpcodeType opCode,
645  U32 cmdSeq
646  ) = 0;
647 
651  virtual void BL_SetLogging_cmdHandler(
652  FwOpcodeType opCode,
653  U32 cmdSeq,
655  ) = 0;
656 
660  virtual void BL_FlushFile_cmdHandler(
661  FwOpcodeType opCode,
662  U32 cmdSeq
663  ) = 0;
664 
665  PROTECTED:
666 
667  // ----------------------------------------------------------------------
668  // Command handler base-class functions
669  //
670  // Call these functions directly to bypass the command input port
671  // ----------------------------------------------------------------------
672 
677  FwOpcodeType opCode,
678  U32 cmdSeq,
679  Fw::CmdArgBuffer& args
680  );
681 
686  FwOpcodeType opCode,
687  U32 cmdSeq,
688  Fw::CmdArgBuffer& args
689  );
690 
695  FwOpcodeType opCode,
696  U32 cmdSeq,
697  Fw::CmdArgBuffer& args
698  );
699 
704  FwOpcodeType opCode,
705  U32 cmdSeq,
706  Fw::CmdArgBuffer& args
707  );
708 
709  PROTECTED:
710 
711  // ----------------------------------------------------------------------
712  // Pre-message hooks for async commands
713  //
714  // Each of these functions is invoked just before processing the
715  // corresponding command. By default they do nothing. You can
716  // override them to provide specific pre-command behavior.
717  // ----------------------------------------------------------------------
718 
720  virtual void BL_OpenFile_preMsgHook(
721  FwOpcodeType opCode,
722  U32 cmdSeq
723  );
724 
726  virtual void BL_CloseFile_preMsgHook(
727  FwOpcodeType opCode,
728  U32 cmdSeq
729  );
730 
732  virtual void BL_SetLogging_preMsgHook(
733  FwOpcodeType opCode,
734  U32 cmdSeq
735  );
736 
738  virtual void BL_FlushFile_preMsgHook(
739  FwOpcodeType opCode,
740  U32 cmdSeq
741  );
742 
743  PROTECTED:
744 
745  // ----------------------------------------------------------------------
746  // Event logging functions
747  // ----------------------------------------------------------------------
748 
753  const Fw::StringBase& file
754  ) const;
755 
760  U32 errornum,
761  const Fw::StringBase& file
762  ) const;
763 
768  const Fw::StringBase& validationFile,
769  U32 status
770  ) const;
771 
776  U32 errornum,
777  U32 bytesWritten,
778  U32 bytesToWrite,
779  const Fw::StringBase& file
780  ) const;
781 
785  void log_ACTIVITY_LO_BL_Activated() const;
786 
790  void log_ACTIVITY_LO_BL_Deactivated() const;
791 
796 
797  PROTECTED:
798 
799  // ----------------------------------------------------------------------
800  // Telemetry write functions
801  // ----------------------------------------------------------------------
802 
807  U32 arg,
808  Fw::Time _tlmTime = Fw::Time()
809  ) const;
810 
811  PROTECTED:
812 
813  // ----------------------------------------------------------------------
814  // Time
815  // ----------------------------------------------------------------------
816 
820  Fw::Time getTime() const;
821 
822  PRIVATE:
823 
824  // ----------------------------------------------------------------------
825  // Message dispatch functions
826  // ----------------------------------------------------------------------
827 
829  virtual MsgDispatchStatus doDispatch();
830 
831  PRIVATE:
832 
833  // ----------------------------------------------------------------------
834  // Calls for messages received on special input ports
835  // ----------------------------------------------------------------------
836 
838  static void m_p_cmdIn_in(
839  Fw::PassiveComponentBase* callComp,
840  FwIndexType portNum,
841  FwOpcodeType opCode,
842  U32 cmdSeq,
843  Fw::CmdArgBuffer& args
844  );
845 
846  PRIVATE:
847 
848  // ----------------------------------------------------------------------
849  // Calls for messages received on typed input ports
850  // ----------------------------------------------------------------------
851 
853  static void m_p_bufferSendIn_in(
854  Fw::PassiveComponentBase* callComp,
855  FwIndexType portNum,
856  Fw::Buffer& fwBuffer
857  );
858 
860  static void m_p_comIn_in(
861  Fw::PassiveComponentBase* callComp,
862  FwIndexType portNum,
863  Fw::ComBuffer& data,
864  U32 context
865  );
866 
868  static void m_p_pingIn_in(
869  Fw::PassiveComponentBase* callComp,
870  FwIndexType portNum,
871  U32 key
872  );
873 
875  static void m_p_schedIn_in(
876  Fw::PassiveComponentBase* callComp,
877  FwIndexType portNum,
878  U32 context
879  );
880 
881  PRIVATE:
882 
883  // ----------------------------------------------------------------------
884  // Special input ports
885  // ----------------------------------------------------------------------
886 
888  Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
889 
890  PRIVATE:
891 
892  // ----------------------------------------------------------------------
893  // Typed input ports
894  // ----------------------------------------------------------------------
895 
897  Fw::InputBufferSendPort m_bufferSendIn_InputPort[NUM_BUFFERSENDIN_INPUT_PORTS];
898 
900  Fw::InputComPort m_comIn_InputPort[NUM_COMIN_INPUT_PORTS];
901 
903  Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
904 
906  Svc::InputSchedPort m_schedIn_InputPort[NUM_SCHEDIN_INPUT_PORTS];
907 
908  PRIVATE:
909 
910  // ----------------------------------------------------------------------
911  // Special output ports
912  // ----------------------------------------------------------------------
913 
915  Fw::OutputCmdRegPort m_cmdRegOut_OutputPort[NUM_CMDREGOUT_OUTPUT_PORTS];
916 
918  Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS];
919 
921  Fw::OutputLogPort m_eventOut_OutputPort[NUM_EVENTOUT_OUTPUT_PORTS];
922 
923 #if FW_ENABLE_TEXT_LOGGING == 1
924 
926  Fw::OutputLogTextPort m_eventOutText_OutputPort[NUM_EVENTOUTTEXT_OUTPUT_PORTS];
927 
928 #endif
929 
931  Fw::OutputTimePort m_timeCaller_OutputPort[NUM_TIMECALLER_OUTPUT_PORTS];
932 
934  Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
935 
936  PRIVATE:
937 
938  // ----------------------------------------------------------------------
939  // Typed output ports
940  // ----------------------------------------------------------------------
941 
943  Fw::OutputBufferSendPort m_bufferSendOut_OutputPort[NUM_BUFFERSENDOUT_OUTPUT_PORTS];
944 
946  Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
947 
948  };
949 
950 }
951 
952 #endif
void BL_SetLogging_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
Definition: Time.hpp:9
void regCommands()
Register commands with the Command Dispatcher.
virtual void bufferSendIn_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port bufferSendIn.
Svc::InputSchedPort * get_schedIn_InputPort(FwIndexType portNum)
PlatformSizeType FwSizeType
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum)
I32 FwEnumStoreType
virtual void schedIn_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port schedIn.
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
void pingOut_out(FwIndexType portNum, U32 key)
Invoke output port pingOut.
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
virtual void BL_SetLogging_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command BL_SetLogging.
virtual void BL_CloseFile_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command BL_CloseFile.
bool isConnected_timeCaller_OutputPort(FwIndexType portNum)
virtual void BL_SetLogging_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, Svc::BufferLogger_LogState state)=0
No log file open command was received by BufferLogger.
virtual void BL_OpenFile_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command BL_OpenFile.
virtual void BL_FlushFile_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command BL_FlushFile.
virtual void bufferSendIn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port bufferSendIn.
void BL_OpenFile_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
bool isConnected_pingOut_OutputPort(FwIndexType portNum)
bool isConnected_tlmOut_OutputPort(FwIndexType portNum)
void log_DIAGNOSTIC_BL_LogFileClosed(const Fw::StringBase &file) const
Enum representing a command response.
Open a new log file with specified name; also resets unique file counter to 0.
bool isConnected_eventOut_OutputPort(FwIndexType portNum)
void bufferSendIn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port bufferSendIn.
void init()
Object initializer.
Definition: ObjBase.cpp:26
Flushes the current open log file to disk; a no-op with fprime&#39;s unbuffered file I/O, so always returns success.
virtual void comIn_handler(FwIndexType portNum, Fw::ComBuffer &data, U32 context)=0
Handler for input port comIn.
FwIndexType getNum_bufferSendOut_OutputPorts() const
void log_WARNING_HI_BL_LogFileOpenError(U32 errornum, const Fw::StringBase &file) const
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
bool isConnected_bufferSendOut_OutputPort(FwIndexType portNum)
virtual void comIn_preMsgHook(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Pre-message hook for async input port comIn.
void set_bufferSendOut_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to bufferSendOut[portNum].
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
U32 FwOpcodeType
The type of a command opcode.
Auto-generated base for BufferLogger component.
The Buffer Logger encountered an error writing a validation file.
void tlmWrite_BufferLogger_NumLoggedBuffers(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
virtual void BL_FlushFile_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void BL_CloseFile_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_WARNING_HI_BL_LogFileWriteError(U32 errornum, U32 bytesWritten, U32 bytesToWrite, const Fw::StringBase &file) const
BufferLoggerComponentBase(const char *compName="")
Construct BufferLoggerComponentBase object.
virtual void schedIn_handler(FwIndexType portNum, U32 context)=0
Handler for input port schedIn.
friend class BufferLoggerTesterBase
Friend class tester to support autocoded test harness.
Fw::InputBufferSendPort * get_bufferSendIn_InputPort(FwIndexType portNum)
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
FwIndexType getNum_bufferSendIn_InputPorts() const
Fw::InputComPort * get_comIn_InputPort(FwIndexType portNum)
void comIn_handlerBase(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Handler base-class function for input port comIn.
void bufferSendOut_out(FwIndexType portNum, Fw::Buffer &fwBuffer)
Invoke output port bufferSendOut.
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
virtual ~BufferLoggerComponentBase()
Destroy BufferLoggerComponentBase object.
PlatformIndexType FwIndexType
The Buffer Logger encountered an error writing to a log file.
Close the currently open log file, if any.
RateGroupDivider component implementation.
FwIndexType getNum_cmdResponseOut_OutputPorts() const
void BL_FlushFile_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum)
The Buffer Logger encountered an error opening a log file.
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
void set_eventOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to eventOut[portNum].
friend class BufferLoggerTester
Friend class tester implementation to support white-box testing.
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
void schedIn_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port schedIn.
virtual void BL_CloseFile_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
virtual void BL_OpenFile_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdStringArg &file)=0
void log_WARNING_HI_BL_LogFileValidationError(const Fw::StringBase &validationFile, U32 status) const
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].