HFCC-01 Low-Level Software (LLSW) Rel_6802_HFCC-01-RP-CSAR-CB
Loading...
Searching...
No Matches
modRvdt.h File Reference
#include "commonDataTypes.h"
#include "modStatus.h"
#include "modConfig.h"
Include dependency graph for modRvdt.h:
modRvdt.h Node1 modRvdt.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:
modRvdt.h Node1 modRvdt.h Node2 deviceLibModule.h Node1->Node2 Node3 modRvdt.c Node1->Node3

Go to the source code of this file.

Data Structures

struct  BPFBandwidth
 RVDT Demodulation Bandpass Filter (BPF) Center Frequency and Bandwidth Selection Structure. More...
struct  LPFFrequency
 RVDT Demodulation Lowpass Filter (LPF) Cutoff Frequency and Output Sampling Rate Structure. More...
struct  RvdtSenseConfig
 RVDT Secondary Sensing Channels Gain and Demodulator Output Rate Configuration Structure. More...
struct  RvdtSenseData
 RVDT Secondary Sensor Demodulated Voltage Telemetry and Raw ADC Output Data Structure. More...
struct  RvdtRefConfig
 RVDT Primary Excitation Reference Waveform Frequency and Amplitude Configuration Structure. More...

Enumerations

enum  SenseGain { GAIN_1 = 0U , GAIN_1_33 , GAIN_1_67 , GAIN_2 }
 This is enum definition for AC Sense Gain. More...
enum  SenseDemodOutputRate { SENSE_DEMOD_OUTPUT_RATE_128US = 0U , SENSE_DEMOD_OUTPUT_RATE_256US }
 This is enum definition for AC Sense DEMOD Output Rate. More...
enum  BPFCentreFrequency {
  BPF_CENTRE_FREQUENCY_1000Hz = 1000U , BPF_CENTRE_FREQUENCY_1500Hz = 1500U , BPF_CENTRE_FREQUENCY_2000Hz = 2000U , BPF_CENTRE_FREQUENCY_2500Hz = 2500U ,
  BPF_CENTRE_FREQUENCY_3000Hz = 3000U , BPF_CENTRE_FREQUENCY_3500Hz = 3500U , BPF_CENTRE_FREQUENCY_4000Hz = 4000U
}
 This is enum definition for AC BPF Centre Frequency. More...
enum  BPFBandwidthFrequency { BPF_BANDWIDTH_FREQUENCY_20Hz = 20U , BPF_BANDWIDTH_FREQUENCY_100Hz = 100U , BPF_BANDWIDTH_FREQUENCY_250Hz = 250U }
 This is enum definition for AC BPF Bandwidth Frequency. More...
enum  LPFOutputRate { LPF_OUTPUT_RATE_128US = 0U , LPF_OUTPUT_RATE_256US }
 This is enum definition for LPF Output Rate. More...
enum  LPFCutoffFrequency { LPF_CUTOFF_FREQUENCY_20Hz = 20U , LPF_CUTOFF_FREQUENCY_100Hz = 100U , LPF_CUTOFF_FREQUENCY_250Hz = 250U }
 This is enum definition for LPF Cut off Frequency. More...
enum  RvdtACRefFreq {
  ACREF_FREQ_1000_HZ = 1000U , ACREF_FREQ_1500_HZ = 1500U , ACREF_FREQ_2000_HZ = 2000U , ACREF_FREQ_2500_HZ = 2500U ,
  ACREF_FREQ_3000_HZ = 3000U , ACREF_FREQ_3500_HZ = 3500U , ACREF_FREQ_4000_HZ = 4000U
}
 This is enum definition for RVDT AC Ref Frequency. More...
enum  RvdtACRefAmplitude {
  ACREF_AMPL_1000_MVRMS = 1000U , ACREF_AMPL_1500_MVRMS = 1500U , ACREF_AMPL_2000_MVRMS = 2000U , ACREF_AMPL_2500_MVRMS = 2500U ,
  ACREF_AMPL_3000_MVRMS = 3000U , ACREF_AMPL_3500_MVRMS = 3500U , ACREF_AMPL_4000_MVRMS = 4000U , ACREF_AMPL_4500_MVRMS = 4500U ,
  ACREF_AMPL_5000_MVRMS = 5000U
}
 This is enum definition for RVDT AC Ref Amplitude. More...

Functions

ModStatus modRvdt_SetRefConfig (const RVDTChannelNum rvdtChannel, const RvdtRefConfig rvdtRefConfig)
 modRvdt_SetRefConfig.
ModStatus modRvdt_RefEnable (const RVDTChannelNum rvdtChannel)
 modRvdt_RefEnable.
ModStatus modRvdt_RefDisable (const RVDTChannelNum rvdtChannel)
 modRvdt_RefDisable.
ModStatus modRvdt_SetSenseConfig (const RVDTChannelNum rvdtChannel, const RvdtSenseConfig rvdtSenseConfig)
 modRvdt_SetSenseConfig.
ModStatus modRvdt_SetSenseFilter (const RVDTChannelNum rvdtChannel, const BPFBandwidth bpfConfiguration, const LPFFrequency lpfConfiguration)
 modRvdt_SetSenseFilter.
ModStatus modRvdt_SenseEnable (const RVDTChannelNum rvdtChannel)
 modRvdt_SenseEnable.
ModStatus modRvdt_SenseDisable (const RVDTChannelNum rvdtChannel)
 modRvdt_SenseDisable.
ModStatus modRvdt_SenseRead (const RVDTChannelNum rvdtChannel, RvdtSenseData *pRvdtSenseData)
 modRvdt_SenseRead.

Detailed Description

Enumeration Type Documentation

◆ BPFBandwidthFrequency

This is enum definition for AC BPF Bandwidth Frequency.

Enumerator
BPF_BANDWIDTH_FREQUENCY_20Hz 

Band-pass filter bandwidth frequency 20 Hz.

BPF_BANDWIDTH_FREQUENCY_100Hz 

Band-pass filter bandwidth frequency 100 Hz.

BPF_BANDWIDTH_FREQUENCY_250Hz 

Band-pass filter bandwidth frequency 250 Hz.

Band-pass filter bandwidth frequency 250 Hz.

◆ BPFCentreFrequency

This is enum definition for AC BPF Centre Frequency.

Enumerator
BPF_CENTRE_FREQUENCY_1000Hz 

Band-pass filter centre frequency 1000 Hz.

BPF_CENTRE_FREQUENCY_1500Hz 

Band-pass filter centre frequency 1500 Hz.

BPF_CENTRE_FREQUENCY_2000Hz 

Band-pass filter centre frequency 2000 Hz.

BPF_CENTRE_FREQUENCY_2500Hz 

Band-pass filter centre frequency 2500 Hz.

BPF_CENTRE_FREQUENCY_3000Hz 

Band-pass filter centre frequency 3000 Hz.

BPF_CENTRE_FREQUENCY_3500Hz 

Band-pass filter centre frequency 3500 Hz.

BPF_CENTRE_FREQUENCY_4000Hz 

Band-pass filter centre frequency 4000 Hz.

Band-pass filter centre frequency 4000 Hz.

◆ LPFCutoffFrequency

This is enum definition for LPF Cut off Frequency.

Enumerator
LPF_CUTOFF_FREQUENCY_20Hz 

LPF cut off frequency 20Hz.

LPF_CUTOFF_FREQUENCY_100Hz 

LPF cut off frequency 100Hz.

LPF_CUTOFF_FREQUENCY_250Hz 

LPF cut off frequency 250Hz.

◆ LPFOutputRate

This is enum definition for LPF Output Rate.

Enumerator
LPF_OUTPUT_RATE_128US 

LPF output rate 128us.

LPF_OUTPUT_RATE_256US 

LPF output rate 256us.

◆ RvdtACRefAmplitude

This is enum definition for RVDT AC Ref Amplitude.

Enumerator
ACREF_AMPL_1000_MVRMS 

AC reference excitation amplitude 1000 mVrms.

ACREF_AMPL_1500_MVRMS 

AC reference excitation amplitude 1500 mVrms.

ACREF_AMPL_2000_MVRMS 

AC reference excitation amplitude 2000 mVrms.

ACREF_AMPL_2500_MVRMS 

AC reference excitation amplitude 2500 mVrms.

ACREF_AMPL_3000_MVRMS 

AC reference excitation amplitude 3000 mVrms.

ACREF_AMPL_3500_MVRMS 

AC reference excitation amplitude 3500 mVrms.

ACREF_AMPL_4000_MVRMS 

AC reference excitation amplitude 4000 mVrms.

ACREF_AMPL_4500_MVRMS 

AC reference excitation amplitude 4500 mVrms.

ACREF_AMPL_5000_MVRMS 

AC reference excitation amplitude 5000 mVrms.

AC reference excitation amplitude 5000 mVrms.

◆ RvdtACRefFreq

This is enum definition for RVDT AC Ref Frequency.

Enumerator
ACREF_FREQ_1000_HZ 

AC reference excitation frequency 1000 Hz.

ACREF_FREQ_1500_HZ 

