# include<stdio.h>
# include<dos.h>

#define ResetMode  0x01
#define NormalMode 0x00
#define BasicCAN   0x00
#define PeliCAN    0x01

/* прототипы функций для режимов BasicCAN и PeliCAN*/
void            far     chBaseAddress(unsigned int);
unsigned char   far     SetWorkMode(unsigned char);
unsigned char   far     GetWorkMode(void);
void            far     HardReset(void);
void            far     SetDriverMode(unsigned char);
unsigned char   far     SetCANSpeed(unsigned int);
unsigned char   far     GetStatus(void);
unsigned char   far     GetInterruptSource(void);
void            far     SetInterruptSource(unsigned char);
unsigned char   far     SetTxBuffer(struct Buffer far *);
struct Buffer * far     GetRxBuffer(void);
void            far     SetCommand(unsigned char);

/* прототипы функций для режима BasicCAN */
unsigned char   far     B_SetInputFilter(unsigned char,unsigned char);

/* прототипы функций для режима PeliCAN */
unsigned char   far     P_SetRxErrorCounter(unsigned char);
int             far     P_GetRxErrorCounter(void);
unsigned char   far     P_SetTxErrorCounter(unsigned char);
int             far     P_GetTxErrorCounter(void);
unsigned char   far     P_SetErrorWarningLimit(unsigned char);
int             far     P_GetErrorWarningLimit(void);
int             far     P_GetArbitrationLostCapture(void);
int             far     P_GetRxMessageCounter(void);
int             far     P_GetErrorCode(void);
unsigned char   far     P_SetInputFilter(unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char);


struct  Buffer
           {
                unsigned char FF;          /* Frame Format - формат кадра        */
                                           /* 0 - стандартный кадр               */
                                           /* 1 - расширенный кадр               */
                unsigned int sID;          /* стандартный идентификатор (11 бит) */
                unsigned long extID;       /* расширенный идентификатор (29 бит) */
                unsigned char RTR;         /* RTR - бит                          */
                unsigned char DLC;         /* DLC - количество байт данных (0-8) */
                unsigned char DataByte[8]; /* Байты данных                       */
           };
