TCOM6. Заголовок драйвера t12

 

typedef union

{

unsigned char c[6];

unsigned short int i[3];

} IA;

typedef union

{

unsigned char c[4];

unsigned short int i[2];

unsigned long  l;

float f;

} FOUR_BYTE;

typedef union

{

unsigned char c[2];

unsigned short int i;

} TWO_BYTE;

typedef struct

{

union

{

float v;

unsigned char c[4];

unsigned short int i[2];

unsigned long l;

int d;

} V;

union

{

unsigned char fmt[4];

unsigned short int ind[2];

} F;

} RSDATA;

typedef union

{

unsigned long lflag;

unsigned short int flag[2]; // 0 bits 1-

struct

{

unsigned SC : 1; // ON/OFF

unsigned WC : 1; // connect/disconnect

unsigned FA : 1; // hardware failure

unsigned IO : 1; // INPUT/OUTPUT

unsigned HF : 1; // FLOAT/HEX

unsigned interval : 3; // interval

unsigned FS : 1; // program invalidity

unsigned bIO : 1; // use in net but in work re-changes

// type io

unsigned bSV : 1; //use in net but set in request and

// reset in response

unsigned b11 : 1; // if set in hex print in int

unsigned LENB0 : 1; // init ai and di

unsigned LENB1 : 1; // 0 - aperture  1 - smooth

unsigned LENB2 : 1;

unsigned LENB3 : 1; // port.data - char * presents

 

unsigned frqc3 : 7; //frq.c[3],q_rec

unsigned d_bit : 1; // for debugging

unsigned frqc2 : 6; //frq.c[2]

unsigned b14 : 1; // value or FA changes

unsigned b15 : 1; // for show

 

}

BIT;

}

DEF_MAINFLAG;

#define ERR_RT_FILE     1 // ошибка открытия файла

#define ERR_RT_SEEK     2 // ошибка поиска файла

#define ERR_RT_WRITE    3 // ошибка записи файла

#define ERR_RT_READ     4 // ошибка чтения файла

#define ERR_RT_MEM      5 // недостаточно памяти

#define ERR_RT_LIST     6 // ошибка создания списка

#define ERR_RT_FORMAT   7 // ошибка в формате

#define ERR_RT_COUNT    8 // неправильный счетчик

#define ERR_RT_TIMEOUT  9 // обнаружен таймаут

#define ERR_RT_RESP     10 // неправильный ответ

#define ERR_RT_FUNC     11 // код ошибки, возвращаемый API WIN32

#define ERR_RT_NOTFOUND 12 // запрос неопределенного канала

#define ERR_RT_CODE     13 // код ошибки, посланный контроллером

#define ERR_RT_FSC      14 // неправильная контрольная сумма

 

// Функции библиотеки описания интерфейса (media)

 

int __declspec(dllexport) OpenMedia(long &hndl);

int __declspec(dllexport) StartMedia(long &hndl);

int __declspec(dllexport) StopMedia(long &hndl);

int __declspec(dllexport) CloseMedia(long &hndl);

 

int __declspec(dllexport) WriteMedia(long &hndl, char *sbuf, int out_count, int &actual_count, IA &ia, void *ext_data, DEF_MAINFLAG flags);

 

int __declspec(dllexport) ReadMedia(long &hndl, char *rbuf, int in_count, int &actual_count, IA &ia, void *ext_data, DEF_MAINFLAG flags);

 

// Функции библиотеки описания протокола

 

int __declspec(dllexport) Open_yyy(int &media, char *str, int &nRecvBufferSize, int &nSendBufferSize, int &nMaxBlockQuery);

 

int __declspec(dllexport) Close_yyy();

 

int __declspec(dllexport) Set_yyy(IA &ia, int &max_send, int &max_rec, RSDATA *p, char *sbuf, void *ext_data, DEF_MAINFLAG flags, int &q_rec);

 

int __declspec(dllexport) Check_yyy(IA &ia, int &count_rec, int &max_rec, char *rbuf, void *ext_data, DEF_MAINFLAG flags, int q_rec);

 

int __declspec(dllexport) Get_yyy(IA &ia, int &count_rec, int &q_rec, RSDATA *p, char *rbuf, int &type_cnv, void *ext_data, DEF_MAINFLAG flags);

 

int __declspec(dllexport) zCompare_yyy(IA &ia0, IA &ia1, int &count, void *ext_data0, void *ext_data1, DEF_MAINFLAG flags0, DEF_MAINFLAG flags1);

 

void __declspec(dllexport) zzTM6Stub();