AC reference excitation frequency 1500 Hz.

ACREF_FREQ_2000_HZ 

AC reference excitation frequency 2000 Hz.

ACREF_FREQ_2500_HZ 

AC reference excitation frequency 2500 Hz.

ACREF_FREQ_3000_HZ 

AC reference excitation frequency 3000 Hz.

ACREF_FREQ_3500_HZ 

AC reference excitation frequency 3500 Hz.

ACREF_FREQ_4000_HZ 

AC reference excitation frequency 4000 Hz.

AC reference excitation frequency 4000 Hz.

◆ SenseDemodOutputRate

This is enum definition for AC Sense DEMOD Output Rate.

Enumerator
SENSE_DEMOD_OUTPUT_RATE_128US 

Sense demo output rate 128us.

SENSE_DEMOD_OUTPUT_RATE_256US 

Sense demo output rate 256us.

◆ SenseGain

enum SenseGain

This is enum definition for AC Sense Gain.

Enumerator
GAIN_1 

Sense Gain 1 V/V.

GAIN_1_33 

Sense Gain 1.33 V/V.

GAIN_1_67 

Sense Gain 1.67 V/V.

GAIN_2 

Sense Gain 2 V/V.

Function Documentation

◆ modRvdt_RefDisable()

ModStatus modRvdt_RefDisable ( const RVDTChannelNum rvdtChannel)

modRvdt_RefDisable.

Disable excitation AC output reference for RVDT module.

Parameters
[in]rvdtChannel- RVDT 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.
MD_OP_ALREADY_PERFORMED: The reference state is already disabled.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: modRvdt_RefDisable

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_MODRVDT_REFDISABLE_01 HLR_RVDT_16938 WHEN rvdtChannel is not one of the defined RVDT channel identifiers (RVDT_CH1, RVDT_CH2, RVDT_CH3, RVDT_CH4), the modRvdt_RefDisable() function SHALL abort processing and return MD_INVALID_CHANNEL. modRvdt.c:modRvdt_RefDisable() Test Closed
LLR_RVDT_MODRVDT_REFDISABLE_02 HLR_RVDT_16938 WHEN the module initialization state is not initialized (INIT), the modRvdt_RefDisable() function SHALL abort processing and return MD_INVALID_INIT. modRvdt.c:modRvdt_RefDisable() Test Closed
LLR_RVDT_MODRVDT_REFDISABLE_03 HLR_RVDT_16938 WHEN the driver status is not equal to DRV_SUCCESS, the modRvdt_RefDisable() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modRvdt.c:modRvdt_RefDisable() Test Closed
LLR_RVDT_MODRVDT_REFDISABLE_04 HLR_RVDT_16938 WHEN reference excitation on the specified RVDT channel is already disabled (reference status is FALSE), the modRvdt_RefDisable() function SHALL abort processing and return MD_OP_ALREADY_PERFORMED. modRvdt.c:modRvdt_RefDisable() Test Closed
LLR_RVDT_MODRVDT_REFDISABLE_05 HLR_RVDT_16938 WHEN preconditions are satisfied, the modRvdt_RefDisable() function SHALL invoke routine rvdt_getRefStatus() to execute target subsystem hardware operation. modRvdt.c:modRvdt_RefDisable() Test Closed
LLR_RVDT_MODRVDT_REFDISABLE_06 HLR_RVDT_16938 WHEN preconditions are satisfied, the modRvdt_RefDisable() function SHALL evaluate the driver return status using errCheck(). modRvdt.c:modRvdt_RefDisable() Test Closed
LLR_RVDT_MODRVDT_REFDISABLE_07 HLR_RVDT_16938 WHEN preconditions are satisfied, the modRvdt_RefDisable() function SHALL invoke routine rvdt_setRefWaveEnable() to execute target subsystem hardware operation. modRvdt.c:modRvdt_RefDisable() Test Closed
LLR_RVDT_MODRVDT_REFDISABLE_08 HLR_RVDT_16938 WHEN all operational processing completes successfully, the modRvdt_RefDisable() function SHALL return MD_SUCCESS. modRvdt.c:modRvdt_RefDisable() Test Closed

Control Coupling Diagram (CCD)

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

Data Coupling Diagram (DCD)

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

Control Flow Diagram (CFD)

cfd_modRvdt_RefDisable start Entry: modRvdt_RefDisable() guard_1 LLR_01: Guard Check Is the channel validation check returns FALSE (invalid channel)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the module initialization state is not initialized (INIT)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_INIT` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is `drvStatus` is not equal to `DRV_SUCCESS`? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return `errCheck(drvStatus)` guard_3->err_exit_3 YES (TRUE) guard_4 LLR_04: Guard Check Is `refStatus` is equal to `FALSE`? guard_3->guard_4 err_exit_4 LLR_04 Error Exit abort processing and return `MD_OP_ALREADY_PERFORMED` guard_4->err_exit_4 YES (TRUE) act_5 LLR_05: Action Step invoke routine `rvdt_getRefStatus()` to execute target subsystem hardware operation guard_4->act_5 NO (FALSE) act_6 LLR_06: Action Step evaluate the driver return status using `errCheck()` act_5->act_6 act_7 LLR_07: Action Step invoke routine `rvdt_setRefWaveEnable()` to execute target subsystem hardware operation act_6->act_7 success_exit LLR_08: Final Exit return `MD_SUCCESS` act_7->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_modRvdt_RefDisable in_store Input Data Sources & Parameters • rvdtChannel (const RVDTChannelNum) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: validateChannel in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: RvdtModHdl proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: drvStatus proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Validation Check • Evaluate Parameter / State: refStatus proc_3->proc_4 Validated Input Data proc_5 LLR_05: Data Payload Transformation • Process payload via rvdt_getRefStatus() proc_4->proc_5 Data Payload (rvdt_getRefStatus) proc_6 LLR_06: Data Payload Transformation • Process payload via errCheck() proc_5->proc_6 Data Payload (errCheck) proc_7 LLR_07: Data Payload Transformation • Process payload via rvdt_setRefWaveEnable() proc_6->proc_7 Data Payload (rvdt_setRefWaveEnable) proc_8 LLR_08: Status Output Packaging • Format Return Payload: ModStatus proc_7->proc_8 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (ModStatus) proc_8->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
modRvdt_RefDisable Node1 modRvdt_RefDisable Node1->Node1 Node2 errCheck Node1->Node2 Node3 rvdt_getRefStatus Node1->Node3 Node8 rvdt_setRefWaveEnable Node1->Node8 Node12 validateChannel Node1->Node12 Node2->Node2 Node3->Node3 Node4 readRvdtReg Node3->Node4 Node4->Node4 Node5 interDrv_Read32 Node4->Node5 Node5->Node5 Node6 interDrv_isAddressValid Node5->Node6 Node7 memoryMap_Read32 Node5->Node7 Node6->Node6 Node7->Node7 Node8->Node4 Node8->Node8 Node9 writeRvdtReg Node8->Node9 Node9->Node9 Node10 interDrv_Write32 Node9->Node10 Node10->Node6 Node10->Node10 Node11 memoryMap_Write32 Node10->Node11 Node11->Node11 Node12->Node12
Here is the caller graph for this function:
modRvdt_RefDisable Node1 modRvdt_RefDisable Node1->Node1 Node2 modRvdt_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

◆ modRvdt_RefEnable()

ModStatus modRvdt_RefEnable ( const RVDTChannelNum rvdtChannel)

modRvdt_RefEnable.

Enable excitation AC output reference for RVDT module.

Parameters
[in]rvdtChannelRVDT 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.
MD_OP_ALREADY_PERFORMED: The reference state is already enabled.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: modRvdt_RefEnable

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_MODRVDT_REFENABLE_01 HLR_RVDT_16938 WHEN rvdtChannel is not one of the defined RVDT channel identifiers (RVDT_CH1, RVDT_CH2, RVDT_CH3, RVDT_CH4), the modRvdt_RefEnable() function SHALL abort processing and return MD_INVALID_CHANNEL. modRvdt.c:modRvdt_RefEnable() Test Closed
LLR_RVDT_MODRVDT_REFENABLE_02 HLR_RVDT_16938 WHEN the module initialization state is not initialized (INIT), the modRvdt_RefEnable() function SHALL abort processing and return MD_INVALID_INIT. modRvdt.c:modRvdt_RefEnable() Test Closed
LLR_RVDT_MODRVDT_REFENABLE_03 HLR_RVDT_16938 WHEN the driver status is not equal to DRV_SUCCESS, the modRvdt_RefEnable() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modRvdt.c:modRvdt_RefEnable() Test Closed
LLR_RVDT_MODRVDT_REFENABLE_04 HLR_RVDT_16938 WHEN reference excitation on the specified RVDT channel is already enabled (reference status is TRUE), the modRvdt_RefEnable() function SHALL abort processing and return MD_OP_ALREADY_PERFORMED. modRvdt.c:modRvdt_RefEnable() Test Closed
LLR_RVDT_MODRVDT_REFENABLE_05 HLR_RVDT_16938 WHEN preconditions are satisfied, the modRvdt_RefEnable() function SHALL invoke routine rvdt_getRefStatus() to execute target subsystem hardware operation. modRvdt.c:modRvdt_RefEnable() Test Closed
LLR_RVDT_MODRVDT_REFENABLE_06 HLR_RVDT_16938 WHEN preconditions are satisfied, the modRvdt_RefEnable() function SHALL evaluate the driver return status using errCheck(). modRvdt.c:modRvdt_RefEnable() Test Closed
LLR_RVDT_MODRVDT_REFENABLE_07 HLR_RVDT_16938 WHEN preconditions are satisfied, the modRvdt_RefEnable() function SHALL invoke routine rvdt_setRefWaveEnable() to execute target subsystem hardware operation. modRvdt.c:modRvdt_RefEnable() Test Closed
LLR_RVDT_MODRVDT_REFENABLE_08 HLR_RVDT_16938 WHEN all operational processing completes successfully, the modRvdt_RefEnable() function SHALL return MD_SUCCESS. modRvdt.c:modRvdt_RefEnable() Test Closed

Control Coupling Diagram (CCD)

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

Data Coupling Diagram (DCD)

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

Control Flow Diagram (CFD)

cfd_modRvdt_RefEnable start Entry: modRvdt_RefEnable() guard_1 LLR_01: Guard Check Is the channel validation check returns FALSE (invalid channel)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the module initialization state is not initialized (INIT)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_INIT` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is `drvStatus` is not equal to `DRV_SUCCESS`? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return `errCheck(drvStatus)` guard_3->err_exit_3 YES (TRUE) guard_4 LLR_04: Guard Check Is `refStatus` is equal to `TRUE`? guard_3->guard_4 err_exit_4 LLR_04 Error Exit abort processing and return `MD_OP_ALREADY_PERFORMED` guard_4->err_exit_4 YES (TRUE) act_5 LLR_05: Action Step invoke routine `rvdt_getRefStatus()` to execute target subsystem hardware operation guard_4->act_5 NO (FALSE) act_6 LLR_06: Action Step evaluate the driver return status using `errCheck()` act_5->act_6 act_7 LLR_07: Action Step invoke routine `rvdt_setRefWaveEnable()` to execute target subsystem hardware operation act_6->act_7 success_exit LLR_08: Final Exit return `MD_SUCCESS` act_7->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_modRvdt_RefEnable in_store Input Data Sources & Parameters • rvdtChannel (const RVDTChannelNum) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: validateChannel in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: RvdtModHdl proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: drvStatus proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Validation Check • Evaluate Parameter / State: refStatus proc_3->proc_4 Validated Input Data proc_5 LLR_05: Data Payload Transformation • Process payload via rvdt_getRefStatus() proc_4->proc_5 Data Payload (rvdt_getRefStatus) proc_6 LLR_06: Data Payload Transformation • Process payload via errCheck() proc_5->proc_6 Data Payload (errCheck) proc_7 LLR_07: Data Payload Transformation • Process payload via rvdt_setRefWaveEnable() proc_6->proc_7 Data Payload (rvdt_setRefWaveEnable) proc_8 LLR_08: Status Output Packaging • Format Return Payload: ModStatus proc_7->proc_8 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (ModStatus) proc_8->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
modRvdt_RefEnable Node1 modRvdt_RefEnable Node1->Node1 Node2 errCheck Node1->Node2 Node3 rvdt_getRefStatus Node1->Node3 Node8 rvdt_setRefWaveEnable Node1->Node8 Node12 validateChannel Node1->Node12 Node2->Node2 Node3->Node3 Node4 readRvdtReg Node3->Node4 Node4->Node4 Node5 interDrv_Read32 Node4->Node5 Node5->Node5 Node6 interDrv_isAddressValid Node5->Node6 Node7 memoryMap_Read32 Node5->Node7 Node6->Node6 Node7->Node7 Node8->Node4 Node8->Node8 Node9 writeRvdtReg Node8->Node9 Node9->Node9 Node10 interDrv_Write32 Node9->Node10 Node10->Node6 Node10->Node10 Node11 memoryMap_Write32 Node10->Node11 Node11->Node11 Node12->Node12
Here is the caller graph for this function:
modRvdt_RefEnable Node1 modRvdt_RefEnable Node1->Node1

