TOP

примеры использования genlib для написани IOC

Получение

$ git clone http://www.inp.nsk.su/~bekhte/genlib-example.git
$ cd genlib-example
$ git submodule init
$ git submodule update

Обновление

$ git pull
$ git submodule update

Назначение файлов

varApp - пример IOC c использованием библиотеки

varmonApp - пример IOC который подключается к другим IOC

iocBoot - скрипты запуска IOC

genlib - вспомогательная библиотека

configure - файлы конфигурации эпикса

inc - вспомогательные инклуде файлы

src - исходник main

bin - директории с результатотм компиляции
db
dbd

Компиляция

Должен быть установлен epics-base, переменная окружения EPICS_BASE указывает на место установки. Для pult6 данная переменная окружения устанавливается автоматически и равна EPICS_BASE=/usr/lib/epics. Если вы установили эпикс для себя настройте переменную.

$ make

Запуск IOC

$ cd iocBoot/iocvar
$ ../../bin/linux-x86_64/var var.cmd

Команды IOC

Всякие полезные команды консоли IOC

help - напечатать список встроенных функций

var - напечатать список зарегестрированных переменных

var debug_level_ioc 3 - установить уровень отладочной информации 3, (реализация chk.h)

dbl - список PV

dbgrep wildcard - список PV по маске

dbpr pvname - распечатка информации по PV, основное

dbpr pvname 6 - распечатка информации по PV, все подробности

dbpf pv value - записать значение

dbgf pv - прочитать

Создание собственного IOC из шаблона

За генерацию отвечает скрипт makeIOCfromGenlibTemplate.sh, скрипт можно слинковать из ~/bin, скопировать в ~/bin или вызывать по абсолютному пути.

По тексту шаблона встречаются строчки помеченные PLACE_*_INSERT, в эти места скрипт добавляет описание pv, попутно создаются дефайны которые следует определить.

mkdir cool_dir                                                  # создать директорию для проекта
cd cool_dir

makeIOCfromGenlibTemplate.sh --help                             # просмотреть помощь

makeIOCfromGenlibTemplate.sh --app app_name                     # создать пустое приложение app_name

makeIOCfromGenlibTemplate.sh --app app_name --var    ...        # добавить rw pv
makeIOCfromGenlibTemplate.sh --app app_name --var_ro ...        # добавить ro pv
.....
.....