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

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

Библиотеки программных объектов СУ

class class class class class class class DATA-table classes

class classDATA
Открытые (public) методы
 
classDATA ()
 
~classDATA ()
 
void SetTrace (int fl)
 
int GetTrace (void)
 
int Ini (char *name, int att1, int att2, int tup1, int tup2, int fl_edit=0, int fl_direct=0)
 
short int *GetTblID (void)
 
void *GetAdrData (void)
 
void *GetAdrDataMem (void)
 
void *GetAdrElement (int ntup, int natt)
 
void GetAdrParam (int n)
 
int PutData (int n, void *buf)
 
int GetSize (void)
 
int GetSizeParam (int n)
 
int GetAtt1 (void)
 
int GetAtt2 (void)
 
int GetNatt (void)
 
int GetLatt (int natt)
 
int GetTup1 (void)
 
int GetTup2 (void)
 
int GetNtup (void)
 
int GetLtup (void)
 
char *GetName (void)
 
double GetRatioCompress (void)
 
int DataRead (int ncopy, int nplane)
 
int DataWrite (int ncopy, int nplane)
Защищенные (private) методы
 
void Transportate (int fl)
Закрытые (protected) методы
 
void SetCoord (int ncopy, int nplane)
 
void *GetAdrDataVer (void)
 
void VerToHor (void)
 
void HorToVer (void)
Закрытые (protected) Данные
 
int fl_trace - семафор трассировки;
 
char tbl_name[TBL_LEN_TABLE] - имя таблицы;
 
short int tbl_id - номер структуры таблицы;
 
int tbl_att1 - номер начального столбца таблицы;
 
int tbl_att2 - номер конечного столбца таблицы;
 
int tbl_natt - число столбцов таблицы;
 
#define NclassDATA_matt 100 - максимально возможное число столбцов таблицы;
 
struct attr_opis tbl_satt[NclassDATA_matt] - описание каждого столбца таблицы;
 
int tbl_tup1 - номер начальной строки таблицы;
 
int tbl_tup2 - номер начальной строки таблицы;
 
int tbl_ntup - число строк таблицы;
 
int tbl_ltup - длина в байтах строки таблицы;
 
int fl_hor - способ работы с данными (вертикальное или горизонтальное расположение);
 
void *tbl_data - адрес буфера вертикально расположенных данных для чтения и записи таблицы;
 
void *tbl_data_ok - адрес буфера редактируемых данных для чтения и записи таблицы;
 
void *tbl_data_hor - адрес буфера горизонтального расположенных данных для чтения и записи таблицы;
 
int tbl_size - размер в байтах одного буфера данных;
 
ratio_compress - коэффициент сжатия данных в таблице, если сжатие было.

public classDATA ()
Конструктор позволяет инициализировать объект до определения его параметров, т.е. позволяет объявлять объект как глобальную переменную. Определение (вычисление) параметров производится вызовом функции Ini, которая анализирует информацию в командной строке.
public ~classDATA ()
Деструктор закрывает таблицу Базы Данных и освобождает динамическую память.
public void SetTrace (int fl)

Функция устанавливает семафор fl_traceтрассировки - вывод в файл-протокол работы класса:

  • fl=0 - выключить трассировку;
  • fl=1 - включить трассировку.
public int GetTrace (void)
Получить значение семафора fl_traceтрассировки.
public int Ini (char *name, int att1, int att2, int tup1, int tup2, int fl_edit=0, int fl_direct=0)

Функция открывает указанную таблицу Базы Данных, размещает в динамической памяти буфера для данных, которые хранятся в указанной области таблицы:

  • name - имя таблицы типа DATA в Базе Данных;
  • att1 - начальный номер столбца в таблице;
  • att2 - конечный номер столбца в таблице;
  • tup1 - начальный номер строки в таблице;
  • tup2 - конечный номер строки в таблице;
  • fl_edit - флаг, определяющий возможность редактирования данных в таблице:
  • если fl_edit=0, то редактирование данных не предусматривается;
    если fl_edit=1, то создается буфер для данных редактирования;
  • fl_direct - флаг, определяющий способ работы с данными таблицы:
  • если fl_direct=0, то работа ведется с данными, расположенными в виде столбцов;
    если fl_direct=1, то создается буфер для данных, расположенных в виде строк.
public short int *GetTblID (void)
Получить адрес номера структуры таблицы.
public void *GetAdrData (void)

Получить адрес буфера данных:

  • вертикально расположенные данные, если fl_direct=0 при вызове Ini;
  • горизонтально расположенные данные, если fl_direct=0 при вызове Ini.
public void *GetAdrDataMem (void)
Получить адрес буфера, предназначенного для резервного хранения данных области таблицы, с которой работает программа. Запись данных в буфер и чтение данных из буфера производит программа, если это требуется.
public void *GetAdrElement (int ntup, int natt)
Получить адрес элемента данных, который хранится в таблице в строке с номером ntup в столбце с номером natt.
public void *GetAdrParam (int n)

Получить адрес данных в соответствие с семафором fl_hor, задаваемым при вызове функции Ini:

  • для вертикального расположения данных - n есть номер столбца;
  • для горизонтального расположения данных - n есть номер строки.
public int PutData (int n, void *buf)

Поместить данные с адресом buf в таблицу в соответствие с семафором fl_hor, задаваемым при вызове функции Ini:

  • для вертикального расположения данных - n есть номер столбца;
  • для горизонтального расположения данных - n есть номер строки.
public int GetSize (void)
Получить размер в байтах буфера данных.
public int GetSizeParam (int n)

Получить размер в байтах данных в соответствие с семафором fl_hor, задаваемым при вызове функции Ini:

  • для вертикального расположения данных - n есть номер столбца;
  • для горизонтального расположения данных - n есть номер строки.
public int GetAtt1 (void)
Получить номер начального столбца таблицы.
public int GetAtt2 (void)
Получить номер конечного столбца таблицы
public int GetNatt (void)
Получить число столбцов таблицы
public int GetLatt (int natt)
Получить размер в байтах элемента, расположенного в столбце natt таблицы.
public int GetTup1 (void))
Получить номер начальной строки таблицы.
public int GetTup2 (void)
Получить номер конечной строки таблицы.
public int GetNtup (void)
Получить число строк таблицы.
public int GetLtup (void)
Получить длину строки таблицы в байтах
public char *GetName (void)
Получить имя таблицы, с которой работает данный объект.
public double GetRatioCompress (void)
Получить коэффициент сжатия данных. Коэффициент вычисляется после чтения и декомпрессии данных из копии 3 таблицы, с которой работает объект, т.е. при вызове процедуры classTDmeasure::DataRead(3). Обычно, это измеренные данные, компрессируемые программой в Контроллере Оборудования перед записью в таблицу.
public int DataRead (int ncopy, int nplane)
Прочитать данные в буфер из копии номер ncopy плоскости nplane таблицы.
public int DataWrite (int ncopy, int nplane)
Записать данные из буфера в копию номер ncopy плоскость nplane таблицы.
public void Transportate (int fl)

Транспортировать данные:

  • fl=0 - вертикально расположенные в горизонтально расположенные;
  • fl=1 - горизонтально расположенные в вертикально расположенные.
protected void SetCoord (int ncopy, int nplane)

Установить координаты для записи в таблицу или чтения таблицы.

  • ncopy - номер копии таблицы;
  • nplane - номер плоскости таблицы.
protected void *GetAdrDataVer (void)
Получить адрес буфера для вертикально расположенных данных.
protected void VerToHor (void)
Копировать данные из буфера вертикального расположения в буфер горизонтального расположения.
protected void HorToVer (void)
Копировать данные из буфера горизонтального расположения в буфер вертикального расположения.

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