◆ modRvdt_SenseDisable()

ModStatus modRvdt_SenseDisable ( const RVDTChannelNum rvdtChannel)

modRvdt_SenseDisable.

Disable sense input demodulator for RVDT module.

Parameters
[in]rvdtChannelRVDT 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.
MD_OP_ALREADY_PERFORMED: The sense state is already disabled.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: modRvdt_SenseDisable

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_MODRVDT_SENSEDISABLE_01 HLR_RVDT_16942 WHEN rvdtChannel is not one of the defined RVDT channel identifiers (RVDT_CH1, RVDT_CH2, RVDT_CH3, RVDT_CH4), the modRvdt_SenseDisable() function SHALL abort processing and return MD_INVALID_CHANNEL. modRvdt.c:modRvdt_SenseDisable() Test Closed
LLR_RVDT_MODRVDT_SENSEDISABLE_02 HLR_RVDT_16942 WHEN the module initialization state is not initialized (INIT), the modRvdt_SenseDisable() function SHALL abort processing and return MD_INVALID_INIT. modRvdt.c:modRvdt_SenseDisable() Test Closed
LLR_RVDT_MODRVDT_SENSEDISABLE_03 HLR_RVDT_16942 WHEN the driver status is not equal to DRV_SUCCESS, the modRvdt_SenseDisable() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modRvdt.c:modRvdt_SenseDisable() Test Closed
LLR_RVDT_MODRVDT_SENSEDISABLE_04 HLR_RVDT_16942 WHEN demodulator sense on the specified RVDT channel is already disabled (sense status is FALSE), the modRvdt_SenseDisable() function SHALL abort processing and return MD_OP_ALREADY_PERFORMED. modRvdt.c:modRvdt_SenseDisable() Test Closed
LLR_RVDT_MODRVDT_SENSEDISABLE_05 HLR_RVDT_16942 WHEN preconditions are satisfied, the modRvdt_SenseDisable() function SHALL invoke routine rvdt_getSenseStatus() to execute target subsystem hardware operation. modRvdt.c:modRvdt_SenseDisable() Test Closed
LLR_RVDT_MODRVDT_SENSEDISABLE_06 HLR_RVDT_16942 WHEN preconditions are satisfied, the modRvdt_SenseDisable() function SHALL evaluate the driver return status using errCheck(). modRvdt.c:modRvdt_SenseDisable() Test Closed
LLR_RVDT_MODRVDT_SENSEDISABLE_07 HLR_RVDT_16942 WHEN preconditions are satisfied, the modRvdt_SenseDisable() function SHALL invoke routine rvdt_setPowerEnable() to execute target subsystem hardware operation. modRvdt.c:modRvdt_SenseDisable() Test Closed
LLR_RVDT_MODRVDT_SENSEDISABLE_08 HLR_RVDT_16942 WHEN preconditions are satisfied, the modRvdt_SenseDisable() function SHALL invoke routine rvdt_setSenseEnable() to execute target subsystem hardware operation. modRvdt.c:modRvdt_SenseDisable() Test Closed
LLR_RVDT_MODRVDT_SENSEDISABLE_09 HLR_RVDT_16942 WHEN all operational processing completes successfully, the modRvdt_SenseDisable() function SHALL return MD_SUCCESS. modRvdt.c:modRvdt_SenseDisable() Test Closed

Control Coupling Diagram (CCD)

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

Data Coupling Diagram (DCD)

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

Control Flow Diagram (CFD)

