Back to Fprime

RateGroupDriver Component

Svc/PassiveRateGroup/docs/sdd.md

4.2.22.6 KB
Original Source

RateGroupDriver Component

1. Introduction

Svc::PassiveRateGroup is an passive component that drives a set of components connected to Svc::Sched output ports. It contains an synchronous input Svc::Cycle port that drives all the operations. The component invokes each output port in order, passing an argument specified in the supplied context list. It tracks execution time of the cycle.

2. Requirements

The requirements for Svc::PassiveRateGroup are as follows:

RequirementDescriptionVerification Method
FPRIME-PRG-001The Svc::PassiveRateGroup component shall be passive and will be driven by an input synchronous port callInspection, Unit test
FPRIME-PRG-002The Svc::PassiveRateGroup component shall invoke its output ports in order, passing the value contained in a table based on port numberUnit Test
FPRIME-PRG-003The Svc::PassiveRateGroup component shall track the time required to execute the rate group and report it as telemetryUnit Test

3. Design

3.1 Context

3.1.1 Component Diagram

The Svc::PassiveRateGroup component has the following component diagram:

3.1.2 Ports

The Svc::PassiveRateGroup component uses the following port types:

Port Data TypeNameDirectionKindUsage
Svc::CycleCycleInInputsynchronousReceive a call to run one cycle of the rate group
Svc::SchedRateGroupMemberOutOutputn/aRate group ports

3.2 Functional Description

The Svc::PassiveRateGroup component has one input port that is used to drive all of the processing. The component calls the output ports in order, passing the context from the context list as the port argument.

3.3 Scenarios

3.3.1 Rate Group Port Call

As described in the Functional Description section, the Svc::PassiveRateGroup component accepts calls to the CycleIn and invokes the RateGroupMemberOut ports:

Sequence Diagram

mermaid
sequenceDiagram
    participant RateGroupDriver
    participant PassiveRateGroup
    participant Callee
    RateGroupDriver ->> PassiveRateGroup: CycleIn
    loop for each callee
        PassiveRateGroup ->> Callee: RateGroupMemberOut[N]
        Callee -->> PassiveRateGroup: 
    end
    PassiveRateGroup -->> RateGroupDriver: 

3.4 State

Svc::PassiveRateGroup has no state machines.

3.5 Algorithms

Svc::PassiveRateGroup has no significant algorithms.

4. Change Log

DateDescription
2/9/2017First Draft