Conference Room SAD


[Thread display] [Reply] [New arrival display] [Word search] [Notes] [管理用]

No. 186
Title Re: CaGet[]
Date : 2017/02/08(Wed) 17:47:56
Name Akio Morita
URL
> SAD上でcagetのオプションをつける方法ってありますでしょうか?
> コマンドラインでcagetだけで取ってくると"Illigal Value"になり、SADでも
> 同様、コマンドラインではcagetにオプションとして"-n"をつけると値が取って
> こられる、というレコードをSADから値を取りたいのです。
>
caget -n しただけなら、Get["!caget -n ..."]とか (fp = OpenRead["!caget -n ..."]; r = Read[fp, String]; Close[fp]; r)で解決な気も…

SADのEPICS CA実装は複数有り、呼び出し関数・改版状態により内部実装・動作が違います
従って、上手く動かないとされる実行形式に対応するsource revisionと呼び出した関数を
特定しないと調べようがありません

問題の cagetの -n オプションは、DBF_ENUMなレコードに関するものなので、
MAIN trunkの”最新版”から関連する動作を抜き出すと以下の通り

* CaMonitor系(src/CaSearch2.c)
** DBR_TIME_LONGでca_add_masked_array_eventする
* CaRead/CaGet/CaWrite/CaPut系(src/CaSearch_.c)
** DBR_TIME_ENUMでca_array_getする
*** struct dbr_time_enumのvalue要素の値を realへ型変換
*** dbr_enum_t型は、epicsUInt16型なので整数値が返ると思われる(caget -nの動作に近いと思うのですが…)
** こちらの内部実装は、2016.02.17に大規模な改修が行われている
*** 以前の実装は、DBR_TIME_DOUBLEで ca_array_getしている

- Related List tree (Click ▼ to display all articles in a thread.)


- Reply Form (Reply to the above using the following.)
Name
E-Mail
Subject
Message
URL
Password (alphanumeric characters within 8)
Subscribe Key (Enter the number of the right image) Post key


- Modify or delete a contributeted article using the following form. -
Do No Password

- WebForum -