7 #ifndef Svc_TlmPacketizerComponentAc_HPP 8 #define Svc_TlmPacketizerComponentAc_HPP 24 #if !FW_DIRECT_PORT_CALLS 27 #if !FW_DIRECT_PORT_CALLS 190 #if !FW_DIRECT_PORT_CALLS 207 #if !FW_DIRECT_PORT_CALLS 273 #if !FW_DIRECT_PORT_CALLS 311 #if FW_ENABLE_TEXT_LOGGING == 1 314 void set_textEventOut_OutputPort(
335 #if !FW_DIRECT_PORT_CALLS 381 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 392 Fw::InputSerializePort* port
398 Fw::InputSerializePort* port
404 Fw::InputSerializePort* port
410 Fw::InputSerializePort* port
413 #if FW_ENABLE_TEXT_LOGGING == 1 416 void set_textEventOut_OutputPort(
418 Fw::InputSerializePort* port
426 Fw::InputSerializePort* port
432 Fw::InputSerializePort* port
437 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 448 Fw::InputSerializePort* port
454 Fw::InputSerializePort* port
460 Fw::InputSerializePort* port
466 Fw::InputSerializePort* port
472 Fw::InputSerializePort* port
507 const char* compName =
"" 629 #if FW_ENABLE_TEXT_LOGGING == 1 634 static constexpr
FwIndexType getNum_textEventOut_OutputPorts() {
743 #if FW_ENABLE_TEXT_LOGGING == 1 748 bool isConnected_textEventOut_OutputPort(
816 #if FW_DIRECT_PORT_CALLS 901 #if FW_DIRECT_PORT_CALLS 1595 static void m_p_cmdIn_in(
1610 static void m_p_Run_in(
1628 static void m_p_TlmRecv_in(
1637 static void m_p_configureSectionGroupRate_in(
1648 static void m_p_controlIn_in(
1656 static void m_p_packetOverrideIn_in(
1663 static void m_p_packetOverrideReturnIn_in(
1670 static void m_p_pingIn_in(
1689 void cmdResponseOut_out(
1714 void paramSetOut_out(
1720 #if FW_ENABLE_TEXT_LOGGING 1723 void textEventOut_out(
1734 void timeGetOut_out(
1783 #if !FW_DIRECT_PORT_CALLS 1796 #if !FW_DIRECT_PORT_CALLS 1830 #if !FW_DIRECT_PORT_CALLS 1853 #if FW_ENABLE_TEXT_LOGGING == 1 1868 #if !FW_DIRECT_PORT_CALLS 1903 std::atomic<FwIndexType> m_OversizedChannelThrottle;
1906 std::atomic<FwIndexType> m_ConfigMirrorAllocFailedThrottle;
bool isConnected_PktSend_OutputPort(FwIndexType portNum) const
A group's send state was set by CONFIGURE_GROUP_SEND.
static constexpr FwIndexType getNum_packetOverrideIn_InputPorts()
void CLEAR_PACKET_OVERRIDE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void SEND_PKT_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Set telemetry send level.
Could not allocate a buffer to mirror a per-packet override out packetOverrideOut.
Svc::InputEnableSectionPort * get_controlIn_InputPort(FwIndexType portNum)
A packetOverrideIn reload record referenced a packet id not in this deployment; the record was skippe...
A per-packet override was cleared by command; the packet reverts to its group policy.
friend class TlmPacketizerTesterBase
Friend class tester to support autocoded test harness.
bool isConnected_packetOverrideOut_OutputPort(FwIndexType portNum) const
void set_PktSend_OutputPort(FwIndexType portNum, Fw::InputComPort *port)
Connect port to PktSend[portNum].
virtual void packetOverrideIn_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port packetOverrideIn.
void OVERRIDE_PACKET_SEND_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
FwIdType FwOpcodeType
The type of a command opcode.
bool isConnected_eventOut_OutputPort(FwIndexType portNum) const
A packetOverrideIn reload record carried a section out of range; the record was skipped.
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
Force a packet to be sent.
PlatformSizeType FwSizeType
void tlmWrite_GroupConfigs(const Svc::TlmPacketizer_SectionConfigs &arg, Fw::Time _tlmTime=Fw::Time()) const
bool isConnected_tlmOut_OutputPort(FwIndexType portNum) const
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts()
bool isConnected_paramGetOut_OutputPort(FwIndexType portNum) const
Send policy of a group or packet. Resolution: packet -> group -> section enable.
void log_ACTIVITY_HI_LevelSet(FwChanIdType level) const
Svc::InputConfigureGroupRatePort * get_configureSectionGroupRate_InputPort(FwIndexType portNum)
virtual void TlmRecv_handler(FwIndexType portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)=0
Handler for input port TlmRecv.
void Run_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port Run.
virtual void parameterLoaded(FwPrmIdType id, Fw::ParamValid valid)
Called for each parameter when parameters are loaded.
Telemetry send policy (send state + rates), shared by the per-group config and per-packet override...
void set_allocate_OutputPort(FwIndexType portNum, Fw::InputBufferGetPort *port)
Connect port to allocate[portNum].
void log_ACTIVITY_HI_GroupSendStateSet(const Svc::TelemetrySection §ion, FwChanIdType tlmGroup, const Svc::TlmSendState &sendState) const
A per-packet override was applied by command; carries the stored override.
static constexpr FwIndexType getNum_PktSend_OutputPorts()
FwIdType FwPrmIdType
The type of a parameter identifier.
void log_WARNING_LO_NoChan(FwChanIdType Id) const
static constexpr FwIndexType getNum_pingIn_InputPorts()
void log_ACTIVITY_HI_PacketSent(U32 packetId) const
virtual void configureSectionGroupRate_handler(FwIndexType portNum, const Svc::TelemetrySection §ion, FwChanIdType tlmGroup, const Svc::RateLogic &rateLogic, U32 minDelta, U32 maxDelta)=0
Handler for input port configureSectionGroupRate.
Link-time delegating Mutex implementation.
Set the rate logic and Min / Max deltas between successive packets of a group on a section...
A packet's override and effective configuration, emitted in response to GET_PACKET_CONFIG.
bool isConnected_allocate_OutputPort(FwIndexType portNum) const
void TlmRecv_handlerBase(FwIndexType portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)
Handler base-class function for input port TlmRecv.
Enable / disable a telemetry section.
void controlIn_handlerBase(FwIndexType portNum, const Svc::TelemetrySection §ion, const Fw::Enabled &enabled)
Handler base-class function for input port controlIn.
Per-packet override: which fields apply and their values.
void set_packetOverrideReturnOut_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to packetOverrideReturnOut[portNum].
Parameter to control section enable flags.
virtual void SEND_PKT_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U32 id, const Svc::TelemetrySection §ion)=0
Opcode to set parameter SECTION_ENABLED.
bool isConnected_pingOut_OutputPort(FwIndexType portNum) const
void log_ACTIVITY_HI_PacketOverrideCleared(const Svc::TelemetrySection §ion, U32 packetId) const
void packetOverrideIn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port packetOverrideIn.
virtual void controlIn_handler(FwIndexType portNum, const Svc::TelemetrySection §ion, const Fw::Enabled &enabled)=0
Handler for input port controlIn.
virtual void packetOverrideIn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port packetOverrideIn.
virtual void OVERRIDE_PACKET_SEND_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Svc::TelemetrySection §ion, U32 packetId, const Svc::TlmSendState &sendState)=0
void log_WARNING_LO_ReloadRecordInvalid(U32 packetId) const
Override the send state of a single packet in a section (rates follow the group unless also overridde...
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
Enum representing a command response.
A command carried an invalid section for a per-packet operation.
Throttle reset count for ConfigMirrorAllocFailed.
bool isConnected_paramSetOut_OutputPort(FwIndexType portNum) const
void log_ACTIVITY_HI_PacketOverrideSet(const Svc::TelemetrySection §ion, U32 packetId, const Svc::PacketOverrideConfig &override) const
void cmdIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Handler base-class function for input port cmdIn.
Telemetry send level set.
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
Fw::InputBufferSendPort * get_packetOverrideReturnIn_InputPort(FwIndexType portNum)
virtual void SET_LEVEL_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, FwChanIdType level)=0
void log_WARNING_LO_PacketNotFound(U32 packetId) const
void CONFIGURE_GROUP_SEND_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void packetOverrideReturnIn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port packetOverrideReturnIn.
void log_WARNING_LO_InvalidPacketConfig(U32 packetId) const
void loadParameters()
Load the parameters from a parameter source.
void set_paramSetOut_OutputPort(FwIndexType portNum, Fw::InputPrmSetPort *port)
Connect port to paramSetOut[portNum].
virtual ~TlmPacketizerComponentBase()
Destroy TlmPacketizerComponentBase object.
void tlmWrite_SectionEnabled(const Svc::TlmPacketizer_SectionEnabled &arg, Fw::Time _tlmTime=Fw::Time()) const
Write telemetry channel SectionEnabled.
static constexpr FwIndexType getNum_deallocate_OutputPorts()
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
void init()
Object initializer.
void set_deallocate_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to deallocate[portNum].
void registerExternalParameters(Fw::ParamExternalDelegate *paramExternalDelegatePtr)
Initialize the external parameter delegate.
Channel ID for SectionEnabled.
void OVERRIDE_PACKET_RATES_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void configureSectionGroupRate_preMsgHook(FwIndexType portNum, const Svc::TelemetrySection §ion, FwChanIdType tlmGroup, const Svc::RateLogic &rateLogic, U32 minDelta, U32 maxDelta)
Pre-message hook for async input port configureSectionGroupRate.
bool isConnected_deallocate_OutputPort(FwIndexType portNum) const
FwIdType FwEventIdType
The type of an event identifier.
virtual void OVERRIDE_PACKET_RATES_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command OVERRIDE_PACKET_RATES.
virtual void CLEAR_PACKET_OVERRIDE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Svc::TelemetrySection §ion, U32 packetId)=0
Opcode to save parameter SECTION_ENABLED.
static constexpr FwIndexType getNum_packetOverrideOut_OutputPorts()
virtual void ENABLE_SECTION_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Svc::TelemetrySection §ion, const Fw::Enabled &enable)=0
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_cmdRegOut_OutputPorts()
Fw::InputTlmGetPort * get_TlmGet_InputPort(FwIndexType portNum)
void log_WARNING_LO_SectionUnconfigurable(const Svc::TelemetrySection §ion, const Fw::Enabled &enable) const
Log event SectionUnconfigurable.
bool isConnected_timeGetOut_OutputPort(FwIndexType portNum) const
virtual void CONFIGURE_GROUP_RATES_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CONFIGURE_GROUP_RATES.
void GET_PACKET_CONFIG_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void log_WARNING_HI_OversizedChannel_ThrottleClear()
Reset throttle value for OversizedChannel.
virtual void Run_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port Run.
Enumeration for rate logic types for telemetry groups.
void tlmWrite(FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_timeGetOut_OutputPorts()
void deallocate_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port deallocate.
static constexpr FwIndexType getNum_paramGetOut_OutputPorts()
FwIdType FwChanIdType
The type of a telemetry channel identifier.
virtual void CLEAR_PACKET_OVERRIDE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CLEAR_PACKET_OVERRIDE.
Report a packet's override and effective configuration (PacketConfigReport event) ...
static constexpr FwIndexType getNum_packetOverrideReturnOut_OutputPorts()
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
Fw::Buffer allocate_out(FwIndexType portNum, FwSizeType size) const
Invoke output port allocate.
static constexpr FwIndexType getNum_packetOverrideReturnIn_InputPorts()
virtual void OVERRIDE_PACKET_RATES_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Svc::TelemetrySection §ion, U32 packetId, const Svc::RateLogic &rateLogic, U32 minDelta, U32 maxDelta)=0
void set_eventOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to eventOut[portNum].
virtual void GET_PACKET_CONFIG_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command GET_PACKET_CONFIG.
Enum representing event severity.
static constexpr FwIndexType getNum_tlmOut_OutputPorts()
void log_WARNING_HI_ConfigReloadFailed(const Fw::DeserialStatus &status) const
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
Enabled and disabled states.
friend class TlmPacketizerTester
Friend class tester implementation to support white-box testing.
Fw::TlmValid TlmGet_handlerBase(FwIndexType portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)
Handler base-class function for input port TlmGet.
Telemetry send level set.
Override the rate logic and thresholds of a single packet (send state follows the group unless also o...
void log_WARNING_HI_ConfigMirrorAllocFailed()
virtual void Run_handler(FwIndexType portNum, U32 context)=0
Handler for input port Run.
bool isConnected_packetOverrideReturnOut_OutputPort(FwIndexType portNum) const
Opcode to set parameter SECTION_CONFIGS.
static constexpr FwIndexType getNum_eventOut_OutputPorts()
void log_ACTIVITY_HI_PacketConfigReport(const Svc::TelemetrySection §ion, U32 packetId, const Svc::PacketOverrideConfig &override, const Svc::TlmSendConfig &effective) const
Clear a single packet's override. The packet follows its group again.
Svc::TlmPacketizer_SectionEnabled paramGet_SECTION_ENABLED(Fw::ParamValid &valid)
Opcode to save parameter SECTION_CONFIGS.
Set the send state of a group on a section.
void PktSend_out(FwIndexType portNum, Fw::ComBuffer &data, U32 context) const
Invoke output port PktSend.
static constexpr FwIndexType getNum_paramSetOut_OutputPorts()
void log_WARNING_LO_MaxLevelExceed(FwChanIdType level, FwChanIdType max) const
virtual void controlIn_preMsgHook(FwIndexType portNum, const Svc::TelemetrySection §ion, const Fw::Enabled &enabled)
Pre-message hook for async input port controlIn.
Fw::InputBufferSendPort * get_packetOverrideIn_InputPort(FwIndexType portNum)
void log_WARNING_LO_ReloadRecordUnknownPacket(U32 packetId) const
static constexpr FwIndexType getNum_allocate_OutputPorts()
PlatformIndexType FwIndexType
TlmPacketizerComponentBase(const char *compName="")
Construct TlmPacketizerComponentBase object.
static constexpr FwIndexType getNum_configureSectionGroupRate_InputPorts()
Parameter to control section configuration.
void packetOverrideOut_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port packetOverrideOut.
virtual void parametersLoaded()
Called whenever parameters are loaded.
void set_timeGetOut_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeGetOut[portNum].
virtual void OVERRIDE_PACKET_SEND_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command OVERRIDE_PACKET_SEND.
void log_WARNING_HI_OversizedChannel(FwChanIdType Id, FwSizeType valSize, FwSizeType expected)
void ENABLE_SECTION_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void SEND_PKT_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SEND_PKT.
Channel ID for GroupConfigs.
void configureSectionGroupRate_handlerBase(FwIndexType portNum, const Svc::TelemetrySection §ion, FwChanIdType tlmGroup, const Svc::RateLogic &rateLogic, U32 minDelta, U32 maxDelta)
Handler base-class function for input port configureSectionGroupRate.
RateGroupDivider component implementation.
A packetOverrideIn reload buffer was malformed: a record failed to deserialize; later records were no...
void packetOverrideReturnOut_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port packetOverrideReturnOut.
virtual void parameterUpdated(FwPrmIdType id)
Called whenever a parameter is updated.
Enum representing parameter validity.
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum) const
Svc::InputSchedPort * get_Run_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_TlmGet_InputPorts()
void packetOverrideReturnIn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port packetOverrideReturnIn.
Fw::InputTlmPort * get_TlmRecv_InputPort(FwIndexType portNum)
virtual void CONFIGURE_GROUP_RATES_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Svc::TelemetrySection §ion, FwChanIdType tlmGroup, const Svc::RateLogic &rateLogic, U32 minDelta, U32 maxDelta)=0
Svc::TlmPacketizer_SectionConfigs paramGet_SECTION_CONFIGS(Fw::ParamValid &valid)
static constexpr FwIndexType getNum_controlIn_InputPorts()
virtual void ENABLE_SECTION_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command ENABLE_SECTION.
Telemetry value larger than the configured channel size.
void regCommands()
Register commands with the Command Dispatcher.
void set_packetOverrideOut_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to packetOverrideOut[portNum].
Telemetry channel is not part of a telemetry packet.
void pingOut_out(FwIndexType portNum, U32 key) const
Invoke output port pingOut.
void CONFIGURE_GROUP_RATES_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void SET_LEVEL_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
virtual void SET_LEVEL_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SET_LEVEL.
static constexpr FwIndexType getNum_pingOut_OutputPorts()
Throttle reset count for OversizedChannel.
void log_WARNING_HI_ConfigMirrorAllocFailed_ThrottleClear()
Reset throttle value for ConfigMirrorAllocFailed.
void set_paramGetOut_OutputPort(FwIndexType portNum, Fw::InputPrmGetPort *port)
Connect port to paramGetOut[portNum].
virtual void CONFIGURE_GROUP_SEND_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CONFIGURE_GROUP_SEND.
Couldn't find the packet to send.
static constexpr FwIndexType getNum_Run_InputPorts()
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
virtual void GET_PACKET_CONFIG_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Svc::TelemetrySection §ion, U32 packetId)=0
virtual Fw::TlmValid TlmGet_handler(FwIndexType portNum, FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val)=0
Handler for input port TlmGet.
virtual void CONFIGURE_GROUP_SEND_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, const Svc::TelemetrySection §ion, FwChanIdType tlmGroup, const Svc::TlmSendState &sendState)=0
static constexpr FwIndexType getNum_TlmRecv_InputPorts()
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
Auto-generated base for TlmPacketizer component.
static constexpr FwIndexType getNum_cmdIn_InputPorts()