![]() |
F´ Flight Software - C/C++ Documentation
devel
A framework for building embedded system applications to NASA flight quality standards.
|
The Svc::CmdSplitter splits an uplinked command execution to two separate Svc::CmdDispatcher components: one "local" and the other "remote". This splitting is done by opcode where local commands are commands whose opcode is less than a configured base and remote commands are those opcodes equal to or larger than that configurated base setting. Svc::CmdSplitter is intended to be used as part of the hub pattern to route command to a command dispatcher in the remote deployment.
All input and output are done through port arrays that mirror the port array of input commands to the command dispatcher. In this way Svc::CmdSplitter may support multiple command sources in the same manner that Svc::CmdDispatcher does.
The requirements for Svc::CmdSplitter are as follows:
| Requirement | Description | Verification Method |
|---|---|---|
| SVC-CMD-SPLITTER-000 | The Svc::CmdSplitter component shall support multiple command sources. | Unit Test |
| SVC-CMD-SPLITTER-001 | The Svc::CmdSplitter component shall accept incoming command buffers. | Unit Test |
| SVC-CMD-SPLITTER-002 | The Svc::CmdSplitter component shall route commands under a configured value to the "local" port. | Unit Test |
| SVC-CMD-SPLITTER-003 | The Svc::CmdSplitter component shall route commands under a configured value to the "remote" port. | Unit Test |
| SVC-CMD-SPLITTER-004 | The Svc::CmdSplitter component shall route commands to the "local" port when an error occurs. | Unit Test |
| SVC-CMD-SPLITTER-005 | The Svc::CmdSplitter component shall forward command status responses. | Unit Test |
| Name | Type | Kind | Description |
|---|---|---|---|
| CmdBuff | Fw.Com | sync input array | Array of incoming command buffer. |
| seqCmdStatus | Fw.CmdResponse | sync input array | Array of incoming command status from both local and remote dispatchers. |
| LocalCmd | Fw.Com | output array | Array of outgoing command buffer for local command dispatcher. |
| RemoteCmd | Fw.Com | output array | Array of outgoing command buffer for remote command dispatcher. |
| forwardSeqCmdStatus | Fw.CmdResponse | output array | Array of outgoing forwarded command status. |
Port arrays mirror those of the command dispatcher in order to support multiple sources in the same fashion that command dispatcher does.
The Svc::CmdSplitter routes an incoming command buffer of type Fw::ComBuffer to a local or remote command dispatcher. This is done by comparing the command's opcode to the configured base opcode value. All command responses are forwarded through.
Svc::CmdSplitter has only one internal state variable: m_remoteBase the configured base opcode for remote opcodes. This is set by a call to the configure() method at system start-up.
Svc::CmdSplitter has no significant algorithms.
To see unit test coverage run fprime-util check --coverage in the Svc::CmdSplitter directory
| Date | Description |
|---|---|
| 2023-06-12 | Initial |
| 2023-09-27 | Support multiple command inputs |