目次
EPICSシステムをR314.6からR314.7にし、Asynドライバーを3-3から4-2-1に変更したことに伴い、GP-IBデバイスサポート(及び、これを利用しているシステム)はこのままではコンパイル不可能になってしまいました。本メモは、移行に関して必要だった手順等を記録のために書いたものです。
GP-IBデバイスサポートの移行に関して必要なことは、asynドライバーディレクトリの中のdocumentationの所に呪われたhtmlファイルの形であります。ここではそのうち、多分最低限必要そうなことをまとめると、
- #include <devCommonGpib.h>以外の全ての#includeラインを消去します。
- このあと、DSET_なんとかの定義を入れますが、たとえ使わなくても必ずDSET_AIの定義は必要です。
- これらDSET_なんとかの定義のあと、#include <devGpib.h>を入れます。
- DSET_なんとかの初期化部分を全部除去します。
- 全部のxxxDebug定義を除去します。
- TIME_WINDOWマクロの定義が1/60秒単位から、秒単位に変わりました。
- DMA_TIMEマクロ、TIMEOUTも同様です。
- command table entryの、end-of-string value(最後の項)を-1からNULLへ、また'\r'から"\r"へ変更します。
- device-support初期化function名はinit_aiにします。
- このほか、本当にGP-IBなら大事なことが色々ありますが、devB4phaseはなんちゃってGP-IBなので、省略します。
以下のコマンドで、サンプルdirectoryを作成できます。
/local/R314.7/modules/soft/4-2-1/bin/linux-x86/makeSupport.pl -t devGpib example
なお、本バージョンに対応したgdl変換ソフトウエアは、気長に待っていればきっとコントロールグループが作ってくれるでしょう。
意外に大きな変更はせずにすみました。まず、定義部ですが、
#include <epicsStdio.h>
#include <devCommonGpib.h>
/***********************************************************************
* asynDriver is distributed subject to a Software License Agreement
* found in file LICENSE that is included with this distribution.
***********************************************************************/
#define DSET_AI devAiB4phase
#define DSET_AO devAoB4phase
#define DSET_BI devBiB4phase
#define DSET_BO devBoB4phase
#define DSET_LI devLiB4phase
#define DSET_LO devLoB4phase
#define DSET_MBBO devMbboB4phase
#define DSET_MBBI devMbbiB4phase
#define DSET_SI devSiB4phase
#define DSET_SO devSoB4phase
#include <devGpib.h>
とします。また、conversionルーチンで使用しているstrtokとかのため
#include <string.h>
#include <stdlib.h>
の定義も必要でした。その他は、変更なしに動いています。また、devB4phase.dbdのしっぽに
include "asyn.dbd"
を追加しました。
こちらは、直接は問題無いはずなのですが、中で使っているsleepが未定義だという文句が出るようになったので、sttファイルの中で
program PHASE_CNTL3
%%#include <unistd.h>
という風に定義を入れました。なお、このバージョンからsleepではなく、epicsSThreadSleepというfunctionが使えるようになったので、こっちを使え、という説もありますが、どなたか人柱になって試して結果を教えてください。
EPICS R314.7及びASYN 4-2-1移行に伴うデバイスサポート及びEPICSシーケンサ変更についてまとめました。コントロールグループの山本さんに色々教えて頂きました。ありがとうございました。
Makoto Tobiyama
17/May/2005
Return to FB Home Page...