/* ARH.H */ /* ДАННЫЕ ПО АРХИВАЦИИ */ #define tsec ttm->tm_sec #define tmin ttm->tm_min #define thour ttm->tm_hour #define tday ttm->tm_mday #define tyday ttm->tm_yday #define tyear ttm->tm_year #define tmon ttm->tm_mon #define tsec1 ttm1->tm_sec #define tmin1 ttm1->tm_min #define thour1 ttm1->tm_hour #define tday1 ttm1->tm_mday #define tmon1 ttm1->tm_mon #define Dl_nr 1000 /* длина архива нарушений */ #define Dl_sb 1000 /* длина архива событий */ #define Y_T 100 /* веpхняя и */ #define Y_B 301 /* нижняя гpаницы эpкана */ typedef struct /* справочник */ { long kbl; word_s kpar,dlbl; long tbl; } cpr; typedef struct { /* буфер события */ long time; word_s zn; } s_sob; typedef struct /* запись каталога */ { long time; word_s nz; } s_kat; typedef struct /* имя архива */ { word_s hn; char ifl[20]; } arh; typedef struct /* запись архива действий оператора */ { long time; char soo[15]; } sd_op; typedef struct /* значение и достоверность в кодах */ { word count:1; word zn:15; } m_kod; typedef struct /* */ { char ck; } m_ck; typedef struct /* значение и достоверность в физ.уд. */ { dword valid; dword count; float zn; } m_texn; typedef struct /* вpемя pаботы и пpостоя */ { long time_j; long time_s; } time_d; typedef struct /* группы нарушений */ { char cipher[9]; /* шифр группы */ char ciph_gl[9]; /* шифр ведущего сигнала */ word_s n_con; /* номер контроллера */ word_s n_gl; /* номер ведущего сигнала */ word_s n_1d; /* номер в списке дискретых */ word_s kol_d; /* количество дискретных */ char ciph_d[8][10]; /* шифры дискретных */ byte n_con_d[8]; /* номера контроллеров дискретных */ word_s n_d[8]; /* номера паспортов дискретных */ word_s kol_a; /* количество аналоговых */ char ciph_a[8][10]; /* шифры аналоговых */ byte n_con_a[8]; /* номера контроллеров аналоговых */ word_s n_a[8]; /* номера паспортов аналоговых */ } gr_nr; typedef struct { long time; word_s n_gr; } s_bl; typedef struct /* аpхив наpушений */ { long time; /* вpемя наpушения */ char cipher[10]; /* шифp паpаметpа */ char value[9]; /* зн-ние паpаметpа */ char unit[10]; /* ед.изм. */ byte tip; /* пpизнак наpушения */ } alarm; extern struct tm *ttm,*ttm1; // struct tm s_ttm,s_ttm1; #define REZ_MG 3 /* резерв мгновенных и суточных */ #define REZ_MC 0 /* резерв месячных */ #define dlarhm 2 /* длина архива мгновенных */ #define intu 5 // период усреднения (мин) #define STROKA_IND_SM 1 /* строка в матрице индексов смен, */ /* заполняется на НОВЫЙ ГОД....... */ //bufferptr buffer1; /* буфер приема действий оператора */ extern tcbptr z_a_an, /* задача архивации */ z_a_nr, z_a_sb; extern resourceptr r_nr; /* ресурс файла архива нарушений */ extern resourceptr r_sb; /* ресурс файла архива событий */ extern resourceptr r_mgn; /* ресурс файла архива мгновенных */ extern resourceptr r_cut; /* ресурс файла архива суточных */ extern resourceptr r_mec; /* ресурс файла архива месячных */ extern resourceptr r_eq; /* pесуpс файла аpхива обоpудования */ #define t_outs 17 /* тайм-аут буферирования событий */ #define t_nr 5 /* период архивации нарушений */ void Arh_an(void); void Arh_nr(void); void Arh_sb(void); extern cpr mg,cu,mc,m_nr,m_sb; extern arh mgn,*cut,*mec; extern word_s N_gr_nr; /* количество групп нарушений */ extern gr_nr * gr_nr_p; /* указатель на описатель групп нарушений */ extern word_s cod_str; /* код клавиши */ //------------------------------ extern void r_read (word_s hn,char *buf,word dl, long ots,word_s orig,resourceptr res); extern void nom_gr_sob(); extern void o_kz_al(char *kz); extern void r_write(word_s hn,char *buf,word_s dl,long ots,word_s orig, char *ifl,resourceptr res); extern void o_kz_f(word_s kz,char *ifl); extern word_s tekden(word_s god,word_s den); extern word_s tekmec(word_s god,word_s mes); extern word_s texnolog_magazin(word_s nscr);