= !Save/Restore の使い方 = == ダウンロード・インストール == * 念のため最新の autosave をインストールする。 * ダウンロード先は http://aps.anl.gov/bcda/synApps/autosave/autosave.html * 今回はR5-7-1を使った。 * ダウンロードしたファイルを extensions/src 以下に展開 * configure/RELEASE で base ディレクトリを指定 * make == test Application 作成 == ここでは例として waveform レコードを初期化する方法について記載します。 (本来の save/restore ではなく restore 部分のみ使うやり方です。邪道かどうかは知りません。) * いつものように makeBaseApp.pl * configure/RELEASE で参照する場所を指定する {{{ AUTOSAVE=$(EPICS_BASE)/../extensions/src/autosave-R5-7-1 }}} * src ディレクトリで Makefileを編集。以下の2行を追加する。 {{{ # for autosave _DBD += asSupport.dbd _LIBS += autosave }}} * db ファイル作成し、waveformレコードを1つ作る {{{ record(waveform, "obina:wf1") { field(DESC, "Analog input") field(INP, "") field(NELM, "10") field(FTVL, "DOUBLE") } }}} == 実行例1:saveせず、単に初期値を設定したいとき == iocBoot ディレクトリでの作業 * st.cmd を編集して set_pass1_restoreFile の1行を追加する(iocInitの前) {{{ .... (snip) .... dbLoadRecords "db/wf1.db" ... # for autosave set_pass1_restoreFile("auto.sav") cd ${TOP}/iocBoot/${IOC} iocInit .... (snip) .... }}} * 同じディレクトリに auto.sav というファイルを作成する。中身は1行のみで {{{ obina:wf1 @array@ { "1" "2" "3" "4" "5" } }}} * ioc実行(st.cmd) {{{ [obina@erlserv iocsrtest]$ ./st.cmd .... (snip) .... iocInit Starting iocInit ############################################################################ ## EPICS R3.14.12.2 $Date: Mon 2011-12-12 14:09:32 -0600$ ## EPICS Base built Jun 25 2012 ############################################################################ reboot_restore: entry for file 'auto.sav' reboot_restore: Found filename 'auto.sav' in restoreFileList. *** restoring from 'auto.sav' at initHookState 7 (after record/device init) *** reboot_restore: done with file 'auto.sav' iocRun: All initialization complete }}} * caget して、初期化されていることを確認。この例では NELM=10に対して、初期値は5個のみ与えている。 {{{ [obina@erlserv ~]$ caget obina:wf1 obina:wf1 10 1 2 3 4 5 0 0 0 0 0 }}} * 確認のため st.cmd 内の set_pass1_restoreFile 行をコメントアウトすると初期化されていない。 {{{ [obina@erlserv ~]$ caget obina:wf1 obina:wf1 10 2.50321e-308 0 0 0 0 0 0 0 0 0 }}} この例では簡単のため sav ファイルを st.cmd と同じところにおいていますが、別ディレクトリに置くことは可能です。 各種パラメータの詳細は本家のwebページを参照してください。デバッグメッセージの on/off など、いろいろと設定可能です。