Функции
time-universal-encode
(year month day hour min sec)
Описание: функция time-universal-encode возвращает время в универсальном формате. Аналогична вызову функции encode-universal-time с параметрами следующими в обратном порядке.
Пример использования:
(time-universal-encode 2021 08 30 10 00 00 ) => 3839295600
Методы
analog-length
((trd <trd>))
discret-length
((trd <trd>))
discret-offset
((trd <trd>))
record->utime
((trd <trd>) record)
start-offset
((trd <trd>))
trd-open
((trd <trd>))
- чтение заголовка;
- разбор аналоговых сигналов;
- разбор дискретных сигналов.
utime->record
((trd <trd>) utime)
utime-end
((trd <trd>))
Классы
<trd>
Option | Value |
Superclasses: | (t) |
Metaclass: | standard-class |
Default Initargs: | nil |
Описание: класс <trd> служит для предоставления интерфейса к файлу-тренду, содержащему записи аналоговых и дискретных сигналов.
Файл-тренд состоит из:
- Записи заголовка тренда;
- Записей дескрипторов (описаний) аналоговых сигналов, см. <a-signal>;
- Записей дескрипторов (описаний) дискретных сигналов, см. <d-signal>;
Записей аналоговых и дискретных сигналов, состоящий из последовательно записанных списка аналоговых сигналов и упакованного списка дискретных сигналов;
4.1 Каждый аналоговый сигнал кодируется целочисленным значением длиной 2 байта, его вычисляется по формуле: rez=analog-LowLimit+(i*(analog-HighLimit-analog-LowLimit)/65535)
4.2 Каждый дискретный сигнал кодируется одним битом информации 0|1
Заголовок тренда имеет следующую структуру:
Поле | Дина поля, байт | Примечание |
id | 5 | Строка идентификации |
version | 1 | Версия данных трендера |
date-day | 1 | Число месяца |
date-month | 1 | Порядковый номер месяца |
date-year | 1 | Год-2000 |
time-hour | 1 | Час |
time-minute | 1 | Минута |
time-second | 1 | Секунда |
reserv | 2 | Резерв - содержит сумму аналоговых и дискретных сигналов до 2^16=65536 шт |
total-records | 4 | Количество записей, содержащееся в тренде до 2^32=4294967296 шт |
delta-time | 8 | Интервал времени между записями, с |
analog-number | 2 | Количество аналоговых сигналов до 2^16=65536 шт |
discret-number | 2 | Количество дискретных сигналов до 2^16=65536 шт |
При записи в тренд на восемь дискретных сигналов отводится один байт.
Сигналы упаковываются побайтно слева-направо.
file-name
Имя файла в файловой системеOption Value Allocation: instance Type: nil
Initarg: :file-name
Initform: nil
Accessors: (file-name)
file-descr
Файл трендаOption Value Allocation: instance Type: nil
Initform: nil
Accessors: (file-descr)
id-string
Строка идентифицирующая то, что это файл трендаOption Value Allocation: instance Type: nil
Initform: nil
Accessors: (id-string)
version
Версия трендаOption Value Allocation: instance Type: nil
Initform: nil
Accessors: (version)
utime-start
Дата и время начала создания тренда в универсальном форматеOption Value Allocation: instance Type: nil
Initform: nil
Accessors: (utime-start)
reserv
Количество аналоговых сигналов + Количество дискретных сигналовOption Value Allocation: instance Type: nil
Initform: nil
Accessors: (reserv)
records
Общее число записей в трендеOption Value Allocation: instance Type: nil
Initform: nil
Accessors: (records)
increment
Интервал между записями тренда, сOption Value Allocation: instance Type: nil
Initform: nil
Accessors: (increment)
analog-number
Количество аналоговых сигналовOption Value Allocation: instance Type: nil
Initform: nil
Accessors: (a-number)
discret-number
Количество дискретных сигналовOption Value Allocation: instance Type: nil
Initform: nil
Accessors: (d-number)
analog-ht
Хеш-таблица аналоговых сигналовOption Value Allocation: instance Type: nil
Initform: nil
Accessors: (analog-ht)
discret-ht
Хеш-таблица дискретных сигналовOption Value Allocation: instance Type: nil
Initform: nil
Accessors: (discret-ht)