frGetConfiguration
Valid for: CANoe DE • CANoe4SW DEFunction Syntax
frGetConfiguration( int channel, frConfiguration<configuration var> );
Description
This function copies the FlexRay protocol parameters to<configuration var>.
Parameters
- channel: FlexRay channel (cluster number).
<configuration var>: Name of the variable referenced by the configuration object. The variable name was defined when the object was created using frConfiguration.
Return Values
—Example
The following CAPL function outputs all FlexRay protocol parameters in the Write Window.Copy
variables
{
frConfiguration gFRParams;
}
void printFRConf ()
{
frGetConfiguration(%CHANNEL%, gFRParams);
Write("%33s = %6d %s", "pCCVersion", gFRParams.pCCVersion, "");
Write("%33s = %6ld %s","FRBaudrate", gFRParams.FRBaudrate, "kBit/s");
Write("%33s = %6f %s", "gdMacrotick", gFRParams.gdMacrotick, "us");
Write("%33s = %6d %s", "gMacroPerCycle", gFRParams.gMacroPerCycle, "MT");
Write("%33s = %6d %s", "gdNIT", gFRParams.gdNIT, "MT");
Write("%33s = %6f %s", "gdSampleClockPeriod", gFRParams.gdSampleClockPeriod, "us");
Write("%33s = %6d %s", "gdTSSTransmitter", gFRParams.gdTSSTransmitter, "Bit");
Write("%33s = %6d %s", "gPayloadLengthStatic", gFRParams.gPayloadLengthStatic, "Words");
Write("%33s = %6d %s", "gdActionPointOffset", gFRParams.gdActionPointOffset, "MT");
Write("%33s = %6d %s", "gdStaticSlot", gFRParams.gdStaticSlot, "MT");
Write("%33s = %6d %s", "gNumberOfStaticSlots", gFRParams.gNumberOfStaticSlots, "#");
Write("%33s = %6d %s", "gdMinislotActionPointOffset", gFRParams.gdMinislotActionPointOffset, "MT");
Write("%33s = %6d %s", "gdMinislot", gFRParams.gdMinislot, "MT");
Write("%33s = %6d %s", "gNumberOfMinislots", gFRParams.gNumberOfMinislots, "#");
Write("%33s = %6d %s", "gClusterDriftDamping", gFRParams.gClusterDriftDamping, "");
Write("%33s = %6d %s", "gListenNoise", gFRParams.gListenNoise, "");
Write("%33s = %6d %s", "gColdStartAttempts", gFRParams.gColdStartAttempts, "#");
Write("%33s = %6d %s", "gSyncNodeMax", gFRParams.gSyncNodeMax, "#");
Write("%33s = %6d %s", "gOffsetCorrectionStart", gFRParams.gOffsetCorrectionStart, "MT");
Write("%33s = %6d %s", "gdDynamicSlotIdlePhase", gFRParams.gdDynamicSlotIdlePhase, "MS");
Write("%33s = %6d %s", "gdSymbolWindow", gFRParams.gdSymbolWindow, "MT");
Write("%33s = %6d %s", "gdCASRxLowMax", gFRParams.gdCASRxLowMax, "Bit");
Write("%33s = %6d %s", "gdCASRxLowMin", gFRParams.gdCASRxLowMin, "Bit");
Write("%33s = %6d %s", "gdWakeupSymbolRxIdle", gFRParams.gdWakeupSymbolRxIdle, "Bit");
Write("%33s = %6d %s", "gdWakeupSymbolRxLow", gFRParams.gdWakeupSymbolRxLow, "Bit");
Write("%33s = %6d %s", "gdWakeupSymbolRxWindow", gFRParams.gdWakeupSymbolRxWindow, "Bit");
Write("%33s = %6d %s", "gdWakeupSymbolTxIdle", gFRParams.gdWakeupSymbolTxIdle, "Bit");
Write("%33s = %6d %s", "gdWakeupSymbolTxLow", gFRParams.gdWakeupSymbolTxLow, "Bit");
Write("%33s = %6d %s", "gMaxWithoutClockCorrectionFatal", gFRParams.gMaxWithoutClockCorrectionFatal, "double cycles");
Write("%33s = %6d %s", "gMaxWithoutClockCorrectionPassive", gFRParams.gMaxWithoutClockCorrectionPassive, "double cycles");
Write("%33s = %6d %s", "gNetworkManagementVectorLength", gFRParams.gNetworkManagementVectorLength, "Bytes");
Write("%33s = %6d %s", "pChannels", gFRParams.pChannels, "");
Write("%33s = %6d %s", "pMicroPerCycle", gFRParams.pMicroPerCycle, "uT");
Write("%33s = %6d %s", "pSamplesPerMicrotick", gFRParams.pSamplesPerMicrotick, "#");
Write("%33s = %6d %s", "pPayloadLengthDynMax", gFRParams.pPayloadLengthDynMax, "Words");
Write("%33s = %6d %s", "pPayloadLengthFIFO", gFRParams.pPayloadLengthFIFO, "Words");
Write("%33s = %6d %s", "pLatestTx", gFRParams.pLatestTx, "MS");
Write("%33s = %6d %s", "pdMaxDrift", gFRParams.pdMaxDrift, "uT");
Write("%33s = %6d %s", "pdAcceptedStartupRange", gFRParams.pdAcceptedStartupRange, "uT");
Write("%33s = %6d %s", "pdListenTimeout", gFRParams.pdListenTimeout, "uT");
Write("%33s = %6d %s", "pClusterDriftDamping", gFRParams.pClusterDriftDamping, "uT");
Write("%33s = %6d %s", "pDecodingCorrection", gFRParams.pDecodingCorrection, "uT");
Write("%33s = %6d %s", "pDelayCompensation_A", gFRParams.pDelayCompensation_A, "uT");
Write("%33s = %6d %s", "pDelayCompensation_B", gFRParams.pDelayCompensation_B, "uT");
Write("%33s = %6d %s", "pOffsetCorrectionOut", gFRParams.pOffsetCorrectionOut, "uT");
Write("%33s = %6d %s", "pRateCorrectionOut", gFRParams.pRateCorrectionOut, "uT");
Write("%33s = %6d %s", "pExternOffsetCorrection", gFRParams.pExternOffsetCorrection, "uT");
Write("%33s = %6d %s", "pExternRateCorrection", gFRParams.pExternRateCorrection, "uT");
Write("%33s = %6d %s", "pExternCorrectionMode", gFRParams.pExternCorrectionMode, "");
Write("%33s = %6d %s", "pMacroInitialOffset_A", gFRParams.pMacroInitialOffset_A, "MT");
Write("%33s = %6d %s", "pMacroInitialOffset_B", gFRParams.pMacroInitialOffset_B, "MT");
Write("%33s = %6d %s", "pMicroInitialOffset_A", gFRParams.pMicroInitialOffset_A, "uT");
Write("%33s = %6d %s", "pMicroInitialOffset_B", gFRParams.pMicroInitialOffset_B, "uT");
Write("%33s = %6d %s", "pWakeupChannel", gFRParams.pWakeupChannel, "");
Write("%33s = %6d %s", "pWakeupPattern", gFRParams.pWakeupPattern, "#");
Write("%33s = %6d %s", "pAllowHaltDueToClock", gFRParams.pAllowHaltDueToClock, "Boolean");
Write("%33s = %6d %s", "pAllowPassiveToActive", gFRParams.pAllowPassiveToActive, "cycles");
Write("%33s = %6d %s", "pBGTick", gFRParams.pBGTick, "Boolean");
Write("%33s = %6d %s", "pPhysicalLayer", gFRParams.pPhysicalLayer, "");
Write("%33s = %6d %s", "pSingleSlotEnabled", gFRParams.pSingleSlotEnabled, "Boolean");
Write("%33s = %6d %s", "pBGEnable", gFRParams.pBGEnable, "Boolean");
Write("%33s = %6d %s", "pDynamicSegmentEnable", gFRParams.pDynamicSegmentEnable, "Boolean");
Write("%33s = %6d %s", "pStrobePointPosition", gFRParams.pStrobePointPosition, "");
Write("%33s = %6f %s", "pdMicrotick", gFRParams.pdMicrotick, "us");
}