HFCC-01 Low-Level Software (LLSW) Rel_6802_HFCC-01-RP-CSAR-CB
Loading...
Searching...
No Matches
modA429.h File Reference
#include "commonDataTypes.h"
#include "modStatus.h"
#include "modConfig.h"
Include dependency graph for modA429.h:
modA429.h Node1 modA429.h Node2 commonDataTypes.h Node1->Node2 Node3 modStatus.h Node1->Node3 Node4 modConfig.h Node1->Node4 Node4->Node3 Node5 INTEGRITY.h Node4->Node5 Node6 modInfo.h Node4->Node6 Node6->Node2 Node6->Node3
This graph shows which files directly or indirectly include this file:
modA429.h Node1 modA429.h Node2 deviceLibModule.h Node1->Node2 Node3 modA429.c Node1->Node3

Go to the source code of this file.

Data Structures

struct  A429Message
 ARINC 429 Standard 32-Bit Word Protocol Bitfield Structure (Label, SDI, Data, SSM, Parity). More...

Enumerations

enum  A429SpeedRate { A429RATE_HI = 0 , A429RATE_LO = 1 }
 This is enum definition for ARINC429 Speed Rate. More...
enum  A429ParityMode { A429PARITY_ODD = 0 , A429PARITY_EVEN = 1 }
 This is enum definition for ARINC429 Parity Mode. More...

Functions

ModStatus modA429_sendConfig (const A429ChannelNum txChannelNum, const A429SpeedRate a429DataRate, const Bool parityEnable, const A429ParityMode parityMode)
 modA429_sendConfig.
ModStatus modA429_sendChEnable (const A429ChannelNum txChannelNum)
 modA429_sendChEnable.
ModStatus modA429_sendChDisable (const A429ChannelNum txChannelNum)
 modA429_sendChDisable.
ModStatus modA429_send (const A429ChannelNum txChannelNum, const A429Message *msgBufPtr, const UInt32 msgCount)
 modA429_send.
ModStatus modA429_recvConfig (const A429ChannelNum rxChannelNum, const A429SpeedRate a429DataRate, const Bool parityEnable, const A429ParityMode parityMode)
 modA429_recvConfig.
ModStatus modA429_recvChEnable (const A429ChannelNum rxChannelNum)
 modA429_recvChEnable.
ModStatus modA429_recvChDisable (const A429ChannelNum rxChannelNum)
 modA429_recvChDisable.
ModStatus modA429_recvSetLabelFilter (const A429ChannelNum rxChannelNum, const UInt8 *filterLabelsPtr, const UInt8 filterLabelCount)
 modA429_recvSetLabelFilter.
ModStatus modA429_recvSetSDIFilter (const A429ChannelNum rxChannelNum, const UInt8 sdiValue)
 modA429_recvSetSDIFilter.
ModStatus modA429_recvFIFO (const A429ChannelNum rxChannelNum, A429Message *recvMsgsPtr, UInt32 *recvMsgCountPtr)
 modA429_recvFIFO.

Detailed Description

Author
Shasha Batrisyia shash.nosp@m.a.ad.nosp@m.zri@t.nosp@m.usas.nosp@m..my

A429 Module

Enumeration Type Documentation

◆ A429ParityMode

This is enum definition for ARINC429 Parity Mode.

Enumerator
A429PARITY_ODD 

Parity Mode ODD.

A429PARITY_EVEN 

Parity Mode EVEN.

◆ A429SpeedRate

This is enum definition for ARINC429 Speed Rate.

Enumerator
A429RATE_HI 

Arinc 429 Data Rate 100 kb/s.

A429RATE_LO 

Arinc 429 Data Rate 12.5 kb/s.

Function Documentation

◆ modA429_recvChDisable()

ModStatus modA429_recvChDisable ( const A429ChannelNum rxChannelNum)

modA429_recvChDisable.

Disable the specified receiver channel.