cfd_modRvdt_SenseDisable start Entry: modRvdt_SenseDisable() guard_1 LLR_01: Guard Check Is the channel validation check returns FALSE (invalid channel)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the module initialization state is not initialized (INIT)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_INIT` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is `drvStatus` is not equal to `DRV_SUCCESS`? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return `errCheck(drvStatus)` guard_3->err_exit_3 YES (TRUE) guard_4 LLR_04: Guard Check Is `senseStatus` is equal to `FALSE`? guard_3->guard_4 err_exit_4 LLR_04 Error Exit abort processing and return `MD_OP_ALREADY_PERFORMED` guard_4->err_exit_4 YES (TRUE) act_5 LLR_05: Action Step invoke routine `rvdt_getSenseStatus()` to execute target subsystem hardware operation guard_4->act_5 NO (FALSE) act_6 LLR_06: Action Step evaluate the driver return status using `errCheck()` act_5->act_6 act_7 LLR_07: Action Step invoke routine `rvdt_setPowerEnable()` to execute target subsystem hardware operation act_6->act_7 act_8 LLR_08: Action Step invoke routine `rvdt_setSenseEnable()` to execute target subsystem hardware operation 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_modRvdt_SenseDisable in_store Input Data Sources & Parameters • rvdtChannel (const RVDTChannelNum) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: validateChannel in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: RvdtModHdl proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: drvStatus proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Validation Check • Evaluate Parameter / State: senseStatus proc_3->proc_4 Validated Input Data proc_5 LLR_05: Data Payload Transformation • Process payload via rvdt_getSenseStatus() proc_4->proc_5 Data Payload (rvdt_getSenseStatus) proc_6 LLR_06: Data Payload Transformation • Process payload via errCheck() proc_5->proc_6 Data Payload (errCheck) proc_7 LLR_07: Data Payload Transformation • Process payload via rvdt_setPowerEnable() proc_6->proc_7 Data Payload (rvdt_setPowerEnable) proc_8 LLR_08: Data Payload Transformation • Process payload via rvdt_setSenseEnable() proc_7->proc_8 Data Payload (rvdt_setSenseEnable) 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:
modRvdt_SenseDisable Node1 modRvdt_SenseDisable Node1->Node1 Node2 errCheck Node1->Node2 Node3 rvdt_getSenseStatus Node1->Node3 Node8 rvdt_setPowerEnable Node1->Node8 Node12 rvdt_setSenseEnable Node1->Node12 Node13 validateChannel Node1->Node13 Node2->Node2 Node3->Node3 Node4 readRvdtReg Node3->Node4 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 writeRvdtReg Node8->Node9 Node9->Node9 Node10 interDrv_Write32 Node9->Node10 Node10->Node6 Node10->Node10 Node11 memoryMap_Write32 Node10->Node11 Node11->Node11 Node12->Node4 Node12->Node9 Node12->Node12 Node13->Node13
Here is the caller graph for this function:
modRvdt_SenseDisable Node1 modRvdt_SenseDisable Node1->Node1 Node2 modRvdt_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

◆ modRvdt_SenseEnable()

ModStatus modRvdt_SenseEnable ( const RVDTChannelNum rvdtChannel)

modRvdt_SenseEnable.

Enable sense input demodulator for RVDT module.

Parameters
[in]rvdtChannelRVDT 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.
MD_OP_ALREADY_PERFORMED: The sense state is already enabled.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: modRvdt_SenseEnable

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_MODRVDT_SENSEENABLE_01 HLR_RVDT_16942 WHEN rvdtChannel is not one of the defined RVDT channel identifiers (RVDT_CH1, RVDT_CH2, RVDT_CH3, RVDT_CH4), the modRvdt_SenseEnable() function SHALL abort processing and return MD_INVALID_CHANNEL. modRvdt.c:modRvdt_SenseEnable() Test Closed
LLR_RVDT_MODRVDT_SENSEENABLE_02 HLR_RVDT_16942 WHEN the module initialization state is not initialized (INIT), the modRvdt_SenseEnable() function SHALL abort processing and return MD_INVALID_INIT. modRvdt.c:modRvdt_SenseEnable() Test Closed
LLR_RVDT_MODRVDT_SENSEENABLE_03 HLR_RVDT_16942 WHEN the driver status is not equal to DRV_SUCCESS, the modRvdt_SenseEnable() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modRvdt.c:modRvdt_SenseEnable() Test Closed
LLR_RVDT_MODRVDT_SENSEENABLE_04 HLR_RVDT_16942 WHEN demodulator sense on the specified RVDT channel is already enabled (sense status is TRUE), the modRvdt_SenseEnable() function SHALL abort processing and return MD_OP_ALREADY_PERFORMED. modRvdt.c:modRvdt_SenseEnable() Test Closed
LLR_RVDT_MODRVDT_SENSEENABLE_05 HLR_RVDT_16942 WHEN preconditions are satisfied, the modRvdt_SenseEnable() function SHALL invoke routine rvdt_getSenseStatus() to execute target subsystem hardware operation. modRvdt.c:modRvdt_SenseEnable() Test Closed
LLR_RVDT_MODRVDT_SENSEENABLE_06 HLR_RVDT_16942 WHEN preconditions are satisfied, the modRvdt_SenseEnable() function SHALL evaluate the driver return status using errCheck(). modRvdt.c:modRvdt_SenseEnable() Test Closed
LLR_RVDT_MODRVDT_SENSEENABLE_07 HLR_RVDT_16942 WHEN preconditions are satisfied, the modRvdt_SenseEnable() function SHALL invoke routine rvdt_setPowerEnable() to execute target subsystem hardware operation. modRvdt.c:modRvdt_SenseEnable() Test Closed
LLR_RVDT_MODRVDT_SENSEENABLE_08 HLR_RVDT_16942 WHEN preconditions are satisfied, the modRvdt_SenseEnable() function SHALL invoke routine rvdt_setSenseEnable() to execute target subsystem hardware operation. modRvdt.c:modRvdt_SenseEnable() Test Closed
LLR_RVDT_MODRVDT_SENSEENABLE_09 HLR_RVDT_16942 WHEN all operational processing completes successfully, the modRvdt_SenseEnable() function SHALL return MD_SUCCESS. modRvdt.c:modRvdt_SenseEnable() Test Closed

Control Coupling Diagram (CCD)

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

Data Coupling Diagram (DCD)

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

Control Flow Diagram (CFD)

cfd_modRvdt_SenseEnable start Entry: modRvdt_SenseEnable() guard_1 LLR_01: Guard Check Is the channel validation check returns FALSE (invalid channel)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the module initialization state is not initialized (INIT)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_INIT` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is `drvStatus` is not equal to `DRV_SUCCESS`? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return `errCheck(drvStatus)` guard_3->err_exit_3 YES (TRUE) guard_4 LLR_04: Guard Check Is `senseStatus` is equal to `TRUE`? guard_3->guard_4 err_exit_4 LLR_04 Error Exit abort processing and return `MD_OP_ALREADY_PERFORMED` guard_4->err_exit_4 YES (TRUE) act_5 LLR_05: Action Step invoke routine `rvdt_getSenseStatus()` to execute target subsystem hardware operation guard_4->act_5 NO (FALSE) act_6 LLR_06: Action Step evaluate the driver return status using `errCheck()` act_5->act_6 act_7 LLR_07: Action Step invoke routine `rvdt_setPowerEnable()` to execute target subsystem hardware operation act_6->act_7 act_8 LLR_08: Action Step invoke routine `rvdt_setSenseEnable()` to execute target subsystem hardware operation 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_modRvdt_SenseEnable in_store Input Data Sources & Parameters • rvdtChannel (const RVDTChannelNum) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: validateChannel in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: RvdtModHdl proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: drvStatus proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Validation Check • Evaluate Parameter / State: senseStatus proc_3->proc_4 Validated Input Data proc_5 LLR_05: Data Payload Transformation • Process payload via rvdt_getSenseStatus() proc_4->proc_5 Data Payload (rvdt_getSenseStatus) proc_6 LLR_06: Data Payload Transformation • Process payload via errCheck() proc_5->proc_6 Data Payload (errCheck) proc_7 LLR_07: Data Payload Transformation • Process payload via rvdt_setPowerEnable() proc_6->proc_7 Data Payload (rvdt_setPowerEnable) proc_8 LLR_08: Data Payload Transformation • Process payload via rvdt_setSenseEnable() proc_7->proc_8 Data Payload (rvdt_setSenseEnable) 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:
modRvdt_SenseEnable Node1 modRvdt_SenseEnable Node1->Node1 Node2 errCheck Node1->Node2 Node3 rvdt_getSenseStatus Node1->Node3 Node8 rvdt_setPowerEnable Node1->Node8 Node12 rvdt_setSenseEnable Node1->Node12 Node13 validateChannel Node1->Node13 Node2->Node2 Node3->Node3 Node4 readRvdtReg Node3->Node4 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 writeRvdtReg Node8->Node9 Node9->Node9 Node10 interDrv_Write32 Node9->Node10 Node10->Node6 Node10->Node10 Node11 memoryMap_Write32 Node10->Node11 Node11->Node11 Node12->Node4 Node12->Node9 Node12->Node12 Node13->Node13
Here is the caller graph for this function:
modRvdt_SenseEnable Node1 modRvdt_SenseEnable Node1->Node1

◆ modRvdt_SenseRead()

ModStatus modRvdt_SenseRead ( const RVDTChannelNum rvdtChannel,
RvdtSenseData * pRvdtSenseData )

modRvdt_SenseRead.

Read the RVDT sensor output from sense input in RVDT module.

