Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove NATIVE_INT_TYPE, NATIVE_UINT_TYPE, and POINTER_CAST from Svc #3374

Merged
merged 34 commits into from
Mar 17, 2025
Merged
Changes from 33 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
5227dec
Remove NATIVE_* types from FileUplink
LeStarch Mar 12, 2025
0f44b4c
Remove NATIVE_* types from RateGroupDriver
LeStarch Mar 12, 2025
c86b6a2
Remove NATIVE_* types from ComLogger
LeStarch Mar 12, 2025
76241c5
Addressing init function usage of NATIVE_ types
LeStarch Mar 12, 2025
65e7721
NATIVE_ types from command dispatcher
LeStarch Mar 12, 2025
1ef205c
NATIVE_ types from ComQueue
LeStarch Mar 12, 2025
987cac8
NATIVE_ types from CmdSplitter
LeStarch Mar 12, 2025
a654039
U32 -> FwOpcodeType in CmdDispatcher
LeStarch Mar 13, 2025
0f91883
NATIVE_ types in BufferManager
LeStarch Mar 13, 2025
6986c6b
NATIVE_ types in LinuxTimer
LeStarch Mar 13, 2025
61481eb
NATIVE_ types from BufferAccumulator and renabling UT
LeStarch Mar 13, 2025
985a2c3
NATIVE_ types from TlmChan
LeStarch Mar 13, 2025
febf47e
NATIVE_ types from BufferRepeater
LeStarch Mar 13, 2025
f5f3743
NATIVE_ types from Active/Passive Rate Group
LeStarch Mar 13, 2025
4c0576c
NATIVE_ types from ComSplitter and ComStub
LeStarch Mar 13, 2025
da4c884
NATIVE_ types from ActiveLogger and fixed ActiveRateGroup sdd
LeStarch Mar 13, 2025
255d568
NATIVE_ types from Dp*
LeStarch Mar 13, 2025
bb7d065
NATIVE_ types from FileManager and ActiveLogger (missed)
LeStarch Mar 13, 2025
29ddfaf
NATIVE_ types from BufferLogger, FileDownlink, StaticMemory
LeStarch Mar 13, 2025
b7f9786
Deleting UdpSender/UdpReceiver that lack models and build config
LeStarch Mar 13, 2025
f259108
NATIVE_ types from Health
LeStarch Mar 13, 2025
3b1c9bd
NATIVE_ types from CmdSequencer
LeStarch Mar 13, 2025
7015ec6
NATIVE_ types from TlmPacketizer
LeStarch Mar 13, 2025
69fd08d
Fixing unit test issues
LeStarch Mar 13, 2025
063bfc4
POINTER_CAST from Svc
LeStarch Mar 13, 2025
b5f171e
CI fixes
LeStarch Mar 13, 2025
6d742c4
CI fixes (Linux)
LeStarch Mar 13, 2025
71ee45b
Fixing Ref/RPI for RG context
LeStarch Mar 13, 2025
3c2e08f
CI (sp)
LeStarch Mar 13, 2025
eead0a5
Fixing RPI build for time conversions
LeStarch Mar 13, 2025
8adc219
CI fixes (RPI)
LeStarch Mar 13, 2025
33a3774
Self review comments
LeStarch Mar 13, 2025
5a55178
Removing UDP sender/receiver config
LeStarch Mar 13, 2025
0befbc9
Review recommendations - pt 1
LeStarch Mar 15, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions RPI/RpiDemo/RpiDemoComponentImpl.cpp
Original file line number Diff line number Diff line change
@@ -114,7 +114,7 @@ namespace RPI {
char uMsg[serBuffer.getSize() + 1];
char *bPtr = reinterpret_cast<char *>(serBuffer.getData());

for (NATIVE_UINT_TYPE byte = 0; byte < serBuffer.getSize(); byte++) {
for (FwSizeType byte = 0; byte < serBuffer.getSize(); byte++) {
uMsg[byte] = isalpha(bPtr[byte]) ? bPtr[byte] : '*';
}
uMsg[sizeof(uMsg) - 1] = 0;
@@ -160,7 +160,7 @@ namespace RPI {
Fw::Logic value
)
{
NATIVE_INT_TYPE port;
FwIndexType port;
// convert to connected ports
switch (output.e) {
case RpiDemo_GpioOutNum::PIN_23:
@@ -191,7 +191,7 @@ namespace RPI {
RpiDemo_GpioInNum input /*!< Input GPIO*/
)
{
NATIVE_INT_TYPE port;
FwIndexType port;
// convert to connected ports
switch (input.e) {
case RpiDemo_GpioInNum::PIN_25:
@@ -229,7 +229,7 @@ namespace RPI {
out.setData(reinterpret_cast<U8*>(const_cast<char*>(data.toChar())));
out.setSize(data.length());
this->SpiReadWrite_out(0, out, in);
for (NATIVE_UINT_TYPE byte = 0; byte < sizeof(inBuf); byte++) {
for (FwSizeType byte = 0; byte < static_cast<FwSizeType>(sizeof(inBuf)); byte++) {
inBuf[byte] = isalpha(inBuf[byte])?inBuf[byte]:'*';
}
inBuf[sizeof(inBuf)-1] = 0;
4 changes: 2 additions & 2 deletions RPI/Top/instances.fpp
Original file line number Diff line number Diff line change
@@ -23,7 +23,7 @@ module RPI {
{

phase Fpp.ToCpp.Phases.configObjects """
NATIVE_INT_TYPE context[] = { RpiDemo::RG_CONTEXT_10Hz, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
U32 context[] = { RpiDemo::RG_CONTEXT_10Hz, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
"""

phase Fpp.ToCpp.Phases.configComponents """
@@ -100,7 +100,7 @@ module RPI {
{

phase Fpp.ToCpp.Phases.configObjects """
NATIVE_INT_TYPE context[] = { 0, 0, RpiDemo::RG_CONTEXT_1Hz, 0, 0, 0, 0, 0, 0, 0 };
U32 context[] = { 0, 0, RpiDemo::RG_CONTEXT_1Hz, 0, 0, 0, 0, 0, 0, 0 };
"""

phase Fpp.ToCpp.Phases.configComponents """
4 changes: 2 additions & 2 deletions Ref/SendBuffApp/SendBuffComponentImpl.cpp
Original file line number Diff line number Diff line change
@@ -57,8 +57,8 @@ namespace Ref {
this->tlmWrite_PacketsSent(this->m_buffsSent);
// write data
U8 testData[24];
NATIVE_UINT_TYPE dataSize = sizeof(testData);
memset(testData,0xFF,dataSize);
FwSizeType dataSize = static_cast<FwSizeType>(sizeof(testData));
memset(testData,0xFF,static_cast<size_t>(dataSize));
// compute checksum
U32 csum = 0;
for (U32 byte = 0; byte < dataSize; byte++) {
6 changes: 3 additions & 3 deletions Ref/Top/RefTopology.cpp
Original file line number Diff line number Diff line change
@@ -43,9 +43,9 @@ Svc::RateGroupDriver::DividerSet rateGroupDivisorsSet{{{1, 0}, {2, 0}, {4, 0}}};

// Rate groups may supply a context token to each of the attached children whose purpose is set by the project. The
// reference topology sets each token to zero as these contexts are unused in this project.
NATIVE_INT_TYPE rateGroup1Context[Svc::ActiveRateGroup::CONNECTION_COUNT_MAX] = {};
NATIVE_INT_TYPE rateGroup2Context[Svc::ActiveRateGroup::CONNECTION_COUNT_MAX] = {};
NATIVE_INT_TYPE rateGroup3Context[Svc::ActiveRateGroup::CONNECTION_COUNT_MAX] = {};
U32 rateGroup1Context[Svc::ActiveRateGroup::CONNECTION_COUNT_MAX] = {};
U32 rateGroup2Context[Svc::ActiveRateGroup::CONNECTION_COUNT_MAX] = {};
U32 rateGroup3Context[Svc::ActiveRateGroup::CONNECTION_COUNT_MAX] = {};

// A number of constants are needed for construction of the topology. These are specified here.
enum TopologyConstants {
14 changes: 7 additions & 7 deletions Svc/ActiveLogger/ActiveLoggerImpl.cpp
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@
#include <Os/File.hpp>

namespace Svc {

static_assert(std::numeric_limits<FwSizeType>::max() >= TELEM_ID_FILTER_SIZE, "TELEM_ID_FILTER_SIZE must fit within range of FwSizeType");
typedef ActiveLogger_Enabled Enabled;
typedef ActiveLogger_FilterSeverity FilterSeverity;

@@ -84,7 +84,7 @@
}

// check ID filters
for (NATIVE_INT_TYPE entry = 0; entry < TELEM_ID_FILTER_SIZE; entry++) {
for (FwSizeType entry = 0; entry < TELEM_ID_FILTER_SIZE; entry++) {

Check notice

Code scanning / CodeQL

Use of basic integral type Note

entry uses the basic integral type unsigned long rather than a typedef with size and signedness.
if (
(m_filteredIDs[entry] == id) &&
(severity != Fw::LogSeverity::FATAL)
@@ -133,15 +133,15 @@

if (Enabled::ENABLED == idEnabled.e) { // add ID
// search list for existing entry
for (NATIVE_INT_TYPE entry = 0; entry < TELEM_ID_FILTER_SIZE; entry++) {
for (FwSizeType entry = 0; entry < TELEM_ID_FILTER_SIZE; entry++) {

Check notice

Code scanning / CodeQL

Use of basic integral type Note

entry uses the basic integral type unsigned long rather than a typedef with size and signedness.
if (this->m_filteredIDs[entry] == ID) {
this->cmdResponse_out(opCode,cmdSeq,Fw::CmdResponse::OK);
this->log_ACTIVITY_HI_ID_FILTER_ENABLED(ID);
return;
}
}
// if not already a match, search for an open slot
for (NATIVE_INT_TYPE entry = 0; entry < TELEM_ID_FILTER_SIZE; entry++) {
for (FwSizeType entry = 0; entry < TELEM_ID_FILTER_SIZE; entry++) {

Check notice

Code scanning / CodeQL

Use of basic integral type Note

entry uses the basic integral type unsigned long rather than a typedef with size and signedness.
if (this->m_filteredIDs[entry] == 0) {
this->m_filteredIDs[entry] = ID;
this->cmdResponse_out(opCode,cmdSeq,Fw::CmdResponse::OK);
@@ -154,7 +154,7 @@
this->cmdResponse_out(opCode,cmdSeq,Fw::CmdResponse::EXECUTION_ERROR);
} else { // remove ID
// search list for existing entry
for (NATIVE_INT_TYPE entry = 0; entry < TELEM_ID_FILTER_SIZE; entry++) {
for (FwSizeType entry = 0; entry < TELEM_ID_FILTER_SIZE; entry++) {

Check notice

Code scanning / CodeQL

Use of basic integral type Note

entry uses the basic integral type unsigned long rather than a typedef with size and signedness.
if (this->m_filteredIDs[entry] == ID) {
this->m_filteredIDs[entry] = 0; // zero entry
this->cmdResponse_out(opCode,cmdSeq,Fw::CmdResponse::OK);
@@ -175,7 +175,7 @@
) {

// first, iterate through severity filters
for (NATIVE_UINT_TYPE filter = 0; filter < FilterSeverity::NUM_CONSTANTS; filter++) {
for (FwEnumStoreType filter = 0; filter < FilterSeverity::NUM_CONSTANTS; filter++) {
FilterSeverity filterState(static_cast<FilterSeverity::t>(filter));
this->log_ACTIVITY_LO_SEVERITY_FILTER_STATE(
filterState,
@@ -184,7 +184,7 @@
}

// iterate through ID filter
for (NATIVE_INT_TYPE entry = 0; entry < TELEM_ID_FILTER_SIZE; entry++) {
for (FwSizeType entry = 0; entry < TELEM_ID_FILTER_SIZE; entry++) {

Check notice

Code scanning / CodeQL

Use of basic integral type Note

entry uses the basic integral type unsigned long rather than a typedef with size and signedness.
if (this->m_filteredIDs[entry] != 0) {
this->log_ACTIVITY_HI_ID_FILTER_ENABLED(this->m_filteredIDs[entry]);
}
10 changes: 3 additions & 7 deletions Svc/ActiveLogger/test/ut/ActiveLoggerImplTester.cpp
Original file line number Diff line number Diff line change
@@ -19,10 +19,6 @@ namespace Svc {
typedef ActiveLogger_Enabled Enabled;
typedef ActiveLogger_FilterSeverity FilterSeverity;

void ActiveLoggerImplTester::init(NATIVE_INT_TYPE instance) {
Svc::ActiveLoggerGTestBase::init();
}

ActiveLoggerImplTester::ActiveLoggerImplTester(Svc::ActiveLoggerImpl& inst) :
Svc::ActiveLoggerGTestBase("testerbase",100),
m_impl(inst),
@@ -229,7 +225,7 @@ namespace Svc {

REQUIREMENT("AL-003");

for (NATIVE_INT_TYPE filterID = 1; filterID <= TELEM_ID_FILTER_SIZE; filterID++) {
for (FwSizeType filterID = 1; filterID <= TELEM_ID_FILTER_SIZE; filterID++) {
this->clearHistory();
this->clearEvents();
this->sendCmd_SET_ID_FILTER(0,cmdSeq,filterID,Enabled::ENABLED);
@@ -265,7 +261,7 @@ namespace Svc {
}

// Try to send the IDs that are filtered
for (NATIVE_INT_TYPE filterID = 1; filterID <= TELEM_ID_FILTER_SIZE; filterID++) {
for (FwSizeType filterID = 1; filterID <= TELEM_ID_FILTER_SIZE; filterID++) {
this->clearHistory();
this->clearEvents();

@@ -325,7 +321,7 @@ namespace Svc {

// Now clear them

for (NATIVE_INT_TYPE filterID = 1; filterID <= TELEM_ID_FILTER_SIZE; filterID++) {
for (FwSizeType filterID = 1; filterID <= TELEM_ID_FILTER_SIZE; filterID++) {
this->clearHistory();
this->clearEvents();
this->sendCmd_SET_ID_FILTER(0,cmdSeq,filterID,Enabled::DISABLED);
15 changes: 1 addition & 14 deletions Svc/ActiveLogger/test/ut/ActiveLoggerImplTester.hpp
Original file line number Diff line number Diff line change
@@ -19,8 +19,6 @@ namespace Svc {
ActiveLoggerImplTester(Svc::ActiveLoggerImpl& inst);
virtual ~ActiveLoggerImplTester();

void init(NATIVE_INT_TYPE instance = 0) override;

void runEventNominal();
void runFilterEventNominal();
void runFilterIdNominal();
@@ -55,24 +53,13 @@ namespace Svc {
void writeEvent(FwEventIdType id, Fw::LogSeverity severity, U32 value);
void readEvent(FwEventIdType id, Fw::LogSeverity severity, U32 value, Os::File& file);

// open call modifiers

static bool OpenInterceptor(Os::File::Status &stat, const char* fileName, Os::File::Mode mode, void* ptr);
Os::File::Status m_testOpenStatus;

// write call modifiers

static bool WriteInterceptor(Os::File::Status &status, const void * buffer, NATIVE_INT_TYPE &size, bool waitForDone, void* ptr);
Os::File::Status m_testWriteStatus;
// How many read calls to let pass before modifying
NATIVE_INT_TYPE m_writesToWait;
// enumeration to tell what kind of error to inject
typedef enum {
FILE_WRITE_WRITE_ERROR, // return a bad read status
FILE_WRITE_SIZE_ERROR, // return a bad size
} FileWriteTestType;
FileWriteTestType m_writeTestType;
NATIVE_INT_TYPE m_writeSize;
FwSizeType m_writeSize;

void textLogIn(const FwEventIdType id, //!< The event ID
const Fw::Time& timeTag, //!< The time
6 changes: 3 additions & 3 deletions Svc/ActiveRateGroup/ActiveRateGroup.cpp
Original file line number Diff line number Diff line change
@@ -30,7 +30,7 @@
m_cycleSlips(0) {
}

void ActiveRateGroup::configure( NATIVE_INT_TYPE contexts[], NATIVE_INT_TYPE numContexts) {
void ActiveRateGroup::configure(U32 contexts[], FwIndexType numContexts) {

Check notice

Code scanning / CodeQL

Use of basic integral type Note

numContexts uses the basic integral type signed short rather than a typedef with size and signedness.

Check notice

Code scanning / CodeQL

Long function without assertion Note

All functions of more than 10 lines should have at least one assertion.

Check notice

Code scanning / CodeQL

No raw arrays in interfaces Note

Raw arrays should not be used in interfaces. A container class should be used instead.
FW_ASSERT(contexts);
FW_ASSERT(numContexts == this->getNum_RateGroupMemberOut_OutputPorts(),numContexts,this->getNum_RateGroupMemberOut_OutputPorts());
FW_ASSERT(FW_NUM_ARRAY_ELEMENTS(this->m_contexts) == this->getNum_RateGroupMemberOut_OutputPorts(),
@@ -39,7 +39,7 @@

this->m_numContexts = numContexts;
// copy context values
for (NATIVE_INT_TYPE entry = 0; entry < this->m_numContexts; entry++) {
for (FwIndexType entry = 0; entry < this->m_numContexts; entry++) {

Check notice

Code scanning / CodeQL

Use of basic integral type Note

entry uses the basic integral type signed short rather than a typedef with size and signedness.
this->m_contexts[entry] = contexts[entry];
}
}
@@ -62,7 +62,7 @@
this->m_cycleStarted = false;

// invoke any members of the rate group
for (NATIVE_INT_TYPE port = 0; port < this->m_numContexts; port++) {
for (FwIndexType port = 0; port < this->m_numContexts; port++) {

Check notice

Code scanning / CodeQL

Use of basic integral type Note

port uses the basic integral type signed short rather than a typedef with size and signedness.
if (this->isConnected_RateGroupMemberOut_OutputPort(port)) {
this->RateGroupMemberOut_out(port, static_cast<U32>(this->m_contexts[port]));
}
8 changes: 4 additions & 4 deletions Svc/ActiveRateGroup/ActiveRateGroup.hpp
Original file line number Diff line number Diff line change
@@ -50,7 +50,7 @@
//! output port number.
//! \param numContexts The number of elements in the context array.

void configure(NATIVE_INT_TYPE contexts[], NATIVE_INT_TYPE numContexts);
void configure(U32 contexts[], FwIndexType numContexts);

//! \brief ActiveRateGroup destructor
//!
@@ -101,9 +101,9 @@
U32 m_cycles; //!< cycles executed
U32 m_maxTime; //!< maximum execution time in microseconds
volatile bool m_cycleStarted; //!< indicate that cycle has started. Used to detect overruns.
NATIVE_INT_TYPE m_contexts[CONNECTION_COUNT_MAX]; //!< Must match number of output ports
NATIVE_INT_TYPE m_numContexts; //!< Number of contexts passed in by user
NATIVE_INT_TYPE m_overrunThrottle; //!< throttle value for overrun events
U32 m_contexts[CONNECTION_COUNT_MAX]; //!< Must match number of output ports
FwIndexType m_numContexts; //!< Number of contexts passed in by user

Check notice

Code scanning / CodeQL

Use of basic integral type Note

m_numContexts uses the basic integral type signed short rather than a typedef with size and signedness.
FwIndexType m_overrunThrottle; //!< throttle value for overrun events

Check notice

Code scanning / CodeQL

Use of basic integral type Note

m_overrunThrottle uses the basic integral type signed short rather than a typedef with size and signedness.
U32 m_cycleSlips; //!< tracks number of cycle slips
};

2 changes: 1 addition & 1 deletion Svc/ActiveRateGroup/docs/sdd.md
Original file line number Diff line number Diff line change
@@ -44,7 +44,7 @@ The `Svc::ActiveRateGroup` component has one input port that is called to wake u
A set of context values are passed in as an array to the configure function:

```
void configure(NATIVE_INT_TYPE contexts[], NATIVE_INT_TYPE numContexts);
void configure(U32 contexts[], FwIndexType numContexts);
```

A context value can be used by a component to discriminate between more than one call in the rate group.
33 changes: 14 additions & 19 deletions Svc/ActiveRateGroup/test/ut/ActiveRateGroupImplTester.cpp
Original file line number Diff line number Diff line change
@@ -22,11 +22,6 @@
#include <cstring>

namespace Svc {

void ActiveRateGroupImplTester::init(NATIVE_INT_TYPE instance) {
ActiveRateGroupGTestBase::init();
}

ActiveRateGroupImplTester::ActiveRateGroupImplTester(Svc::ActiveRateGroup& inst) :
ActiveRateGroupGTestBase("testerbase",100),
m_impl(inst),m_causeOverrun(false),m_callOrder(0) {
@@ -43,7 +38,7 @@ namespace Svc {
}

void ActiveRateGroupImplTester::from_RateGroupMemberOut_handler(FwIndexType portNum, U32 context) {
ASSERT_TRUE(portNum < static_cast<NATIVE_INT_TYPE>(FW_NUM_ARRAY_ELEMENTS(m_impl.m_RateGroupMemberOut_OutputPort)));
ASSERT_TRUE(portNum < static_cast<FwIndexType>(FW_NUM_ARRAY_ELEMENTS(m_impl.m_RateGroupMemberOut_OutputPort)));
this->m_callLog[portNum].portCalled = true;
this->m_callLog[portNum].contextVal = context;
this->m_callLog[portNum].order = this->m_callOrder++;
@@ -65,7 +60,7 @@ namespace Svc {
this->pushFromPortEntry_PingOut(key);
}

void ActiveRateGroupImplTester::runNominal(NATIVE_INT_TYPE contexts[], NATIVE_INT_TYPE numContexts, NATIVE_INT_TYPE instance) {
void ActiveRateGroupImplTester::runNominal(U32 contexts[], FwIndexType numContexts, FwEnumStoreType instance) {

TEST_CASE(101.1.1,"Run nominal rate group execution");

@@ -96,8 +91,8 @@ namespace Svc {
ASSERT_FALSE(this->m_impl.m_cycleStarted);
// check calls
REQUIREMENT("ARG-002");
for (NATIVE_UINT_TYPE portNum = 0; portNum <
static_cast<NATIVE_UINT_TYPE>(FW_NUM_ARRAY_ELEMENTS(this->m_impl.m_RateGroupMemberOut_OutputPort)); portNum++) {
for (FwIndexType portNum = 0; portNum <
static_cast<FwIndexType>(FW_NUM_ARRAY_ELEMENTS(this->m_impl.m_RateGroupMemberOut_OutputPort)); portNum++) {
ASSERT_TRUE(this->m_callLog[portNum].portCalled);
ASSERT_EQ(this->m_callLog[portNum].contextVal,contexts[portNum]);
ASSERT_EQ(this->m_callLog[portNum].order,portNum);
@@ -114,7 +109,7 @@ namespace Svc {

}

void ActiveRateGroupImplTester::runCycleOverrun(NATIVE_INT_TYPE contexts[], NATIVE_INT_TYPE numContexts, NATIVE_INT_TYPE instance) {
void ActiveRateGroupImplTester::runCycleOverrun(U32 contexts[], FwIndexType numContexts, FwEnumStoreType instance) {

TEST_CASE(101.2.1,"Run cycle slip scenario");
// call the preamble
@@ -127,7 +122,7 @@ namespace Svc {
Os::RawTime zero_time;

// run some more cycles to verify that event is sent and telemetry is updated
for (NATIVE_INT_TYPE cycle = 0; cycle < ACTIVE_RATE_GROUP_OVERRUN_THROTTLE; cycle++) {
for (FwIndexType cycle = 0; cycle < ACTIVE_RATE_GROUP_OVERRUN_THROTTLE; cycle++) {
// clear events
this->clearEvents();
// clear port call log
@@ -154,8 +149,8 @@ namespace Svc {
ASSERT_EQ(this->m_impl.m_cycles,static_cast<U32>(cycle)+1);

// check calls
for (NATIVE_UINT_TYPE portNum = 0; portNum <
static_cast<NATIVE_UINT_TYPE>(FW_NUM_ARRAY_ELEMENTS(this->m_impl.m_RateGroupMemberOut_OutputPort)); portNum++) {
for (FwIndexType portNum = 0; portNum <
static_cast<FwIndexType>(FW_NUM_ARRAY_ELEMENTS(this->m_impl.m_RateGroupMemberOut_OutputPort)); portNum++) {
ASSERT_TRUE(this->m_callLog[portNum].portCalled == true);
}
REQUIREMENT("ARG-004");
@@ -200,8 +195,8 @@ namespace Svc {
// verify cycle count
ASSERT_EQ(this->m_impl.m_cycles, static_cast<U32>(ACTIVE_RATE_GROUP_OVERRUN_THROTTLE)+1);
// check calls
for (NATIVE_UINT_TYPE portNum = 0; portNum <
static_cast<NATIVE_UINT_TYPE>(FW_NUM_ARRAY_ELEMENTS(this->m_impl.m_RateGroupMemberOut_OutputPort)); portNum++) {
for (FwIndexType portNum = 0; portNum <
static_cast<FwIndexType>(FW_NUM_ARRAY_ELEMENTS(this->m_impl.m_RateGroupMemberOut_OutputPort)); portNum++) {
ASSERT_TRUE(this->m_callLog[portNum].portCalled == true);
}
// verify overrun event is NOT sent since throttled
@@ -244,8 +239,8 @@ namespace Svc {
// verify cycle count
ASSERT_EQ(this->m_impl.m_cycles,static_cast<U32>(ACTIVE_RATE_GROUP_OVERRUN_THROTTLE)+2);
// check calls
for (NATIVE_UINT_TYPE portNum = 0; portNum <
static_cast<NATIVE_UINT_TYPE>(FW_NUM_ARRAY_ELEMENTS(this->m_impl.m_RateGroupMemberOut_OutputPort)); portNum++) {
for (FwIndexType portNum = 0; portNum <
static_cast<FwIndexType>(FW_NUM_ARRAY_ELEMENTS(this->m_impl.m_RateGroupMemberOut_OutputPort)); portNum++) {
ASSERT_TRUE(this->m_callLog[portNum].portCalled == true);
}

@@ -282,8 +277,8 @@ namespace Svc {
// verify cycle count
ASSERT_EQ(this->m_impl.m_cycles,static_cast<U32>(ACTIVE_RATE_GROUP_OVERRUN_THROTTLE)+3);
// check calls
for (NATIVE_UINT_TYPE portNum = 0; portNum <
static_cast<NATIVE_UINT_TYPE>(FW_NUM_ARRAY_ELEMENTS(this->m_impl.m_RateGroupMemberOut_OutputPort)); portNum++) {
for (FwIndexType portNum = 0; portNum <
static_cast<FwIndexType>(FW_NUM_ARRAY_ELEMENTS(this->m_impl.m_RateGroupMemberOut_OutputPort)); portNum++) {
ASSERT_TRUE(this->m_callLog[portNum].portCalled == true);
}
// verify overrun event is sent
Loading

Unchanged files with check annotations Beta

This class is enclosed in the namespaces, if any, given by the qualified
name of _D_.
For example, a state machine definition whose qualified name is `A.B.M` in FPP
becomes a class `A::B::MStateMachineBase` in C++.

Check notice on line 90 in docs/user-manual/framework/state-machines.md

GitHub Actions / Check Spelling

`Line` matches candidate pattern `\b(?:[0-9a-fA-F]{0,4}:){3,7}[0-9a-fA-F]{0,4}\b` (candidate-pattern)
The base class provides a partial implementation which is completed when
the state machine is [instantiated](#state-machine-instances).
@startuml
abstract class A::B::MStateMachineBase

Check notice on line 3 in docs/img/sm-impl-class-diagram.puml

GitHub Actions / Check Spelling

`Line` matches candidate pattern `\b(?:[0-9a-fA-F]{0,4}:){3,7}[0-9a-fA-F]{0,4}\b` (candidate-pattern)
class CComponentBase::A_B_M
A::B::MStateMachineBase <|-- CComponentBase::A_B_M