27 m_cycleStarted(false),
36 static_cast<FwAssertArgType>(numContexts),
42 this->m_numContexts = numContexts;
44 for (
FwIndexType entry = 0; entry < this->m_numContexts; entry++) {
45 this->m_contexts[entry] = contexts[entry];
53 void ActiveRateGroup::preamble() {
64 this->m_cycleStarted =
false;
67 for (
FwIndexType port = 0; port < this->m_numContexts; port++) {
83 if (cycleTime > this->m_maxTime) {
84 this->m_maxTime = cycleTime;
92 if (this->m_cycleStarted) {
96 this->m_overrunThrottle++;
101 if (this->m_overrunThrottle > 0) {
102 this->m_overrunThrottle--;
113 this->m_cycleStarted =
true;
116 void ActiveRateGroup::PingIn_handler(
FwIndexType portNum, U32 key) {
void tlmWrite_RgCycleSlips(U32 arg, Fw::Time _tlmTime=Fw::Time())
ActiveRateGroup(const char *compName)
ActiveRateGroup constructor.
void PingOut_out(FwIndexType portNum, U32 key)
Invoke output port PingOut.
Status now() override
Get the current time.
~ActiveRateGroup()
ActiveRateGroup destructor.
void log_DIAGNOSTIC_RateGroupStarted() const
FwIndexType getNum_RateGroupMemberOut_OutputPorts() const
void tlmWrite_RgMaxTime(U32 arg, Fw::Time _tlmTime=Fw::Time())
void configure(U32 contexts[], FwIndexType numContexts)
ActiveRateGroup configuration function.
void log_WARNING_HI_RateGroupCycleSlip(U32 cycle) const
bool isConnected_RateGroupMemberOut_OutputPort(FwIndexType portNum)
Auto-generated base for ActiveRateGroup component.
PlatformIndexType FwIndexType
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
Number of overruns allowed before overrun event is throttled.
RateGroupDivider component implementation.
void RateGroupMemberOut_out(FwIndexType portNum, U32 context)
Invoke output port RateGroupMemberOut.
Status getDiffUsec(const RawTime &other, U32 &result) const
Calculate the difference in microseconds between two RawTime objects.