Parameters
[in]rvdtChannelRVDT channel number to access.
[out]pRvdtSenseDataRVDT sense data parameters.
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.
MD_INVALID_PARAM:The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: modRvdt_SenseRead

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_MODRVDT_SENSEREAD_01 HLR_RVDT_18870 WHEN rvdtChannel is not one of the defined RVDT channel identifiers (RVDT_CH1, RVDT_CH2, RVDT_CH3, RVDT_CH4), the modRvdt_SenseRead() function SHALL abort processing and return MD_INVALID_CHANNEL. modRvdt.c:modRvdt_SenseRead() Test Closed
LLR_RVDT_MODRVDT_SENSEREAD_02 HLR_RVDT_18870 WHEN the module initialization state is not initialized (INIT), the modRvdt_SenseRead() function SHALL abort processing and return MD_INVALID_INIT. modRvdt.c:modRvdt_SenseRead() Test Closed
LLR_RVDT_MODRVDT_SENSEREAD_03 HLR_RVDT_18870 WHEN the pointer pRvdtSenseData is NULL (invalid), the modRvdt_SenseRead() function SHALL abort processing and return MD_INVALID_PARAM. modRvdt.c:modRvdt_SenseRead() Test Closed
LLR_RVDT_MODRVDT_SENSEREAD_04 HLR_RVDT_18870 WHEN the driver status is not equal to DRV_SUCCESS, the modRvdt_SenseRead() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modRvdt.c:modRvdt_SenseRead() Test Closed
LLR_RVDT_MODRVDT_SENSEREAD_05 HLR_RVDT_18870 WHEN preconditions are satisfied, the modRvdt_SenseRead() function SHALL invoke routine rvdt_getSensePosition() to execute target subsystem hardware operation. modRvdt.c:modRvdt_SenseRead() Test Closed
LLR_RVDT_MODRVDT_SENSEREAD_06 HLR_RVDT_18870 WHEN preconditions are satisfied, the modRvdt_SenseRead() function SHALL evaluate the driver return status using errCheck(). modRvdt.c:modRvdt_SenseRead() Test Closed
LLR_RVDT_MODRVDT_SENSEREAD_07 HLR_RVDT_18870 WHEN all operational processing completes successfully, the modRvdt_SenseRead() function SHALL return MD_SUCCESS. modRvdt.c:modRvdt_SenseRead() Test Closed

