ГНЦ ИФВЭ
ОУ У-70
Система Управления комплекса У-70  

Программирование на Верхнем Уровне СУ

Библиотеки алгоритмов СУ

Представленные здесь процедуры обеспечивают запись в файл протокола работы ПП. Они позволяют вести отладку ПП с учетом следующих особенностей работы программного обеспечения Верхнего уровня СУ:
Загрузка ПП на Рабочих Станциях СУ производится специальной постоянно работающей программой-Загрузчиком, которая является процессом, не управляемым с терминала. Следовательно, ПП не имеет возможности использовать стандартный поток stdout для вывода данных на терминал.
Одна и та же ПП может быть загружена для работы, возможно, в нескольких экземплярах, но обязательно с разными параметрами в командной строке.
ПП может работать как в непрерывном цикле, так и с загрузкой в определенные моменты времени.
ПП могут содержать ошибки "замедленного действия", обнаружить которые можно только при длительном наблюдении за работой ПП.
Процедуры обеспечивают вывод текстовых строк из ПП в одноименный файл с расширением ".his". Файл записывается в рабочий каталог СУ и доступен для просмотра средствами UNIX в любое время. Каждая запись в файл сопровождается автоматически формируемым ключом для идентификации варианта загрузки ПП и текущим временем. Если файл содержит 1000 записей, он архивируется утилитой zip в одноименный файл с расширением ".zip" и создается заново.
Процедуры написаны на языке программирования "С" и объединены в библиотеку "/prg/prg.a", имеющей заголовок "/prg/prg.h". Эта библиотека не включает процедуры для работы с БД ССУДА. Если ПП работает с БД ССУДА, то следует использовать библиотеку "/prg/prglib.a", в которую также включены эти процедуры.
PrgDB_cmtSet - установка семафора записи в файл-протокол
PrgDB_cmt - проверка семафора записи в файл-протокол
PrgDB_ini - инициализировать файл-протокол
PrgFile_GetName - получить имя файла-протокола
PrgFile_WriteAlarm - сделать запись в файл-протокол
Пример 1 - компиляция и сборка ПП
Пример 2 - компиляция и сборка ПП

int PrgDB_cmtSet (int n);

Установить семафор записи в файл-протокол:

n=0 - запретить запись в файл-протокол,
n=1 - разрешить запись в файл-протокол.
int PrgDB_cmt (void);

Процедура-функция дает значение семафора записи в файл-протокол.

int PrgDB_ini (char *name, char *key);

Процедура-функция фиксирует имя программы name и ключ key для идентификации записей именно из данной ПП и делает первую запись в файл-протокол. Идентификация необходима, т.к.  одна и та же ПП  может быть загружена в память в нескольких экземплярах, но с разными параметрами вызова в командной строке.

char *PrgFile_GetName (void);

Процедура-функция возвращает имя файла-протокола, если он был определен посредством процедуры PrgDB_ini, или NULL, если файл-протокол не был определен.

int PrgFile_WriteAlarm (char *fmt, ...);

Процедура-функция делает запись в файл-протокол, если он был определен посредством процедуры PrgDB_ini. Параметры записываются так же, как для оператора printf.

Пример 1

Компиляция и сборка программы (файл name.c), не использующей процедуры Надстройки над БД ССУДА:

cc name.c /prg/prg.a
Пример 2

Компиляция и сборка программы (файл name.c), использующей процедуры Надстройки над БД ССУДА:

cc name.c /prg/prglib.a /usr/usera/voevodin/rt-data/ccydalib/ccydalib.a

Автор © Клименков Е.В.