Автоматизированное рабочее место регистрации и документирования комплекса средств автоматизации

Анализ концепции построения комплекса средств автоматизации. Разработка программы с целью формирования и обработки запросов для каждой из 3-х форм представления байтов состояния и выдачи результатов запроса в файл. Программирование на языке Borland C++.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 18.10.2013
Размер файла 251,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

s[i]=z[i][0];

for(k=1;k<x[i];++k) if(s[i]>z[i][k]) s[i]=z[i][k];

if(s[i]>high)

{

for(i=3;i<=nflds;++i)

if(x[i])

{

for(j=0;j<x[i];++j) PXRecBufClose(rec[i][j]);

free(rec[i]); free(z[i]);

}

free(s); free(rec); free(z);

return;

}

}

// 3), 4)

// Проверяем совпадение значений s[i].

// Если значения s[i] совпадают для всех полей по которым производится поиск, значит найдена искомая

// ( т.е. удовлетворяющая заданным условиям ) запись, в этом случае вызываем функцию recprint

// Определяем значение max для следующей итерации, это значение равно максимуму из s[i].

for(i=3;!x[i];++i);

max=s[i];

for(++i,yes=1;i<nflds;++i)

{

if(!x[i]) continue;

if(s[i]!=max) yes=0;

if(s[i]>max) max=s[i];

}

if(yes) { PXRecGoto(tblh,max);++max;recprint(); }

}

}

// bs2_inq.prj

// BS2_INQ\bs2_inq.c

// main()

// программа обработки запросов для второй формы байтов состояний

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <fcntl.h>

#include <sys/stat.h>

#include <io.h>

#include <alloc.h>

#include "pxengine.h"

#include "devices.h"

TABLEHANDLE tblh; // дескриптор таблицы

RECORDNUMBER low,high; // границы интервала поиска

int nflds; // кол-во полей в таблице

int handle; // дескриптор файла

void interval(long date1,long date2,char *time1, char *time2); // определение границ интервала поиска

void search(char *type); // поиск

void recprint(void); // расшифровка записи БД в строку и запись этой строки в файл

char *sag; // шапкa таблицы

char *sag2; // шапкa таблицы-вторая строка

char *inqstr; // строка запроса

int length; // длина строки в таблице

/* строка аргументов функции main:

argv[1] - не используется

argv[2] - вариант поиска; 0 - поиск по всей БД, 1 - поиск в едином интервале по дате и времени, 2 - поиск в интервале

времени по каждому дню интервала дат, 3 - поиск за один день в интервале времени;

argv[3] - дата;

argv[4] - время;

argv[5] - тип устройства */

void main(int argc,char *argv[])

{

long date1,date2; // граничные значения интервала дат

int a,i;

char *c;

RECORDHANDLE rech;

RECORDNUMBER num;

// открытие файла результатов запроса (inquiry.res) и запись в него строки запроса и шапки таблицы

handle=open("inquiry.res",

O_CREAT | O_TRUNC | O_WRONLY,S_IREAD | S_IWRITE );

for(i=0;strcmp(devices[i].type,argv[5]) && i<20;++i);

switch(i)

{

case 0: //ШЭ-00

case 8: //ШЭ-08

sag=(char *)calloc(81,1);

strcpy(sag," ДАТА ВРЕМЯ ТИП_У П ВС СОСТОЯНИЕ_ШКАФА СЕТЬ1 СЕТЬ2 \r\n");

break;

case 1: //ШП-01

case 9: //ШП-09

sag=(char *)calloc(81,1);

strcpy(sag," ДАТА ВРЕМЯ ТИП_У П ВС СОСТОЯНИЕ_ШКАФА \r\n");

break;

case 4: //ШК-04

case 12: //ШК-12

sag=(char *)calloc(100,1);

strcpy(sag," ДАТА ВРЕМЯ ТИП_У П ВС КАНАЛЫ ЛИНИИ КНОН ФКДТ НСПД ФЗ ПИТАНИЕ Д-Ж К--Ы Б---ЫЕ К--Ы \r\n");

break;

case 2: //РМ-02

sag=(char *)calloc(81,1);

sag2=(char *)calloc(81,1);

strcpy(sag, " ДАТА ВРЕМЯ ТИП_У П ВС БЛОКИРОВКА ЕСТЬ СВЯЗЬ С ВК \r\n");

strcpy(sag2," ПЭВМ1 по ФК по ЛС1 по ЛС3 \r\n");

break;

case 10: //РМ-10

sag=(char *)calloc(81,1);

sag2=(char *)calloc(81,1);

strcpy(sag, " ДАТА ВРЕМЯ ТИП_У П ВС БЛОКИРОВКА ЕСТЬ_СВЯЗЬ_С_ВК \r\n");

strcpy(sag2," ПЭВМ2 по ФК по ЛС2 по ЛС4 \r\n");

break;

case 5: //РМ05Г

case 13: //РМ13П

sag=(char *)calloc(81,1);

strcpy(sag," ДАТА ВРЕМЯ ТИП_У П ВС ЛИНИИ КНОН ФКДТ НСПД ФЗ \r\n");

break;

case 3: //В

case 6: //КС1

case 14: //КС2

case 15: //АС

sag=(char *)calloc(81,1);

strcpy(sag," ДАТА ВРЕМЯ ТИП_У П ВС КАНАЛЫ ЛИНИИ ФКДТ НСПД ФЗ \r\n");

break;

case 7: //ВМ

sag=(char *)calloc(81,1);

strcpy(sag," ДАТА ВРЕМЯ ТИП_У П ВС АВАРИЯ ПИТАНИЯ НЕИСПР КАН КАНАЛЫ \r\n");

break;

case 16: //ВУ16

case 17: //ВУ17

case 18: //ВУ18

case 19: //ВУ19

sag=(char *)calloc(81,1);

strcpy(sag," ДАТА ВРЕМЯ ТИП_У П ВС МАГИСТРАЛЬ ПРИЕМА КНОН \r\n");

break;

}

length=strlen(sag);

inqstr=(char *)calloc(length+1,1);

memset(inqstr+1,' ',length);

for(c=inqstr,i=1;i<argc;++i)

{

strcat(c," ");

strcat(c,argv[i]);

}

inqstr[strlen(inqstr)]=' ';

strcpy(inqstr+length-2,"\r\n");

_write(handle,inqstr,length);

_write(handle,sag,length);

_write(handle,sag2,length);

// инициализация работы с БД

i=coreleft()/1024-50;

if(i>256) i=256;

if(a=PXSetDefaults(i,1,30,MAXLOCKHANDLES,3,SortOrderAscii)) printf("\n%s",PXErrMsg(a));

if(a=PXInit()) printf("\n%s",PXErrMsg(a));

if(a=PXTblOpen("fk",&tblh,0,0)) printf("\n%s",PXErrMsg(a));

PXRecNFlds(tblh,&nflds);

// главный блок

if (argv[2][0]=='0')

{

low=1;PXTblNRecs(tblh,&high);

search(argv[5]);

}

else

if (argv[2][0]=='1')

{

PXDateEncode(atoi(argv[3]),atoi(argv[3]+3),atoi(argv[3]+6),&date1);

PXDateEncode(atoi(argv[3]+11),atoi(argv[3]+14),atoi(argv[3]+17),&date2);

interval(date1,date2,argv[4],argv[4]+9);

search(argv[5]);

}

else

if (argv[2][0]=='2')

{

PXDateEncode(atoi(argv[3]),atoi(argv[3]+3),atoi(argv[3]+6),&date1);

PXDateEncode(atoi(argv[3]+11),atoi(argv[3]+14),atoi(argv[3]+17),&date2);

interval(date1,date2,argv[4],argv[4]+9);

if(low==1 && !high)

if(low==1)

{

PXRecBufOpen(tblh,&rech);

PXRecGet(tblh,rech);

PXGetDate(rech,1,&date1);

PXRecBufClose(rech);

}

PXTblNRecs(tblh,&num);

if(high==num)

{

PXRecBufOpen(tblh,&rech);

PXRecLast(tblh);

PXRecGet(tblh,rech);

PXGetDate(rech,1,&date2);

PXRecBufClose(rech);

}

for(;date1<=date2;++date1)

{

interval(date1,date1,argv[4],argv[4]+9);

if(low>high) continue;

search(argv[5]);

}

}

else

if (argv[2][0]=='3')

{

PXDateEncode(atoi(argv[3]),atoi(argv[3]+3),atoi(argv[3]+6),&date1);

interval(date1,date1,argv[4],argv[4]+9);

search(argv[5]);

}

if(a=PXTblClose(tblh)) printf("\n%s",PXErrMsg(a));

PXExit();

close(handle);

}

// bs2_inq.prj

// BS2_INQ\form2.c

// form2()

// расшифровка байтов состояния

#include <string.h>

#include "devices.h"

void form2(char *Type,char *bytes,char *text)

{

/* Type; тип устройства

bytes; нерасшифрованные байты состояния

text; буфер для расшифрованных БС */

int i;

for(i=0;strcmp(devices [i].type,Type) && i<20;++i);

switch(i)

{

case 0: // ШЭ-00

if(bytes[5]&0x04) strcpy(text,"НЕИСПРАВЕН");

else strcpy(text,"ИСПРАВЕН");

if(bytes[4]&0x02) strcpy(text+16,"CETЬ1");

break;

case 8: // ШЭ-08

if(bytes[5]&0x04) strcpy(text,"НЕИСПРАВЕН");

else strcpy(text,"ИСПРАВЕН");

if(bytes[4]&0x04) strcpy(text+22,"СЕТЬ2");

break;

case 1: // ШП-01

case 9: // ШП-09

if(bytes[5]&0x04) strcpy(text,"НЕИСПРАВЕН");

else strcpy(text,"ИСПРАВЕН");

break;

case 4: // ШК-04

case 12: // ШК-12

if(bytes[4]&0x04) strcpy(text,"К1");

if(bytes[4]&0x02) strcpy(text+2,"К2");

if(bytes[4]&0x01) strcpy(text+4,"К3");

if(bytes[5]&0x04) strcpy(text+7,"Л1");

if(bytes[5]&0x02) strcpy(text+9,"Л2");

if(bytes[5]&0x01) strcpy(text+11,"Л3");

if(bytes[3]&0x01) strcpy(text+14,"КНОН");

if(bytes[3]&0x02) strcpy(text+19,"ФКДТ");

if(bytes[3]&0x04) strcpy(text+24,"НСПД");

if(bytes[2]&0x01) strcpy(text+29,"ФЗ");

if(bytes[12]&0x04) strcpy(text+32,"П1");

if(bytes[12]&0x02) strcpy(text+34,"П2");

if(bytes[12]&0x01) strcpy(text+36,"П3");

if(bytes[11]&0x04) strcpy(text+40,"ДК1");

if(bytes[11]&0x02) strcpy(text+43,"ДК2");

if(bytes[11]&0x01) strcpy(text+46,"ДК3");

if(bytes[10]&0x04) strcpy(text+51,"БК1");

if(bytes[10]&0x02) strcpy(text+54,"БК2");

if(bytes[10]&0x01) strcpy(text+57,"БК3");

break;

case 3: // В

case 6: // КС1

case 14: // КС2

if(bytes[4]&0x04) strcpy(text,"К1");

if(bytes[4]&0x02) strcpy(text+2,"К2");

if(bytes[4]&0x01) strcpy(text+4,"К3");

if(bytes[5]&0x04) strcpy(text+7,"Л1");

if(bytes[5]&0x02) strcpy(text+9,"Л2");

if(bytes[5]&0x01) strcpy(text+11,"Л3");

if(bytes[3]&0x02) strcpy(text+14,"ФКДТ");

if(bytes[3]&0x04) strcpy(text+19,"НСПД");

if(bytes[2]&0x01) strcpy(text+24,"ФЗ");

break;

case 2: // РМ-02

if(bytes[5]&0x01) strcpy(text+3,"ЕСТЬ");

else strcpy(text+3,"НЕТ");

if(bytes[3]&0x04) strcpy(text+17,"НЕТ");

else strcpy(text+17,"ЕСТЬ");

if(bytes[2]&0x02) strcpy(text+24,"НЕТ");

else strcpy(text+24,"ЕСТЬ");

break;

case 10: // РМ-10

if(bytes[5]&0x01) strcpy(text+3,"ЕСТЬ");

else strcpy(text+3,"НЕТ");

if(bytes[2]&0x01) strcpy(text+17,"НЕТ");

else strcpy(text+17,"ЕСТЬ");

if(bytes[2]&0x04) strcpy(text+24,"НЕТ");

else strcpy(text+24,"ЕСТЬ");

break;

case 5: // РМ05Г

case 13: // РМ13П

if(bytes[5]&0x04) strcpy(text,"Л1");

if(bytes[5]&0x02) strcpy(text+2,"Л2");

if(bytes[5]&0x01) strcpy(text+4,"Л3");

if(bytes[3]&0x01) strcpy(text+7,"КНОН");

if(bytes[3]&0x02) strcpy(text+12,"ФКДТ");

if(bytes[3]&0x04) strcpy(text+17,"НСПД");

if(bytes[2]&0x01) strcpy(text+22,"ФЗ");

break;

case 7: // ВМ

if(bytes[5]&0x02) strcpy(text,"АВАРИЯ ПИТАНИЯ");

if(bytes[5]&0x04) strcpy(text+15,"НЕИСПР КАН");

if(bytes[4]&0x04) strcpy(text+26,"К1");

if(bytes[4]&0x01) strcpy(text+28,"К2");

if(bytes[4]&0x02) strcpy(text+30,"К3");

break;

case 16: // ВУ16

case 17: // ВУ17

case 18: // ВУ18

case 19: // ВУ19

if(bytes[5]&0x04) strcpy(text,"НЕИСПР МАГ ПРИЕМА");

if(bytes[3]&0x01) strcpy(text+18,"КНОН");

break;

case 15: // АС

//Подкорректировать после согласования байта состояния

if(bytes[4]&0x04) strcpy(text,"К1");

if(bytes[4]&0x02) strcpy(text+2,"К2");

if(bytes[4]&0x01) strcpy(text+4,"К3");

if(bytes[5]&0x04) strcpy(text+7,"Л1");

if(bytes[5]&0x02) strcpy(text+9,"Л2");

if(bytes[5]&0x01) strcpy(text+11,"Л3");

if(bytes[3]&0x02) strcpy(text+14,"ФКДТ");

if(bytes[3]&0x04) strcpy(text+19,"НСПД");

if(bytes[2]&0x01) strcpy(text+24,"ФЗ");

break;

}

}

// bs2_inq.prj

//BS2_INQ\interval.c

// interval()

// определение граничных номеров интервала поиска

#include <stdio.h>

#include <stdlib.h>

#include "pxengine.h"

#include "def.h"

void interval (long date1,long date2,char *time1,char *time2)

