|
|
Программирование на Верхнем Уровне СУ
Библиотеки алгоритмов СУ
Здесь представлены процедуры,
реализующие некоторые правила работы с
данными в СУ. Процедуры включены в
библиотеку prglib.a, которая имеет файл-заголовок
prglib.h . Все запросы к БД ССУДА
выполняются посредством процедур Надстройки над БД.
|
|
PrgSem_SetResult -
установить семафоры
физического или технологического
параметра
|
|
PrgDB_PASS
(устаревший вариант) - чтение и запись семафоров физических или технологических
параметров
|
|
PrgDB_PD
(устаревший вариант)
- чтение и запись значений физических параметров
|
|
PrgDB_TD
(устаревший вариант)
- чтение и запись значений технологических параметров
|
|
PrgDBa_PDsave
- запись значений
измеренных физических параметров в "горячую"
копию и в статистику измерений
|
|
|
PrgDB_PDsave
(устаревший вариант)
|
|
PrgDBa_TDsave
- запись значений измеренных технологических параметров в "горячую"
копию и в статистику измерений
|
|
|
PrgDB_TDsave
(устаревший вариант)
|
|
PrgIni_StatPlane
- изменение значения счетчика записей измерений
|
|
PrgIni_GetStatPlane
- получение номера плоскости
таблицы для статистичеких значений
параметров
|
|
PrgArc_GetName -
чтение полного имени архивной записи
|
|
PrgSample_Make
- инициализация в памяти полного имени архивной записи
|
|
PrgSample_End -
удалить из памяти полное имя архивной записи
|
|
PrgSample_GetName
- получить строку из полного имени архивной записи
|
|
PrgSample_GetLength
- получить длину строки из полного имени архивной записи
|
|
Пример - компиляция и сборка ПП
|
void PrgSem_SetResult
(unsigned short int code, unsigned short int *sem1, unsigned short int
*sem2);
|
Установить семафоры
физического или технологического параметра:
Алгоритм:
if (!code)then sem1=(++sem1%255); else sem1=code; sem2=0;
|
Устаревший вариант:
int PrgDB_PASS (int fl_op, short int
nplane, short int natt, short int tup1, short int ntup,
void *buf, int buflen, short int *id, char *name);
|
Функция чтения и записи значения
одного из семафоров для нескольких
физических или технологических
параметров, таблица типа PASSPORT:
|
fl_op - семафор операции:
|
|
|
fl_op=0 - чтение,
|
|
|
fl_op=1 - запись;
|
|
nplane - номер плоскости таблицы;
|
|
natt - номер семафора;
|
|
tup1 - начальный номер строки
таблицы;
|
|
tup2 - конечный номер строки
таблицы;
|
|
buf - адрес буфера для значений семафора;
|
|
buflen - размер буфера в байтах;
|
|
id - идентификатор таблицы,
определенный посредством функций PrgDB_open
или PrgDB_openLocal;
|
|
name - имя таблицы.
|
Возвращает 0 в случае успеха. Если была
ошибка, то возвращает 1 и код
ошибки в переменной prg_err .
|
Устаревший вариант:
int PrgDB_PD int fl_op, short int
nplane, short int tup1, short int ntup, short int att1, short int natt, void
*buf, int buflen, short int *id, char *name);
|
Функция чтения и записи значений
нескольких физических параметров,
таблица типа DATA:
|
fl_op - семафор операции:
|
|
|
fl_op=0 - чтение,
|
|
|
fl_op=1 - запись;
|
|
nplane - номер плоскости таблицы;
|
|
tup1 - начальный номер строки
таблицы;
|
|
ntup - число строк таблицы;
|
|
att1 - начальный номер столбца
таблицы;
|
|
natt - число столбцов таблицы;
|
|
buf - адрес буфера для значений семафора;
|
|
buflen - размер буфера в байтах;
|
|
id - идентификатор таблицы,
определенный посредством функций PrgDB_open
или PrgDB_openLocal;
|
|
name - имя таблицы.
|
Возвращает 0 в случае успеха. Если была
ошибка, то возвращает 1 и код
ошибки в переменной prg_err .
|
Устаревший вариант:
int PrgDB_TD ( int fl_op, short int
nplane, short int tup1, short int
ntup, short int att1, short int natt, void
*buf, int buflen, short int *id, char
*name);
|
Функция чтения и записи значений
нескольких технологических параметров,
таблица типа DATA:
|
fl_op - семафор операции:
|
|
|
fl_op=0 - чтение,
|
|
|
fl_op=1 - запись;
|
|
nplane - номер плоскости таблицы;
|
|
tup1 - начальный номер строки
таблицы;
|
|
ntup - число строк таблицы;
|
|
att1 - начальный номер столбца
таблицы;
|
|
natt - число столбцов таблицы;
|
|
buf - адрес буфера для значений семафора;
|
|
buflen - размер буфера в байтах;
|
|
id - идентификатор таблицы,
определенный посредством функций PrgDB_open
или PrgDB_openLocal;
|
|
name - имя таблицы.
|
Возвращает 0 в случае успеха. Если была
ошибка, то возвращает 1 и код
ошибки в переменной prg_err .
|
int PrgDBa_PDsave (short int tup1, short int
ntup, short int att1, short int natt, void *buf, int buflen, short int *idn);
|
Функция записи значений нескольких
измеренных физических параметров в "горячую"
копию и в статистику измерений, таблица
типа DATA:
|
tup1 - начальный номер строки
таблицы;
|
|
ntup - число строк таблицы;
|
|
att1 - начальный номер столбца
таблицы;
|
|
natt - число столбцов таблицы;
|
|
buf - адрес буфера для значений
семафора;
|
|
buflen - размер буфера в байтах;
|
|
idn - номер структуры, в которой
определена таблица посредством функций PrgDBa_open
или PrgDBa_openLocal.
|
Возвращает 0 в случае успеха. Если была
ошибка, то возвращает 1 и код
ошибки в переменной prg_err .
|
Устаревший вариант:
int PrgDB_PDsave
(short int tup1, short int ntup, short int att1, short int natt, void
*buf, int buflen, short int *id, char *name);
|
Функция записи значений нескольких
измеренных физических параметров в "горячую"
копию и в статистику измерений, таблица
типа DATA. Отличие от нового варианта:
Возвращает 0 в случае успеха. Если была
ошибка, то возвращает 1 и код
ошибки в переменной prg_err .
|
int PrgDBa_TDsave (short int tup1,
short int ntup, short int att1, short int natt, void *buf, int buflen, short int
*idn);
|
Функция записи значений нескольких
измеренных технологических параметров в
"горячую" копию и в статистику
измерений, таблица типа DATA на диске
Рабочей Станции:
|
tup1 - начальный номер строки
таблицы;
|
|
ntup - число строк таблицы;
|
|
att1 - начальный номер столбца
таблицы;
|
|
natt - число столбцов таблицы;
|
|
buf - адрес буфера для значений
семафора;
|
|
buflen - размер буфера в байтах;
|
|
idn - номер структуры, в которой
определена таблица посредством функций PrgDBa_open
или PrgDBa_openLocal.
|
Возвращает 0 в случае успеха. Если была
ошибка, то возвращает 1 и код
ошибки в переменной prg_err .
|
Устаревший вариант:
int PrgDB_TDsave
(short int tup1, short int ntup, short int att1, short int natt, void
*buf, int buflen, short int *id, char *name);
|
Функция записи значений нескольких
измеренных технологических параметров в "горячую"
копию и в статистику измерений, таблица
типа DATA на диске Рабочей Станции. Отличие
от нового варианта:
Возвращает 0 в случае успеха. Если была
ошибка, то возвращает 1 и код
ошибки в переменной prg_err .
|
void PrgIni_StatPlane (void);
|
Процедура вызывается после записи
статистики измерений в БД. Процедура
изменяет значение переменной prg_stat_plane
в пределах от prg_stat_plane_start
до prg_stat_plane_end .
|
int PrgIni_GetStatPlane (int
fl, int *n);
|
Процедура для получения номера
плоскости статистики номер n
в таблице измеренных значений
технологических, fl=0,
или физических, fl=1,
параметров.
Результат:
|
int PrgArc_GetName (short int
nplane, short int ntuple, struct regimes_names_tup *p);
|
Чтение полного имени архивной записи
для физических параметров из каталога
архива "холодных" копий:
|
nplane - номер архива;
|
|
ntuple - номер записи в архив (номер
"холодной" копии);
|
|
p - определяемая структура regimes_names_tup ,
содержащая полное имя архивной записи.
|
Возвращает 0 в случае успеха. Если была
ошибка, то возвращает 1 и код
ошибки в переменной prg_err .
|
void PrgSample_Make (short int
nplane, short ntuple);
|
Инициализация в памяти полного имени архивной записи
для физических параметров и чтение
полного имени из каталога архива "холодных"
копий:
|
nplane - номер архива;
|
|
ntuple - номер записи в архив (номер
"холодной" копии).
|
Полное имя архивной записи состоит из 3-х
строк:
|
имя пользователя, который сделал эту запись;
|
|
дата создания этой записи;
|
|
комментарий.
|
|
void PrgSample_End (void);
|
Удалить из памяти полное имя архивной записи
для физических параметров, определенное
посредством процедуры PrgSample_Make .
|
char *PrgSample_GetName (int n);
|
Получить строку с номером n
(0,1,2) из
полного имени архивной записи,
определенного посредством процедуры PrgSample_Make .
|
short int PrgSample_GetLength (int n);
|
Получить длину (в байтах) строки с номером
n (0,1,2) из полного имени архивной записи,
определенного посредством процедуры PrgSample_Make .
|
Пример
|
Компиляция и сборка программы (файл name.c),
использующей процедуры Надстройки над БД
ССУДА и перечисленные выше процедуры:
cc name.c /prg/prglib.a /usr/usera/voevodin/rt-data/ccydalib/ccydalib.a
|
Автор © Клименков Е.В.
|
|
|
|