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();
|