{

RECORDHANDLE rech;

itoa(atoi(time2+6)+1,time2+6,10);

PXRecBufOpen(tblh,&rech);

PXPutDate(rech,1,date2);

PXPutAlpha(rech,2,time2);

if(PXRecInsert(tblh,rech))printf("error");

PXRecNum(tblh,&high);

--high;

PXRecDelete(tblh);

PXPutDate(rech,1,date1);

PXPutAlpha(rech,2,time1);

if(PXRecInsert(tblh,rech))printf("error");

if(PXRecNum(tblh,&low))printf("error");

PXRecDelete(tblh);

PXRecBufClose(rech);

}

// bs2_inq.prj

// recprint.c

// BS2_INQ\recprint()

// форматирование и запись в файл найденной строки

#include <stdio.h>

#include <io.h>

#include <string.h>

#include <stdlib.h>

#include <dos.h>

#include "pxengine.h"

#include "def.h"

#include "disp.h"

void form2(char *,char *,char *);

// расшифровка байтов состояния

void recprint()

{

long date; // дата в формате БД

int month,day,year; // расшифрованная дата

char *string; // результирующая строка

char *bytes; // нерасшифрованные байты состояния

RECORDHANDLE rech; // дескриптор записи

int a,i;

union REGS r;

string=(char *)calloc(length+1,1);

bytes=(char *)calloc(45,1);

PXRecBufOpen(tblh,&rech);

PXRecGet(tblh,rech);

PXGetDate(rech,1,&date);

PXDateDecode(date,&month,&day,&year);

sprintf(string,"%.02d\\%.02d\\%.04d ",month,day,year);

PXGetAlpha(rech,2,9,string+11); //t

PXGetAlpha(rech,3,6,string+20); //тип_у

PXGetAlpha(rech,4,2,string+26); //п

PXGetAlpha(rech,5,4,string+28); //вс

PXGetAlpha(rech,6,45,bytes); //бс

form2(string+20,bytes+16,string+31);

for(i=0;i<=length;++i) if(string[i]=='\0') string[i]=' ';

strcpy(string+length-2,"\r\n");

_write(handle,string,strlen(string));

PXRecBufClose(rech);

free(bytes);

free(string);

// передача управления диспетчеру

// (только для передачи cимвола на принтер!)

// после каждой найденной записи

//r.h.ah=1;

// int86(DISP,&r,&r);

}

// bs2_inq.prj

//BS2_INQ\search.c

// search()

// поиск

#include <stdlib.h>

#include "pxengine.h"

#include "def.h"

void search(char *type)

{

int a,i,y[2];

RECORDHANDLE rec[2];

RECORDNUMBER s[2],max=low;

PXRecBufOpen(tblh,&rec[0]);

PXRecBufOpen(tblh,&rec[1]);

PXPutAlpha(rec[0],3,type);

PXPutAlpha(rec[1],5,"БС ");

y[0]=3;y[1]=5;s[1]=s[0]=0;

while(1)

{

for(i=0;i<=1;++i)

{

if(max==1)

{

if (!(a=PXSrchFld(tblh,rec[i],y[i],SEARCHFIRST)))

PXRecNum(tblh,&s[i]);

}

else

if(s[i]<max)

{

PXRecGoto(tblh,max-1);

if(!(a=PXSrchFld(tblh,rec[i],y[i],SEARCHNEXT)))

PXRecNum(tblh,&s[i]);

}

if(a||s[i]>high)

{

PXRecBufClose(rec[0]);

PXRecBufClose(rec[1]);

return;

}

}

if(s[1]==s[0]) { ++max; recprint(); }

else if(s[1]>s[0]) max=s[1];

else max=s[0];

}

}

// bs3_inq.prj

// BS3_INQ\bs3_inq.c

// main()

// программа обработки запросов для третьей формы байтов состояния

// вызывается из:

// 1) main.prj, mloop2.c, bszapros()

// 2) makeinq.prj, makeinq.c, makeinq()

#include <stdio.h>

#include <fcntl.h>

#include <sys/stat.h>

#include <io.h>

#include "pxengine.h"

#include <string.h>

void form3(char *,char *,int);

// расшифровка байтов состояния для третьей формы представления и их запись в файл результатов

/* аргументы функции main :

argv[1] - тип устройства */

void main(int argc,char *argv[])

{

int a;

int i;

int handle; // дескриптор файла результатов поиска

static char bytes[45]; // буфер для нерасшифрованных байтов состояния

RECORDHANDLE rec; // дескриптор записи

TABLEHANDLE tblh; // дескриптор таблицы

// открытие файла результатов изапись в него типа устройства

handle=open("inquiry.res",

O_CREAT | O_TRUNC | O_WRONLY,S_IREAD | S_IWRITE );

write(handle,argv[1],strlen(argv[1]));

//if(strlen(argv[1])==1) write(handle," ",2);

//if(strlen(argv[1])==2) write(handle," ",1);

write(handle,"\r\n",2);

// поиск и обработка результатов поиска

/* находится последняя по времени запись байтов

состояния для данного устройства */

if(a=PXInit()) printf("\n%s",PXErrMsg(a));

if(a=PXTblOpen("fk",&tblh,0,0)) printf("\n%s",PXErrMsg(a));

PXRecBufOpen(tblh,&rec);

PXPutAlpha(rec,5,"БС");

PXPutAlpha(rec,3,argv[1]);

if((a=PXSrchFld(tblh,rec,3,SEARCHFIRST))!=PXSUCCESS)

{ if(a==PXERR_RECNOTFOUND)

PXRecBufClose(rec);

if(a=PXTblClose(tblh)) printf("\n%s",PXErrMsg(a));

PXExit();

close(handle);

return;

}

else while(!(a=PXSrchFld(tblh,rec,3,SEARCHNEXT)));

PXRecGet(tblh,rec);

PXGetAlpha(rec,6,45,bytes);

form3(argv[1],bytes+16,handle);

PXRecBufClose(rec);

if(a=PXTblClose(tblh)) printf("\n%s",PXErrMsg(a));

PXExit();

close(handle);

}

// bs3_inq.prj

// BS3_INQ\form3.c

// form3()

// расшифровка байтов состояния

#include <io.h>

#include <string.h>

#include "devices.h"

#include <dos.h>

void form3(char *Type,char *bytes,int handle)

