Руководство программиста
При запуске программа пытается подключиться к базе данных PostgreSQL сервера при помощи файла config.ini, который находится в каталоге \Work\UIRS\bin\ config.ini. Если этого файла нет, то появляется сообщение «Не найден файл config.ini! Файл будет создан с настройками по умолчанию, поэтому выполните все необходимые настройки и запустите программу заново». В файле config.ini прописываются:
· IP адрес машины, на которой запущен сервер PostgreSQL; · порт для соединения с сервером; · имя БД; · логин и пароль для доступа к БД. Если соединение не установлено, то появляется сообщение «ошибка соединения с БД», и каждую секунду программа будет пытаться установить соединение с базой данных. Если соединение установлено, то запускается таймер с ежесекундным чтением данных из таблиц. По очереди читается каждая таблица посредством SQL запроса. Сначала считываем таблицу «dp_params» - это таблица пусковой циклограммы эксперимента:
· «id» - уникальный идентификатор записи; · «Name» - название этапа эксперимента; · «BitSost» - бит состояния. Показывает текущий этап эксперимента (используется только для прямоугольников под стрелкой). Возможные состояния: 0 - еще не выполнялся – на диаграмме прямоугольник или стрелка, отображающие процесс, будет белого цвета; 1 – выполняется - на диаграмме прямоугольник будет жёлтого цвета, а стрелка - оранжевого; 2 – выполнился - на диаграмме прямоугольник или стрелка, отображающие процесс, будет зелёного цвета; · «DateTimeStart» - время начала этапа эксперимента с точностью до 1 мкс (используется только для стрелочек); · «DateTimeFinish» - время завершения этапа эксперимента с точностью до 1 мкс (используется только для стрелочек).
По полю «id» записываем полученные данные из таблицы в глобальные переменные.
Таблица 1. Таблица пусковой циклограммы эксперимента
Считываем таблицу «ap_params» - это таблица основных параметров разряда:
· «id» - уникальный идентификатор записи. На него ссылаются таблицы «ap_graf» и «vd_params»; · «Name» - название основного параметра разряда; · «KolZnak» - количество знаков после запятой для отображения на мнемосхеме. Отрицательное значение означает, что нужно выводить значение с "x10E". В этом случае число будет означать количество символов до приставки "x10E"; · «Znach» - значение параметра, которое отобразится на мнемосхеме.
Таблица 2. Таблица основных параметров разряда
Считываем таблицу ««sh_params» - это таблица информации о разряде:
· «id» - уникальный идентификатор записи; · «DateTimeStart» - время, оставшееся до пуска с точностью до 1 мс; · «SHOT» - номер следующего разряда; · «Name» - наименование следующего разряда; · «Coments» - комментарии для следующего разряда.
Таблица 3. Таблица информации о разряде
Программа ищет самую позднюю запись, и присылает её данные. Считываем таблицу «vd_params» - это таблица с настройками воспроизведения видеофайлов:
· «id» - уникальный идентификатор записи. На него ссылается таблица vd_content; · «FileSpeedPlay» - скорость воспроизведения видеоряда (количество кадров в секунду, задается в мс с точностью до 1 мс); · «FileNeedPlay» - бит состояния, который сообщает программе нужно ли воспроизводить видеофайл или нет. Возможные состояния: 1 - воспроизвести; 0 - остановить воспроизведение; · «ShowApGraf» - номер параметра (связан с таблицей ap_params), график которого нужно вывести на экран. Если NULL, то скрыть график (проверяет только поле с id=1).
Таблица 4. Таблица с настройками воспроизведения видеофайлов
При условии, что номер параметра для отображения графика был задан, считываем таблицу «ap_graf» - это таблица с данными для построения графиков:
· «id» - уникальный идентификатор записи; · «GrafDateTimeLastUpdate» - время создания/обновления записи (с точностью до 1 мс); · «NomerAP» - номер параметра (связан с таблицей ap_params); · «EdIzmForGraf» - единицы измерения записанных данных для отображения на графике; · «GrafContent» - массив байт произвольной длины, содержит информацию для построения графиков.
Таблица 5. Таблица с данными для построения графиков
Поиск производится по полю «id» и по самой свежей дате. Если данные получены, то создаём массив точек для построения графика из считанных данных. Если был выставлен «флажок» для воспроизведения первого или второго видео, то делается запрос к таблице «vd_conten» - это таблица для работы с видеофайлами:
· «id» - уникальный идентификатор записи; · «FileDateTimeLastUpdate» - время создания/обновления записи (с точностью до 1 мс); · «TypeGet» - тип получения видеофайла. Возможные состояния: 0 - файл копируется локально (по сети), в этом случае в поле FileFullName нужно указать путь к файлу с именем файлом и расширением; 1 - файл читается из базы (поле FileContent), в этом случае в поле FileFullName нужно указать только имя файла с расширением; · «FileFullName» - в зависимости от значения в поле TypeGet: 0 - путь к файлу с именем файлом и расширением; 1 - имя файла с расширением; · «NomerEkrana» - номер видеоэкрана (в правом верхнем квадранте ПКП) на который нужно выводить видеоизображение (связан с таблицей vd_params); · «FileContent» - байтовый массив, который содержит видеофайл (если выбран способ получения видеофайлов из базы, иначе = NULL).
Таблица 6. Таблица для работы с видеофайлами
Видеофайл сохраняется в подкаталог vids и начинает воспроизводиться со скоростью, которую задали в «vd_params».
Далее выполняется процедура обновления мнемосхемы. Если в процессе выполнения чтения БД происходит потеря соединения, то таймер чтения останавливается и запускается процедура для повторного подключения к БД. При выходе из программы по нажатию сочетания клавиш «Alt-X» останавливается таймер чтения с базы данных или подключения к базе данных.
|