Содержание
Здесь содержится информация о пакете CrwDaq, касающаяся:
- Расположения пакета;
- Вызова (запуска) пакета;
- Аргументов командной строки;
- Сессий (сеансов) работы экземпляров пакета;
- Окружения - переменных среды окружения пакета.
Расположение пакета CrwDaq зависит от операционной системы.
Пакет CrwDaq под Unix имеет два
расположения:
- Логическое - в постоянной папке
/opt/crwdaq, и
- Физическое - в папке
/opt/daqgroup/suite/crwdaq.
Пакет CrwDaq под Windows расположен
(физически) в папке
%SystemDrive%\opt\daqgroup\suite\crwdaq.
Логически пакет должен быть расположен, соответственно,
в папке %SystemDrive%\opt\crwdaq.
Здесь %SystemDrive% - диск, на котором
установлена система, например, C:.
Предполагается, что логическая папка - постоянная символическая ссылка на физическую (реальную) папку, при этом положение символической ссылки постоянно и не будет меняться со временем. Физическая папка при необходимости может быть расположена в другом месте. Хотя изменение расположения физической папки сейчас не планируется, такую возможность нельзя исключать в будущем.
Для поиска и вызова пакета лучше ориентироваться на логическое расположение пакета, чтобы не пришлось изменять ссылки и пути файлов в будущем.
Пакет CrwDaq является специализированным ПО, случайный вызов которого нежелателен. Поэтому он не прописан в путях поиска PATH и не доступен для вызова по короткому имени.
Вызов пакета CrwDaq под Unix можно выполнять двумя способами: по полному (логическому) пути или через программу - обёртку crwkit, например:
/opt/crwdaq/crwdaq [options] [parameters] - вызов по прямому пути
или crwkit crwdaq [options] [parameters] - вызов с помощью crwkit(1)
или crwrun crwdaq [options] [parameters] - вызов с помощью crwkit(2)
или unix crwdaq [options] [parameters] - вызов с помощью crwkit(3)При запуске из консоли рекомендуется также использовать команду
grun, например:
unix grun crwdaq …
Это нужно для того, чтобы “отцепить” запущенную программу от терминала, иначе при закрытии терминала (консольного окна) программа тоже завершится.
Вызов пакета CrwDaq под Windows выполняется по прямому пути.
c:\opt\crwdaq\crwdaq.exe [options] [parameters]Для облегчения вызова может использоваться ярлык .lnk.
При вызове программе crwdaq передаются аргументы, включающие опции и параметры, как описано ниже.
Запуск пакета выполняется с помощью программного модуля - Менеджера Сессий (Session Manager), который отвечает за бесконфликтное взаимодействие экземпляров программы.
Работа Менеджера Сессий основана на концепции именованной сессии (сеанса работы). Сессия - это экземпляр работающей программы с заданным идентификатором (натуральным номером сессии) и связанным с ним набором ресурсов - например, канала связи IPC для межпроцессного взаимодействия и каталогов для хранения журналов и временных файлов. Поскольку у каждой сессии свой номер, экземпляры программы могут работать без конфликта между собой, т.к. все временные файлы разделены и расположены в разных каталогах. В то же время менеджер сеансов следит, чтобы выполнялся только один экземпляр программы с данным номером сессии - во избежание конфликтов между экземплярами программы в рамках одной сессии.
У каждой сессии также есть иконка (картинка)
-icon, чтобы различать экземпляры
программы визуально. Иконка задается аргументом командной строки
-icon=i (где
i=0…6) или (при отсутсвии аргумента)
вычисляется как i=(n-1) % 6, где
i - номер иконки, n -
номер сессии, % 6 - операция “по модулю
6”.
Иконки i=0…6 имеют вид: 0:, 1:
, 2:
, 3:
, 4:
, 5:
.
По умолчанию запускается сессия номер 1 с картинкой (иконкой) номер 0.
При запуске программы SessionMagager осуществляет поиск предыдущего экземпляра программы crwdaq с тем же номером сессии, который задан явно (в командной строке) или неявно (по умолчанию). Если такой экземпляр найден, программа передает ему сообщение с аргументами вызова и завершается. Предыдущий (ранее запущенный) экземпляр программы получает сообщение и выполняет его.
Идентификатор сессии (номер сессии n) задается в
аргументе командной строки -session n или
-number n. Если номер сессии не указан, по
умолчанию запускается сессия 1.
При работе SessionMagager создает переменные окружения, а также служебные каталоги для расположения отладочных журналов и других временных файлов. Прикладные программы и сценарии могут использовать эти переменные окружения и каталоги для определения параметров, расположения файлов и выполения необходимой работы.
Программа crwdaq может принимать аргументы - опции и параметры.
Все опции (options) и параметры (parameters) являются необязательными.
| Опция/Параметр | Описание |
|---|---|
-session n |
Запуск сессии (сеанса работы) номер n (натуральное число начиная с 1). |
-number n |
Синоним –session n, по умолчанию запуск с номером сеанса n=1. |
-icon=i |
Задает иконку (картинку) номер i=0..6, по умолчанию берется i=n-1. |
-r |
Опция указывает, что следующий за ней параметр (файл) надо запустить (run). |
-e |
Опция указывает, что следующий за ней параметр (файл) надо редактировать (edit). |
-d |
Опция указывает, что для следующего параметра (файла) нужен диалог выбора (dialog). |
path/file.cfg |
Параметр - файл. Загрузка и запуск DAQ конфигурации из файла path/file.cfg. |
Например:
unix grun crwdaq -session 2 -icon=3 -r /opt/crwdaq/demo/demo_fast_poll/fast_poll.cfg
# начинает сессию 2 с иконкой 3 и запускает конфигурацию fast_poll.cfgПо умолчанию запускается сессия номер 1 с картинкой (иконкой) номер 0.
Менеджер сессий создает при старте пакета следующие переменные окружения:
| Переменная | Описание |
|---|---|
| CRW_DAQ_SYS_CLASS | Имя класса окна главной формы crwdaq. |
| CRW_DAQ_SYS_EXE_FILE | Полный путь/имя исполняемого файла crwdaq. |
| CRW_DAQ_SYS_EXE_PID | Идентификатор PID процесса crwdaq. |
| CRW_DAQ_SYS_EXE_TID | Идентификатор основного потока crwdaq. |
| CRW_DAQ_SYS_HANDLE | Ссылка (handle) окна главной формы crwdaq. |
| CRW_DAQ_SYS_HOME_DIR | Каталог (физического) расположения исполняемого файла crwdaq . |
| CRW_DAQ_SYS_INI_FILE | Главный файл инициализации (задания параметров) crwdaq. |
| CRW_DAQ_SYS_INIT_PATH | Начальное значение переменной окружения PATH при старте программы. |
| CRW_DAQ_SYS_LANG | языковые настройки. |
| CRW_DAQ_SYS_PATH | дополнительный список путей для поиска файлов, который добавляется к переменной окружения PATH. |
| CRW_DAQ_SYS_SESSION_ID | полный идентификатор сессии, типа daqgroup_crwdaq_session_1. |
| CRW_DAQ_SYS_SESSION_NB | идентификатор (номер) сессии. |
| CRW_DAQ_SYS_SESSION_HEAD | заголовок сессии, типа crwdaq_1. |
| CRW_DAQ_SYS_TITLE | заголовок главного окна crwdaq, составленный из имени программы, номера сессии, PID процесса, имени компьютера. |
| CRW_DAQ_SYS_TMP_DIR | каталог для размещения временных файлов с коротким временем жизни (т.е. которые могут быть удалены при перезагрузке). |
| CRW_DAQ_SYS_VERSION | страка с описанием версии работающего пакета. |
| CRW_DAQ_SYS_WND | идентификатор окна (в десятичной нотации) главной формы crwdaq. |
| CRW_DAQ_VAR_TMP_DIR | каталог для размещения журналов *.log
и временных файлов с длинным временем жизни (т.е. которые не удаляются
при перезагрузке). |
| CRWKIT_ROOT | Каталог расположения пакета crwkit. |
| CRWTOOLKIT_ROOT | Каталог расположения пакета crwtoolkit. |
| Дополнительные переменные | создаваемые при загрузке конфигурации DAQ системы. |
| CRW_DAQ_CONFIG_BASE_TIME | Базовое время (начало отсчета) времени DAQ системы (функцмя time) в миллисекундах от Начала Эры 0001.01.01-00:00:00. |
| CRW_DAQ_CONFIG_DATA_PATH | Каталог данных для текущей конфигурации DAQ системы. |
| CRW_DAQ_CONFIG_FILE | Главный конфигурационный файл текущей конфигурации DAQ системы. |
| CRW_DAQ_CONFIG_HOME_DIR | Домашний каталог, где расположен главный конфигурационный файл текущей конфигурации DAQ системы. |
| CRW_DAQ_CONFIG_LOAD_TIME | Время загрузки текущей конфигурации DAQ системы в миллисекундах от Начала Эры 0001.01.01-00:00:00. |
| CRW_DAQ_CONFIG_PATH | Список путей (каталогов) для поиска файлов в текущей конфигурации DAQ системы. |
| CRW_DAQ_CONFIG_START_TIME | Время запуска текущей конфигурации DAQ системы в миллисекундах от Начала Эры 0001.01.01-00:00:00. |
| CRW_DAQ_CONFIG_TEMP_PATH | Каталог для временных файлов текущей конфигурации DAQ системы. |
| CRW_DAQ_CONFIG_TIME_UNITS | Единицы измерения времени (функцмя time) в текущей конфигурации DAQ системы в миллисекундах. |
| CRW_DAQ_INCLUDE_PATH | Путь расположения включаемых файлов (include) стандартной библиотеки DaqPascal. |
Ниже приведено типичное значение переменных окружения пакета:
#########################################################
# Типичное значение переменных окружения пакета под Unix:
#########################################################
CRW_DAQ_SYS_CLASS=crwdaq.Crwdaq
CRW_DAQ_SYS_EXE_FILE=/opt/daqgroup/suite/crwdaq/crwdaq
CRW_DAQ_SYS_EXE_PID=3964
CRW_DAQ_SYS_EXE_TID=139789671918016
CRW_DAQ_SYS_HANDLE=48243712
CRW_DAQ_SYS_HOME_DIR=/opt/daqgroup/suite/crwdaq
CRW_DAQ_SYS_INI_FILE=/opt/daqgroup/suite/crwdaq/crwdaq.ini
CRW_DAQ_SYS_INIT_PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/crwkit:/opt/crwkit/bin:/opt/crwkit/add/bin
CRW_DAQ_SYS_LANG=RUSSIAN,CP65001,CP65001,$419,$419,$419,$419
CRW_DAQ_SYS_PATH=/opt/daqgroup/suite/crwdaq:/bin:/usr/local/bin:/opt/crwkit/add/bin:/usr/bin:/opt/daqgroup/suite/crwdaq/resource/tools/unitconverter:/opt/daqgroup/suite/crwdaq/resource/tools/bat:
CRW_DAQ_SYS_SESSION_ID=daqgroup_crwdaq_session_1
CRW_DAQ_SYS_SESSION_HEAD=crwdaq_1
CRW_DAQ_SYS_SESSION_NB=1
CRW_DAQ_SYS_TITLE=crwdaq#1/3964@crwbox
CRW_DAQ_SYS_TMP_DIR=/tmp/user-alex/daqgroup/crwdaq/session_1
CRW_DAQ_SYS_VERSION=CRW-DAQ ver 20240330 release 20240422 © 2001-2024 Alexey Kuryakin daqgroup@mail.ru
CRW_DAQ_SYS_WND=75497599
CRW_DAQ_VAR_TMP_DIR=/var/tmp/user-alex/daqgroup/crwdaq/session_1
CRWKIT_ROOT=/opt/crwkit
CRWTOOLKIT_ROOT=/opt/crwkit
###################################################################
# Дополнительные переменные при загрузке DAQ конфигурации под Unix:
###################################################################
CRW_DAQ_CONFIG_BASE_TIME=63849513600000
CRW_DAQ_CONFIG_DATA_PATH=/mnt/data/home/alex/projects/daqgroup/suite/crwdaq/demo/demo_zupdc/data
CRW_DAQ_CONFIG_FILE=/mnt/data/home/alex/projects/daqgroup/suite/crwdaq/demo/demo_zupdc/config/!zupdc.cfg
CRW_DAQ_CONFIG_HOME_DIR=/mnt/data/home/alex/projects/daqgroup/suite/crwdaq/demo/demo_zupdc/config
CRW_DAQ_CONFIG_LOAD_TIME=63849552150436
CRW_DAQ_CONFIG_PATH=/mnt/data/home/alex/projects/daqgroup/suite/crwdaq/demo/demo_zupdc/config:/mnt/data/home/alex/projects/daqgroup/suite/crwdaq/demo/demo_zupdc/utility:/mnt/data/home/alex/projects/daqgroup/suite/crwdaq/demo/demo_zupdc/help:/opt/dim:/opt/daqgroup/suite/crwdaq/resource/dimsite/dim/bin
CRW_DAQ_CONFIG_START_TIME=63849552157832
CRW_DAQ_CONFIG_TEMP_PATH=/mnt/data/home/alex/projects/daqgroup/suite/crwdaq/demo/demo_zupdc/temp
CRW_DAQ_CONFIG_TIME_UNITS=3600000
CRW_DAQ_INCLUDE_PATH=/opt/daqgroup/suite/crwdaq/resource/daqsite/stdlib/include
############################################################
# Типичное значение переменных окружения пакета под Windows:
############################################################
CRW_DAQ_SYS_CLASS=Window
CRW_DAQ_SYS_EXE_FILE=C:\opt\daqgroup\suite\crwdaq\crwdaq.exe
CRW_DAQ_SYS_EXE_PID=1908
CRW_DAQ_SYS_EXE_TID=4628
CRW_DAQ_SYS_HANDLE=6359816
CRW_DAQ_SYS_HOME_DIR=C:\opt\daqgroup\suite\crwdaq
CRW_DAQ_SYS_INI_FILE=C:\opt\daqgroup\suite\crwdaq\crwdaq.ini
CRW_DAQ_SYS_INIT_PATH=C:\Python\Scripts;C:\Python;C:\Program Files\Borland\Delphi5\Projects\Bpl;C:\Program Files\Borland\vbroker\jre\bin;C:\Program Files\Borland\vbroker\Bin;C:\Program Files\Borland\Delphi5\Bin;C:\root\bin;C:\Program Files\Windows Resource Kits\Tools;C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\UnixUtils\add\lua;C:\Program Files\UnixUtils\add\lua\clibs;C:\Users\main\AppData\Local\Microsoft\WindowsApps;C:\Tcl\bin
CRW_DAQ_SYS_LANG=RUSSIAN,CP1251,CP866,$419,$419,$419,$419
CRW_DAQ_SYS_PATH=C:\opt\daqgroup\suite\crwdaq;C:\opt\daqgroup\suite\crwdaq\resource\shell;C:\Program Files\UnixUtils\bin;C:\Program Files\UnixUtils\add\bin;C:\Program Files\UnixUtils\add\lua;C:\Program Files\UnixUtils\add\lua\clibs;C:\opt\daqgroup\suite\crwdaq\resource\dimsite\dim_cmd;C:\opt\daqgroup\suite\crwdaq\resource\dimsite\dim\bin;C:\opt\daqgroup\suite\crwdaq\resource\smisite\smi\bin;C:\opt\daqgroup\suite\crwdaq\resource\tools\bat;C:\opt\daqgroup\suite\crwdaq\resource\tools\gnuplot\bin;C:\opt\daqgroup\suite\crwdaq\packages\admilink;C:\opt\daqgroup\suite\crwdaq\packages\com0com\add\bin;C:\Programs\Portable\SoftwareOK.com\Q-Dir;C:\opt\daqgroup\suite\crwdaq\resource\tools\freecommander;C:\opt\daqgroup\suite\crwdaq\resource\tools\unitconverter;C:\opt\daqgroup\suite\crwdaq\packages\speechapi;C:\opt\daqgroup\suite\crwdaq\packages\winkeylock;
CRW_DAQ_SYS_SESSION_ID=DaqGroup_crwdaq_session_1
CRW_DAQ_SYS_SESSION_HEAD=crwdaq_1
CRW_DAQ_SYS_SESSION_NB=1
CRW_DAQ_SYS_TITLE=crwdaq#1/1908@ak-w10x32-vm
CRW_DAQ_SYS_TMP_DIR=C:\Users\main\AppData\Local\Temp\DaqGroup\crwdaq\session_1
CRW_DAQ_SYS_VERSION=CRW-DAQ ver 20240330 release 20240422 Вc 2001-2024 Alexey Kuryakin daqgroup@mail.ru
CRW_DAQ_SYS_WND=6359816
CRW_DAQ_VAR_TMP_DIR=C:\Users\main\AppData\Local\Temp\DaqGroup\crwdaq\session_1
CRWTOOLKIT_ROOT=C:\Program Files\CrwToolkit
######################################################################
# Дополнительные переменные при загрузке DAQ конфигурации под Windows:
######################################################################
CRW_DAQ_CONFIG_BASE_TIME=63849513600000
CRW_DAQ_CONFIG_DATA_PATH=C:\opt\daqgroup\suite\crwdaq\demo\demo_zupdc\data
CRW_DAQ_CONFIG_FILE=C:\opt\daqgroup\suite\crwdaq\demo\demo_zupdc\config\!zupdc.cfg
CRW_DAQ_CONFIG_HOME_DIR=C:\opt\daqgroup\suite\crwdaq\demo\demo_zupdc\config
CRW_DAQ_CONFIG_LOAD_TIME=63849553891207
CRW_DAQ_CONFIG_PATH=C:\opt\daqgroup\suite\crwdaq\demo\demo_zupdc\config;C:\opt\daqgroup\suite\crwdaq\demo\demo_zupdc\utility;C:\opt\daqgroup\suite\crwdaq\demo\demo_zupdc\help;C:\Program Files\Common Files\CRW-DAQ\Resource\DimSite\dim\bin;C:\opt\daqgroup\suite\crwdaq\resource\dimsite\dim\bin
CRW_DAQ_CONFIG_START_TIME=63849553901113
CRW_DAQ_CONFIG_TEMP_PATH=C:\opt\daqgroup\suite\crwdaq\demo\demo_zupdc\TEMP
CRW_DAQ_CONFIG_TIME_UNITS=3600000
CRW_DAQ_INCLUDE_PATH=C:\opt\daqgroup\suite\crwdaq\resource\daqsite\stdlib\includeПриведенные выше переменные окружения (значения которых могут меняться в зависимости от различных условий) доступны в программах DaqPascal в командах Главной Консоли, а также (за счет наследования окружения) в дочерних процессах, запускаемых из среды пакета. Поэтому, например, эти переменные могут быть использованы в скриптах и программах, запускаемых из прикладных программ DaqPascal или из Главной Консоли. Они могут использоваться, в том числе, для “обратной связи” запущенных дочерних процессов с основной программой crwdaq.
Программный интерфейс DbApi для Баз Данных использует следующие (дополнительные) переменные окружения:
| Переменная | Описание |
|---|---|
| ISC_USER | Имя пользователя для провайдера Interbase/Firebird. |
| ISC_PASSWORD | Пароль пользователя для провайдера Interbase/Firebird. |
| ISC_HOST | Имя сервера для провайдера Interbase/Firebird. |
| ISC_PORT | Номер порта для провайдера Interbase/Firebird. |
| PGUSER | Имя пользователя для провайдера PostgreSQL. |
| PGPASSWORD | Пароль пользователя для провайдера PostgreSQL. |
| PGHOST | Имя сервера для провайдера PostgreSQL. |
| PGPORT | Номер порта для провайдера PostgreSQL. |
| MYSQL_USER | Имя пользователя для провайдера MySQL/MariaDB. |
| MYSQL_PASSWORD | Пароль пользователя для провайдера MySQL/MariaDB. |
| MYSQL_HOST | Имя сервера для провайдера MySQL/MariaDB. |
| MYSQL_PORT | Номер порта для провайдера MySQL/MariaDB. |
| DBAPI_USER | Имя пользователя для любого провайдера DbApi. |
| DBAPI_PASSWORD | Пароль пользователя для любого провайдера DbApi. |
| DBAPI_HOST | Имя сервера для любого провайдера DbApi. |
| DBAPI_PORT | Номер порта для любого провайдера DbApi. |
При чтении параметров DbApi действуют такие правила:
Таким образом, переменные окружения определяют значения параметров подключения “по умолчанию”, если они не заданы явно в строке подключения. Причем переменные окружения для конкретного провайдера имеют приоритет перед переменными окружения DBAPI_XXX.