{

/* Type - тип устройства

bytes - нерасшифрованные байты состояния

handle - дескриптор файла результатов */

int i;

/*

struct date d;

struct time t;

getdate(&d);

gettime(&t);

z.bd1.date[0]=d.da_mon;

z.bd1.date[1]=d.da_day;

z.bd1.date[2]=d.da_year;

PXRecBufOpen(tblh,&rech);

PXRecGet(tblh,rech);

PXGetDate(rech,1,&date);

PXDateDecode(date,&month,&day,&year);

sprintf(string,"%.02d\\%.02d\\%.04d ",month,day,year);

*/

for(i=0;strcmp(devices[i].type,Type) && i<CHDEV;++i);

switch(i)

{

case 0: // ШЭ-00

if(bytes[5]&0x04)

write(handle," Шкаф НЕИСПРАВЕН \r\n",76);

else

write(handle," Шкаф ИСПРАВЕН \r\n",76);

if(bytes[4]&0x02)

write(handle,"НЕИСПРАВНОСТЬ первичной сети электропитания СЕТЬ 1 \r\n",76);

break;

case 8: // ШЭ-08

if(bytes[5]&0x04)

write(handle," Шкаф НЕИСПРАВЕН \r\n",76);

else

write(handle," Шкаф ИСПРАВЕН \r\n",76);

if(bytes[4]&0x02)

write(handle,"НЕИСПРАВНОСТЬ первичной сети электропитания СЕТЬ 2 \r\n",76);

break;

case 1: // ШП-01

case 9: // ШП-09

if(bytes[5]&0x04)

write(handle," Шкаф НЕИСПРАВЕН \r\n",76);

else

write(handle," Шкаф ИСПРАВЕН \r\n",76);

break;

case 4: // ШК-04

case 12: // ШК-12

if(bytes[0]&0x01)

write(handle,"ОСНОВНОЙ - шкаф ШК-12 \r\n",76);

else

write(handle,"ОСНОВНОЙ - шкаф ШК-04 \r\n",76);

write(handle," \r\n",76);

write(handle," ТЕХНИЧЕСКОЕ СОСТОЯНИЕ ШКАФА \r\n",76);

write(handle," \r\n",76);

if(bytes[5]&0x01)

write(handle," Шкаф РАБОТОСПОСОБЕН \r\n",76);

if(bytes[5]&0x02)

write(handle," Шкаф НЕИСПРАВЕН \r\n",76);

if(bytes[5]&0x04)

write(handle," Шкаф ЗАБЛОКИРОВАН по НСД \r\n",76);

if((!(bytes[5]&0x01))&&(!(bytes[5]&0x02))&&(!(bytes[5]&0x04)))

write(handle," Шкаф ИСПРАВЕН \r\n",76);

write(handle," \r\n",76);

if(bytes[4]&0x01)

write(handle,"НЕИСПРАВЕН 1-й канал АД \r\n",76);

if(bytes[4]&0x02)

write(handle,"НЕИСПРАВЕН 2-й канал АД \r\n",76);

if(bytes[4]&0x04)

write(handle,"НЕИСПРАВЕН 3-й канал АД \r\n",76);

if(bytes[3]&0x01)

write(handle,"НЕИСПРАВЕН 1-й канал УХК \r\n",76);

if(bytes[3]&0x02)

write(handle,"НЕИСПРАВЕН 2-й канал УХК \r\n",76);

if(bytes[3]&0x04)

write(handle,"НЕИСПРАВЕН 3-й канал УХК \r\n",76);

if(bytes[2]&0x01)

write(handle,"НЕИСПРАВНОСТЬ логической части ШК \r\n",76);

if(bytes[2]&0x02)

{write(handle,"НЕИСПРАВЕН хотя бы один или несколько элементов ИГП \r\n",76);

write(handle,"Для уточнения считай ячейку ВБШК1.ПФЗ для ШК1 или ВБШК2.ПФЗ для ШК2 \r\n",76);

}

if(bytes[2]&0x04)

{write(handle,"НЕИСПРАВНО УХК - установлена единица в 8-ом разряде уточненого слова \r\n",76);

write(handle,"состояния УХК \r\n",76);

}

if(bytes[1]&0x01)

write(handle,"БОЗУ занято более 3-х секунд \r\n",76);

if(bytes[1]&0x02)

{write(handle,"НЕИСПРАВНО УХК (неправильное сочетание 3 и 10 разрядов уточненого слова \r\n",76);

write(handle,"состояния УХК) \r\n",76);

}

if(bytes[1]&0x04)

{write(handle,"УХК ЗАБЛОКИРОВАН по причине работы с носителем 83т015. Получен 9 или 11 \r\n",76);

write(handle,"разряд в ИСС УХК (см. п.4.7.1. протокола инв.30337) \r\n",76);

}

if((!(bytes[12]&0x01))&&(!(bytes[12]&0x02)))

write(handle,"ПУ-1 ИСПРАВЕН \r\n",76);

if(bytes[12]&0x01)

write(handle,"Нажата кнопка ОБНАРУЖЕНА НЕИСПРАВНОСТЬ на ПУ-1 \r\n",76);

if(bytes[12]&0x02)

write(handle,"Неисправно направление связи, соединяющее с ПУ-1 \r\n",76);

if((!(bytes[12]&0x04))&&(!(bytes[11]&0x01)))

write(handle,"ПУ-2 ИСПРАВЕН \r\n",76);

if(bytes[12]&0x04)

write(handle,"Нажата кнопка ОБНАРУЖЕНА НЕИСПРАВНОСТЬ на ПУ-2 \r\n",76);

if(bytes[11]&0x01)

write(handle,"Неисправно направление связи, соединяющее с ПУ-2 \r\n",76);

if((!(bytes[11]&0x04))&&(!(bytes[11]&0x02)))

write(handle,"ПУ-3 ИСПРАВЕН \r\n",76);

if(bytes[11]&0x02)

write(handle,"Нажата кнопка ОБНАРУЖЕНА НЕИСПРАВНОСТЬ на ПУ-3 \r\n",76);

if(bytes[11]&0x04)

write(handle,"Неисправно направление связи, соединяющее с ПУ-3 \r\n",76);

if((!(bytes[10]&0x01))&&(!(bytes[10]&0x02)))

write(handle,"ПУ-4 ИСПРАВЕН \r\n",76);

if(bytes[10]&0x01)

write(handle,"Нажата кнопка ОБНАРУЖЕНА НЕИСПРАВНОСТЬ на ПУ-4 \r\n",76);

if(bytes[10]&0x02)

write(handle,"Неисправно направление связи, соединяющее с ПУ-4 \r\n",76);

if(bytes[10]&0x04)

write(handle,"Неисправен 1-й канал схемных узлов БУ-695 \r\n",76);

if(bytes[9]&0x01)

write(handle,"Неисправен 2-й канал схемных узлов БУ-695 \r\n",76);

if(bytes[9]&0x02)

write(handle,"Неисправен 3-й канал схемных узлов БУ-695 \r\n",76);

if(bytes[9]&0x04)

write(handle,"Неисправен 1-й канал ПРЦ \r\n",76);

if(bytes[8]&0x01)

write(handle,"Неисправен 2-й канал ПРЦ \r\n",76);

if(bytes[8]&0x02)

write(handle,"Неисправен 3-й канал ПРЦ \r\n",76);

if(bytes[8]&0x04)

{write(handle,"Неисправно направление связи С1 по передаче от ВМ к ШК и/или по приему \r\n",76);

write(handle,"от ШК к ВМ и/или по причине не получения от ШК кодограмм по времени. \r\n",76);

write(handle,"Формирует ФК-читай слово памяти ВБШК1(2).ПФЗ \r\n",76);

if(bytes[7]&0x01)

write(handle,"ШК забракован функциональной задачей - читай слово памяти ВБШК1(2).ПФЗ \r\n",76);

write(handle," \r\n",76);

write(handle," ИНФОРМАЦИОННОЕ СОСТОЯНИЕ ШКАФА \r\n",76);

write(handle," \r\n",76);

if(bytes[26]&0x02)

write(handle," Шкаф НЕИСПРАВЕН ПО ИНФОРМАЦИОННОМУ СОСТОЯНИЮ \r\n",76);

else

write(handle," Шкаф ИСПРАВЕН ПО ИНФОРМАЦИОННОМУ СОСТОЯНИЮ \r\n",76);

write(handle," \r\n",76);

write(handle," Состояние БХХХХХ ШХХХХХ и КХХХХ \r\n",76);

write(handle," \r\n",76);

write(handle," БХХХХХ ШХХХХХ 1-го массива СХХ \r\n",76);

if((!(bytes[15]&0x01))&&(!(bytes[15]&0x02)))

write(handle," НЕ ЗАПИСАНЫ \r\n",76);

if((bytes[15]&0x01)&&(bytes[15]&0x02))

write(handle," УНИЧТОЖЕНЫ \r\n",76);

if((bytes[15]&0x01)&&(!(bytes[15]&0x02)))

write(handle," СОХРАНЕНЫ \r\n",76);

if((bytes[15]&0x02)&&(!(bytes[15]&0x01)))

write(handle," РАЗРУШЕНЫ \r\n",76);

write(handle," БХХХХХ ШХХХХХ 2-го массива СХХ \r\n",76);

if((!(bytes[17]&0x04))&&(!(bytes[16]&0x01)))

write(handle," НЕ ЗАПИСАНЫ \r\n",76);

if((bytes[17]&0x04)&&(bytes[16]&0x01))

write(handle," УНИЧТОЖЕНЫ \r\n",76);

if((bytes[17]&0x04)&&(!(bytes[16]&0x01)))

write(handle," СОХРАНЕНЫ \r\n",76);

if((bytes[16]&0x01)&&(!(bytes[17]&0x04)))

write(handle," РАЗРУШЕНЫ \r\n",76);

write(handle," БХХХХХ КХХХХ ОХХ \r\n",76);

if((!(bytes[18]&0x04))&&(!(bytes[18]&0x02)))

write(handle," НЕ ЗАПИСАНЫ \r\n",76);

if((bytes[18]&0x04)&&(bytes[18]&0x02))

write(handle," УНИЧТОЖЕНЫ \r\n",76);

if((bytes[18]&0x02)&&(!(bytes[18]&0x04)))

write(handle," СОХРАНЕНЫ \r\n",76);

if((bytes[18]&0x04)&&(!(bytes[18]&0x02)))

write(handle," РАЗРУШЕНЫ \r\n",76);

write(handle," БХХХХХ КХХХХ УХХ \r\n",76);

if((!(bytes[19]&0x02))&&(!(bytes[19]&0x01)))

write(handle," НЕ ЗАПИСАНЫ \r\n",76);

if((bytes[19]&0x02)&&(bytes[19]&0x01))

write(handle," УНИЧТОЖЕНЫ \r\n",76);

if((bytes[19]&0x01)&&(!(bytes[19]&0x02)))

write(handle," СОХРАНЕНЫ \r\n",76);

if((bytes[19]&0x02)&&(!(bytes[19]&0x01)))

write(handle," РАЗРУШЕНЫ \r\n",76);

write(handle," БХХХХХ КХХХХ УХ \r\n",76);

if((!(bytes[22]&0x02))&&(!(bytes[22]&0x01)))

write(handle," НЕ ЗАПИСАНЫ \r\n",76);

if((bytes[22]&0x02)&&(bytes[22]&0x01))

write(handle," УНИЧТОЖЕНЫ \r\n",76);

if((bytes[22]&0x01)&&(!(bytes[22]&0x02)))

write(handle," СОХРАНЕНЫ \r\n",76);

if((bytes[22]&0x02)&&(!(bytes[22]&0x01)))

write(handle," РАЗРУШЕНЫ \r\n",76);

write(handle," БХХХХХ КХХХХ РХХ \r\n",76);

if((!(bytes[23]&0x01))&&(!(bytes[24]&0x04)))

write(handle," НЕ ЗАПИСАНЫ \r\n",76);

if((bytes[23]&0x01)&&(bytes[24]&0x04))

write(handle," УНИЧТОЖЕНЫ \r\n",76);

if((bytes[24]&0x04)&&(!(bytes[23]&0x01)))

write(handle," СОХРАНЕНЫ \r\n",76);

if((bytes[23]&0x01)&&(!(bytes[24]&0x04)))

write(handle," РАЗРУШЕНЫ \r\n",76);

write(handle," \r\n",76);

write(handle," Состояние УХХХХХ ШХХХХХ и КХХХХ \r\n",76);

write(handle," \r\n",76);

write(handle," УХХХХХ ШХХХХХ 1-го массива СХХ \r\n",76);

if((!(bytes[14]&0x01))&&(!(bytes[15]&0x04)))

write(handle," НЕ ЗАПИСАНЫ \r\n",76);

if((bytes[14]&0x01)&&(bytes[15]&0x04))

write(handle," УНИЧТОЖЕНЫ \r\n",76);

if((bytes[15]&0x04)&&(!(bytes[14]&0x01)))

write(handle," СОХРАНЕНЫ \r\n",76);

if((bytes[14]&0x01)&&(!(bytes[15]&0x04)))

write(handle," РАЗРУШЕНЫ \r\n",76);

write(handle," УХХХХХ ШХХХХХ 2-го массива СХХ \r\n",76);

if((!(bytes[16]&0x04))&&(!(bytes[16]&0x02)))

write(handle," НЕ ЗАПИСАНЫ \r\n",76);

if((bytes[16]&0x04)&&(bytes[16]&0x02))

write(handle," УНИЧТОЖЕНЫ \r\n",76);

if((bytes[16]&0x02)&&(!(bytes[16]&0x04)))

write(handle," СОХРАНЕНЫ \r\n",76);

if((bytes[16]&0x04)&&(!(bytes[16]&0x02)))

write(handle," РАЗРУШЕНЫ \r\n",76);

write(handle," УХХХХХ КХХХХ ОХХ \r\n",76);

if((!(bytes[17]&0x02))&&(!(bytes[17]&0x01)))

write(handle," НЕ ЗАПИСАНЫ \r\n",76);

if((bytes[17]&0x02)&&(bytes[17]&0x01))

write(handle," УНИЧТОЖЕНЫ \r\n",76);

if((bytes[17]&0x01)&&(!(bytes[17]&0x02)))

write(handle," СОХРАНЕНЫ \r\n",76);

if((bytes[17]&0x02)&&(!(bytes[17]&0x01)))

write(handle," РАЗРУШЕНЫ \r\n",76);

write(handle," УХХХХХ КХХХХ УХХ \r\n",76);

if((!(bytes[19]&0x04))&&(!(bytes[18]&0x01)))

write(handle," НЕ ЗАПИСАНЫ \r\n",76);

if((bytes[19]&0x04)&&(bytes[18]&0x01))

write(handle," УНИЧТОЖЕНЫ \r\n",76);

if((bytes[19]&0x04)&&(!(bytes[18]&0x01)))

write(handle," СОХРАНЕНЫ \r\n",76);

if((bytes[18]&0x01)&&(!(bytes[19]&0x04)))

write(handle," РАЗРУШЕНЫ \r\n",76);

write(handle," УХХХХХ КХХХХ УХ \r\n",76);

if((!(bytes[21]&0x01))&&(!(bytes[22]&0x04)))

write(handle," НЕ ЗАПИСАНЫ \r\n",76);

if((bytes[21]&0x01)&&(bytes[22]&0x04))

write(handle," УНИЧТОЖЕНЫ \r\n",76);

if((bytes[22]&0x04)&&(!(bytes[21]&0x01)))

write(handle," СОХРАНЕНЫ \r\n",76);

if((bytes[21]&0x01)&&(!(bytes[22]&0x04)))

write(handle," РАЗРУШЕНЫ \r\n",76);

write(handle," УХХХХХ КХХХХ РХХ \r\n",76);

if((!(bytes[23]&0x02))&&(!(bytes[23]&0x04)))

write(handle," НЕ ЗАПИСАНЫ \r\n",76);

if((bytes[23]&0x02)&&(bytes[23]&0x04))

write(handle," УНИЧТОЖЕНЫ \r\n",76);

if((bytes[23]&0x02)&&(!(bytes[23]&0x04)))

write(handle," СОХРАНЕНЫ \r\n",76);

if((bytes[23]&0x04)&&(!(bytes[23]&0x02)))

write(handle," РАЗРУШЕНЫ \r\n",76);

write(handle," \r\n",76);

write(handle," НАВЯЗЫВАНИЕ ЛОЖНОЙ ИНФОРМАЦИИ \r\n",76);

write(handle," \r\n",76);

if(bytes[24]&0x02)

write(handle,"Есть НЛИ по массиву N1 шххххх СХХ \r\n",76);

if(bytes[24]&0x01)

write(handle,"Есть НЛИ по массиву N2 шххххх СХХ \r\n",76);

if(bytes[25]&0x04)

write(handle,"Есть НЛИ по массиву кхххх УХХ \r\n",76);

if(bytes[25]&0x01)

write(handle,"Есть НЛИ по массиву кхххх УХ \r\n",76);

if(bytes[26]&0x04)

write(handle,"Есть НЛИ по массиву кхххх РХХ \r\n",76);

if((!(bytes[24]&0x02))&&(!(bytes[24]&0x01))&&(!(bytes[25]&0x04))

&&(!(bytes[25]&0x02))&&(!(bytes[25]&0x01))&&(!(bytes[26]&0x04)))

write(handle,"НЛИ ОТСУТСТВУЕТ по всем массивам \r\n",76);

break;

case 3: // В

case 6: // КС1

case 14: // КС2

if(bytes[5]&0x04)

write(handle," КС НЕИСПРАВЕН \r\n",76);

else

write(handle," КС ИСПРАВЕН \r\n",76);

write(handle," \r\n",76);

if(bytes[19]&0x01)

write(handle,"Прием от АК1 трех кодограмм подряд с признаком К2 \r\n",76);

if(bytes[19]&0x02)

write(handle,"Прием от АК1 трех кодограмм подряд с ВПС=1010 \r\n",76);

if(bytes[19]&0x04)

write(handle,"Отсутствие информации от АК1 на входе ПУ более 12 сек \r\n",76);

if(bytes[18]&0x01)

write(handle,"Прием от АК1 трех кодограмм подряд с признаком получения УС \r\n",76);

if(bytes[18]&0x02)

write(handle,"Отсутствие связи в тракте от ЦКС1 до АК1 \r\n",76);

if(bytes[18]&0x04)

write(handle,"Отсутствие связи в тракте от ЦКС1 до ЦКС2 для АК1 \r\n",76);

if(bytes[17]&0x01)

write(handle,"Отсутствие связи в тракте от АК1 до ЦКС1 \r\n",76);

write(handle," \r\n",76);

if(bytes[23]&0x01)

write(handle,"Прием от АК3 трех кодограмм подряд с признаком К2 \r\n",76);

if(bytes[23]&0x02)

write(handle,"Прием от АК3 трех кодограмм подряд с ВПС=1010 \r\n",76);

if(bytes[23]&0x04)

write(handle,"Отсутствие информации от АК3 на входе ПУ более 12 сек \r\n",76);

if(bytes[22]&0x01)

write(handle,"Прием от АК3 трех кодограмм подряд с признаком получения УС \r\n",76);

if(bytes[22]&0x02)

write(handle,"Отсутствие связи в тракте от ЦКС1 до АК3 \r\n",76);

if(bytes[22]&0x04)

write(handle,"Отсутствие связи в тракте от ЦКС1 до ЦКС2 для АК3 \r\n",76);

if(bytes[21]&0x01)

write(handle,"Отсутствие связи в тракте от АК3 до ЦКС1 \r\n",76);

write(handle," \r\n",76);

if(bytes[26]&0x01)

write(handle,"Прием от АК6 трех кодограмм подряд с признаком К2 \r\n",76);

if(bytes[26]&0x02)

write(handle,"Прием от АК6 трех кодограмм подряд с ВПС=1010 \r\n",76);

if(bytes[26]&0x04)

write(handle,"Отсутствие информации от АК6 на входе ПУ более 12 сек \r\n",76);

if(bytes[25]&0x01)

write(handle,"Прием от АК6 трех кодограмм подряд с признаком получения УС \r\n",76);

if(bytes[25]&0x02)

write(handle,"Отсутствие связи в тракте от ЦКС1 до АК6 \r\n",76);

if(bytes[25]&0x04)

write(handle,"Отсутствие связи в тракте от ЦКС1 до ЦКС2 для АК6 \r\n",76);

if(bytes[24]&0x01)

write(handle,"Отсутствие связи в тракте от АК6 до ЦКС1 \r\n",76);

write(handle," \r\n",76);

if(bytes[16]&0x01)

write(handle,"Прием от ВПУ трех кодограмм подряд с признаком К2 \r\n",76);

if(bytes[16]&0x02)

write(handle,"Прием от ВПУ трех кодограмм подряд с ВПС=1010 \r\n",76);

if(bytes[16]&0x04)

write(handle,"Отсутствие информации от ВПУ на входе ПУ более 12 сек \r\n",76);

if(bytes[15]&0x01)

write(handle,"Прием от АК6 трех кодограмм подряд с признаком получения УС \r\n",76);

if(bytes[15]&0x02)

write(handle,"Отсутствие связи в тракте от ЦКС1 до ВПУ \r\n",76);

if(bytes[15]&0x04)

write(handle,"Отсутствие связи в тракте от ЦКС1 до ЦКС2 для ВПУ \r\n",76);

if(bytes[14]&0x01)

write(handle,"Отсутствие связи в тракте от ВПУ до ЦКС1 \r\n",76);

write(handle," \r\n",76);

if(bytes[17]&0x04)

write(handle,"Отсутствие связи в тракте от ЦКС1 до ПУ \r\n",76);

write(handle," \r\n",76);

if(bytes[10]&0x02)

write(handle,"Отсутствие приема кодограмм в заданный интервал времени \r\n",76);

write(handle," \r\n",76);

if((bytes[12]&0x07)&&(!(bytes[11]&0x07)))

write(handle,"Прием кодограмм с признаком отсутствия связи от ПУ до М486 \r\n",76);

if((bytes[11]&0x07)&&(!(bytes[12]&0x07)))

{

write(handle,"Прием кодограмм с признаком искажения информации от ЦКС до М486 и/или \r\n",76);

write(handle,"прием кодограмм с признаком отсутствия импульса БИ \r\n",76);

}

if((bytes[11]&0x07)&&(bytes[12]&0x07))

{

write(handle,"Прием кодограмм с признаком отсутствия связи от ПУ до М486 и/или \r\n",76);

write(handle,"прием кодограмм с признаком искажения информации от ЦКС до М486 и/или \r\n",76);

write(handle,"прием кодограмм с признаком отсутствия импульса БИ \r\n",76);

}

break;

case 2: // РМ-02

write(handle," \r\n",76);

if(bytes[5]&0x01)

write(handle,"АРМ ЗАБЛОКИРОВАНО по ФК оператором \r\n",76);

write(handle," \r\n",76);

if(bytes[5]&0x04)

write(handle,"НЕТ СВЯЗИ МЕЖДУ ПЭВМ1 и ВК \r\n",76);

if(bytes[4]&0x02)

write(handle,"Нет связи с ВК по одной из линий связи ЛС1 или ЛС3 \r\n",76);

if(bytes[3]&0x04)

write(handle,"Нет связи с ВК по линии связи ЛС1 \r\n",76);

if(bytes[2]&0x02)

write(handle,"Нет связи с ВК по линии связи ЛС3 \r\n",76);

break;

case 10: // РМ-10

write(handle," \r\n",76);

if(bytes[5]&0x01)

write(handle,"АРМ ЗАБЛОКИРОВАНО по ФК оператором \r\n",76);

write(handle," \r\n",76);

if(bytes[5]&0x04)

write(handle,"НЕТ СВЯЗИ МЕЖДУ ПЭВМ2 и ВК \r\n",76);

if(bytes[4]&0x02)

write(handle,"Нет связи с ВК по одной из линий связи ЛС2 или ЛС4 \r\n",76);

if(bytes[2]&0x01)

write(handle,"Нет связи с ВК по линии связи ЛС2 \r\n",76);

if(bytes[2]&0x04)

write(handle,"Нет связи с ВК по линии связи ЛС4 \r\n",76);

break;

case 5: // РМ05Г

case 13: // РМ13П

if(bytes[19]&0x01)

write(handle,"ОСНОВНОЙ АРМ - РМ-13П \r\n",76);

else

write(handle,"ОСНОВНОЙ АРМ - РМ-05Г \r\n",76);

write(handle," \r\n",76);

if(bytes[5]&0x04)

write(handle," АРМ НЕИСПРАВЕН \r\n",76);

else

write(handle," АРМ ИСПРАВЕН \r\n",76);

write(handle," \r\n",76);

if(bytes[16]&0x02)

write(handle,"Основное АРМ ИСПРАВНО \r\n",76);

if(bytes[16]&0x01)

write(handle,"Основное АРМ НЕИСПРАВНО \r\n",76);

if(bytes[16]&0x04)

write(handle,"Основное АРМ ЗАБЛОКИРОВАНО \r\n",76);

if(bytes[15]&0x01)

write(handle,"Основное АРМ РАЗБЛОКИРОВАНО \r\n",76);

if(bytes[19]&0x04)

write(handle,"Резервное АРМ ИСПРАВНО \r\n",76);

if(bytes[19]&0x02)

write(handle,"Резервное АРМ НЕИСПРАВНО \r\n",76);

if(bytes[18]&0x01)

write(handle,"Резервное АРМ ЗАБЛОКИРОВАНО \r\n",76);

if(bytes[18]&0x02)

write(handle,"Резервное АРМ РАЗБЛОКИРОВАНО \r\n",76);

if(bytes[5]&0x01)

write(handle,"АРМ ЗАБЛОКИРОВАНО по ФК оператором \r\n",76);

write(handle," \r\n",76);

if(bytes[4]&0x02)

write(handle,"Неисправна одна из трех линий магистрали обмена \r\n",76);

else

write(handle,"Все три линии магистрали обмена исправны \r\n",76);

if(bytes[12]&0x04)

write(handle,"Неисправна 1-я линия магистрали приема \r\n",76);

if(bytes[12]&0x02)

write(handle,"Неисправна 2-я линия магистрали приема \r\n",76);

if(bytes[12]&0x01)

write(handle,"Неисправна 3-я линия магистрали приема \r\n",76);

if(bytes[10]&0x02)

write(handle,"Отсутствует прием информации в ВМ от данного АРМ-1 \r\n",76);

break;

case 7: // ВМ

if(bytes[5]&0x02)

write(handle,"Авария электропитания в одном или нескольких каналах ШП-614 \r\n",76);

if(bytes[4]&0x04)

write(handle,"Неисправность 1 канала ШП-614 \r\n",76);

if(bytes[3]&0x01)

write(handle,"Неисправность 2 канала ШП-614 \r\n",76);

if(bytes[3]&0x02)

write(handle,"Неисправность 3 канала ШП-614 \r\n",76);

if(bytes[3]&0x04)

write(handle,"Произошел ПРОГРАММНЫЙ СБОЙ \r\n",76);

if(bytes[2]&0x01)

write(handle,"Авария питания 1 канала \r\n",76);

if(bytes[2]&0x02)

write(handle,"Авария питания 1 канала \r\n",76);

if(bytes[2]&0x04)

write(handle,"Авария питания 1 канала \r\n",76);

if(bytes[0]&0x01)

write(handle,"Нарушена целостность программного изделия-кассеты КП-610 - \r\n",76);

write(handle,"подсчитанная контрольная сумма не совпадает с эталоном \r\n",76);

break;

case 16: // ВУ16

case 17: // ВУ17

case 18: // ВУ18

case 19: // ВУ19

if(bytes[5]&0x01)

write(handle,"ПУ заблокировано оператором по ФК \r\n",76);

if(bytes[5]&0x04)

write(handle,"Нажата КНОПКА ОБНАРУЖЕНИЯ НЕИСПРАВНОСТИ \r\n",76);

break;

case 15: // АС

//Подкорректировать после согласования

//байта состояния

if(bytes[5]&0x04)

write(handle,"АРМ-РД НЕИСПРАВЕН - не работают обе ПЭВМ \r\n",76);

if(bytes[4]&0x01)

write(handle,"АРМ-РД РАБОТОСПОСОБЕН - работает одна из двух ПЭВМ \r\n",76);

if(bytes[4]&0x02)

write(handle,"Нет связи хотя бы по одной из линий связи ЛС1,ЛС2,ЛС3,ЛС4 \r\n",76);

if(bytes[4]&0x04)

write(handle,"Неисправен КСП-0 \r\n",76);

if(bytes[3]&0x01)

write(handle,"Неисправен КСП-1 \r\n",76);

if(bytes[3]&0x02)

write(handle,"Неисправен КСП-2 \r\n",76);

if(bytes[3]&0x04)

write(handle,"Нет связи по линии связи ЛС1 \r\n",76);

if(bytes[2]&0x01)

write(handle,"Нет связи по линии связи ЛС2 \r\n",76);

if(bytes[2]&0x02)

write(handle,"Нет связи по линии связи ЛС3 \r\n",76);

if(bytes[2]&0x04)

write(handle,"Нет связи по линии связи ЛС4 \r\n",76);

break;

}

}

// bs2_out.prj

// bs2_out.c

// main()

// выдача результатов запроса по 2-й форме байтов состояния на экран

// ( из файла ) или форматирование и постановка в очередь для выдачи

// на принтер

#include <dos.h>

#include "cxlkey.h"

#include "disp.h"

extern void resScr(void);

// выдача результатов запроса из файла на экран

extern void resPrn(void);

// выдача результатов запроса из файла на принтер

void main(int argc,char *argv[])

{

void z(void);

setkbloop(z);

if(argv[1][0]=='э') resScr();

else resPrn();

}

void z(void)

{

union REGS r;

r.h.ah=0;

int86(DISP,&r,&r);

}

#include <dos.h>

#include "cxlkey.h"

#include "disp.h"

extern void resScr(void);

// выдача результатов запроса из файла на экран

extern void resPrn(void);

// выдача результатов запроса из файла на принтер

void main(int argc,char *argv[])

{

void z(void);

setkbloop(z);

if(argv[1][0]=='э') resScr();

else resPrn();

}

void z(void)

{

union REGS r;

r.h.ah=0;

int86(DISP,&r,&r);

}

// inq_out.prj

// INQ_OUT.C

// main()

// выдача результатов запроса на экран ( из файла )

// или форматирование и постановка в очередь для выдачи на принтер

#include <string.h>

#include <process.h>

#include "cxlkey.h"

#include "cxldef.h"

extern void resScr(void);

// выдача результатов запроса из файла на экран

extern void resPrn(void);

// выдача результатов запроса из файла на принтер

void main(int argc,char *argv[])

{

void z(void);

setkbloop(z);

if(argv[1][0]=='э') resScr();

else resPrn();

}

#include <dos.h>

#include "disp.h"

void z(void)

{

union REGS r;

r.h.ah=0;

int86(DISP,&r,&r);

}

// inq_out.prj

// res_scr.C

// res_scr()

// выдача результатов запроса на экран ( из файла )

#include <stdio.h>

#include <string.h>

#include "cxlwin.h"

#include "cxlkey.h"

#include "cxlvid.h"

#define LEN 81

#define TXTATTR _CYAN

#define UP 0x4800

#define DOWN 0x5000

#define PGUP 0x4900

#define PGDOWN 0x5100

#define ESC 0x011b

void resScr(void)

{

FILE *f; // дескриптор файла результатов

int down; // номер текущей строки в файле

int ch; // код клавиши

int i;

char string[LEN];

int mwup; // количество строк над основным окном

// вывод на экран строки запроса и шапки таблицы

f=fopen("inquiry.res","r++");

fgets(string,LEN,f);

for(mwup=0;strncmp(string+3,"ДАТА",4);++mwup)

{

wopen(mwup,0,mwup,79,5,BLUE|_LGREY,BLUE|_LGREY);

wprintf("%.79s",string);

fgets(string,LEN,f);

}

wopen(mwup,0,mwup,79,5,YELLOW|_BLUE,YELLOW|_BLUE);

wprintf(" %.78s",string);

// основное окно

wopen(++mwup,0,25,79,5,LCYAN|_BLUE,TXTATTR);

//wshadow(LGREY);

// вывод результатов запроса из файла на экран

for(down=mwup;down<25 && fgets(string,LEN,f)!=NULL;++down)

wprints(down-mwup,1,TXTATTR,string);

hidecur();

// цикл просмотра результатов

while((ch=getxch())!=ESC)

switch(ch)

{

case UP: if(down<=25) break;

down--;

fseek(f,(long)(down-25+mwup)*LEN,0);

fgets(string,LEN,f);

wscroll(1,D_DOWN);

wprints(0,1,TXTATTR,string);

break;

case DOWN: if(fseek(f,(long)down*LEN,0)) break;

if(fgets(string,LEN,f)==NULL) break;

wscroll(1,D_UP);

wprints(24-mwup,1,TXTATTR,string);

down++;

break;

case PGUP: for(i=0;i<=24-mwup;++i)

{

if(down<=25) break;

down--;

fseek(f,(long)(down-25+mwup)*LEN,0);

fgets(string,LEN,f);

wscroll(1,D_DOWN);

wprints(0,1,TXTATTR,string);

}

break;

case PGDOWN: for(i=0;i<=24-mwup;++i)

{

if(fseek(f,(long)down*LEN,0)) break;

if(fgets(string,LEN,f)==NULL) break;

wscroll(1,D_UP);

wprints(24-mwup,1,TXTATTR,string);

down++;

}

break;

}

fclose(f);

wcloseall();

}

// bs2_out.prj

// res_scr_.c

// res_scr()

// выдача результатов запроса по 2-й форме байтов состояния на экран

// ( из файла )

#include <stdio.h>

#include <string.h>

#include "cxlwin.h"

#include "cxlkey.h"

#include "cxlvid.h"

#define LEN 100

#define TXTATTR _CYAN

#define UP 0x4800

#define DOWN 0x5000

#define PGUP 0x4900

#define PGDOWN 0x5100

#define RIGHT 0x4d00

#define LEFT 0x4b00

#define HOME 0x4700

#define END 0x4F00

#define ESC 0x011b

FILE *f; // дескриптор файла результатов

int down; // номер текущей строки в файле

char string[LEN];

int length; // длина строк в файле

int w1; // дескриптор окна

void screen_move(int right);

void resScr(void)

{

int right=0; // горизонтальное смещение

int ch; // код клавиши

int i;

// вывод на экран строки запроса и шапки таблицы

f=fopen("inquiry.res","r++");

wopen(0,0,0,79,5,BLUE|_LGREY,BLUE|_LGREY);

fgets(string,LEN,f);

wprints(0,1,BLUE|_LGREY,string);

w1=wopen(1,0,1,79,5,YELLOW|_BLUE,YELLOW|_BLUE);

fgets(string,LEN,f);

wprints(0,1,YELLOW|_BLUE,string);

length=strlen(string)+1;

// основное окно

wopen(2,0,25,79,5,LCYAN|_BLUE,TXTATTR);

hidecur();

//wshadow(LGREY);

// вывод результатов запроса из файла на экран

for(down=2;down<25 && fgets(string,LEN,f)!=NULL;++down)

{

string[right+80]='\0';

wprints(down-2,1,TXTATTR,string);

}

// цикл просмотра результатов

while((ch=getxch())!=ESC)

switch(ch)

{

case UP: if(down<=25) break;

down--;

fseek(f,(long)(down-23)*length,0);

fgets(string,LEN,f);

string[right+79]='\0';

wscroll(1,D_DOWN);

wprints(0,1,TXTATTR,string+right);

break;

case DOWN: if(fseek(f,(long)down*length,0)) break;

if(fgets(string,LEN,f)==NULL) break;

wscroll(1,D_UP);

string[right+80]='\0';

wprintc(22,0,TXTATTR,' ');

down++;

break;

case PGUP: for(i=0;i<=22;++i)

{

if(down<=25) break;

down--;

fseek(f,(long)(down-23)*length,0);

fgets(string,LEN,f);

wscroll(1,D_DOWN);

string[right+80]='\0';

wprints(0,1,TXTATTR,string+right);

wprintc(1,0,TXTATTR,' ');

}

break;

case PGDOWN: for(i=0;i<=22;++i)

{

if(fseek(f,(long)down*length,0)) break;

if(fgets(string,LEN,f)==NULL) break;

wscroll(1,D_UP);

string[right+80]='\0';

wprints(22,1,TXTATTR,string+right);

down++;

}

break;

case LEFT: if(right) screen_move(--right);break;

case RIGHT: if(right+82<length) screen_move(++right);break;

case END: if(right+82<length) screen_move(right=length-82);break;

case HOME: if(right) screen_move(right=0);break;

}

fclose(f);

wcloseall();

}

// горизонтальная прокрутка

void screen_move(int right)

{

int i;

fseek(f,length,0);

fgets(string,LEN,f);

string[right+80]='\0';

wwprints(w1,0,1,YELLOW|_BLUE,string+right);

if(down-22>2) fseek(f,(long)(down-22)*length,0);

for(i=0;i<=22 && fgets(string,length,f)!=NULL;++i)

{

string[right+80]='\0';

wprints(i,1,TXTATTR,string+right);

}

}

#include <stdio.h>

#include <string.h>

#include "cxlwin.h"

#include "cxlkey.h"

#include "cxlvid.h"

#define LEN 80

#define ESC 0x011b

FILE *f; // дескриптор файла результатов

char string[LEN]; // буфер для чтения из файла

void resScr(void)

{

int i;

int maxlen; // максимальная длина строки в файле результатов запроса

int startpos; // столбец окна с которого печатается текст

// открытие файла результатов запроса и

// определение размера самой длинной строки в этом файле

f=fopen("inquiry.res","r++");

for(maxlen=0,i=0;fgets(string,LEN,f)!=NULL;++i)

if(strlen(string)>maxlen) maxlen=strlen(string);

fseek(f,0,0);

// черный фон

wopen(0,0,24,79,5,0,0);

// открытие окна

wopen((20-i)/2,5,(20-i)/2+i+2,75,1,YELLOW|_BLUE,_CYAN);

hidecur();

// чтение типа устройства и его использование в качестве титула окна

fgets(string+1,LEN,f);

string[0]=' ';

for(i=2;i<=6;++i)

if(string[i]=='\r' || string[i]=='\n') string[i]=' ';

wtitle(string,TCENTER,_LGREY);

// вывод результатов запроса из файла в окно

startpos=(70-maxlen)/2;

for(i=2;fgets(string,LEN,f)!=NULL;++i)

{

wgotoxy(i,startpos);

wprintf("%s",string);

}

// окно находится на экране пока не будет нажато ESC

while(getxch()!=ESC);

fclose(f);

wcloseall();

}

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.