примеры использования 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
$ cd iocBoot/iocvar
$ ../../bin/linux-x86_64/var var.cmd
Всякие полезные команды консоли 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 - прочитать
За генерацию отвечает скрипт 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
.....
.....