= EPICS Modules インストール = Software : seq, asyn は必ず入れていおいた方が良いと思います。その次にstream device がお勧め。 == Sequencer == {{{ [epics@myvm1 ~]$ cd /opt/epics/R314.12.3/ [epics@myvm1 R314.12.3]$ ls base extensions [epics@myvm1 R314.12.3]$ mkdir modules [epics@myvm1 R314.12.3]$ cd modules/ [epics@myvm1 modules]$ mkdir soft instruments [epics@myvm1 modules]$ cd soft [epics@myvm1 soft]$ ls [epics@myvm1 soft]$ mkdir asyn seq [epics@myvm1 soft]$ ls asyn seq [epics@myvm1 soft]$ [epics@myvm1 soft]$ cd seq [epics@myvm1 seq]$ ls [epics@myvm1 seq]$ [epics@myvm1 seq]$ gzip -dc /opt/epics/arc/seq-2.1.12.tar.gz | tar xvf - [epics@myvm1 seq]$ mv seq-2.1.12 2.1.12 [epics@myvm1 seq]$ ls 2.1.12 [epics@myvm1 seq]$ cd 2.1.12/ [epics@myvm1 2.1.12]$ [epics@myvm1 2.1.12]$ vi configure/RELEASE EPICS_BASE=/opt/epics/R314.12.3/base [epics@myvm1 2.1.12]$ [epics@myvm1 2.1.12]$ make .......... make[3]: re2c: Command not found .......... make: *** [src.install] Error 2 }}} エラーが出て停止した。re2cが必要とのこと。(以前のseqでは不要でしたが、公式サイトがBESSYに移った頃から必要になったようだ) {{{ [root@myvm1 2.1.12]# yum provides "*/re2c" Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: reflx1.kek.jp * extras: reflx1.kek.jp * updates: reflx1.kek.jp No Matches found }}} となるので、オフィシャルサイトのrpmは無さそう。 ソースからコンパイルしても良いし、yumの検索先にRepoForge(旧RPMforge)のサイトを追加することも可能ですが、 ここではコンパイル済みRPMをダウンロードして、手動で入れることにしてみる。 {{{ http://pkgs.repoforge.org/re2c/ }}} を見てみると最新バージョンは{{{ re2c-0.13.5-1.el6.rf.i686.rpm }}}らしい。 {{{ [epics@myvm1 arc]$ wget http://pkgs.repoforge.org/re2c/re2c-0.13.5-1.el6.rf.i686.rpm ..... (最終的には http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/re2c-0.13.5-1.el6.rf.i686.rpm からダウンロードしている) }}} ダウンロードしたファイルの確認。 {{{ [root@myvm1 arc]# rpm -qpi re2c-0.13.5-1.el6.rf.i686.rpm warning: re2c-0.13.5-1.el6.rf.i686.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY Name : re2c Relocations: (not relocatable) Version : 0.13.5 Vendor: Dag Apt Repository, http://dag.wieers.com/apt/ Release : 1.el6.rf Build Date: Fri Nov 12 15:23:26 2010 Install Date: (not installed) Build Host: lisse.hasselt.wieers.com Group : Development/Tools Source RPM: re2c-0.13.5-1.el6.rf.src.rpm Size : 666792 License: MIT Signature : DSA/SHA1, Sat Nov 13 08:05:12 2010, Key ID a20e52146b8d79e6 Packager : Dag Wieers URL : http://re2c.sourceforge.net/ Summary : Tool for generating C-based recognizers from regular expressions Description : re2c is a great tool for writing fast and flexible lexers. It has served many people well for many years and it deserves to be maintained more actively. re2c is on the order of 2-3 times faster than a flex based scan }}} インストールされるファイルの確認。 {{{ [root@myvm1 arc]# rpm -qpl re2c-0.13.5-1.el6.rf.i686.rpm warning: re2c-0.13.5-1.el6.rf.i686.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY /usr/bin/re2c /usr/share/doc/re2c-0.13.5 /usr/share/doc/re2c-0.13.5/CHANGELOG /usr/share/doc/re2c-0.13.5/README ......((略)).......... /usr/share/doc/re2c-0.13.5/sample.bib /usr/share/man/man1/re2c.1.gz }}} rootになってインストール {{{ [root@myvm1 arc]# rpm -Uvh re2c-0.13.5-1.el6.rf.i686.rpm warning: re2c-0.13.5-1.el6.rf.i686.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY Preparing... ########################################### [100%] 1:re2c ########################################### [100%] }}} これで re2c がインストールされたので、seq のコンパイルを実行 {{{ [epics@myvm1 ~]$ cd /opt/epics/R314.12.3/modules/soft/seq/2.1.12/ [epics@myvm1 2.1.12]$ make }}} エラーが出ずに終了 == Asyn インストール == {{{ [epics@myvm1 ~]$ cd /opt/epics/R314.12.3/modules/soft/asyn [epics@myvm1 asyn]$ [epics@myvm1 asyn]$ gzip -dc /opt/epics/arc/asyn4-21.tar.gz | tar xvf - [epics@myvm1 asyn]$ ls asyn4-21 [epics@myvm1 asyn]$ mv asyn4-21 4-21 [epics@myvm1 asyn]$ ls 4-21 [epics@myvm1 asyn]$ cd 4-21/ [epics@myvm1 4-21]$ vi configure/RELEASE SNCSEQ=$(EPICS_BASE)/../modules/soft/seq/2.1.12 EPICS_BASE=/opt/epics/R314.12.3/base [epics@myvm1 4-21]$ make }}} == Applicationのテスト == seqを有効にしてから example application を実行する。 {{{ [epics@myvm1 ~]$ cd app/example/ [epics@myvm1 example]$ [epics@myvm1 example]$ vi configure/RELEASE SNCSEQ=$(EPICS_BASE)/../modules/soft/seq/2.1.12 ASYN=$(EPICS_BASE)/../modules/soft/asyn/4-21 [epics@myvm1 example]$ make distclean [epics@myvm1 example]$ make ..... [epics@myvm1 example]$ cd iocBoot/iocexample/ [epics@myvm1 iocexample]$ vi st.cmd seq sncExample, "user=epicsHost" <--- 最後の行のコメントを外す [epics@myvm1 iocexample]$ ./st.cmd seq sncExample, "user=epicsHost" Sequencer release 2.1.12, compiled Thu May 9 16:39:15 2013 Spawning sequencer program "sncExample", thread 0x9ee4bb0: "sncExample" sncExample[0]: all channels connected & received 1st monitor epics> sncExample: Startup delay over sncExample: Changing to high }}} sequencerが動作して、値に応じてメッセージが出ることを確認。