Changes between Initial Version and Version 1 of epics/streamdevice/example1


Ignore:
Timestamp:
06/05/12 22:23:10 (12 years ago)
Author:
obina
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • epics/streamdevice/example1

    v1 v1  
     1== Application作成; Socket I/O == 
     2KEITHLEY 2701を例に; EPICS R3.14.9での作業ログ(R3.14.12以降では不要の部分もあり) 
     3 
     4 
     5作業ディレクトリ作成 
     6{{{ 
     7pfrproc2:~ % mkdir /users/obina/epics/app/Keith2701 
     8pfrproc2:~ % cd /users/obina/epics/app/Keith2701 
     9}}} 
     10 
     11テンプレートとしてiocを使用。 
     12{{{ 
     13pfrproc2:Keith2701 % makeBaseApp.pl -t ioc keith2701 
     14 
     15pfrproc2:Keith2701 % makeBaseApp.pl -i -t ioc keith2701 
     16The following target architectures are available in base: 
     17    linux-x86 
     18    linux-x86_64 
     19What architecture do you want to use? linux-x86_64 
     20The following applications are available: 
     21    keith2701 
     22What application should the IOC(s) boot? 
     23The default uses the IOC's name, even if not listed above. 
     24Application name? 
     25}}} 
     26 
     27{{{ 
     28pfrproc2:Keith2701 % vi configure/RELEASE 
     29 
     30SNCSEQ=$(EPICS_BASE)/../modules/soft/seq/2.0.11 
     31ASYN=$(EPICS_BASE)/../modules/soft/asyn/4-11 
     32STREAM=$(EPICS_BASE)/../modules/soft/stream/2-5 
     33}}} 
     34 
     35この段階でエラーが出ないかどうか確認 
     36{{{ 
     37pfrproc2:Keith2701 % make 
     38}}} 
     39問題無ければ、いちど全て削除する 
     40{{{ 
     41pfrproc2:Keith2701 % make distclean 
     42}}} 
     43 
     44srcディレクトリで作業 
     45{{{ 
     46pfrproc2:Keith2701 % cd keith2701App/src/ 
     47}}} 
     48 
     49 
     50dbdファイル作成(Socket I/Oのみならば、Serial...とvxi11...の2行は不要だが、ついでに書いてしまう) 
     51{{{ 
     52pfrproc2:src % vi K2701.dbd 
     53registrar(drvAsynIPPortRegisterCommands) 
     54registrar(drvAsynSerialPortRegisterCommands) 
     55registrar(vxi11RegisterCommands) 
     56}}} 
     57 
     58Makefile編集; 順序に注意。stream.dbdより前にaai,aaoを追加すること。(R3.14.12では不要になる) 
     59{{{ 
     60pfrproc2:src % vi Makefile 
     61 
     62keith2701_DBD += base.dbd 
     63keith2701_DBD += aaiRecord.dbd 
     64keith2701_DBD += aaoRecord.dbd 
     65keith2701_DBD += asyn.dbd 
     66keith2701_DBD += stream.dbd 
     67keith2701_DBD += K2701.dbd 
     68 
     69keith2701_LIBS += asyn 
     70keith2701_LIBS += stream 
     71 
     72}}} 
     73 
     74プロトコルファイル作成 
     75{{{ 
     76pfrproc2:src % cd ../Db/ 
     77pfrproc2:Db % vi K2701.proto 
     78 
     79Terminator = CR LF; 
     80# 
     81getIDN { 
     82    out "*IDN?";   in "%39c"; 
     83} 
     84}}} 
     85 
     86Dbファイル作成 
     87{{{ 
     88pfrproc2:Db % vi test.db 
     89 
     90record(stringin, "obina:idn") 
     91{ 
     92    field(DESC, "get IDN") 
     93    field(DTYP, "stream") 
     94    field(INP,  "@K2701.proto getidn PS1") 
     95} 
     96 
     97同じディレクトリのMakefileに 
     98DB += test.db 
     99を追加 
     100}}} 
     101 
     102application top で makeをかける 
     103{{{ 
     104pfrproc2:Db % cd ../.. 
     105pfrproc2:Keith2701 % make 
     106}}} 
     107 
     108 
     109startup script編集 
     110{{{ 
     111pfrproc2:Keith2701 % cd iocBoot/iockeith2701 
     112pfrproc2:iockeith2701 % vi st.cmd 
     113 
     114dbLoadRecords("db/test.db") 
     115epicsEnvSet("STREAM_PROTOCOL_PATH", ".:../../keith2701App/Db") 
     116drvAsynIPPortConfigure ("PS1", "172.28.8.244:1394") 
     117 
     118pfrproc2:iockeith2701 % chmod +x st.cmd 
     119pfrproc2:iockeith2701 % ./st.cmd 
     120 
     121 
     122epics> dbpf obina:idn.PROC 1 
     123DBR_UCHAR:          1         0x1 
     124epics> 2012/05/09 00:58:24.682 PS1 obina:idn: 16 bytes surplus input "0912,A09  /A02  " 
     1252012/05/09 00:58:24.682 PS1 obina:idn: after 40 bytes "... INC.,MODEL 2701,111" 
     126 
     127stringinは40文字までだが、Keithleyが返してくる文字列が長いのでエラーが出るが気にしない。 
     128 
     129eepics> dbpr obina:idn 
     130ASG:                DESC: get IDN       DISA: 0             DISP: 0 
     131DISV: 1             NAME: obina:idn     SEVR: INVALID       STAT: CALC 
     132SVAL:               TPRO: 0 
     133VAL: KEITHLEY INSTRUMENTS INC.,MODEL 2701,11 
     134 
     135}}}