variables
{
char bus1[20] = "FlexRay_1";
char bus2[20] = "FlexRay_2";
msTimer actionTimer;
int gAction = 0;
const int gActionDelay = 52; // [ms]
const int gTimeout = 300; // [ms]
const int gExtTimeout = 2700; // [ms] to be waited additionally after cluster wake-up
const int cPossibleWakeupDelay = 1500; // [ms] to be waited after possible cluster wake-up
const int cWakeupDelay = 1500; // [ms] to be waited after cluster wake-up
BYTE gSta1Id = 5; // slot ID for frame to send
BYTE gSta1Flags = 16; // event-triggered
BYTE gSta1Dlc = 4; // bytes
BYTE gSta1Chan = 3; // send on channel A+B
BYTE gSta1Base = 0; // base cycle
BYTE gSta1Rep = 1; // cycle repetition
}
testcase GoodCheckFlexRayWaitForSymbol_1 ()
{
long result;
FrSymbol frSymbolData;
TestStepPass("Library: FrTFS_Wait_Symbol_POC.can", "Testcase: WaitForSymbol_Any");
InitBusContext();
_wakeupCluster(1);
TestStep("Wait","waiting to assure running cluster...");
TestWaitForTimeout(cPossibleWakeupDelay);
TestStep("Prepare","Defining 'FlexRay symbol to be sent' action and triggering timer...");
gAction = 1;
actionTimer.set(gActionDelay);
TestStep("Wait","Waiting for any FlexRay symbol...");
TestStepPass("Call TFS function", "TestWaitForFrSymbol(timeout=%d)", gTimeout+1000);
// The real test to be checked:
result = TestWaitForFrSymbol(gTimeout+1000);
if (result == 0)
{
TestStepFail("Timeout Occurred");
}
else if (result == -1)
{
TestStepFail("General Error");
}
else if (result == -2)
{
TestStepFail("Constraint Violation");
}
else
{
TestStepPass("Any FlexRay symbol successfully received!");
TestStepPass("Call TFS function", "TestGetWaitFrSymbolData(frSymbolData)");
// Test for data extraction:
result = TestGetWaitFrSymbolData(frSymbolData);
if (0 != result)
{
TestStepFail("Data extraction", "result = %d, Data access could not be executed.", result);
}
else
{
TestStepPass("Data extraction", "Data extraction works fine. Symbol=%d", frSymbolData.FR_Symbol);
}
}
}