F´ Flight Software - C/C++ Documentation  devel
A framework for building embedded system applications to NASA flight quality standards.
Svc::CmdSplitter Component

Svc::CmdSplitter Component

1. Introduction

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.

2. Requirements

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

3. Design

3.1 Ports

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.

3.2 Functional Description

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.

3.1 State

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.

3.2 Algorithms

Svc::CmdSplitter has no significant algorithms.

4. Unit Testing

To see unit test coverage run fprime-util check --coverage in the Svc::CmdSplitter directory

5. Change Log

Date Description
2023-06-12 Initial
2023-09-27 Support multiple command inputs