Автоматизированное рабочее место регистрации и документирования комплекса средств автоматизации
Анализ концепции построения комплекса средств автоматизации. Разработка программы с целью формирования и обработки запросов для каждой из 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
Подобные документы
Анализ концепции построения комплекса средств автоматизации. Функционирование в рамках автоматизированной системы. Структура базы данных. Характеристика помещения и факторы, действующие на оператора в процессе его труда. Гражданская оборона, эргономика.
реферат [374,1 K], добавлен 07.11.2009Проект автоматизированного рабочего места для работы с клиентами и использования клиентских баз данных. Регистрация данных о состоянии объекта управления. Обеспечение взаимодействия человека с системой. Доступ к результатам регистрации информации.
курсовая работа [1,7 M], добавлен 02.10.2010База данных как основа автоматизации. Разработка, описание и реализация программного обеспечения "Точность и правильность методов и результатов измерений для центральной заводской лаборатории ОАО "Акрилат". Листинг, исходные коды программы и базы данных.
дипломная работа [1,0 M], добавлен 23.06.2012Задача накопления, обработки и распространения информации. Характеристика систем управления. Схема комплекса средств автоматизации. Функционирование АСУ комплекса средств автоматизации. Требования, предъявляемые к АРМ РД. Структура базы данных.
реферат [29,1 K], добавлен 12.06.2009Особенности автоматизации работы фитнес-клуба. Инфологическое и логическое проектирование. Обеспечение получения информации администратором фитнес-клуба. Выбор средств создания интерфейса, программирование работы приложения в среде Borland Delphi 7.
дипломная работа [2,4 M], добавлен 04.07.2013Суть автоматизации малого бизнеса, альтернативы выбора ее средств. Цели, функции, свойства автоматизированной системы менеджера. Технические средства в разрабатываемом программном комплексе. Основные функции операционной системы, требования к ней.
контрольная работа [219,4 K], добавлен 17.09.2013Общая характеристика предприятия, анализ существующей системы управления. Проект программы "Автоматизированное рабочее место кассира в отделе контроля и сбора выручки", в современной объектно-ориентированной интерактивной среде Delphi 7 фирмы Borland.
дипломная работа [771,5 K], добавлен 10.10.2011Программный комплекс автоматизации телефонных соединений. Разработка графического интерфейса пользователя, технологической инструкции для пользователя программы, контроля и аттестации программ. Расчет затрат при автоматизации телефонных соединений.
дипломная работа [4,7 M], добавлен 15.10.2013Анализ технического задания, разработка программных модулей, средств тестирования и руководство пользователя. Масштабируемые средства для построения баз данных. Расчет эффективности программы "Автоматизированное рабочее место специалиста ООО "Бравида".
дипломная работа [1,9 M], добавлен 24.07.2014Разработка программы тестирования для выявления акцентуаций типа человека в среде Delphi и Microsoft Access. Проектирование алгоритма реализации модели. Описание программы и модулей, руководство пользователя. Меры обеспечения информационной безопасности.
дипломная работа [2,7 M], добавлен 15.06.2012