// This C++ header file was generated by the TTCN-3 compiler
// of the TTCN-3 Test Executor version CRL 113 200/6 R6A
// for Lénárd Nagy (elnrnag@elx78355y6x) on Thu Oct 24 10:29:40 2019

// Copyright (c) 2000-2019 Ericsson Telecom AB

// Do not edit this file unless you know what you are doing.

#ifndef CanError_HH
#define CanError_HH

#ifdef TITAN_RUNTIME_2
#error Generated code does not match with used runtime.\
 Code was generated without -R option but -DTITAN_RUNTIME_2 was used.
#endif

/* Header file includes */

#include <TTCN3.hh>

#if TTCN3_VERSION != 60600
#error Version mismatch detected.\
 Please check the version of the TTCN-3 compiler and the base library.\
 Run make clean and rebuild the project if the version of the compiler changed recently.
#endif

#ifndef LINUX
#error This file should be compiled on LINUX
#endif

namespace CanError {

/* Global variable declarations */

extern const INTEGER& CAN__ERR__DLC;
extern const OCTETSTRING& CAN__ERR__TX__TIMEOUT;
extern const OCTETSTRING& CAN__ERR__LOSTARB;
extern const OCTETSTRING& CAN__ERR__CRTL;
extern const OCTETSTRING& CAN__ERR__PROT;
extern const OCTETSTRING& CAN__ERR__TRX;
extern const OCTETSTRING& CAN__ERR__ACK;
extern const OCTETSTRING& CAN__ERR__BUSOFF;
extern const OCTETSTRING& CAN__ERR__BUSERROR;
extern const OCTETSTRING& CAN__ERR__RESTARTED;
extern const OCTETSTRING& CAN__ERR__LOSTARB__UNSPEC;
extern const OCTETSTRING& CAN__ERR__CRTL__UNSPEC;
extern const OCTETSTRING& CAN__ERR__CRTL__RX__OVERFLOW;
extern const OCTETSTRING& CAN__ERR__CRTL__TX__OVERFLOW;
extern const OCTETSTRING& CAN__ERR__CRTL__RX__WARNING;
extern const OCTETSTRING& CAN__ERR__CRTL__TX__WARNING;
extern const OCTETSTRING& CAN__ERR__CRTL__RX__PASSIVE;
extern const OCTETSTRING& CAN__ERR__CRTL__TX__PASSIVE;
extern const OCTETSTRING& CAN__ERR__CRTL__ACTIVE;
extern const OCTETSTRING& CAN__ERR__PROT__UNSPEC;
extern const OCTETSTRING& CAN__ERR__PROT__BIT;
extern const OCTETSTRING& CAN__ERR__PROT__FORM;
extern const OCTETSTRING& CAN__ERR__PROT__STUFF;
extern const OCTETSTRING& CAN__ERR__PROT__BIT0;
extern const OCTETSTRING& CAN__ERR__PROT__BIT1;
extern const OCTETSTRING& CAN__ERR__PROT__OVERLOAD;
extern const OCTETSTRING& CAN__ERR__PROT__ACTIVE;
extern const OCTETSTRING& CAN__ERR__PROT__TX;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__UNSPEC;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__SOF;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__ID28__21;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__ID20__18;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__SRTR;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__IDE;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__ID17__13;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__ID12__05;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__ID04__00;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__RTR;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__RES1;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__RES0;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__DLC;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__DATA;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__CRC__SEQ;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__CRC__DEL;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__ACK;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__ACK__DEL;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__EOF;
extern const OCTETSTRING& CAN__ERR__PROT__LOC__INTERM;
extern const OCTETSTRING& CAN__ERR__TRX__UNSPEC;
extern const OCTETSTRING& CAN__ERR__TRX__CANH__NO__WIRE;
extern const OCTETSTRING& CAN__ERR__TRX__CANH__SHORT__TO__BAT;
extern const OCTETSTRING& CAN__ERR__TRX__CANH__SHORT__TO__VCC;
extern const OCTETSTRING& CAN__ERR__TRX__CANH__SHORT__TO__GND;
extern const OCTETSTRING& CAN__ERR__TRX__CANL__NO__WIRE;
extern const OCTETSTRING& CAN__ERR__TRX__CANL__SHORT__TO__BAT;
extern const OCTETSTRING& CAN__ERR__TRX__CANL__SHORT__TO__VCC;
extern const OCTETSTRING& CAN__ERR__TRX__CANL__SHORT__TO__GND;
extern const OCTETSTRING& CAN__ERR__TRX__CANL__SHORT__TO__CANH;
extern TTCN_Module module_object;

} /* end of namespace */

#endif
