Версия 2.4
  • история версий
  • описание
     канал ALRM
     канал CTRL
     канал DEMO
     канал FILE
     канал LOG
     канал MYSQL
     канал RS232
     каналы SSL-TX/SSL-RX
     каналы TCP-TX/TCP-RX
     каналы UDP-TX/UDP-RX
  • лицензия (GPL): rus, eng
  • download
  • протокол DTP/DIA
    Версия 2.3
  • описания:
     dia
     dia_pro
     dia_file
  • dia-on-floppy (lite)
  • download (for win32 only)
  • лицензия:
     (LGPL) rus, eng
     коммерческая
    ENGLISH
  • short description
  • thermo on Palm OS
  • IETF internet draft of DTP/DIA

    ИСТОРИЯ ВЕРСИЙ

    Версия 2.4

    03.05.2007, build 0032

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

    20.05.2006, build 0031

    Исправлен глюк: в случае приёма данных с нескольких датчиков по одному каналу при использовании корректировки для ретранслирующих каналов (например, LOG) возможна передача "мусора" (старых данных или данных с другого датчика).

    17.11.2004, build 0030A

    Исправлен глюк: для каналов TCP-хх игнорировалась секция настроек <TCP defaults>

    04.05.2003, build 0030

    Компиляция переделана для autoconf (естественно, версия для Windows пока отдыхает...) Скомпилированы и протестированы кое-какие модули под FreeBSD. Есть возможность скомпилировать без поддержки дополнительных модулей (все необходимые каналы встраиваются в основной "экзешник"), а также по-своему перегруппировать каналы по модулям. Немного изменен интерфейс модуля, поэтому новые модули несовместимы со старыми версиями и наоборот. Теперь код инициализации, общий для всех экземпляров канала, выполняется не при загрузке модуля, а при создании первого экземпляра канала. Новая версия (со всеми модулями) распространяется по лицензии GPL.

    Изменения для каналов:
    LOGБлокирование изменяемого участка файла.
    RS232Параметры по умолчанию хранятся не кодом, а макросом (для совместимости с FreeBSD).
    CTRLЕсли FIFO открыт в режиме неблокирующего чтения, то в некоторых системах (FreeBSD) вызов select сообщает, что данные доступны (достигнут конец файла), если другой процесс не подсоединен к этому FIFO, что не позволяет использовать select для обнаружения подсоединения другого процесса к FIFO. В таком случае эта ситуация проверяется периодически по таймеру. Какой механизм использовать - определяется перед компиляцией при автоконфигурировании.
    Экземпляр канала CTRL необходимо создавать явно при помощи секции <Channel>.
    Имя FIFO-файла задается ключом "Fifo".

    Версия 2.3

    07.05.2002, build 0029

    Новый модуль - dia_alarm. Для устройства объявляется дополнительный канал на передачу типа "ALRM-MAIL". Такой канал следит за поступлением данных с этого устройства, а при долговременном отсутствии посылает e-mail по указанному в параметрах адресу. Параметры:
      To - (обязательный) - адрес получателя.
      Subject - (необязательный) - тема сообщения.
    Новая секция в конфиге - "ALARM defaults". Параметры:
      AlarmInterval - интервал срабатывания тревоги (указанное число умножается на RetryOnError секунд).
      From - адрес отправителя.
      Subject - (необязательный) - тема по умолчанию.
      SMTPsrv - SMTP сервер.

    (0029B, 2002-05-07): Сразу же после анонса билда заметил глючок: сообщения шлются вне зависимости от того, были данные или нет. Тут же исправил, но к номеру билда пришлось добавить новую буковку.

    (0029C, 2002-05-20): LastWarning - максимальное количество предупреждений о потере связи. В последнем сообщении добавляется текст "This is the last warning". По умолчанию LastWarning=2. В тексте сообщения время отсутствия данных указывается по нарастующей.

    (0029D, 2002-06-19): новый модуль dia_ssl (для внутреннего использования).

    14.01.2002, build 0028

    Добавлен ключ "Adjusted" для секций <Channel>. Имеет смысл только для передающих каналов. Если для канала выставлен этот ключ, в канал передается откорректированное значение c устройства (в соответствии с ключем "Adjust"), в противном случае - передается неизмененное значение. Для откорректированного значения не действует усреднение. В Win32-версии реальное значение выводится в поле "Acquired value" и на графике, а откорректированное - в поле текущего значения и в System Tray.

    Для модуля dia_pro: Если в секции <General> указано
    LogTimeFormat=
    (пустое значение), то в логи обычного типа время не выводится. (Раньше время выводилось в формате по умолчанию - "%c").

    Новая команда для управляющего канала: profile. Выводит конфигурацию программы.

    (0028B, 2002-02-05): Новые команда для управляющего канала: dumpon <cnl> - включить дамп данных для канала, dumpoff <cnl> - выключить дамп данных для канала.

    (0028C, 2002-03-20): Скомпилирована dia-lite версия для использования в бездисковых системах.

    (0028D, 2002-04-04): 1-я попытка пропатчить глюк, вызывающий перерасход процессорного времени, когда порт dia попадает под скан.

    (0028E, 2002-04-11): 2-я попытка пропатчить описанный глюк.

    08.01.2002, build 0027B

    Создавая 25-й билд, я умудрился испортить функцию передачи данных по TCP-каналу. Т.к. 25-й билд никто не использовал, эта фича осталась незамеченной и перекочевала в 26-й билд. И вот, наконец, она исправлена.

    В Win32-версии создано консольное окошко, в котором можно передавать команды для управляющего канала. Оно открывается пунктом "Control Console" в менюшке значка SystemTray либо непосредственным вызовом функции DiaCtrlConsole из библиотеки dia_pro.dll с помощью предлагаемого .cmd-файла. (Существуют нюансы, они указаны в описании модуля dia_pro.) Таким образом, программой можно управлять, даже когда она запущена как сервис. В связи с этим лишние кнопки из окошка списка каналов удалены.

    Новые команды управления: hide (только Win32) и restart (в Linux по SIGHUP).

    Новые особенности функционирования в Silent-режиме под Windows 95/98.

    Новый ключ в секции <Device> - "Adjust". Если указан такой ключ, то полученное значение (X) преобразуется по формуле: a0+a1*X+a2*X2+a3*X3+... Коэффициенты a0,a1,... задаются через запятую:
    Adjust=-1.5,1,-1E-16
    Количество коэффициентов (степень полинома) ограничено лишь размером строки - 256 симв.

    Версия 2.2

    06.12.2001, build 0026B

    Для канала типа LOG добавлен ключ "Alternative". Когда этот ключ отсутствует, ведется обычный протокол. Если же этот ключ присутствует, то протокол состоит из GraphSize последних значений. Дополнительно можно указать, в каком порядке эти значения будут расположены. "ASC" (по умолчанию) - новые значения в конец. "DESC" - новые значения в начало.

    При разрыве и повторном соединении связи сумма для усреднения обнуляется.

    26.11.2001, build 0025

    (0024E): В Linux в логах только три знака после запятой.

    (0024E): В секцию General добавил LogSuppressUnits - (не) показывать ед.измер.

    Поддержка SOCKS5. В секцию <TCP defaults> добавлены параметры "Socks5srv", "Socks5user" и "Socks5pass". Для канала типа TCP-RX / TCP-TX добавлен параметр "UseSocks5".

    Возможность отключения управляющего канала.

    Инит-строка (InitStr) для каналов TCP (можно передавать логин/пароль).

    Исправлено в Win32: устройства, созданные в run-time, добавляются в начало менюшки SystemTray, а не в конец.

    Win32: когда 1 устройство - закрыть соотв. дочернее окошко нельзя.

    NT: возможность запуска как сервис.

    Имя конф. файла сохраняется в реестре.

    01.10.2001, build 0024D

    Кардинальным образом изменен формат конфигурационного файла. Поменялись названия многих ключей, несколько ключей удалил, несколько добавил - поштучно перечислять не буду.

    Нет Lite-версии. Базовый набор функций реализован в основном модуле, а расширенные возможности программы (логи, управление и др.) просто вынесены в отдельный модуль - dia_pro. (В этом же модуле реализована работа с TCP&UDP).

    (Условно) новые типы каналов: "LOG" и "CTRL".

    (Условно) новый модуль для Linux - dia_mysql.so и новый тип канала "MYSQL".

    Исправлен глюк с SysTrayIcon под Win2k.

    Можно запускать без файла конфигурации (правда, без модуля dia_pro это не имеет смысла).

    Возможность run-time создания каналов и устройств.

    Возможность демонизации в Linux.

    Исправлены копирайты "Thermo Team" -> "Lab127 Team".

    Пропатчен глюк с управляющим каналом, вызывающий "перерасход" времени.

    Версия 2.1 (builds 21-23), август-сентябрь 2001

    Сформирована "идеология" версии для Win32: удален ключ ExtendedGUI, график со "сглаживанием", обработчик UAE, "тихий" режим (ключ SilentMode).

    Особенности реализации DTP/DIA#15: поддержка пакетов типа 6 и игнорирование времени в пакете (всегда подставляется системное время).

    Новые возможности конфигурирования: ключ ModVersionCheck, ключ StrictConn, для TCP введен инверсный вариант передачи данных (разделение каналов на TCP-RX и TCP-TX), возможность использования доменного имени вместо IP-адреса. Новый тип канала - CTRL (управление работой программы). В специальный файл типа FIFO можно посылать команды (exit, devstat, chnlstat, chnldel).

    Версия 2.0 (builds 14-20), май-июль 2001

    Программа переделана практически "с нуля". Отменена отдельная нумерация линуксовых билдов, используются общие исходники. Перешел на однонитиевую структуру программы. Настройки программы содержатся в файле "dia.ini". Можно в ком.строке указать альтернативный файл настроек.

    Новое рождение GUI - два варианта: упрощенный и обычный. Информация с каждого устройства выводится в отдельном окошке. Кроме значения, в этом окошке содержатся поля с дополнительной информацией. В System Tray отображаются первые две значащих цифры значения в активном окошке. Строится график. Добавлено окошко каналов, в котором отображается состояние всех каналов.

    Реализованы сначала DTP/DIA draft#12 (кроме ключей доступа), затем #13/#14. Поддерживает сбор данных со многих каналов. Допускает сбор данных с нескольких устройств по одному каналу (не более 11). Реализована функция ретранслятора. Для каждого устройства - свой лог. Реализованы каналы RS232 (без модема), TCP, UDP и DEMO, Код реализующий конкретные классы каналов вынесен в dll-ки (в основном коде программы оставлены только RS232 и DEMO. Подключение dll-к происходит не в load-time, а в run-time после чтения их названий из файла настроек.

    Версия 1.2 (build 13), апрель 2001

    Выкинул параметры командной строки. Заблокировал изменение настроек программы по ходу работы. Альтернативное место хранения параметров - ini-файл, который можно указать в ком. строке (по умолчанию - ".\thermow.ini").

    Мультилинейный режим (для INET-сервера). На один и тот-же TCP-порт "навешивается" несколько серверов, берущих данные из различных физических источников. Первый запущенный экземпляр программы становится мастер-сервером. Остальные экземпляры программы, обнаружив, что TCP-порт занят, становятся серверами-слэйвами. Серверная нить у них переходит в ожидание сообщения от мастер-сервера. Когда присутствует хотя бы один слэйв, всякого нового клиента сервер проводит через процедуру идентификации. Соответственно, клиент, обнаружив запрос идентификации, реагирует на него. Определив реакцию клиента, мастер-сервер с помощью IPC передает открытый сокет одному из слэйвов.

    Программа поддерживает STDTP draft #11.

    Версия 1.1 (builds 9-12), февраль-апрель 2001

    Допускается запускать несколько экземпляров программы. Параметры программы можно задавать ключами в командной строке.

    Реализация STDTP draft#9, затем #10.

    Родилась (в 9м билде) и умерла (в 12м билде) функция блокирования перевода компьютера в спящий режим.

    Функция "Сервер": (реализована передача по TCP/IP). Полученные с датчика данные программа посылает в указанный сокет. Получив запрос клиента, программа передает ему данные с датчика с периодичностью записей в журнал. Реализован RS-232 сервер (прямое соединение компьютеров нуль-модемным кабелем или удаленное соединение через коммутируемый канал (к указанному порту подключен модем)). Получение данных называется ФУНКЦИЯ "КЛИЕНТ". Поддерживаются два варианта клиента: RS232 и TCP/IP.

    Версия 1.0 (builds 1-8), январь-февраль 2001

    Параметры программы хранятся в реестре. Программа умеет работать только с одним COM-портом. Реализовано протоколирование. Развите программы параллельно с разработкой протокола STDTP.

    Build 0001 был откомпилирован 28 декабря 2000 года.