Xreferat.com » Рефераты по информатике и программированию » Автоматизированное рабочее место регистрации и документирования комплекса средств автоматизации

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

из массивов rec [i] равна количеству искомых значений по i-му полю таблицы (то есть == х [i]). В каждый буфер заносится одно искомое значение (например, в rec [3] [0] - заносится первое искомое значение по 3-му полю таблицы).

Каждому буферу (rec [i] [j]) соответствует элемент массива массивов z (z [i] [j]), в котором хранится текущий номер

найденной записи по данному буферу (то есть записи, в соответствующем поле которой находится значение, равное значению, занесенному в буфер).

В массиве s хранятся текущие номера найденных строк по каждому полю (s [i] минимум из всех z [i] [j] по этому i).

max - текущий номер записи при поиске (то есть записи с номерами меньше max уже просмотрены).


*/

RECORDHANDLE **rec;

int i,j,k;

int yes;

char *c1,*c2;

char arg [10] ;

RECORDNUMBER *s,**z,max=low;

int a;

// выделение памяти под массивы rec,z,s

// и открытие буферов

s= (long *) calloc (nflds,sizeof (RECORDNUMBER));

rec= (unsigned int **) calloc (nflds,sizeof (RECORDHANDLE *));

z= (long **) calloc (nflds,sizeof (RECORDNUMBER *));

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

if (x [i])

{

rec [i] = (unsigned int *) calloc (x [i],sizeof (RECORDHANDLE));

z [i] = (long *) calloc (x [i],sizeof (RECORDNUMBER));

for (j=0; j<x [i] ; ++j) PXRecBufOpen (tblh,rec [i] +j);

}

// заносим в буфера значения из args

// (значения для одного поля разделены в args запятыми)

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

{

if (! x [i]) continue;

if (x [i] ==1)

PXPutAlpha (rec [i] [0], i,args [i-3]);

else

{

c1=args [i-3] ;

for (k=0; k<x [i] ; ++k)

{

c2=arg;

while (*c1! =',' && *c1! ='') *c2++=*c1++;

*c2=''; ++c1;

PXPutAlpha (rec [i] [k], i,arg);

}

}

}

// цикл поиска

while (1) {

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

{

// 1) Для каждого буфера находим запись с значением равным занесенному в этот буфер и с номером >= max.

// Найденные номера заносим в соотвествующие z [i] [k]

// Если искомых записей по данному буферу нет, заносим в z [i] [k] номер, превышающий верхнюю

// границу интервала поиска

if (! x [i]) continue;

for (k=0; k<x [i] ; ++k)

{

if (max==1)

{

if (PXSrchFld (tblh,rec [i] [k], i,SEARCHFIRST)) z [i] [k] =high+1;

else PXRecNum (tblh,&z [i] [k]);

}

else

if (z [i] [k] <max)

{

PXRecGoto (tblh,max-1);

if (PXSrchFld (tblh,rec [i] [k], i,SEARCHNEXT)) z [i] [k] =high+1;

else PXRecNum (tblh,&z [i] [k]);

}

}

// 2) Для каждого поля определяем значение s [i]

// Если хотя бы по одному полю произошел выход за пределы интервала поиска, значит поиск закончен

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_INQbs2_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 rn");

break;

case 1: // ШП-01

case 9: // ШП-09

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

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

break;

case 4: // ШК-04

case 12: // ШК-12

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

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

break;

case 2: // РМ-02

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

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

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

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

break;

case 10: // РМ-10

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

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

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

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

break;

case 5: // РМ05Г

case 13: // РМ13П

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

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

break;

case 3: // В

case 6: // КС1

case 14: // КС2

case 15: // АС

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

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

break;

case 7: // ВМ

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

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

break;

case 16: // ВУ16

case 17: // ВУ17

case 18: // ВУ18

case 19: // ВУ19

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

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

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,"rn");

_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_INQform2. 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_INQinterval. 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_INQrecprint ()

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

#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] =='') string [i] =' ';

strcpy (string+length-2,"rn");

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

PXRecBufClose (rech);

free (bytes);

free (string);

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

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

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

// r. h. ah=1;

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

}

// bs2_inq. prj

// BS2_INQsearch. 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_INQbs3_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,"rn",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_INQform3. 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," Шкаф НЕИСПРАВЕН rn",76);

else

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

if (bytes [4] &0x02)

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

break;

case 8: // ШЭ-08

if (bytes [5] &0x04)

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

else

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

if (bytes [4] &0x02)

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

break;

case 1: // ШП-01

case 9: // ШП-09

if (bytes [5] &0x04)

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

else

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

break;

case 4: // ШК-04

case 12: // ШК-12

if (bytes [0] &0x01)

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

else

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

write (handle," rn",76);

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

write (handle," rn",76);

if (bytes [5] &0x01)

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

if (bytes [5] &0x02)

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

if (bytes [5] &0x04)

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

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

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

write (handle," rn",76);

if (bytes [4] &0x01)

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

if (bytes [4] &0x02)

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

if (bytes [4] &0x04)

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

if (bytes [3] &0x01)

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

if (bytes [3] &0x02)

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

if (bytes [3] &0x04)

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

if (bytes [2] &0x01)

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

if (bytes [2] &0x02)

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

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

}

if (bytes [2] &0x04)

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

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

}

if (bytes [1] &0x01)

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

if (bytes [1] &0x02)

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

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

}

if (bytes [1] &0x04)

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

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

}

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

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

if (bytes [12] &0x01)

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

if (bytes [12] &0x02)

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

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

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

if (bytes [12] &0x04)

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

if (bytes [11] &0x01)

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

if ( (!

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: