|
|
Программирование на Верхнем Уровне СУ
Библиотеки алгоритмов СУ
Сжатие данных предназначено для
уменьшения трафика MIL-1553. Большие объемы данных,
обычно, имеют место в процессах измерения,
поэтому ПП в Контроллере Оборудования может
использовать процедуру компрессии измеренных данных в КО и записи их в
таблицу БД ССУДА.
|
Для чтения измеренных данных из таблицы в
Контроллере Оборудования ПП на
Рабочей Станции должна использовать обратную
процедуру - чтение данных из этой таблицы с
применением алгоритма декомпрессии данных.
|
Целесообразность и возможность компрессии,
а также метод компрессии подбирается
автоматически, компрессия может быть
двойной. Алгоритм декомпрессии распознает
наличие компрессии и примененные методы компрессии.
|
|
PrgPackT_SetCmt - установить
или отменить запись в файл-протокол
|
|
PrgPackT_WScompress
- компрессировать данные и записать их в таблицу БД ССУДА
|
|
PrgPackT_WSdecompress
- читать данные из таблицы БД ССУДА и декомпрессировать
|
int PrgPackT_SetCmt (int n);
|
Установить семафор записи в файл-протокол:
|
int PrgPackT_WScompress (int
nmethod, void *buf, int lbuf, short int *tid, double *ratio);
|
Определить целесообразность и возможность компрессии,
метод компрессии и возможность повторной
компрессии. Выполнить компрессию данных,
если это возможно. Записать
компрессированные или исходные данные в таблицу БД ССУДА,
открытую
посредством процедур PrgDBa_open
или PrgDBa_openLocal
|
method - номер метода компрессии,
рекомендуется задавать 0 для
автоматического подбора метода;
|
|
buf - буфер данных, которые
подлежит компрессировать;
|
|
lbuf - размер буфера в байтах;
|
|
tid - номер структуры для заданной таблицы,
определенный процедурой PrgDBa_open
или PrgDBa_openLocal;
|
|
ratio - коэффициент компрессии
данных.
|
Возвращает 0 в случае успеха.
Если была
ошибка, то возвращает 1 и код
ошибки в переменной prg_err , делает запись в
файл-протокол,
если он определен.
|
int PrgPackT_WSdecompress (void *buf, int lbuf, short int *tid, double *ratio);
|
Читать данные из таблицы БД ССУДА,
открытой посредством процедуры PrgDBa_open
или PrgDBa_openLocal.
Определить наличие компрессии и примененные методы.
Если необходимо, декомпрессировать данные:
|
method - номер метода компрессии,
рекомендуется задавать 0 для
автоматического подбора метода;
|
|
buf - буфер для
декомпрессированных данных;
|
|
lbuf - размер буфера в байтах;
|
|
tid - номер структуры для заданной таблицы,
определенный процедурой PrgDBa_open
или PrgDBa_openLocal;
|
|
ratio - коэффициент компрессии
данных.
|
Возвращает 0 в случае успеха.
Если была
ошибка, то возвращает 1 и код
ошибки в переменной prg_err , делает запись в
файл-протокол,
если он определен.
|
Автор © Клименков Е.В.
|
|
|
|