/*@!Encoding:1252*/
includes
{
  
}

variables
{
  long mMode;
  long mSegmentNr;
  byte mRespGetCalPage = 0;
  byte mRespSetCalPage = 0;
  byte mUsrCmdResponse = 0;
  int mConnectedSeqCounter = 0;
  int mConnectedCallbackCatched = 0;
}

testcase TC_Connection()
{  
  int i;
  testStep("Test Step 1", "Connect - disconnect device");
  
  for(i = 0; i < 10; ++i)
  {
    xcpConnect("XcpFR");
    testWaitForTimeout(500);
    if(!xcpIsConnected ("XcpFR"))
    {
      testStepFail("Device is not connected yet!");
    }
    else
    {
      testStepPass("Device connected.");
    }
    
    xcpDisconnect("XcpFR");
    testWaitForTimeout(500);
    if(xcpIsConnected ("XcpFR"))
    {
      testStepFail("Device is connected!");
    }
    else
    {
      testStepPass("Device disconnected.");
    }
  }
  
  testStep("Test Step 2", "Test connection callback");
  if(mConnectedCallbackCatched == 0)
  {
    testStepFail("OnXcpConnect was not executed!");
  }
  else
    {
      testStepPass("OnXcpConnect was executed.");
    }
  
  xcpConnect("XcpFR");
  testWaitForTimeout(200);
}

testcase TC_Upload_ampl()
{
  int counter;
  xcpConnect("XcpFR");
  testWaitForTimeout(200);
  for(counter = 0; counter<26; ++counter)
  {
    @sysvar::XCP::XcpFR::ampl = (counter * 2);
    testWaitForTimeout(200);
  }
   testWaitForTimeout(100);
}

testcase TC_Upload_period()
{
  int counter;
  xcpConnect("XcpFR");
  testWaitForTimeout(200);
  for(counter = 0; counter<26; ++counter)
  {
    @sysvar::XCP::XcpFR::period = (counter * 2);
    testWaitForTimeout(300);
  }
   testWaitForTimeout(100);
}

testcase TC_Upload_testString()
{
  char counter;
  char stringBuffer[64];
  char index = 'A';
  xcpConnect("XcpFR");
    
  SysSetVariableString(sysvar::XCP::XcpFR::testString, "0000000000");
  
  testWaitForTimeout(200);
  
  for(counter = 0; counter<12; ++counter)
  {
    stringBuffer[counter] = index++;
    SysSetVariableString(sysvar::XCP::XcpFR::testString, stringBuffer);
    testWaitForTimeout(500);
  }
   testWaitForTimeout(100);
}

/// Connect callback
void OnXcpConnect(char ecuName[])
{
  mMode = 255;
	mSegmentNr = 0;
  mConnectedCallbackCatched = 1;
}