/* Sends the XCP PROGRAM RESET command. Note that this command is a bit different as in it does not require a response.  */
static bool XcpLoaderSendCmdProgramReset(void)
/* Sends the XCP PROGRAM RESET command. Note that this command is a bit different as in it does not require a response.  */
static bool XcpLoaderSendCmdProgramReset(void)
{
  bool result = false;
  tXcpTransportPacket cmdPacket;
  tXcpTransportPacket resPacket;
  assert(xcpSettings.transport != NULL);
  if (xcpSettings.transport != NULL)
  {
    result = true;
    cmdPacket.data[0] = XCPLOADER_CMD_PROGRAM_RESET;
    cmdPacket.len = 1;
    if (xcpSettings.transport->SendPacket(&cmdPacket, &resPacket, 
                                           xcpSettings.timeoutT5))
    {
      if ( (resPacket.len != 1) || (resPacket.data[0] != XCPLOADER_CMD_PID_RES) )
      {
        result = false;
      }
    }
  }
  return result;
}