Control Coupling Diagram (CCD)

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

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller modRvdt_SenseRead() [Device Library Modules] Target rvdt_getSensePosition() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rvdtChannel (Payload) r_b0->r_t0   *pRvdtSenseData (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_modRvdt_SenseRead start Entry: modRvdt_SenseRead() guard_1 LLR_01: Guard Check Is the channel validation check returns FALSE (invalid channel)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the module initialization state is not initialized (INIT)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_INIT` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is the pointer `pRvdtSenseData` 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 `drvStatus` is not equal to `DRV_SUCCESS`? guard_3->guard_4 err_exit_4 LLR_04 Error Exit abort processing and return `errCheck(drvStatus)` guard_4->err_exit_4 YES (TRUE) act_5 LLR_05: Action Step invoke routine `rvdt_getSensePosition()` to execute target subsystem hardware operation 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_modRvdt_SenseRead in_store Input Data Sources & Parameters • rvdtChannel (const RVDTChannelNum) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: validateChannel in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: RvdtModHdl proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: pRvdtSenseData proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Validation Check • Evaluate Parameter / State: drvStatus proc_3->proc_4 Validated Input Data proc_5 LLR_05: Data Payload Transformation • Process payload via rvdt_getSensePosition() proc_4->proc_5 Data Payload (rvdt_getSensePosition) 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 • pRvdtSenseData (RvdtSenseData) proc_7->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
modRvdt_SenseRead Node1 modRvdt_SenseRead Node1->Node1 Node2 errCheck Node1->Node2 Node3 rvdt_getSensePosition Node1->Node3 Node9 validateChannel Node1->Node9 Node2->Node2 Node3->Node3 Node4 getSenseDemod1Demod2Data Node3->Node4 Node4->Node4 Node5 readRvdtReg Node4->Node5 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
Here is the caller graph for this function:
modRvdt_SenseRead Node1 modRvdt_SenseRead Node1->Node1

◆ modRvdt_SetRefConfig()

ModStatus modRvdt_SetRefConfig ( const RVDTChannelNum rvdtChannel,
const RvdtRefConfig rvdtRefConfig )

modRvdt_SetRefConfig.

Set the reference configuration.

Parameters
[in]rvdtChannelRVDT channel number to access .
[in]rvdtRefConfigRVDT Reference configuration ACRefFrequency - in Hz (Minimum 1000Hz, Maximum 4000Hz, Increment by 500Hz) ACRefAmplitude - in mVrms (Minimum 1000mVrms, Maximum 5000mVrms, Increment by 500mVrms)
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_VALUE: The AC reference frequency or amplitude is not within range.
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: modRvdt_SetRefConfig

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_MODRVDT_SETREFCONFIG_01 HLR_RVDT_16937 WHEN rvdtChannel is not one of the defined RVDT channel identifiers (RVDT_CH1, RVDT_CH2, RVDT_CH3, RVDT_CH4), the modRvdt_SetRefConfig() function SHALL abort processing and return MD_INVALID_CHANNEL. modRvdt.c:modRvdt_SetRefConfig() Test Closed
LLR_RVDT_MODRVDT_SETREFCONFIG_02 HLR_RVDT_16937 WHEN the module initialization state is not initialized (INIT), the modRvdt_SetRefConfig() function SHALL abort processing and return MD_INVALID_INIT. modRvdt.c:modRvdt_SetRefConfig() Test Closed
LLR_RVDT_MODRVDT_SETREFCONFIG_03 HLR_RVDT_16937 WHEN the driver status is not equal to DRV_SUCCESS, the modRvdt_SetRefConfig() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modRvdt.c:modRvdt_SetRefConfig() Test Closed
LLR_RVDT_MODRVDT_SETREFCONFIG_04 HLR_RVDT_16937 WHEN the AC reference excitation amplitude in rvdtRefConfig is not one of the defined excitation amplitudes (ACREF_AMPL_1000_MVRMS (1000 mVrms), ACREF_AMPL_1500_MVRMS (1500 mVrms), ACREF_AMPL_2000_MVRMS (2000 mVrms), ACREF_AMPL_2500_MVRMS (2500 mVrms), ACREF_AMPL_3000_MVRMS (3000 mVrms), ACREF_AMPL_3500_MVRMS (3500 mVrms), ACREF_AMPL_4000_MVRMS (4000 mVrms), ACREF_AMPL_4500_MVRMS (4500 mVrms), or ACREF_AMPL_5000_MVRMS (5000 mVrms)), the modRvdt_SetRefConfig() function SHALL abort processing and return MD_INVALID_VALUE. modRvdt.c:modRvdt_SetRefConfig() Test Closed
LLR_RVDT_MODRVDT_SETREFCONFIG_05 HLR_RVDT_16937 WHEN the AC reference excitation frequency in rvdtRefConfig is not one of the defined excitation frequencies (ACREF_FREQ_1000_HZ (1000 Hz), ACREF_FREQ_1500_HZ (1500 Hz), ACREF_FREQ_2000_HZ (2000 Hz), ACREF_FREQ_2500_HZ (2500 Hz), ACREF_FREQ_3000_HZ (3000 Hz), ACREF_FREQ_3500_HZ (3500 Hz), or ACREF_FREQ_4000_HZ (4000 Hz)), the modRvdt_SetRefConfig() function SHALL abort processing and return MD_INVALID_VALUE. modRvdt.c:modRvdt_SetRefConfig() Test Closed
LLR_RVDT_MODRVDT_SETREFCONFIG_06 HLR_RVDT_16937 WHEN preconditions are satisfied, the modRvdt_SetRefConfig() function SHALL invoke routine rvdt_configWaveformGeneration() to execute target subsystem hardware operation. modRvdt.c:modRvdt_SetRefConfig() Test Closed
LLR_RVDT_MODRVDT_SETREFCONFIG_07 HLR_RVDT_16937 WHEN preconditions are satisfied, the modRvdt_SetRefConfig() function SHALL evaluate the driver return status using errCheck(). modRvdt.c:modRvdt_SetRefConfig() Test Closed
LLR_RVDT_MODRVDT_SETREFCONFIG_08 HLR_RVDT_16937 WHEN preconditions are satisfied, the modRvdt_SetRefConfig() function SHALL invoke routine rvdt_setRefConfigCommand() to execute target subsystem hardware operation. modRvdt.c:modRvdt_SetRefConfig() Test Closed
LLR_RVDT_MODRVDT_SETREFCONFIG_09 HLR_RVDT_16937 WHEN all operational processing completes successfully, the modRvdt_SetRefConfig() function SHALL return MD_SUCCESS. modRvdt.c:modRvdt_SetRefConfig() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller modRvdt_SetRefConfig() [Device Library Modules] Target rvdt_configWaveformGeneration() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rvdtChannel (Flag) l_t1->l_b1   rvdtRefConfig (Flag) r_b0->r_t0   statusCode (ModStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller modRvdt_SetRefConfig() [Device Library Modules] Target rvdt_configWaveformGeneration() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rvdtChannel (Payload) l_t1->l_b1   rvdtRefConfig (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_modRvdt_SetRefConfig start Entry: modRvdt_SetRefConfig() guard_1 LLR_01: Guard Check Is the channel validation check returns FALSE (invalid channel)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the module initialization state is not initialized (INIT)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_INIT` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is `drvStatus` is not equal to `DRV_SUCCESS`? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return `errCheck(drvStatus)` guard_3->err_exit_3 YES (TRUE) guard_4 LLR_04: Guard Check Is `rvdtRefConfig.acRefAmplitude` is not one of `ACREF_AMPL_1000_MVRMS through ACREF_AMPL_5000_MVRMS`? guard_3->guard_4 err_exit_4 LLR_04 Error Exit abort processing and return `MD_INVALID_VALUE` guard_4->err_exit_4 YES (TRUE) guard_5 LLR_05: Guard Check Is `rvdtRefConfig.acRefFreq` is not one of `ACREF_FREQ_1000_HZ through ACREF_FREQ_4000_HZ`? guard_4->guard_5 err_exit_5 LLR_05 Error Exit abort processing and return `MD_INVALID_VALUE` guard_5->err_exit_5 YES (TRUE) act_6 LLR_06: Action Step invoke routine `rvdt_configWaveformGeneration()` to execute target subsystem hardware operation guard_5->act_6 NO (FALSE) act_7 LLR_07: Action Step evaluate the driver return status using `errCheck()` act_6->act_7 act_8 LLR_08: Action Step invoke routine `rvdt_setRefConfigCommand()` to execute target subsystem hardware operation 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_modRvdt_SetRefConfig in_store Input Data Sources & Parameters • rvdtChannel (const RVDTChannelNum) • rvdtRefConfig (const RvdtRefConfig) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: validateChannel in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: RvdtModHdl proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: drvStatus proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Validation Check • Evaluate Parameter / State: rvdtRefConfig.acRefAmplitude proc_3->proc_4 Validated Input Data proc_5 LLR_05: Data Validation Check • Evaluate Parameter / State: rvdtRefConfig.acRefFreq proc_4->proc_5 Validated Input Data proc_6 LLR_06: Data Payload Transformation • Process payload via rvdt_configWaveformGeneration() proc_5->proc_6 Data Payload (rvdt_configWaveformGeneration) proc_7 LLR_07: Data Payload Transformation • Process payload via errCheck() proc_6->proc_7 Data Payload (errCheck) proc_8 LLR_08: Data Payload Transformation • Process payload via rvdt_setRefConfigCommand() proc_7->proc_8 Data Payload (rvdt_setRefConfigCommand) 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:
modRvdt_SetRefConfig Node1 modRvdt_SetRefConfig Node1->Node1 Node2 errCheck Node1->Node2 Node3 rvdt_configWaveformGeneration Node1->Node3 Node11 rvdt_setRefConfigCommand Node1->Node11 Node15 validateChannel Node1->Node15 Node2->Node2 Node3->Node3 Node4 calculateWaveformTableSize Node3->Node4 Node6 calculateWaveformTableValue Node3->Node6 Node7 writeRvdtReg Node3->Node7 Node4->Node4 Node5 customRound Node4->Node5 Node5->Node5 Node6->Node6 Node7->Node7 Node8 interDrv_Write32 Node7->Node8 Node8->Node8 Node9 interDrv_isAddressValid Node8->Node9 Node10 memoryMap_Write32 Node8->Node10 Node9->Node9 Node10->Node10 Node11->Node7 Node11->Node11 Node12 readRvdtReg Node11->Node12 Node12->Node12 Node13 interDrv_Read32 Node12->Node13 Node13->Node9 Node13->Node13 Node14 memoryMap_Read32 Node13->Node14 Node14->Node14 Node15->Node15
Here is the caller graph for this function:
modRvdt_SetRefConfig Node1 modRvdt_SetRefConfig Node1->Node1

◆ modRvdt_SetSenseConfig()

ModStatus modRvdt_SetSenseConfig ( const RVDTChannelNum rvdtChannel,
const RvdtSenseConfig rvdtSenseConfig )

modRvdt_SetSenseConfig.

Set configuration of RVDT sense input to read the RVDT sensor.

Parameters
[in]rvdtChannelRVDT channel number to access.
[in]rvdtSenseConfigSense input configuration.
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_VALUE: The passing argument is invalid or not within range.
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: modRvdt_SetSenseConfig

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_MODRVDT_SETSENSECONFIG_01 HLR_RVDT_16940 WHEN rvdtChannel is not one of the defined RVDT channel identifiers (RVDT_CH1, RVDT_CH2, RVDT_CH3, RVDT_CH4), the modRvdt_SetSenseConfig() function SHALL abort processing and return MD_INVALID_CHANNEL. modRvdt.c:modRvdt_SetSenseConfig() Test Closed
LLR_RVDT_MODRVDT_SETSENSECONFIG_02 HLR_RVDT_16940 WHEN the module initialization state is not initialized (INIT), the modRvdt_SetSenseConfig() function SHALL abort processing and return MD_INVALID_INIT. modRvdt.c:modRvdt_SetSenseConfig() Test Closed
LLR_RVDT_MODRVDT_SETSENSECONFIG_03 HLR_RVDT_16940 WHEN the Secondary 1 sense gain in rvdtSenseConfig is not one of the defined gain settings (GAIN_1, GAIN_1_33, GAIN_1_67, GAIN_2), the modRvdt_SetSenseConfig() function SHALL abort processing and return MD_INVALID_VALUE. modRvdt.c:modRvdt_SetSenseConfig() Test Closed
LLR_RVDT_MODRVDT_SETSENSECONFIG_04 HLR_RVDT_16940 WHEN the Secondary 1 demodulator output rate in rvdtSenseConfig is not one of the defined demodulator output rates (SENSE_DEMOD_OUTPUT_RATE_128US, SENSE_DEMOD_OUTPUT_RATE_256US), the modRvdt_SetSenseConfig() function SHALL abort processing and return MD_INVALID_VALUE. modRvdt.c:modRvdt_SetSenseConfig() Test Closed
LLR_RVDT_MODRVDT_SETSENSECONFIG_05 HLR_RVDT_16940 WHEN the Secondary 2 sense gain in rvdtSenseConfig is not one of the defined gain settings (GAIN_1, GAIN_1_33, GAIN_1_67, GAIN_2), the modRvdt_SetSenseConfig() function SHALL abort processing and return MD_INVALID_VALUE. modRvdt.c:modRvdt_SetSenseConfig() Test Closed
LLR_RVDT_MODRVDT_SETSENSECONFIG_06 HLR_RVDT_16940 WHEN the Secondary 2 demodulator output rate in rvdtSenseConfig is not one of the defined demodulator output rates (SENSE_DEMOD_OUTPUT_RATE_128US, SENSE_DEMOD_OUTPUT_RATE_256US), the modRvdt_SetSenseConfig() function SHALL abort processing and return MD_INVALID_VALUE. modRvdt.c:modRvdt_SetSenseConfig() Test Closed
LLR_RVDT_MODRVDT_SETSENSECONFIG_07 HLR_RVDT_16940 WHEN the driver status is not equal to DRV_SUCCESS, the modRvdt_SetSenseConfig() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modRvdt.c:modRvdt_SetSenseConfig() Test Closed
LLR_RVDT_MODRVDT_SETSENSECONFIG_08 HLR_RVDT_16940 WHEN preconditions are satisfied, the modRvdt_SetSenseConfig() function SHALL invoke routine rvdt_configSec1() to execute target subsystem hardware operation. modRvdt.c:modRvdt_SetSenseConfig() Test Closed
LLR_RVDT_MODRVDT_SETSENSECONFIG_09 HLR_RVDT_16940 WHEN preconditions are satisfied, the modRvdt_SetSenseConfig() function SHALL evaluate the driver return status using errCheck(). modRvdt.c:modRvdt_SetSenseConfig() Test Closed
LLR_RVDT_MODRVDT_SETSENSECONFIG_10 HLR_RVDT_16940 WHEN preconditions are satisfied, the modRvdt_SetSenseConfig() function SHALL invoke routine rvdt_configSec2() to execute target subsystem hardware operation. modRvdt.c:modRvdt_SetSenseConfig() Test Closed
LLR_RVDT_MODRVDT_SETSENSECONFIG_11 HLR_RVDT_16940 WHEN preconditions are satisfied, the modRvdt_SetSenseConfig() function SHALL invoke routine rvdt_setS1s2Config() to execute target subsystem hardware operation. modRvdt.c:modRvdt_SetSenseConfig() Test Closed
LLR_RVDT_MODRVDT_SETSENSECONFIG_12 HLR_RVDT_16940 WHEN preconditions are satisfied, the modRvdt_SetSenseConfig() function SHALL invoke routine rvdt_setTestMux() to execute target subsystem hardware operation. modRvdt.c:modRvdt_SetSenseConfig() Test Closed
LLR_RVDT_MODRVDT_SETSENSECONFIG_13 HLR_RVDT_16940 WHEN all operational processing completes successfully, the modRvdt_SetSenseConfig() function SHALL return MD_SUCCESS. modRvdt.c:modRvdt_SetSenseConfig() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller modRvdt_SetSenseConfig() [Device Library Modules] Target rvdt_configSec1() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rvdtChannel (Flag) l_t1->l_b1   rvdtSenseConfig (Flag) r_b0->r_t0   statusCode (ModStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller modRvdt_SetSenseConfig() [Device Library Modules] Target rvdt_configSec1() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rvdtChannel (Payload) l_t1->l_b1   rvdtSenseConfig (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_modRvdt_SetSenseConfig start Entry: modRvdt_SetSenseConfig() guard_1 LLR_01: Guard Check Is the channel validation check returns FALSE (invalid channel)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the module initialization state is not initialized (INIT)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_INIT` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is !RANGE_CHECK(rvdtSenseConfig.sec1SenseGain, GAIN_1, GAIN_2)? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return `MD_INVALID_VALUE` guard_3->err_exit_3 YES (TRUE) guard_4 LLR_04: Guard Check Is !RANGE_CHECK(rvdtSenseConfig.sec1DemodOutputRate, SENSE_DEMOD_OUTPUT_RATE_128US, SENSE_DEMOD_OUTPUT_RATE_256US)? guard_3->guard_4 err_exit_4 LLR_04 Error Exit abort processing and return `MD_INVALID_VALUE` guard_4->err_exit_4 YES (TRUE) guard_5 LLR_05: Guard Check Is !RANGE_CHECK(rvdtSenseConfig.sec2SenseGain, GAIN_1, GAIN_2)? guard_4->guard_5 err_exit_5 LLR_05 Error Exit abort processing and return `MD_INVALID_VALUE` guard_5->err_exit_5 YES (TRUE) guard_6 LLR_06: Guard Check Is !RANGE_CHECK(rvdtSenseConfig.sec2DemodOutputRate, SENSE_DEMOD_OUTPUT_RATE_128US, SENSE_DEMOD_OUTPUT_RATE_256US)? 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) guard_7 LLR_07: Guard Check Is `drvStatus` is not equal to `DRV_SUCCESS`? guard_6->guard_7 err_exit_7 LLR_07 Error Exit abort processing and return `errCheck(drvStatus)` guard_7->err_exit_7 YES (TRUE) act_8 LLR_08: Action Step invoke routine `rvdt_configSec1()` to execute target subsystem hardware operation guard_7->act_8 NO (FALSE) act_9 LLR_09: Action Step evaluate the driver return status using `errCheck()` act_8->act_9 act_10 LLR_10: Action Step invoke routine `rvdt_configSec2()` to execute target subsystem hardware operation act_9->act_10 act_11 LLR_11: Action Step invoke routine `rvdt_setS1s2Config()` to execute target subsystem hardware operation act_10->act_11 act_12 LLR_12: Action Step invoke routine `rvdt_setTestMux()` to execute target subsystem hardware operation act_11->act_12 success_exit LLR_13: Final Exit return `MD_SUCCESS` act_12->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_modRvdt_SetSenseConfig in_store Input Data Sources & Parameters • rvdtChannel (const RVDTChannelNum) • rvdtSenseConfig (const RvdtSenseConfig) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: validateChannel in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: RvdtModHdl proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: RANGE_CHECK proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Validation Check • Evaluate Parameter / State: RANGE_CHECK proc_3->proc_4 Validated Input Data proc_5 LLR_05: Data Validation Check • Evaluate Parameter / State: RANGE_CHECK proc_4->proc_5 Validated Input Data proc_6 LLR_06: Data Validation Check • Evaluate Parameter / State: RANGE_CHECK proc_5->proc_6 Validated Input Data proc_7 LLR_07: Data Validation Check • Evaluate Parameter / State: drvStatus proc_6->proc_7 Validated Input Data proc_8 LLR_08: Data Payload Transformation • Process payload via rvdt_configSec1() proc_7->proc_8 Data Payload (rvdt_configSec1) proc_9 LLR_09: Data Payload Transformation • Process payload via errCheck() proc_8->proc_9 Data Payload (errCheck) proc_10 LLR_10: Data Payload Transformation • Process payload via rvdt_configSec2() proc_9->proc_10 Data Payload (rvdt_configSec2) proc_11 LLR_11: Data Payload Transformation • Process payload via rvdt_setS1s2Config() proc_10->proc_11 Data Payload (rvdt_setS1s2Config) proc_12 LLR_12: Data Payload Transformation • Process payload via rvdt_setTestMux() proc_11->proc_12 Data Payload (rvdt_setTestMux) proc_13 LLR_13: Status Output Packaging • Format Return Payload: ModStatus proc_12->proc_13 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (ModStatus) proc_13->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
modRvdt_SetSenseConfig Node1 modRvdt_SetSenseConfig Node1->Node1 Node2 errCheck Node1->Node2 Node3 rvdt_configSec1 Node1->Node3 Node11 rvdt_configSec2 Node1->Node11 Node12 rvdt_setS1s2Config Node1->Node12 Node13 rvdt_setSenseConfigCommand Node1->Node13 Node14 rvdt_setTestMux Node1->Node14 Node15 validateChannel Node1->Node15 Node2->Node2 Node3->Node3 Node4 readRvdtReg Node3->Node4 Node8 writeRvdtReg 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->Node8 Node11->Node11 Node12->Node4 Node12->Node8 Node12->Node12 Node13->Node4 Node13->Node8 Node13->Node13 Node14->Node4 Node14->Node8 Node14->Node14 Node15->Node15
Here is the caller graph for this function:
modRvdt_SetSenseConfig Node1 modRvdt_SetSenseConfig Node1->Node1

◆ modRvdt_SetSenseFilter()

ModStatus modRvdt_SetSenseFilter ( const RVDTChannelNum rvdtChannel,
const BPFBandwidth bpfConfiguration,
const LPFFrequency lpfConfiguration )

modRvdt_SetSenseFilter.

Set RVDT sense input Band Pass Filter (BPF) and Low Pass Filter (LPF).

Parameters
[in]rvdtChannelRVDT channel number to access.
[in]bpfConfigurationBPF Center Frequency and Bandwidth Frequency value in Hz. (Center Frequency: Min 1000Hz, Max 20000Hz, Increment 500Hz). (Bandwidth Frequency: 20Hz, 100Hz, 250Hz).
[in]lpfConfigurationLPF Cut Off Frequency (Hz) and Output Rate. (Cut Off Frequency: 20Hz, 100Hz, 250Hz). (LPF Output Rate: 128us, 256us).
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_VALUE: The passing argument is invalid or not within range.
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: modRvdt_SetSenseFilter

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_MODRVDT_SETSENSEFILTER_01 HLR_RVDT_18873 WHEN rvdtChannel is not one of the defined RVDT channel identifiers (RVDT_CH1, RVDT_CH2, RVDT_CH3, RVDT_CH4), the modRvdt_SetSenseFilter() function SHALL abort processing and return MD_INVALID_CHANNEL. modRvdt.c:modRvdt_SetSenseFilter() Test Closed
LLR_RVDT_MODRVDT_SETSENSEFILTER_02 HLR_RVDT_18873 WHEN the module initialization state is not initialized (INIT), the modRvdt_SetSenseFilter() function SHALL abort processing and return MD_INVALID_INIT. modRvdt.c:modRvdt_SetSenseFilter() Test Closed
LLR_RVDT_MODRVDT_SETSENSEFILTER_03 HLR_RVDT_18873 WHEN the low-pass filter output sampling rate in lpfConfiguration is not one of the defined output rates (LPF_OUTPUT_RATE_128US, LPF_OUTPUT_RATE_256US), the modRvdt_SetSenseFilter() function SHALL abort processing and return MD_INVALID_VALUE. modRvdt.c:modRvdt_SetSenseFilter() Test Closed
LLR_RVDT_MODRVDT_SETSENSEFILTER_04 HLR_RVDT_18873 WHEN the driver status is not equal to DRV_SUCCESS, the modRvdt_SetSenseFilter() function SHALL abort processing and return the module error code produced by errCheck() for the reported driver status. modRvdt.c:modRvdt_SetSenseFilter() Test Closed
LLR_RVDT_MODRVDT_SETSENSEFILTER_05 HLR_RVDT_18873 WHEN the low-pass filter cutoff frequency in lpfConfiguration is not one of the defined cutoff frequencies (LPF_CUTOFF_FREQUENCY_20Hz (20 Hz), LPF_CUTOFF_FREQUENCY_100Hz (100 Hz), or LPF_CUTOFF_FREQUENCY_250Hz (250 Hz)), the modRvdt_SetSenseFilter() function SHALL abort processing and return MD_INVALID_VALUE. modRvdt.c:modRvdt_SetSenseFilter() Test Closed
LLR_RVDT_MODRVDT_SETSENSEFILTER_06 HLR_RVDT_18873 WHEN the band-pass filter center frequency in bpfConfiguration is not one of the defined center frequencies (BPF_CENTRE_FREQUENCY_1000Hz (1000 Hz), BPF_CENTRE_FREQUENCY_1500Hz (1500 Hz), BPF_CENTRE_FREQUENCY_2000Hz (2000 Hz), BPF_CENTRE_FREQUENCY_2500Hz (2500 Hz), BPF_CENTRE_FREQUENCY_3000Hz (3000 Hz), BPF_CENTRE_FREQUENCY_3500Hz (3500 Hz), or BPF_CENTRE_FREQUENCY_4000Hz (4000 Hz)), the modRvdt_SetSenseFilter() function SHALL abort processing and return MD_INVALID_VALUE. modRvdt.c:modRvdt_SetSenseFilter() Test Closed
LLR_RVDT_MODRVDT_SETSENSEFILTER_07 HLR_RVDT_18873 WHEN the band-pass filter bandwidth in bpfConfiguration is not one of the defined bandwidth frequencies (BPF_BANDWIDTH_FREQUENCY_20Hz (20 Hz), BPF_BANDWIDTH_FREQUENCY_100Hz (100 Hz), or BPF_BANDWIDTH_FREQUENCY_250Hz (250 Hz)), the modRvdt_SetSenseFilter() function SHALL abort processing and return MD_INVALID_VALUE. modRvdt.c:modRvdt_SetSenseFilter() Test Closed
LLR_RVDT_MODRVDT_SETSENSEFILTER_08 HLR_RVDT_18873 WHEN preconditions are satisfied, the modRvdt_SetSenseFilter() function SHALL invoke routine rvdt_configLpfCoefficient() to execute target subsystem hardware operation. modRvdt.c:modRvdt_SetSenseFilter() Test Closed
LLR_RVDT_MODRVDT_SETSENSEFILTER_09 HLR_RVDT_18873 WHEN preconditions are satisfied, the modRvdt_SetSenseFilter() function SHALL evaluate the driver return status using errCheck(). modRvdt.c:modRvdt_SetSenseFilter() Test Closed
LLR_RVDT_MODRVDT_SETSENSEFILTER_10 HLR_RVDT_18873 WHEN preconditions are satisfied, the modRvdt_SetSenseFilter() function SHALL invoke routine rvdt_configBpfCoefficient() to execute target subsystem hardware operation. modRvdt.c:modRvdt_SetSenseFilter() Test Closed
LLR_RVDT_MODRVDT_SETSENSEFILTER_11 HLR_RVDT_18873 WHEN preconditions are satisfied, the modRvdt_SetSenseFilter() function SHALL invoke routine rvdt_setSenseFilterCommand() to execute target subsystem hardware operation. modRvdt.c:modRvdt_SetSenseFilter() Test Closed
LLR_RVDT_MODRVDT_SETSENSEFILTER_12 HLR_RVDT_18873 WHEN all operational processing completes successfully, the modRvdt_SetSenseFilter() function SHALL return MD_SUCCESS. modRvdt.c:modRvdt_SetSenseFilter() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller modRvdt_SetSenseFilter() [Device Library Modules] Target rvdt_configLpfCoefficient() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rvdtChannel (Flag) l_t1->l_b1   bpfConfiguration (Flag) l_t2->l_b2   lpfConfiguration (Flag) r_b0->r_t0   statusCode (ModStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller modRvdt_SetSenseFilter() [Device Library Modules] Target rvdt_configLpfCoefficient() [Subordinate Routine] Caller:s->Target:n l_t0->l_b0   rvdtChannel (Payload) l_t1->l_b1   bpfConfiguration (Payload) l_t2->l_b2   lpfConfiguration (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_modRvdt_SetSenseFilter start Entry: modRvdt_SetSenseFilter() guard_1 LLR_01: Guard Check Is the channel validation check returns FALSE (invalid channel)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `MD_INVALID_CHANNEL` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is the module initialization state is not initialized (INIT)? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `MD_INVALID_INIT` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is !RANGE_CHECK(lpfConfiguration.lpfOutRate, LPF_OUTPUT_RATE_128US, LPF_OUTPUT_RATE_256US)? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return `MD_INVALID_VALUE` guard_3->err_exit_3 YES (TRUE) guard_4 LLR_04: Guard Check Is `drvStatus` is not equal to `DRV_SUCCESS`? guard_3->guard_4 err_exit_4 LLR_04 Error Exit abort processing and return `errCheck(drvStatus)` guard_4->err_exit_4 YES (TRUE) guard_5 LLR_05: Guard Check Is `lpfConfiguration.lpfCutOffFreq` is not one of `LPF_CUTOFF_FREQUENCY_20Hz through LPF_CUTOFF_FREQUENCY_250Hz`? guard_4->guard_5 err_exit_5 LLR_05 Error Exit abort processing and return `MD_INVALID_VALUE` guard_5->err_exit_5 YES (TRUE) guard_6 LLR_06: Guard Check Is `bpfConfiguration.bpfCenterFreq` is not one of `BPF_CENTRE_FREQUENCY_1000Hz through BPF_CENTRE_FREQUENCY_4000Hz`? 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) guard_7 LLR_07: Guard Check Is `bpfConfiguration.bpfBandwidth` is not one of `BPF_BANDWIDTH_FREQUENCY_20Hz through BPF_BANDWIDTH_FREQUENCY_250Hz`? guard_6->guard_7 err_exit_7 LLR_07 Error Exit abort processing and return `MD_INVALID_VALUE` guard_7->err_exit_7 YES (TRUE) act_8 LLR_08: Action Step invoke routine `rvdt_configLpfCoefficient()` to execute target subsystem hardware operation guard_7->act_8 NO (FALSE) act_9 LLR_09: Action Step evaluate the driver return status using `errCheck()` act_8->act_9 act_10 LLR_10: Action Step invoke routine `rvdt_configBpfCoefficient()` to execute target subsystem hardware operation act_9->act_10 act_11 LLR_11: Action Step invoke routine `rvdt_setSenseFilterCommand()` to execute target subsystem hardware operation act_10->act_11 success_exit LLR_12: Final Exit return `MD_SUCCESS` act_11->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_modRvdt_SetSenseFilter in_store Input Data Sources & Parameters • rvdtChannel (const RVDTChannelNum) • bpfConfiguration (const BPFBandwidth) • lpfConfiguration (const LPFFrequency) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: validateChannel in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: RvdtModHdl proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: RANGE_CHECK proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Validation Check • Evaluate Parameter / State: drvStatus proc_3->proc_4 Validated Input Data proc_5 LLR_05: Data Validation Check • Evaluate Parameter / State: lpfConfiguration.lpfCutOffFreq proc_4->proc_5 Validated Input Data proc_6 LLR_06: Data Validation Check • Evaluate Parameter / State: bpfConfiguration.bpfCenterFreq proc_5->proc_6 Validated Input Data proc_7 LLR_07: Data Validation Check • Evaluate Parameter / State: bpfConfiguration.bpfBandwidth proc_6->proc_7 Validated Input Data proc_8 LLR_08: Data Payload Transformation • Process payload via rvdt_configLpfCoefficient() proc_7->proc_8 Data Payload (rvdt_configLpfCoefficient) proc_9 LLR_09: Data Payload Transformation • Process payload via errCheck() proc_8->proc_9 Data Payload (errCheck) proc_10 LLR_10: Data Payload Transformation • Process payload via rvdt_configBpfCoefficient() proc_9->proc_10 Data Payload (rvdt_configBpfCoefficient) proc_11 LLR_11: Data Payload Transformation • Process payload via rvdt_setSenseFilterCommand() proc_10->proc_11 Data Payload (rvdt_setSenseFilterCommand) proc_12 LLR_12: Status Output Packaging • Format Return Payload: ModStatus proc_11->proc_12 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (ModStatus) proc_12->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
modRvdt_SetSenseFilter Node1 modRvdt_SetSenseFilter Node1->Node1 Node2 errCheck Node1->Node2 Node3 rvdt_configBpfCoefficient Node1->Node3 Node14 rvdt_configLpfCoefficient Node1->Node14 Node19 rvdt_setSenseFilterCommand Node1->Node19 Node23 validateChannel Node1->Node23 Node2->Node2 Node3->Node3 Node4 configSec1BpfA2 Node3->Node4 Node9 configSec1BpfA3 Node3->Node9 Node10 configSec1BpfB1 Node3->Node10 Node11 configSec2BpfA2 Node3->Node11 Node12 configSec2BpfA3 Node3->Node12 Node13 configSec2BpfB1 Node3->Node13 Node4->Node4 Node5 writeRvdtReg Node4->Node5 Node5->Node5 Node6 interDrv_Write32 Node5->Node6 Node6->Node6 Node7 interDrv_isAddressValid Node6->Node7 Node8 memoryMap_Write32 Node6->Node8 Node7->Node7 Node8->Node8 Node9->Node5 Node9->Node9 Node10->Node5 Node10->Node10 Node11->Node5 Node11->Node11 Node12->Node5 Node12->Node12 Node13->Node5 Node13->Node13 Node14->Node14 Node15 butterworthLowPassFilter Node14->Node15 Node16 configSec1Lpf Node14->Node16 Node17 configSec2Lpf Node14->Node17 Node18 customRound Node14->Node18 Node15->Node15 Node16->Node5 Node16->Node16 Node17->Node5 Node17->Node17 Node18->Node18 Node19->Node5 Node19->Node19 Node20 readRvdtReg Node19->Node20 Node20->Node20 Node21 interDrv_Read32 Node20->Node21 Node21->Node7 Node21->Node21 Node22 memoryMap_Read32 Node21->Node22 Node22->Node22 Node23->Node23
Here is the caller graph for this function:
modRvdt_SetSenseFilter Node1 modRvdt_SetSenseFilter Node1->Node1