Parameters
[in]rxChannelNumReceive channel number to access.
Returns
ModStatus - Module status return code, If no error occurs during the operation of the function, it returns MD_SUCCESS. Otherwise related error message is returned.
Return values
MD_SUCCESS: Success.
MD_INVALID_INIT: The module has not been initialized.
MD_INVALID_CHANNEL: The channel number is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: modA429_recvChDisable

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_A429_MODA429_RECVCHDISABLE_01 HLR_A429_289 WHEN the module initialization state is not initialized (INIT), the modA429_recvChDisable() function SHALL abort processing and return MD_INVALID_INIT. modA429.c:modA429_recvChDisable() Test Closed
LLR_A429_MODA429_RECVCHDISABLE_02 HLR_A429_289 WHEN rxChannelNum is not one of the defined ARINC 429 receive channel identifiers (A429_RX_CH1 through A429_RX_CH7), the modA429_recvChDisable() function SHALL abort processing and return MD_INVALID_CHANNEL. modA429.c:modA429_recvChDisable() Test Closed
LLR_A429_MODA429_RECVCHDISABLE_03 HLR_A429_289 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the modA429_recvChDisable() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modA429.c:modA429_recvChDisable() Test Closed
LLR_A429_MODA429_RECVCHDISABLE_04 HLR_A429_289 WHEN preconditions are satisfied, the modA429_recvChDisable() function SHALL invoke receiver driver routine a429_rxClearLabelFilter() to perform channel configuration. modA429.c:modA429_recvChDisable() Test Closed
LLR_A429_MODA429_RECVCHDISABLE_05 HLR_A429_289 WHEN preconditions are satisfied, the modA429_recvChDisable() function SHALL evaluate the driver return status using errCheck(). modA429.c:modA429_recvChDisable() Test Closed
LLR_A429_MODA429_RECVCHDISABLE_06 HLR_A429_289 WHEN preconditions are satisfied, the modA429_recvChDisable() function SHALL invoke receiver driver routine a429_rxDisableSDIFilter() to perform channel configuration. modA429.c:modA429_recvChDisable() Test Closed
LLR_A429_MODA429_RECVCHDISABLE_07 HLR_A429_289 WHEN preconditions are satisfied, the modA429_recvChDisable() function SHALL invoke receiver driver routine a429_rxDisableParity() to perform channel configuration. modA429.c:modA429_recvChDisable() Test Closed
LLR_A429_MODA429_RECVCHDISABLE_08 HLR_A429_289 WHEN preconditions are satisfied, the modA429_recvChDisable() function SHALL invoke receiver driver routine a429_rxDisableChannel() to perform channel configuration. modA429.c:modA429_recvChDisable() Test Closed
LLR_A429_MODA429_RECVCHDISABLE_09 HLR_A429_289 WHEN all operational processing completes successfully, the modA429_recvChDisable() function SHALL return MD_SUCCESS. modA429.c:modA429_recvChDisable() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller modA429_recvChDisable() [Device Library Modules] Target a429_rxClearLabelFilter() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rxChannelNum (Flag) r_b0->r_t0   statusCode (ModStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller modA429_recvChDisable() [Device Library Modules] Target a429_rxClearLabelFilter() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rxChannelNum (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_modA429_recvChDisable start Entry: modA429_recvChDisable() guard_1 LLR_01: Guard Check Is the module initialization state is not initialized (INIT)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_INIT` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the receive channel validation check returns FALSE (invalid channel)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return the module error code produced by errCheck(retStatus) guard_3->err_exit_3 YES (TRUE) act_4 LLR_04: Action Step invoke receiver driver routine `a429_rxClearLabelFilter()` to perform channel configuration guard_3->act_4 NO (FALSE) act_5 LLR_05: Action Step evaluate the driver return status using `errCheck()` act_4->act_5 act_6 LLR_06: Action Step invoke receiver driver routine `a429_rxDisableSDIFilter()` to perform channel configuration act_5->act_6 act_7 LLR_07: Action Step invoke receiver driver routine `a429_rxDisableParity()` to perform channel configuration act_6->act_7 act_8 LLR_08: Action Step invoke receiver driver routine `a429_rxDisableChannel()` to perform channel configuration act_7->act_8 success_exit LLR_09: Final Exit return `MD_SUCCESS` act_8->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_modA429_recvChDisable in_store Input Data Sources & Parameters • rxChannelNum (const A429ChannelNum) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: a429ModHdl in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: validateRxChannel proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: retStatus proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Payload Transformation • Process payload via a429_rxClearLabelFilter() proc_3->proc_4 Data Payload (a429_rxClearLabelFilter) proc_5 LLR_05: Data Payload Transformation • Process payload via errCheck() proc_4->proc_5 Data Payload (errCheck) proc_6 LLR_06: Data Payload Transformation • Process payload via a429_rxDisableSDIFilter() proc_5->proc_6 Data Payload (a429_rxDisableSDIFilter) proc_7 LLR_07: Data Payload Transformation • Process payload via a429_rxDisableParity() proc_6->proc_7 Data Payload (a429_rxDisableParity) proc_8 LLR_08: Data Payload Transformation • Process payload via a429_rxDisableChannel() proc_7->proc_8 Data Payload (a429_rxDisableChannel) proc_9 LLR_09: Status Output Packaging • Format Return Payload: ModStatus proc_8->proc_9 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (ModStatus) proc_9->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
modA429_recvChDisable Node1 modA429_recvChDisable Node1->Node1 Node2 a429_rxClearLabelFilter Node1->Node2 Node8 a429_rxDisableChannel Node1->Node8 Node12 a429_rxDisableParity Node1->Node12 Node13 a429_rxDisableSDIFilter Node1->Node13 Node14 errCheck Node1->Node14 Node15 validateRxChannel Node1->Node15 Node2->Node2 Node3 configLabelFilter Node2->Node3 Node3->Node3 Node4 writeA429Reg Node3->Node4 Node4->Node4 Node5 interDrv_Write32 Node4->Node5 Node5->Node5 Node6 interDrv_isAddressValid Node5->Node6 Node7 memoryMap_Write32 Node5->Node7 Node6->Node6 Node7->Node7 Node8->Node4 Node8->Node8 Node9 readA429Reg Node8->Node9 Node9->Node9 Node10 interDrv_Read32 Node9->Node10 Node10->Node6 Node10->Node10 Node11 memoryMap_Read32 Node10->Node11 Node11->Node11 Node12->Node4 Node12->Node9 Node12->Node12 Node13->Node4 Node13->Node9 Node13->Node13 Node14->Node14 Node15->Node15
Here is the caller graph for this function:
modA429_recvChDisable Node1 modA429_recvChDisable Node1->Node1 Node2 modA429_initReset Node1->Node2 Node2->Node2 Node3 modConfig_init Node2->Node3 Node4 modConfig_reset Node2->Node4 Node3->Node3 Node4->Node4 Node5 modConfig_close Node4->Node5 Node5->Node5

◆ modA429_recvChEnable()

ModStatus modA429_recvChEnable ( const A429ChannelNum rxChannelNum)

modA429_recvChEnable.

Enable the specified receiver channel.

Parameters
[in]rxChannelNumReceive channel number to access.
Returns
ModStatus - Module status return code, If no error occurs during the operation of the function, it returns MD_SUCCESS. Otherwise related error message is returned.
Return values
MD_SUCCESS: Success.
MD_INVALID_INIT: The module has not been initialized.
MD_INVALID_CHANNEL: The channel number is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: modA429_recvChEnable

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_A429_MODA429_RECVCHENABLE_01 HLR_A429_289 WHEN the module initialization state is not initialized (INIT), the modA429_recvChEnable() function SHALL abort processing and return MD_INVALID_INIT. modA429.c:modA429_recvChEnable() Test Closed
LLR_A429_MODA429_RECVCHENABLE_02 HLR_A429_289 WHEN rxChannelNum is not one of the defined ARINC 429 receive channel identifiers (A429_RX_CH1 through A429_RX_CH7), the modA429_recvChEnable() function SHALL abort processing and return MD_INVALID_CHANNEL. modA429.c:modA429_recvChEnable() Test Closed
LLR_A429_MODA429_RECVCHENABLE_03 HLR_A429_289 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the modA429_recvChEnable() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modA429.c:modA429_recvChEnable() Test Closed
LLR_A429_MODA429_RECVCHENABLE_04 HLR_A429_289 WHEN preconditions are satisfied, the modA429_recvChEnable() function SHALL invoke receiver driver routine a429_rxEnableChannel() to perform channel configuration. modA429.c:modA429_recvChEnable() Test Closed
LLR_A429_MODA429_RECVCHENABLE_05 HLR_A429_289 WHEN preconditions are satisfied, the modA429_recvChEnable() function SHALL evaluate the driver return status using errCheck(). modA429.c:modA429_recvChEnable() Test Closed
LLR_A429_MODA429_RECVCHENABLE_06 HLR_A429_289 WHEN all operational processing completes successfully, the modA429_recvChEnable() function SHALL return MD_SUCCESS. modA429.c:modA429_recvChEnable() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller modA429_recvChEnable() [Device Library Modules] Target a429_rxEnableChannel() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rxChannelNum (Flag) r_b0->r_t0   statusCode (ModStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller modA429_recvChEnable() [Device Library Modules] Target a429_rxEnableChannel() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rxChannelNum (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_modA429_recvChEnable start Entry: modA429_recvChEnable() guard_1 LLR_01: Guard Check Is the module initialization state is not initialized (INIT)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_INIT` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the receive channel validation check returns FALSE (invalid channel)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return the module error code produced by errCheck(retStatus) guard_3->err_exit_3 YES (TRUE) act_4 LLR_04: Action Step invoke receiver driver routine `a429_rxEnableChannel()` to perform channel configuration guard_3->act_4 NO (FALSE) act_5 LLR_05: Action Step evaluate the driver return status using `errCheck()` act_4->act_5 success_exit LLR_06: Final Exit return `MD_SUCCESS` act_5->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_modA429_recvChEnable in_store Input Data Sources & Parameters • rxChannelNum (const A429ChannelNum) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: a429ModHdl in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: validateRxChannel proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: retStatus proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Payload Transformation • Process payload via a429_rxEnableChannel() proc_3->proc_4 Data Payload (a429_rxEnableChannel) proc_5 LLR_05: Data Payload Transformation • Process payload via errCheck() proc_4->proc_5 Data Payload (errCheck) proc_6 LLR_06: Status Output Packaging • Format Return Payload: ModStatus proc_5->proc_6 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (ModStatus) proc_6->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
modA429_recvChEnable Node1 modA429_recvChEnable Node1->Node1 Node2 a429_rxEnableChannel Node1->Node2 Node10 errCheck Node1->Node10 Node11 validateRxChannel Node1->Node11 Node2->Node2 Node3 readA429Reg Node2->Node3 Node7 writeA429Reg Node2->Node7 Node3->Node3 Node4 interDrv_Read32 Node3->Node4 Node4->Node4 Node5 interDrv_isAddressValid Node4->Node5 Node6 memoryMap_Read32 Node4->Node6 Node5->Node5 Node6->Node6 Node7->Node7 Node8 interDrv_Write32 Node7->Node8 Node8->Node5 Node8->Node8 Node9 memoryMap_Write32 Node8->Node9 Node9->Node9 Node10->Node10 Node11->Node11
Here is the caller graph for this function:
modA429_recvChEnable Node1 modA429_recvChEnable Node1->Node1

◆ modA429_recvConfig()

ModStatus modA429_recvConfig ( const A429ChannelNum rxChannelNum,
const A429SpeedRate a429DataRate,
const Bool parityEnable,
const A429ParityMode parityMode )

modA429_recvConfig.

Set the configuration for data rate, parity and parity type of specified receiver channel.

Parameters
[in]rxChannelNumReceive channel number to access.
[in]a429DataRateARIN429 RX Data Rate (kb/s).
[in]parityEnableTRUE is 32 bits ARINC message will be checked with Odd parity method, the parity flag will be overwritten in bit 32. FALSE is all 32 bits are received without parity checking.
[in]parityModeParity Type (EVEN, ODD) for receiver channel.
Returns
ModStatus - Module status return code, If no error occurs during the operation of the function, it returns MD_SUCCESS. Otherwise related error message is returned.
Return values
MD_SUCCESS: Success.
MD_INVALID_INIT: The module has not been initialized.
MD_INVALID_CONFIG: The configuration parameter is invalid.
MD_INVALID_CHANNEL: The channel number is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: modA429_recvConfig

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_A429_MODA429_RECVCONFIG_01 HLR_A429_290 WHEN the module initialization state is not initialized (INIT), the modA429_recvConfig() function SHALL abort processing and return MD_INVALID_INIT. modA429.c:modA429_recvConfig() Test Closed
LLR_A429_MODA429_RECVCONFIG_02 HLR_A429_290 WHEN rxChannelNum is not one of the defined ARINC 429 receive channel identifiers (A429_RX_CH1 through A429_RX_CH7), the modA429_recvConfig() function SHALL abort processing and return MD_INVALID_CHANNEL. modA429.c:modA429_recvConfig() Test Closed
LLR_A429_MODA429_RECVCONFIG_03 HLR_A429_290 WHEN high-speed ARINC 429 transmission rate (100 kbps) is equal to the ARINC 429 transmission speed, the modA429_recvConfig() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modA429.c:modA429_recvConfig() Test Closed
LLR_A429_MODA429_RECVCONFIG_04 HLR_A429_290 WHEN low-speed ARINC 429 transmission rate (12.5 kbps) is equal to the ARINC 429 transmission speed, the modA429_recvConfig() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modA429.c:modA429_recvConfig() Test Closed
LLR_A429_MODA429_RECVCONFIG_05 HLR_A429_290 WHEN TRUE is equal to the parity enablement flag, the modA429_recvConfig() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modA429.c:modA429_recvConfig() Test Closed
LLR_A429_MODA429_RECVCONFIG_06 HLR_A429_290 WHEN FALSE is equal to the parity enablement flag, the modA429_recvConfig() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modA429.c:modA429_recvConfig() Test Closed
LLR_A429_MODA429_RECVCONFIG_07 HLR_A429_290 WHEN preconditions are satisfied, the modA429_recvConfig() function SHALL invoke receiver driver routine a429_rxSetSpeed() to perform channel configuration. modA429.c:modA429_recvConfig() Test Closed
LLR_A429_MODA429_RECVCONFIG_08 HLR_A429_290 WHEN preconditions are satisfied, the modA429_recvConfig() function SHALL evaluate the driver return status using errCheck(). modA429.c:modA429_recvConfig() Test Closed
LLR_A429_MODA429_RECVCONFIG_09 HLR_A429_290 WHEN preconditions are satisfied, the modA429_recvConfig() function SHALL invoke receiver driver routine a429_rxEnableParity() to perform channel configuration. modA429.c:modA429_recvConfig() Test Closed
LLR_A429_MODA429_RECVCONFIG_10 HLR_A429_290 WHEN preconditions are satisfied, the modA429_recvConfig() function SHALL invoke receiver driver routine a429_rxDisableParity() to perform channel configuration. modA429.c:modA429_recvConfig() Test Closed
LLR_A429_MODA429_RECVCONFIG_11 HLR_A429_290 WHEN all operational processing completes successfully, the modA429_recvConfig() function SHALL return MD_SUCCESS. modA429.c:modA429_recvConfig() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller modA429_recvConfig() [Device Library Modules] Target a429_rxSetSpeed() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rxChannelNum (Flag) l_t1->l_b1   a429DataRate (Flag) l_t2->l_b2   parityEnable (Flag) l_t3->l_b3   parityMode (Flag) r_b0->r_t0   statusCode (ModStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller modA429_recvConfig() [Device Library Modules] Target a429_rxSetSpeed() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rxChannelNum (Payload) l_t1->l_b1   a429DataRate (Payload) l_t2->l_b2   parityEnable (Payload) l_t3->l_b3   parityMode (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_modA429_recvConfig start Entry: modA429_recvConfig() guard_1 LLR_01: Guard Check Is the module initialization state is not initialized (INIT)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_INIT` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the receive channel validation check returns FALSE (invalid channel)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is high-speed ARINC 429 transmission rate (100 kbps) is equal to the ARINC 429 transmission speed? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return the module error code produced by errCheck(retStatus) guard_3->err_exit_3 YES (TRUE) guard_4 LLR_04: Guard Check Is low-speed ARINC 429 transmission rate (12.5 kbps) is equal to the ARINC 429 transmission speed? guard_3->guard_4 err_exit_4 LLR_04 Error Exit abort processing and return the module error code produced by errCheck(retStatus) guard_4->err_exit_4 YES (TRUE) guard_5 LLR_05: Guard Check Is `TRUE` is equal to the parity enablement flag? guard_4->guard_5 err_exit_5 LLR_05 Error Exit abort processing and return the module error code produced by errCheck(retStatus) guard_5->err_exit_5 YES (TRUE) guard_6 LLR_06: Guard Check Is `FALSE` is equal to the parity enablement flag? guard_5->guard_6 err_exit_6 LLR_06 Error Exit abort processing and return the module error code produced by errCheck(retStatus) guard_6->err_exit_6 YES (TRUE) act_7 LLR_07: Action Step invoke receiver driver routine `a429_rxSetSpeed()` to perform channel configuration guard_6->act_7 NO (FALSE) act_8 LLR_08: Action Step evaluate the driver return status using `errCheck()` act_7->act_8 act_9 LLR_09: Action Step invoke receiver driver routine `a429_rxEnableParity()` to perform channel configuration act_8->act_9 act_10 LLR_10: Action Step invoke receiver driver routine `a429_rxDisableParity()` to perform channel configuration act_9->act_10 success_exit LLR_11: Final Exit return `MD_SUCCESS` act_10->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_modA429_recvConfig in_store Input Data Sources & Parameters • rxChannelNum (const A429ChannelNum) • a429DataRate (const A429SpeedRate) • parityEnable (const Bool) • parityMode (const A429ParityMode) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: a429ModHdl in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: validateRxChannel proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: A429RATE_HI proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Validation Check • Evaluate Parameter / State: A429RATE_LO proc_3->proc_4 Validated Input Data proc_5 LLR_05: Data Validation Check • Evaluate Parameter / State: parityEnable proc_4->proc_5 Validated Input Data proc_6 LLR_06: Data Validation Check • Evaluate Parameter / State: parityEnable proc_5->proc_6 Validated Input Data proc_7 LLR_07: Data Payload Transformation • Process payload via a429_rxSetSpeed() proc_6->proc_7 Data Payload (a429_rxSetSpeed) proc_8 LLR_08: Data Payload Transformation • Process payload via errCheck() proc_7->proc_8 Data Payload (errCheck) proc_9 LLR_09: Data Payload Transformation • Process payload via a429_rxEnableParity() proc_8->proc_9 Data Payload (a429_rxEnableParity) proc_10 LLR_10: Data Payload Transformation • Process payload via a429_rxDisableParity() proc_9->proc_10 Data Payload (a429_rxDisableParity) proc_11 LLR_11: Status Output Packaging • Format Return Payload: ModStatus proc_10->proc_11 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (ModStatus) proc_11->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
modA429_recvConfig Node1 modA429_recvConfig Node1->Node1 Node2 a429_rxDisableParity Node1->Node2 Node10 a429_rxEnableParity Node1->Node10 Node11 a429_rxSetSpeed Node1->Node11 Node12 errCheck Node1->Node12 Node13 validateRxChannel Node1->Node13 Node2->Node2 Node3 readA429Reg Node2->Node3 Node7 writeA429Reg Node2->Node7 Node3->Node3 Node4 interDrv_Read32 Node3->Node4 Node4->Node4 Node5 interDrv_isAddressValid Node4->Node5 Node6 memoryMap_Read32 Node4->Node6 Node5->Node5 Node6->Node6 Node7->Node7 Node8 interDrv_Write32 Node7->Node8 Node8->Node5 Node8->Node8 Node9 memoryMap_Write32 Node8->Node9 Node9->Node9 Node10->Node2 Node10->Node3 Node10->Node7 Node10->Node10 Node11->Node3 Node11->Node7 Node11->Node11 Node12->Node12 Node13->Node13
Here is the caller graph for this function:
modA429_recvConfig Node1 modA429_recvConfig Node1->Node1

◆ modA429_recvFIFO()

ModStatus modA429_recvFIFO ( const A429ChannelNum rxChannelNum,
A429Message * recvMsgsPtr,
UInt32 * recvMsgCountPtr )

modA429_recvFIFO.

Read the ARINC429 message from the receiver FIFO of specified receiver channel.

Parameters
[in]rxChannelNumReceive channel number to access.
[out]recvMsgsPtrReceive Arinc message.
[out]recvMsgCountPtrNumber of ARINC message read from FIFO.
Returns
ModStatus - Module status return code, If no error occurs during the operation of the function, it returns MD_SUCCESS. Otherwise related error message is returned.
Return values
MD_SUCCESS: Success.
MD_INVALID_PARAM: The provided address pointer is invalid.
MD_INVALID_INIT: The module has not been initialized.
MD_INVALID_CHANNEL: The channel number is invalid.
MD_CHANNEL_DISABLED: Channel is disabled.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: modA429_recvFIFO

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_A429_MODA429_RECVFIFO_01 HLR_A429_290 WHEN the module initialization state is not initialized (INIT), the modA429_recvFIFO() function SHALL abort processing and return MD_INVALID_INIT. modA429.c:modA429_recvFIFO() Test Closed
LLR_A429_MODA429_RECVFIFO_02 HLR_A429_290 WHEN rxChannelNum is not one of the defined ARINC 429 receive channel identifiers (A429_RX_CH1 through A429_RX_CH7), the modA429_recvFIFO() function SHALL abort processing and return MD_INVALID_CHANNEL. modA429.c:modA429_recvFIFO() Test Closed
LLR_A429_MODA429_RECVFIFO_03 HLR_A429_290 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the modA429_recvFIFO() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modA429.c:modA429_recvFIFO() Test Closed
LLR_A429_MODA429_RECVFIFO_04 HLR_A429_290 WHEN the target ARINC 429 receive channel is disabled (operating status is CH_DISABLE), the modA429_recvFIFO() function SHALL abort processing and return MD_CHANNEL_DISABLED. modA429.c:modA429_recvFIFO() Test Closed
LLR_A429_MODA429_RECVFIFO_05 HLR_A429_290 WHEN the pointer recvMsgsPtr is NULL (invalid), the modA429_recvFIFO() function SHALL abort processing and return MD_INVALID_PARAM. modA429.c:modA429_recvFIFO() Test Closed
LLR_A429_MODA429_RECVFIFO_06 HLR_A429_290 WHEN the pointer recvMsgCountPtr is NULL (invalid), the modA429_recvFIFO() function SHALL abort processing and return MD_INVALID_PARAM. modA429.c:modA429_recvFIFO() Test Closed
LLR_A429_MODA429_RECVFIFO_07 HLR_A429_290 WHEN preconditions are satisfied, the modA429_recvFIFO() function SHALL invoke receiver driver routine a429_rxGetState() to perform channel configuration. modA429.c:modA429_recvFIFO() Test Closed
LLR_A429_MODA429_RECVFIFO_08 HLR_A429_290 WHEN preconditions are satisfied, the modA429_recvFIFO() function SHALL evaluate the driver return status using errCheck(). modA429.c:modA429_recvFIFO() Test Closed
LLR_A429_MODA429_RECVFIFO_09 HLR_A429_290 WHEN preconditions are satisfied, the modA429_recvFIFO() function SHALL invoke receiver driver routine a429_rxGetFIFOMsgs() to perform channel configuration. modA429.c:modA429_recvFIFO() Test Closed
LLR_A429_MODA429_RECVFIFO_10 HLR_A429_290 WHEN preconditions are satisfied, the modA429_recvFIFO() function SHALL invoke routine decodeMessage() to decode ARINC 429 message words. modA429.c:modA429_recvFIFO() Test Closed
LLR_A429_MODA429_RECVFIFO_11 HLR_A429_290 WHEN all operational processing completes successfully, the modA429_recvFIFO() function SHALL return MD_SUCCESS. modA429.c:modA429_recvFIFO() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller modA429_recvFIFO() [Device Library Modules] Target a429_rxGetState() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rxChannelNum (Flag) r_b0->r_t0   statusCode (ModStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller modA429_recvFIFO() [Device Library Modules] Target a429_rxGetState() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rxChannelNum (Payload) r_b0->r_t0   *recvMsgsPtr (Output Data) r_b1->r_t1   *recvMsgCountPtr (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_modA429_recvFIFO start Entry: modA429_recvFIFO() guard_1 LLR_01: Guard Check Is the module initialization state is not initialized (INIT)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_INIT` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the receive channel validation check returns FALSE (invalid channel)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return the module error code produced by errCheck(retStatus) guard_3->err_exit_3 YES (TRUE) guard_4 LLR_04: Guard Check Is `channelStatus` is equal to `CH_DISABLE`? guard_3->guard_4 err_exit_4 LLR_04 Error Exit abort processing and return `MD_CHANNEL_DISABLED` guard_4->err_exit_4 YES (TRUE) guard_5 LLR_05: Guard Check Is the pointer `recvMsgsPtr` is NULL (invalid)? guard_4->guard_5 err_exit_5 LLR_05 Error Exit abort processing and return `MD_INVALID_PARAM` guard_5->err_exit_5 YES (TRUE) guard_6 LLR_06: Guard Check Is the pointer `recvMsgCountPtr` is NULL (invalid)? guard_5->guard_6 err_exit_6 LLR_06 Error Exit abort processing and return `MD_INVALID_PARAM` guard_6->err_exit_6 YES (TRUE) act_7 LLR_07: Action Step invoke receiver driver routine `a429_rxGetState()` to perform channel configuration guard_6->act_7 NO (FALSE) act_8 LLR_08: Action Step evaluate the driver return status using `errCheck()` act_7->act_8 act_9 LLR_09: Action Step invoke receiver driver routine `a429_rxGetFIFOMsgs()` to perform channel configuration act_8->act_9 act_10 LLR_10: Action Step invoke routine `decodeMessage()` to decode ARINC 429 message words act_9->act_10 success_exit LLR_11: Final Exit return `MD_SUCCESS` act_10->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_modA429_recvFIFO in_store Input Data Sources & Parameters • rxChannelNum (const A429ChannelNum) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: a429ModHdl in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: validateRxChannel proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: retStatus proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Validation Check • Evaluate Parameter / State: channelStatus proc_3->proc_4 Validated Input Data proc_5 LLR_05: Data Validation Check • Evaluate Parameter / State: recvMsgsPtr proc_4->proc_5 Validated Input Data proc_6 LLR_06: Data Validation Check • Evaluate Parameter / State: recvMsgCountPtr proc_5->proc_6 Validated Input Data proc_7 LLR_07: Data Payload Transformation • Process payload via a429_rxGetState() proc_6->proc_7 Data Payload (a429_rxGetState) proc_8 LLR_08: Data Payload Transformation • Process payload via errCheck() proc_7->proc_8 Data Payload (errCheck) proc_9 LLR_09: Data Payload Transformation • Process payload via a429_rxGetFIFOMsgs() proc_8->proc_9 Data Payload (a429_rxGetFIFOMsgs) proc_10 LLR_10: Data Payload Transformation • Process payload via decodeMessage() proc_9->proc_10 Data Payload (decodeMessage) proc_11 LLR_11: Status Output Packaging • Format Return Payload: ModStatus proc_10->proc_11 Final Output Data out_sink Output Data Sinks & Status Return • recvMsgsPtr (A429Message) • recvMsgCountPtr (UInt32) proc_11->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
modA429_recvFIFO Node1 modA429_recvFIFO Node1->Node1 Node2 a429_rxGetFIFOMsgs Node1->Node2 Node12 a429_rxGetState Node1->Node12 Node13 decodeMessage Node1->Node13 Node14 errCheck Node1->Node14 Node15 validateRxChannel Node1->Node15 Node2->Node2 Node3 parityCheck Node2->Node3 Node4 readFIFOMsgs Node2->Node4 Node3->Node3 Node4->Node4 Node5 readA429Reg Node4->Node5 Node9 writeA429Reg Node4->Node9 Node5->Node5 Node6 interDrv_Read32 Node5->Node6 Node6->Node6 Node7 interDrv_isAddressValid Node6->Node7 Node8 memoryMap_Read32 Node6->Node8 Node7->Node7 Node8->Node8 Node9->Node9 Node10 interDrv_Write32 Node9->Node10 Node10->Node7 Node10->Node10 Node11 memoryMap_Write32 Node10->Node11 Node11->Node11 Node12->Node5 Node12->Node12 Node13->Node13 Node14->Node14 Node15->Node15
Here is the caller graph for this function:
modA429_recvFIFO Node1 modA429_recvFIFO Node1->Node1

◆ modA429_recvSetLabelFilter()

ModStatus modA429_recvSetLabelFilter ( const A429ChannelNum rxChannelNum,
const UInt8 * filterLabelsPtr,
const UInt8 filterLabelCount )

modA429_recvSetLabelFilter.

Set the message filter by label of specified receiver channel.

Parameters
[in]rxChannelNumReceive channel number to access.
[in]filterLabelsPtrList of labels for message Arinc data.
[in]filterLabelCountNumber of filter labels of ARINC message (0 - 255).
Returns
ModStatus - Module status return code, If no error occurs during the operation of the function, it returns MD_SUCCESS. Otherwise related error message is returned.
Return values
MD_SUCCESS: Success.
MD_INVALID_PARAM: The provided address pointer is invalid.
MD_INVALID_INIT: The module has not been initialized.
MD_INVALID_CHANNEL: The channel number is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: modA429_recvSetLabelFilter

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_A429_MODA429_RECVSETLABELFILTER_01 HLR_A429_300 WHEN the module initialization state is not initialized (INIT), the modA429_recvSetLabelFilter() function SHALL abort processing and return MD_INVALID_INIT. modA429.c:modA429_recvSetLabelFilter() Test Closed
LLR_A429_MODA429_RECVSETLABELFILTER_02 HLR_A429_300 WHEN rxChannelNum is not one of the defined ARINC 429 receive channel identifiers (A429_RX_CH1 through A429_RX_CH7), the modA429_recvSetLabelFilter() function SHALL abort processing and return MD_INVALID_CHANNEL. modA429.c:modA429_recvSetLabelFilter() Test Closed
LLR_A429_MODA429_RECVSETLABELFILTER_03 HLR_A429_300 WHEN the pointer filterLabelsPtr is NULL (invalid), the modA429_recvSetLabelFilter() function SHALL abort processing and return MD_INVALID_PARAM. modA429.c:modA429_recvSetLabelFilter() Test Closed
LLR_A429_MODA429_RECVSETLABELFILTER_04 HLR_A429_300 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the modA429_recvSetLabelFilter() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modA429.c:modA429_recvSetLabelFilter() Test Closed
LLR_A429_MODA429_RECVSETLABELFILTER_05 HLR_A429_300 WHEN preconditions are satisfied, the modA429_recvSetLabelFilter() function SHALL invoke receiver driver routine a429_rxSetLabelFilter() to perform channel configuration. modA429.c:modA429_recvSetLabelFilter() Test Closed
LLR_A429_MODA429_RECVSETLABELFILTER_06 HLR_A429_300 WHEN preconditions are satisfied, the modA429_recvSetLabelFilter() function SHALL evaluate the driver return status using errCheck(). modA429.c:modA429_recvSetLabelFilter() Test Closed
LLR_A429_MODA429_RECVSETLABELFILTER_07 HLR_A429_300 WHEN all operational processing completes successfully, the modA429_recvSetLabelFilter() function SHALL return MD_SUCCESS. modA429.c:modA429_recvSetLabelFilter() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller modA429_recvSetLabelFilter() [Device Library Modules] Target a429_rxSetLabelFilter() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rxChannelNum (Flag) l_t1->l_b1   filterLabelsPtr (Flag) l_t2->l_b2   filterLabelCount (Flag) r_b0->r_t0   statusCode (ModStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller modA429_recvSetLabelFilter() [Device Library Modules] Target a429_rxSetLabelFilter() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rxChannelNum (Payload) l_t1->l_b1   filterLabelsPtr (Payload) l_t2->l_b2   filterLabelCount (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_modA429_recvSetLabelFilter start Entry: modA429_recvSetLabelFilter() guard_1 LLR_01: Guard Check Is the module initialization state is not initialized (INIT)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_INIT` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the receive channel validation check returns FALSE (invalid channel)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is the pointer `filterLabelsPtr` is NULL (invalid)? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return `MD_INVALID_PARAM` guard_3->err_exit_3 YES (TRUE) guard_4 LLR_04: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_3->guard_4 err_exit_4 LLR_04 Error Exit abort processing and return the module error code produced by errCheck(retStatus) guard_4->err_exit_4 YES (TRUE) act_5 LLR_05: Action Step invoke receiver driver routine `a429_rxSetLabelFilter()` to perform channel configuration guard_4->act_5 NO (FALSE) act_6 LLR_06: Action Step evaluate the driver return status using `errCheck()` act_5->act_6 success_exit LLR_07: Final Exit return `MD_SUCCESS` act_6->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_modA429_recvSetLabelFilter in_store Input Data Sources & Parameters • rxChannelNum (const A429ChannelNum) • filterLabelsPtr (const UInt8) • filterLabelCount (const UInt8) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: a429ModHdl in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: validateRxChannel proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: filterLabelsPtr proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Validation Check • Evaluate Parameter / State: retStatus proc_3->proc_4 Validated Input Data proc_5 LLR_05: Data Payload Transformation • Process payload via a429_rxSetLabelFilter() proc_4->proc_5 Data Payload (a429_rxSetLabelFilter) proc_6 LLR_06: Data Payload Transformation • Process payload via errCheck() proc_5->proc_6 Data Payload (errCheck) proc_7 LLR_07: Status Output Packaging • Format Return Payload: ModStatus proc_6->proc_7 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (ModStatus) proc_7->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
modA429_recvSetLabelFilter Node1 modA429_recvSetLabelFilter Node1->Node1 Node2 a429_rxSetLabelFilter Node1->Node2 Node8 errCheck Node1->Node8 Node9 validateRxChannel Node1->Node9 Node2->Node2 Node3 configLabelFilter Node2->Node3 Node3->Node3 Node4 writeA429Reg Node3->Node4 Node4->Node4 Node5 interDrv_Write32 Node4->Node5 Node5->Node5 Node6 interDrv_isAddressValid Node5->Node6 Node7 memoryMap_Write32 Node5->Node7 Node6->Node6 Node7->Node7 Node8->Node8 Node9->Node9
Here is the caller graph for this function:
modA429_recvSetLabelFilter Node1 modA429_recvSetLabelFilter Node1->Node1

◆ modA429_recvSetSDIFilter()

ModStatus modA429_recvSetSDIFilter ( const A429ChannelNum rxChannelNum,
const UInt8 sdiValue )

modA429_recvSetSDIFilter.

@detailsSet the message filter by SDI value of specified receiver channel.

Parameters
[in]rxChannelNumReceive channel number to access.
[in]sdiValueSDI Value to filter.
Returns
ModStatus - Module status return code, If no error occurs during the operation of the function, it returns MD_SUCCESS. Otherwise related error message is returned.
Return values
MD_SUCCESS: Success.
MD_INVALID_INIT: The module has not been initialized.
MD_INVALID_CONFIG: The configuration parameter is invalid.
MD_INVALID_CHANNEL: The channel number is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: modA429_recvSetSDIFilter

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_A429_MODA429_RECVSETSDIFILTER_01 HLR_A429_21622 WHEN the module initialization state is not initialized (INIT), the modA429_recvSetSDIFilter() function SHALL abort processing and return MD_INVALID_INIT. modA429.c:modA429_recvSetSDIFilter() Test Closed
LLR_A429_MODA429_RECVSETSDIFILTER_02 HLR_A429_21622 WHEN rxChannelNum is not one of the defined ARINC 429 receive channel identifiers (A429_RX_CH1 through A429_RX_CH7), the modA429_recvSetSDIFilter() function SHALL abort processing and return MD_INVALID_CHANNEL. modA429.c:modA429_recvSetSDIFilter() Test Closed
LLR_A429_MODA429_RECVSETSDIFILTER_03 HLR_A429_21622 WHEN sdiValue is less than or equal to MOD_A429_MAX_SDI_VALUE, the modA429_recvSetSDIFilter() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modA429.c:modA429_recvSetSDIFilter() Test Closed
LLR_A429_MODA429_RECVSETSDIFILTER_04 HLR_A429_21622 WHEN preconditions are satisfied, the modA429_recvSetSDIFilter() function SHALL invoke receiver driver routine a429_rxSetSDIFilter() to perform channel configuration. modA429.c:modA429_recvSetSDIFilter() Test Closed
LLR_A429_MODA429_RECVSETSDIFILTER_05 HLR_A429_21622 WHEN preconditions are satisfied, the modA429_recvSetSDIFilter() function SHALL evaluate the driver return status using errCheck(). modA429.c:modA429_recvSetSDIFilter() Test Closed
LLR_A429_MODA429_RECVSETSDIFILTER_06 HLR_A429_21622 WHEN all operational processing completes successfully, the modA429_recvSetSDIFilter() function SHALL return MD_SUCCESS. modA429.c:modA429_recvSetSDIFilter() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller modA429_recvSetSDIFilter() [Device Library Modules] Target a429_rxSetSDIFilter() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rxChannelNum (Flag) l_t1->l_b1   sdiValue (Flag) r_b0->r_t0   statusCode (ModStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller modA429_recvSetSDIFilter() [Device Library Modules] Target a429_rxSetSDIFilter() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rxChannelNum (Payload) l_t1->l_b1   sdiValue (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_modA429_recvSetSDIFilter start Entry: modA429_recvSetSDIFilter() guard_1 LLR_01: Guard Check Is the module initialization state is not initialized (INIT)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_INIT` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the receive channel validation check returns FALSE (invalid channel)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is `sdiValue` is less than or equal to `MOD_A429_MAX_SDI_VALUE`? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return the module error code produced by errCheck(retStatus) guard_3->err_exit_3 YES (TRUE) act_4 LLR_04: Action Step invoke receiver driver routine `a429_rxSetSDIFilter()` to perform channel configuration guard_3->act_4 NO (FALSE) act_5 LLR_05: Action Step evaluate the driver return status using `errCheck()` act_4->act_5 success_exit LLR_06: Final Exit return `MD_SUCCESS` act_5->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_modA429_recvSetSDIFilter in_store Input Data Sources & Parameters • rxChannelNum (const A429ChannelNum) • sdiValue (const UInt8) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: a429ModHdl in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: validateRxChannel proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: sdiValue proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Payload Transformation • Process payload via a429_rxSetSDIFilter() proc_3->proc_4 Data Payload (a429_rxSetSDIFilter) proc_5 LLR_05: Data Payload Transformation • Process payload via errCheck() proc_4->proc_5 Data Payload (errCheck) proc_6 LLR_06: Status Output Packaging • Format Return Payload: ModStatus proc_5->proc_6 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (ModStatus) proc_6->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
modA429_recvSetSDIFilter Node1 modA429_recvSetSDIFilter Node1->Node1 Node2 a429_rxSetSDIFilter Node1->Node2 Node10 errCheck Node1->Node10 Node11 validateRxChannel Node1->Node11 Node2->Node2 Node3 readA429Reg Node2->Node3 Node7 writeA429Reg Node2->Node7 Node3->Node3 Node4 interDrv_Read32 Node3->Node4 Node4->Node4 Node5 interDrv_isAddressValid Node4->Node5 Node6 memoryMap_Read32 Node4->Node6 Node5->Node5 Node6->Node6 Node7->Node7 Node8 interDrv_Write32 Node7->Node8 Node8->Node5 Node8->Node8 Node9 memoryMap_Write32 Node8->Node9 Node9->Node9 Node10->Node10 Node11->Node11
Here is the caller graph for this function:
modA429_recvSetSDIFilter Node1 modA429_recvSetSDIFilter Node1->Node1

◆ modA429_send()

ModStatus modA429_send ( const A429ChannelNum txChannelNum,
const A429Message * msgBufPtr,
const UInt32 msgCount )

modA429_send.

Send the input ARINC429 messages to the specified enabled transmitter channel. The function validates module state, channel identity, message-buffer address, and FIFO capacity, encodes each message, and submits the encoded sequence to the transmit FIFO.

Parameters
[in]txChannelNumARINC429 transmit channel identifier. Accepted values are A429_TX_CH1 through A429_TX_CH4.
[in]msgBufPtrPointer to the input ARINC429 message array. A NULL pointer is invalid.
[in]msgCountNumber of messages in msgBufPtr. The maximum accepted count is the A429 transmit FIFO capacity (32).
Returns
ModStatus - Module status return code, If no error occurs during the operation of the function, it returns MD_SUCCESS. Otherwise related error message is returned.
Return values
MD_SUCCESS: Success.
MD_INVALID_PARAM: The provided address pointer is invalid.
MD_INVALID_INIT: The module has not been initialized.
MD_INVALID_CHANNEL: The channel number is invalid.
MD_CHANNEL_DISABLED: Channel is disabled.
MD_INVALID_VALUE: The message count is out of range.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: modA429_send

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_A429_MODA429_SEND_01 HLR_A429_288 WHEN the A429 module is not initialized, the modA429_send() function SHALL return MD_INVALID_INIT without accessing the transmit channel or message buffer. modA429.c:modA429_send() Test Closed — Recovered
LLR_A429_MODA429_SEND_02 HLR_A429_288 WHEN txChannelNum is not one of A429_TX_CH1 through A429_TX_CH4, the modA429_send() function SHALL return MD_INVALID_CHANNEL. modA429.c:modA429_send() Test Closed — Recovered
LLR_A429_MODA429_SEND_03 HLR_A429_288 WHEN the transmit-channel state read reports a driver failure, the modA429_send() function SHALL return the module status produced by errCheck() for that driver failure. modA429.c:modA429_send() Test Closed — Recovered
LLR_A429_MODA429_SEND_04 HLR_A429_288 WHEN the selected transmit channel is disabled (CH_DISABLE), the modA429_send() function SHALL return MD_CHANNEL_DISABLED without submitting messages to the transmit FIFO. modA429.c:modA429_send() Test Closed — Recovered
LLR_A429_MODA429_SEND_05 HLR_A429_288 WHEN msgBufPtr is NULL, the modA429_send() function SHALL return MD_INVALID_PARAM. modA429.c:modA429_send() Test Closed — Recovered
LLR_A429_MODA429_SEND_06 HLR_A429_288 WHEN msgCount is greater than the maximum A429 transmit FIFO capacity (32), the modA429_send() function SHALL return MD_INVALID_VALUE. modA429.c:modA429_send() Test Closed — Recovered
LLR_A429_MODA429_SEND_07 HLR_A429_288 WHEN all input and channel-state preconditions are satisfied, the modA429_send() function SHALL encode each input message in msgBufPtr for indices 0 through msgCount - 1. modA429.c:modA429_send() Test Closed — Recovered
LLR_A429_MODA429_SEND_08 HLR_A429_288 WHEN message encoding completes successfully, the modA429_send() function SHALL submit the encoded message sequence to the selected A429 transmit FIFO. modA429.c:modA429_send() Test Closed — Recovered
LLR_A429_MODA429_SEND_09 HLR_A429_288 WHEN transmit FIFO submission reports a driver failure, the modA429_send() function SHALL return the module status produced by errCheck() for that driver failure. modA429.c:modA429_send() Test Closed — Recovered
LLR_A429_MODA429_SEND_10 HLR_A429_288 WHEN encoding and transmit FIFO submission complete successfully, the modA429_send() function SHALL return MD_SUCCESS. modA429.c:modA429_send() Test Closed — Recovered

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller modA429_send() [Device Library Modules] Target a429_txGetState() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   txChannelNum (Flag) l_t1->l_b1   msgBufPtr (Flag) l_t2->l_b2   msgCount (Flag) r_b0->r_t0   statusCode (ModStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller modA429_send() [Device Library Modules] Target a429_txGetState() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   txChannelNum (Payload) l_t1->l_b1   msgBufPtr (Payload) l_t2->l_b2   msgCount (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_modA429_send start Entry: modA429_send() guard_1 LLR_01: Guard Check Is the module initialization state is not initialized (INIT)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_INIT` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the transmit channel validation check returns FALSE (invalid channel)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return the module error code produced by errCheck(retStatus) guard_3->err_exit_3 YES (TRUE) guard_4 LLR_04: Guard Check Is `channelStatus` is equal to `CH_DISABLE`? guard_3->guard_4 err_exit_4 LLR_04 Error Exit abort processing and return `MD_CHANNEL_DISABLED` guard_4->err_exit_4 YES (TRUE) guard_5 LLR_05: Guard Check Is the pointer `msgBufPtr` is NULL (invalid)? guard_4->guard_5 err_exit_5 LLR_05 Error Exit abort processing and return `MD_INVALID_PARAM` guard_5->err_exit_5 YES (TRUE) guard_6 LLR_06: Guard Check Is `msgCount` is greater than the maximum ARINC 429 TX FIFO capacity (32)? guard_5->guard_6 err_exit_6 LLR_06 Error Exit abort processing and return `MD_INVALID_VALUE` guard_6->err_exit_6 YES (TRUE) act_7 LLR_07: Action Step invoke transmitter driver routine `a429_txGetState()` to perform message transmission guard_6->act_7 NO (FALSE) act_8 LLR_08: Action Step evaluate the driver return status using `errCheck()` act_7->act_8 act_9 LLR_09: Action Step invoke routine `encodeMessage()` to encode ARINC 429 message words act_8->act_9 act_10 LLR_10: Action Step invoke transmitter driver routine `a429_txFIFOMsg()` to perform message transmission act_9->act_10 success_exit LLR_11: Final Exit return `MD_SUCCESS` act_10->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_modA429_send in_store Input Data Sources & Parameters • txChannelNum (const A429ChannelNum) • msgBufPtr (const A429Message) • msgCount (const UInt32) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: a429ModHdl in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: validateTxChannel proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: retStatus proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Validation Check • Evaluate Parameter / State: channelStatus proc_3->proc_4 Validated Input Data proc_5 LLR_05: Data Validation Check • Evaluate Parameter / State: msgBufPtr proc_4->proc_5 Validated Input Data proc_6 LLR_06: Data Validation Check • Evaluate Parameter / State: msgCount proc_5->proc_6 Validated Input Data proc_7 LLR_07: Data Payload Transformation • Process payload via a429_txGetState() proc_6->proc_7 Data Payload (a429_txGetState) proc_8 LLR_08: Data Payload Transformation • Process payload via errCheck() proc_7->proc_8 Data Payload (errCheck) proc_9 LLR_09: Data Payload Transformation • Process payload via encodeMessage() proc_8->proc_9 Data Payload (encodeMessage) proc_10 LLR_10: Data Payload Transformation • Process payload via a429_txFIFOMsg() proc_9->proc_10 Data Payload (a429_txFIFOMsg) proc_11 LLR_11: Status Output Packaging • Format Return Payload: ModStatus proc_10->proc_11 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (ModStatus) proc_11->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
modA429_send Node1 modA429_send Node1->Node1 Node2 a429_txFIFOMsg Node1->Node2 Node11 a429_txGetState Node1->Node11 Node12 encodeMessage Node1->Node12 Node13 errCheck Node1->Node13 Node14 validateTxChannel Node1->Node14 Node2->Node2 Node3 txBus Node2->Node3 Node3->Node3 Node4 readA429Reg Node3->Node4 Node8 writeA429Reg Node3->Node8 Node4->Node4 Node5 interDrv_Read32 Node4->Node5 Node5->Node5 Node6 interDrv_isAddressValid Node5->Node6 Node7 memoryMap_Read32 Node5->Node7 Node6->Node6 Node7->Node7 Node8->Node8 Node9 interDrv_Write32 Node8->Node9 Node9->Node6 Node9->Node9 Node10 memoryMap_Write32 Node9->Node10 Node10->Node10 Node11->Node4 Node11->Node11 Node12->Node12 Node13->Node13 Node14->Node14
Here is the caller graph for this function:
modA429_send Node1 modA429_send Node1->Node1

◆ modA429_sendChDisable()

ModStatus modA429_sendChDisable ( const A429ChannelNum txChannelNum)

modA429_sendChDisable.

Disable the specified transmitter channel.

Parameters
[in]txChannelNumTransmit channel number to access.
Returns
ModStatus - Module status return code, If no error occurs during the operation of the function, it returns MD_SUCCESS. Otherwise related error message is returned.
Return values
MD_SUCCESS: Success.
MD_INVALID_INIT: The module has not been initialized.
MD_INVALID_CHANNEL: The channel number is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: modA429_sendChDisable

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_A429_MODA429_SENDCHDISABLE_01 HLR_A429_287 WHEN the module initialization state is not initialized (INIT), the modA429_sendChDisable() function SHALL abort processing and return MD_INVALID_INIT. modA429.c:modA429_sendChDisable() Test Closed
LLR_A429_MODA429_SENDCHDISABLE_02 HLR_A429_287 WHEN txChannelNum is not one of the defined ARINC 429 transmit channel identifiers (A429_TX_CH1, A429_TX_CH2, A429_TX_CH3, A429_TX_CH4), the modA429_sendChDisable() function SHALL abort processing and return MD_INVALID_CHANNEL. modA429.c:modA429_sendChDisable() Test Closed
LLR_A429_MODA429_SENDCHDISABLE_03 HLR_A429_287 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the modA429_sendChDisable() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modA429.c:modA429_sendChDisable() Test Closed
LLR_A429_MODA429_SENDCHDISABLE_04 HLR_A429_287 WHEN preconditions are satisfied, the modA429_sendChDisable() function SHALL invoke transmitter driver routine a429_txDisableChannel() to perform message transmission. modA429.c:modA429_sendChDisable() Test Closed
LLR_A429_MODA429_SENDCHDISABLE_05 HLR_A429_287 WHEN preconditions are satisfied, the modA429_sendChDisable() function SHALL evaluate the driver return status using errCheck(). modA429.c:modA429_sendChDisable() Test Closed
LLR_A429_MODA429_SENDCHDISABLE_06 HLR_A429_287 WHEN preconditions are satisfied, the modA429_sendChDisable() function SHALL invoke transmitter driver routine a429_txDisableParity() to perform message transmission. modA429.c:modA429_sendChDisable() Test Closed
LLR_A429_MODA429_SENDCHDISABLE_07 HLR_A429_287 WHEN all operational processing completes successfully, the modA429_sendChDisable() function SHALL return MD_SUCCESS. modA429.c:modA429_sendChDisable() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller modA429_sendChDisable() [Device Library Modules] Target a429_txDisableChannel() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   txChannelNum (Flag) r_b0->r_t0   statusCode (ModStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller modA429_sendChDisable() [Device Library Modules] Target a429_txDisableChannel() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   txChannelNum (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_modA429_sendChDisable start Entry: modA429_sendChDisable() guard_1 LLR_01: Guard Check Is the module initialization state is not initialized (INIT)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_INIT` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the transmit channel validation check returns FALSE (invalid channel)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return the module error code produced by errCheck(retStatus) guard_3->err_exit_3 YES (TRUE) act_4 LLR_04: Action Step invoke transmitter driver routine `a429_txDisableChannel()` to perform message transmission guard_3->act_4 NO (FALSE) act_5 LLR_05: Action Step evaluate the driver return status using `errCheck()` act_4->act_5 act_6 LLR_06: Action Step invoke transmitter driver routine `a429_txDisableParity()` to perform message transmission act_5->act_6 success_exit LLR_07: Final Exit return `MD_SUCCESS` act_6->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_modA429_sendChDisable in_store Input Data Sources & Parameters • txChannelNum (const A429ChannelNum) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: a429ModHdl in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: validateTxChannel proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: retStatus proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Payload Transformation • Process payload via a429_txDisableChannel() proc_3->proc_4 Data Payload (a429_txDisableChannel) proc_5 LLR_05: Data Payload Transformation • Process payload via errCheck() proc_4->proc_5 Data Payload (errCheck) proc_6 LLR_06: Data Payload Transformation • Process payload via a429_txDisableParity() proc_5->proc_6 Data Payload (a429_txDisableParity) proc_7 LLR_07: Status Output Packaging • Format Return Payload: ModStatus proc_6->proc_7 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (ModStatus) proc_7->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
modA429_sendChDisable Node1 modA429_sendChDisable Node1->Node1 Node2 a429_txDisableChannel Node1->Node2 Node10 a429_txDisableParity Node1->Node10 Node11 errCheck Node1->Node11 Node12 validateTxChannel Node1->Node12 Node2->Node2 Node3 readA429Reg Node2->Node3 Node7 writeA429Reg Node2->Node7 Node3->Node3 Node4 interDrv_Read32 Node3->Node4 Node4->Node4 Node5 interDrv_isAddressValid Node4->Node5 Node6 memoryMap_Read32 Node4->Node6 Node5->Node5 Node6->Node6 Node7->Node7 Node8 interDrv_Write32 Node7->Node8 Node8->Node5 Node8->Node8 Node9 memoryMap_Write32 Node8->Node9 Node9->Node9 Node10->Node3 Node10->Node7 Node10->Node10 Node11->Node11 Node12->Node12
Here is the caller graph for this function:
modA429_sendChDisable Node1 modA429_sendChDisable Node1->Node1 Node2 modA429_initReset Node1->Node2 Node2->Node2 Node3 modConfig_init Node2->Node3 Node4 modConfig_reset Node2->Node4 Node3->Node3 Node4->Node4 Node5 modConfig_close Node4->Node5 Node5->Node5

◆ modA429_sendChEnable()

ModStatus modA429_sendChEnable ( const A429ChannelNum txChannelNum)

modA429_sendChEnable.

Enable the specified transmitter channel.

Parameters
[in]txChannelNumTransmit channel number to access.
Returns
ModStatus - Module status return code, If no error occurs during the operation of the function, it returns MD_SUCCESS. Otherwise related error message is returned.
Return values
MD_SUCCESS: Success.
MD_INVALID_INIT: The module has not been initialized.
MD_INVALID_CHANNEL: The channel number is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: modA429_sendChEnable

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_A429_MODA429_SENDCHENABLE_01 HLR_A429_287 WHEN the module initialization state is not initialized (INIT), the modA429_sendChEnable() function SHALL abort processing and return MD_INVALID_INIT. modA429.c:modA429_sendChEnable() Test Closed
LLR_A429_MODA429_SENDCHENABLE_02 HLR_A429_287 WHEN txChannelNum is not one of the defined ARINC 429 transmit channel identifiers (A429_TX_CH1, A429_TX_CH2, A429_TX_CH3, A429_TX_CH4), the modA429_sendChEnable() function SHALL abort processing and return MD_INVALID_CHANNEL. modA429.c:modA429_sendChEnable() Test Closed
LLR_A429_MODA429_SENDCHENABLE_03 HLR_A429_287 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the modA429_sendChEnable() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modA429.c:modA429_sendChEnable() Test Closed
LLR_A429_MODA429_SENDCHENABLE_04 HLR_A429_287 WHEN preconditions are satisfied, the modA429_sendChEnable() function SHALL invoke transmitter driver routine a429_txEnableChannel() to perform message transmission. modA429.c:modA429_sendChEnable() Test Closed
LLR_A429_MODA429_SENDCHENABLE_05 HLR_A429_287 WHEN preconditions are satisfied, the modA429_sendChEnable() function SHALL evaluate the driver return status using errCheck(). modA429.c:modA429_sendChEnable() Test Closed
LLR_A429_MODA429_SENDCHENABLE_06 HLR_A429_287 WHEN all operational processing completes successfully, the modA429_sendChEnable() function SHALL return MD_SUCCESS. modA429.c:modA429_sendChEnable() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller modA429_sendChEnable() [Device Library Modules] Target a429_txEnableChannel() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   txChannelNum (Flag) r_b0->r_t0   statusCode (ModStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller modA429_sendChEnable() [Device Library Modules] Target a429_txEnableChannel() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   txChannelNum (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_modA429_sendChEnable start Entry: modA429_sendChEnable() guard_1 LLR_01: Guard Check Is the module initialization state is not initialized (INIT)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_INIT` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the transmit channel validation check returns FALSE (invalid channel)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return the module error code produced by errCheck(retStatus) guard_3->err_exit_3 YES (TRUE) act_4 LLR_04: Action Step invoke transmitter driver routine `a429_txEnableChannel()` to perform message transmission guard_3->act_4 NO (FALSE) act_5 LLR_05: Action Step evaluate the driver return status using `errCheck()` act_4->act_5 success_exit LLR_06: Final Exit return `MD_SUCCESS` act_5->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_modA429_sendChEnable in_store Input Data Sources & Parameters • txChannelNum (const A429ChannelNum) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: a429ModHdl in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: validateTxChannel proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: retStatus proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Payload Transformation • Process payload via a429_txEnableChannel() proc_3->proc_4 Data Payload (a429_txEnableChannel) proc_5 LLR_05: Data Payload Transformation • Process payload via errCheck() proc_4->proc_5 Data Payload (errCheck) proc_6 LLR_06: Status Output Packaging • Format Return Payload: ModStatus proc_5->proc_6 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (ModStatus) proc_6->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
modA429_sendChEnable Node1 modA429_sendChEnable Node1->Node1 Node2 a429_txEnableChannel Node1->Node2 Node10 errCheck Node1->Node10 Node11 validateTxChannel Node1->Node11 Node2->Node2 Node3 readA429Reg Node2->Node3 Node7 writeA429Reg Node2->Node7 Node3->Node3 Node4 interDrv_Read32 Node3->Node4 Node4->Node4 Node5 interDrv_isAddressValid Node4->Node5 Node6 memoryMap_Read32 Node4->Node6 Node5->Node5 Node6->Node6 Node7->Node7 Node8 interDrv_Write32 Node7->Node8 Node8->Node5 Node8->Node8 Node9 memoryMap_Write32 Node8->Node9 Node9->Node9 Node10->Node10 Node11->Node11
Here is the caller graph for this function:
modA429_sendChEnable Node1 modA429_sendChEnable Node1->Node1

◆ modA429_sendConfig()

ModStatus modA429_sendConfig ( const A429ChannelNum txChannelNum,
const A429SpeedRate a429DataRate,
const Bool parityEnable,
const A429ParityMode parityMode )

modA429_sendConfig.

Set the configuration for data rate, parity and parity type of specified transmitter channel.

Parameters
[in]txChannelNumTransmit channel number to access.
[in]a429DataRateARINC429 TX Data Rate (kb/s).
[in]parityEnableWhen set to TRUE, ARINC429 bit 32 ARINC bit overwritten with parity flag. When set to FALSE, parity will be disabled and the transmitter will treat ARINC429 bit 32 as data and send data word with no parity.
[in]parityModeSet even parity bit or odd parity bit.
Returns
ModStatus - Module status return code, If no error occurs during the operation of the function, it returns MD_SUCCESS. Otherwise related error message is returned.
Return values
MD_SUCCESS: Success.
MD_INVALID_INIT: The module has not been initialized.
MD_INVALID_CONFIG: The configuration parameter is invalid.
MD_INVALID_CHANNEL: The channel number is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: modA429_sendConfig

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_A429_MODA429_SENDCONFIG_01 HLR_A429_288 WHEN the module initialization state is not initialized (INIT), the modA429_sendConfig() function SHALL abort processing and return MD_INVALID_INIT. modA429.c:modA429_sendConfig() Test Closed
LLR_A429_MODA429_SENDCONFIG_02 HLR_A429_288 WHEN txChannelNum is not one of the defined ARINC 429 transmit channel identifiers (A429_TX_CH1, A429_TX_CH2, A429_TX_CH3, A429_TX_CH4), the modA429_sendConfig() function SHALL abort processing and return MD_INVALID_CHANNEL. modA429.c:modA429_sendConfig() Test Closed
LLR_A429_MODA429_SENDCONFIG_03 HLR_A429_288 WHEN high-speed ARINC 429 transmission rate (100 kbps) is equal to the ARINC 429 transmission speed, the modA429_sendConfig() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modA429.c:modA429_sendConfig() Test Closed
LLR_A429_MODA429_SENDCONFIG_04 HLR_A429_288 WHEN low-speed ARINC 429 transmission rate (12.5 kbps) is equal to the ARINC 429 transmission speed, the modA429_sendConfig() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modA429.c:modA429_sendConfig() Test Closed
LLR_A429_MODA429_SENDCONFIG_05 HLR_A429_288 WHEN TRUE is equal to the parity enablement flag, the modA429_sendConfig() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modA429.c:modA429_sendConfig() Test Closed
LLR_A429_MODA429_SENDCONFIG_06 HLR_A429_288 WHEN FALSE is equal to the parity enablement flag, the modA429_sendConfig() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modA429.c:modA429_sendConfig() Test Closed
LLR_A429_MODA429_SENDCONFIG_07 HLR_A429_288 WHEN preconditions are satisfied, the modA429_sendConfig() function SHALL invoke transmitter driver routine a429_txSetSpeed() to perform message transmission. modA429.c:modA429_sendConfig() Test Closed
LLR_A429_MODA429_SENDCONFIG_08 HLR_A429_288 WHEN preconditions are satisfied, the modA429_sendConfig() function SHALL evaluate the driver return status using errCheck(). modA429.c:modA429_sendConfig() Test Closed
LLR_A429_MODA429_SENDCONFIG_09 HLR_A429_288 WHEN preconditions are satisfied, the modA429_sendConfig() function SHALL invoke transmitter driver routine a429_txEnableParity() to perform message transmission. modA429.c:modA429_sendConfig() Test Closed
LLR_A429_MODA429_SENDCONFIG_10 HLR_A429_288 WHEN preconditions are satisfied, the modA429_sendConfig() function SHALL invoke transmitter driver routine a429_txDisableParity() to perform message transmission. modA429.c:modA429_sendConfig() Test Closed
LLR_A429_MODA429_SENDCONFIG_11 HLR_A429_288 WHEN all operational processing completes successfully, the modA429_sendConfig() function SHALL return MD_SUCCESS. modA429.c:modA429_sendConfig() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller modA429_sendConfig() [Device Library Modules] Target a429_txSetSpeed() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   txChannelNum (Flag) l_t1->l_b1   a429DataRate (Flag) l_t2->l_b2   parityEnable (Flag) l_t3->l_b3   parityMode (Flag) r_b0->r_t0   statusCode (ModStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller modA429_sendConfig() [Device Library Modules] Target a429_txSetSpeed() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   txChannelNum (Payload) l_t1->l_b1   a429DataRate (Payload) l_t2->l_b2   parityEnable (Payload) l_t3->l_b3   parityMode (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_modA429_sendConfig start Entry: modA429_sendConfig() guard_1 LLR_01: Guard Check Is the module initialization state is not initialized (INIT)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_INIT` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the transmit channel validation check returns FALSE (invalid channel)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is high-speed ARINC 429 transmission rate (100 kbps) is equal to the ARINC 429 transmission speed? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return the module error code produced by errCheck(retStatus) guard_3->err_exit_3 YES (TRUE) guard_4 LLR_04: Guard Check Is low-speed ARINC 429 transmission rate (12.5 kbps) is equal to the ARINC 429 transmission speed? guard_3->guard_4 err_exit_4 LLR_04 Error Exit abort processing and return the module error code produced by errCheck(retStatus) guard_4->err_exit_4 YES (TRUE) guard_5 LLR_05: Guard Check Is `TRUE` is equal to the parity enablement flag? guard_4->guard_5 err_exit_5 LLR_05 Error Exit abort processing and return the module error code produced by errCheck(retStatus) guard_5->err_exit_5 YES (TRUE) guard_6 LLR_06: Guard Check Is `FALSE` is equal to the parity enablement flag? guard_5->guard_6 err_exit_6 LLR_06 Error Exit abort processing and return the module error code produced by errCheck(retStatus) guard_6->err_exit_6 YES (TRUE) act_7 LLR_07: Action Step invoke transmitter driver routine `a429_txSetSpeed()` to perform message transmission guard_6->act_7 NO (FALSE) act_8 LLR_08: Action Step evaluate the driver return status using `errCheck()` act_7->act_8 act_9 LLR_09: Action Step invoke transmitter driver routine `a429_txEnableParity()` to perform message transmission act_8->act_9 act_10 LLR_10: Action Step invoke transmitter driver routine `a429_txDisableParity()` to perform message transmission act_9->act_10 success_exit LLR_11: Final Exit return `MD_SUCCESS` act_10->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_modA429_sendConfig in_store Input Data Sources & Parameters • txChannelNum (const A429ChannelNum) • a429DataRate (const A429SpeedRate) • parityEnable (const Bool) • parityMode (const A429ParityMode) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: a429ModHdl in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: validateTxChannel proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: A429RATE_HI proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Validation Check • Evaluate Parameter / State: A429RATE_LO proc_3->proc_4 Validated Input Data proc_5 LLR_05: Data Validation Check • Evaluate Parameter / State: parityEnable proc_4->proc_5 Validated Input Data proc_6 LLR_06: Data Validation Check • Evaluate Parameter / State: parityEnable proc_5->proc_6 Validated Input Data proc_7 LLR_07: Data Payload Transformation • Process payload via a429_txSetSpeed() proc_6->proc_7 Data Payload (a429_txSetSpeed) proc_8 LLR_08: Data Payload Transformation • Process payload via errCheck() proc_7->proc_8 Data Payload (errCheck) proc_9 LLR_09: Data Payload Transformation • Process payload via a429_txEnableParity() proc_8->proc_9 Data Payload (a429_txEnableParity) proc_10 LLR_10: Data Payload Transformation • Process payload via a429_txDisableParity() proc_9->proc_10 Data Payload (a429_txDisableParity) proc_11 LLR_11: Status Output Packaging • Format Return Payload: ModStatus proc_10->proc_11 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (ModStatus) proc_11->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
modA429_sendConfig Node1 modA429_sendConfig Node1->Node1 Node2 a429_txDisableParity Node1->Node2 Node10 a429_txEnableParity Node1->Node10 Node11 a429_txSetSpeed Node1->Node11 Node12 errCheck Node1->Node12 Node13 validateTxChannel Node1->Node13 Node2->Node2 Node3 readA429Reg Node2->Node3 Node7 writeA429Reg Node2->Node7 Node3->Node3 Node4 interDrv_Read32 Node3->Node4 Node4->Node4 Node5 interDrv_isAddressValid Node4->Node5 Node6 memoryMap_Read32 Node4->Node6 Node5->Node5 Node6->Node6 Node7->Node7 Node8 interDrv_Write32 Node7->Node8 Node8->Node5 Node8->Node8 Node9 memoryMap_Write32 Node8->Node9 Node9->Node9 Node10->Node3 Node10->Node7 Node10->Node10 Node11->Node3 Node11->Node7 Node11->Node11 Node12->Node12 Node13->Node13
Here is the caller graph for this function:
modA429_sendConfig Node1 modA429_sendConfig Node1->Node1