====== XafsM2 のリモート操作 ====== XafsM2 を Stars 経由で操作して XAFS 測定を行うことができます。 Stars からは、クライアント名を XafsM2、チャンネル名を Remote にしてアクセスして下さい(( XafsM2 が Stars 上で名乗る自分の名前は XAFSM.def で変えられますので もし変更していた場合はその名前でどうぞ。 今のところチャンネル名の "Remote" の方は変更できません。 ))。 MyProgram>XafsM2.Remote Start 使用できるのは XafsM2 の機能の一部だけですが、XAFS 測定に関連する基本的な操作は行えます。 ===== - 使用可能なコマンド一覧 ===== 現在 STARS から XafsM2 に送れるコマンドを幾つかのカテゴリーに分けて表にしてみました。 XafsM2 に何かの数値を尋ねるようなコマンドを除くと、 ほぼすべてのコマンドに対して、XafsM2 はその場で「 @[コマンド名] Ok: 」という返答を返します。 測定関連コマンド(Start/Stop)やバックグラウンド計測のコマンド等、 XafsM2 側の動作に時間がかかる場合も「 @[コマンド名] Ok: 」は即時に返るので、 本当に動作が終了した、あるいは何かの理由で動作が中断した、などの状態確認のためには XafsM2 が発生する[[#XafsM2 が発生するイベント|イベント]]を確認するようにして下さい。 以下の記述で "[...]" はコマンドに渡すパラメータですが、"([...])" の様に "()" がついている場合は、 そのパラメータが無くても良いことを表します。\\ また スラッシュ記号("/") は、"or" の意味で用いています。 ==== - リモート動作全体に関連するコマンド ==== ^ コマンド名 ^ 引数 ^ 説明 ^ | Help | ([文字列]) | 引数がない場合は、XafsM2 が受け付ける全コマンド名を表示する。\\ 引数に[文字列]がある場合は、コマンド名にその[文字列]を含むコマンドを表示する。 | ^ ^ ^ ^ | RemoteOff | ([文字列]) | RemoteOn 以外のリモートコマンドを受け付けない状態にする。\\ [文字列]が指定された場合にはその[文字列]をパスワードとして記憶する。 | | RemoteOn | ([文字列]) | リモートコマンドを受け付ける状態にする。\\ RemoteOff の時にパスワードが指定されていた場合は [文字列] が必要。\\ [文字列]が RemoteOff で設定された文字列と一致すれば\\ リモートコマンドを受け付ける状態に移行する。 | ==== - 測定の進行/停止に関連したコマンド ==== ^ コマンド名 ^ 引数 ^ 説明 ^ | SetXafsMode | [数値] | ステップXAFS / Quick XAFS の切り替え。 0 : ステップ、1 : Quick | ^ ^ ^ ^ | Start    | 無し | 設定ファイルでの設定によって XafsMeasStart または XafsMeasBlockOff の動作を行う。\\ デフォルトの動作は XafsMeasStart。 | | Stop | 無し | 設定ファイルでの設定によって XafsMeasStop または XafsMeasBlockOn の動作を行う。\\ デフォルトの動作は XafsMeasStop。 | ^ ^ ^ ^ | XafsMeasStart | 無し | XAFS測定を開始する。GUI 上で XAFS測定「開始/Start」ボタンを押したのと同じ動作。\\ 但し、ファイルの上書きやバックグラウンド未測定など、進行を中断する確認ダイアログは現れない。\\ 測定の終了や、何らかの理由で測定開始できなかったこと等は XafsM2 が発するイベントで判断できる。 | | XafsMeasStop | 無し | XAFS測定を中止する。GUI 上で XAFS測定「中止/Stop」ボタンを押したのと同じ動作。\\ 但し、「本当に終了しますか」等の進行を中断する確認ダイアログは現れない。 | ^ ^ ^ ^ | XafsMeasBlockOn | 無し | XAFS 測定の進行をブロックするフラグを立てる。\\ XAFS測定を開始しても、GUI上でフラグを外すか XafsMeasBlockOff を受信するまでブロックされる。\\ 温調等の他のプログラムと同期をとって、決まった温度になったら測定を開始するなどの動作を行うための機能。 | | XafsMeasBlockOff | 無し | GUI上の操作または XafsMeasBlockOn で設定された測定をブロックするフラグを外す。 | ==== - 測定準備関連のコマンド ==== ^ コマンド名 ^ 引数 ^ 説明 ^ ^ 測定準備/吸収端選択 ^ ^ ^ | SelectAtom | [数字/文字列] | 吸収元素の選択。原子番号もしくは元素名で指定する。 | | SelectEdge | [数字/文字列] | 内殻状態の選択。\\ 0 / K : K端、1 / LI / L1 : LI端、2 / LII / L2 : LII端、3 / LIII / L3 : LIII端\\ その時に測定されている元素との組み合わせで、吸収端のエネルギーが\\ 測定可能範囲外になる時は設定が拒否されるので要注意。 | ^ 測定準備/ブロック設定 ^ ^ ^ | SetBlockNum | [数値(ブロック数)] | 測定ブロックの数を指定する。 | | GetBlockNum | 無し | 設定されている測定ブロック数を返す。 | | SetBlockUnit | [数値] | ブロックの始点/終点指定の数字の単位を指定する。0 : eV, 1 : keV, 2 : A, 3 : deg | | SetBlock | [行番号][始点][終点][刻み幅][時間]([刻み数]) | 測定ブロックの1行を設定する。\\ [行番号]は 0 始まり。始点/終点の数値の単位は SetBlockUnit で指定されたもの。\\ [刻み数]は無くても良い。[刻み数]があった場合は[刻み幅]が無視されて\\ ([終点]-[始点])/[刻み数] の値が刻み幅になる。 | | SetBlocks | 未定 | ブロック設定の複数行を一括で設定するためのコマンドになる予定。現在は未実装。 | | SelectXafsMeasType | [数値/文字列] | 測定ブロック設定の下の「標準XAFS」等のボタンを押したのと同様に\\ 標準的なブロック設定を行う。\\ 0 / XAFS : "標準XAFS", 1 / EXAFS : "標準EXAFS", 2 / XANES : "標準XANES" | ^ ^ ^ ^ | LoadXafsPrm | [文字列] | 未実装。指定されたパラメータファイルを読み込む。 | ^ 測定準備/検出器選択 ^ ^ ^ | SelectXafsMeasMode | [数値] | 測定ブロック設定の上の「測定モード」ボタンを押したのと同様に\\ あらかじめ決められた検出器選択を行う。\\ 指定する数値は 0 から。左端のボタンが 0。| | SetXafsSensor | [引数1][引数2][引数3][引数4] | [引数1]の値によって[引数2]以下の有無や扱いが変化する。\\ ・[引数1] = 0 / I0 : [引数2]だけが有効。\\  [引数2] : 数字なら選択リストから選択。\\      文字列ならその文字列を ID とする検出器を選択("S001"等)。\\ ・[引数1] = 1 / I1 : [引数3]までが有効。\\  [引数2] : 数字なら選択リストから選択。\\      文字列ならその文字列を ID とする検出器を選択("S001"等)。\\  [引数3] = 0 : 不使用、1 : 使用\\ ・[引数1] = 2 / F : [引数3]までが有効。\\  [引数2] : 何番目(0, 1, 2...)の蛍光検出器かの指定。\\  [引数3] = 0 : 不使用、1 : 使用\\ ・[引数1] = 3, 4 / A1, A2 : [引数4]まで有効。\\  [引数2] : 数字なら選択リストから選択。\\      文字列ならその文字列を ID とする検出器を選択("S001"等)。\\  [引数3] = 0 : 不使用、1 : 使用 \\  [引数4] = 数字 : リストから表示パタンを選択 | ^ 測定準備/バックグラウンド ^ ^ ^ | SetMeasDarkTime | [時間(秒)] | バックグラウンド測定時間を設定する。 | | SetMeasDarkMode | [数値] | バックグラウンドに関して「測定前に計測」と「計測済みの値を使用」を切り替え。\\ 0 : 測定前に計測、1 : 計測済みの値を使用 | | MeasDark | 無し | バックグラウンドを測定する。通常、シャッターは自動的に開閉する。\\ 測定の終了は XafsM2 が発するイベントで判断できる。 | | SetAutoShutter | [数値] | 「自動シャッター」設定を変更する。 0 : off、 1 : on | | ShutterOpen | [数値] | シャッターを開閉する。 0 : 閉、1 : 開 | ^ 測定準備/ファイル ^ ^ ^ | SetXafsFileName | [文字列] | 測定ファイル名の設定。パス名も含めて DataRoot の下と解釈される。\\ 例 1 : [文字列] = [ファイル名]のみ \\    DataRoot 直下に[ファイル名]のファイルが作られる。\\ 例 2 : [文字列] = [フォルダ名/ファイル名] の場合 \\    DatarRoot 下の [フォルダ名] フォルダに [ファイル名] のファイルが作られる。\\ 存在しないフォルダ名を使用しても作成されないので要注意。 | | SetXafsFileFolder | [文字列] | DataRoot の下に [文字列]という名前のフォルダを作る。 | | SetXafsFileDir | [文字列] | SetXafsFileFolder と同じ動作。 | | SetXafsMeasComment | [文字列] | コメント文字列を設定 | ^ 自動試料交換 ^ ^ ^ | SetAutoModeEnable | [数値] | 自動試料交換モードを On にする: 1, しない: 0 | | SelectChanger | [数値]/[文字列(id)] | 試料交換に使用するチェンジャを選択する | | SetAutoModeParams | [文字列] | 自動交換する試料の指定/設定 | | MoveSHolderTo | [文字列] | 特殊ホルダーを、名前のついた特定の位置に移動する | ^ 測定準備/その他 ^ ^ ^ | SetXafsRpt | [数値] | XAFS測定の繰り返し回数を設定する。 | | SetXafsFinishMode | [数値] | XAFS測定終了時に分光器の角度をどこに持っていくかの設定。0: 原位置復帰、1:その場に停止 | | GetXafsFinishMode | 無し | Finish Mode の設定値確認 | ==== - XafsM2 から情報を取得するためのコマンド ==== ^ コマンド名 ^ 引数 ^ 説明 ^ | CurrentEnergy | 無し | 現在のエネルギーを尋ねる。"[エネルギー(keV)] [分光器角度(deg)]" の二つの数字が返る。 | | SetCurrentEnergy | [数値(keV)] | 分光器を指定したエネルギーに移動する。 | | CurrentCrystal | 無し | 現在の分光結晶を尋ねる。"[面間隔(A)] [名称]" の二つの値が返る。| | ThetaInfo | 無し | 分光結晶の主軸$\theta$の制御に関する情報を尋ねる。"[ドライバ名] [CH名] [UPP]"が返る。 \\ ドライバ名, CH 名は主軸$\theta$を担当するコントローラのSTARS上での名称を表す。\\ UPP は 1パルスあたりの移動量(角度)を表す数値。| ===== - XafsM2 が発生するイベント ===== XafsM2 は状態の変化や異常を知らせるために、STARS に向けて幾つかのイベントを発生します。 ==== - 状態変化等の告知や、情報提供のために発生するイベント ==== ^ イベント名 ^ 付随する値 ^ 発生理由 / 意味 ^ | _EvStartMeas | 無し | XAFS測定開始時に発生する。 | | _EvEndMeas | 無し | XAFS測定終了時に発生する。 | | _EvStartQMeas | 無し | Quick XAFS測定開始時に発生する。 | | _EvEndQMeas | 無し | Quick XAFS測定終了時に発生する。 | | _EvQXafsPoints | [点数] [時間(秒)] | Quick XAFS測定開始時に発生する。\\ 測定される予定の点数と、1点あたりの計測時間[秒]を示す。 | | _EvEndDarkMeas | 無し | ダーク測定終了時に発生する。 | | _EvEndPurge | 無し | イオンチャンバのガスを切り替える際のパージ終了時に発生する。 | | _EvEnd2DScan | 無し | 2軸スキャン終了時に発生する。 | | _EvEnd1DScan | 無し | 1軸スキャン終了時に発生する。 | | _EvEndMCAIntegrate | 無し | 蛍光検出器のスペクトルの積算終了時に発生する。 | | _EvNewFileStart | [ファイル名] | XAFS測定結果の記録のために[ファイル名]のファイルに記録を始めた時に発生する。 | | _EvNewFileEnd | [ファイル名] | XAFS測定結果を[ファイル名]のファイルに記録し終わった時に発生する。 | | _EvNewFluoXAFSEnd | [ファイル名] | [ファイル名]のファイルに結果を記録する蛍光XAFS測定が終了した時に発生する。 | | _EvSelectedAtom | [原子番号] [原子名] | 測定対象の原子が選択された時に発生する。 | | _EvNewEnergy | [数値]eV | ステップXAFS測定の際に、新しいエネルギー店に移動した時に発生する。 | | _EvSetDwellTimeMs | [数値] | 測定時間が設定された時にその時間を告知。単位は[ms]。 | | _EvDataFileName | [ファイル名] | Quick XAFS の結果を記録する[ファイル名]を告知する為に発生する。\\ 情報としては _EvNewFileStart と重複するが HiPic2Stars との連携の為に発生する。 | | _EvExecLog | [状態名] [状態番号] | ExecLog 的な状態変化の通知 | | _EvGetValue0 | 無し | 計測前に準備が必要な計測器のために GetValue0 を発信したことを告知 | | _EvGetValue | 無し | 計測器に計測開始を支持する GetValue を発信したことを告知 | | _EvFinishedGetValue | 無し | 全計測器の計測終了を確認したことを告知 | | _EvReadValue | 無し | 計測器に測定値を尋ねたことを告知 | | _EvCheckingI0Start | 無し | I0確認を開始したことを告知 | | _EvCheckingI0End | 無し | I0確認が終了したことを告知 | | _EvNewSScanStart | [数値] | 1軸スキャンを開始(1)したことを告知。多分、終了(0)も告知 | | _EvNewSScanPos | [数値] | 1軸スキャン中にその軸の位置が変化したことを告知 | | _EvMovingCurTh | | 分光器の主軸θが移動中であることを告知 | | _EvChangerMoving | | 試料交換機が移動中であることの告知 | ==== - エラーの告知のために発生するイベント ==== 蛍光検出器に関連したエラーや状態異常検出を告知するために発生するイベントです。 ^ イベント名 ^ 付随する値 ^ 発生理由 / 意味 ^ | _EvErrStartXAFSMeas | XAFS測定が開始できなかった時にウインドウ下部に表示される理由を示すメッセージと同等のもの(日本語化されていない) | | _EvMeasNoDisorder | Er:[ドライバ名] [計測番号] [一つ前の計測番号] | 連続した計測の計測番号の差が 1 になっていない時に発生。 | | _ErWrongXafsMeasID | Er:[ドライバ名] [送信した計測ID] [受信した計測ID] | 計測時にドライバに渡した計測ID と違う ID を付与された\\ データが返ってきた時に発生。| | _EvAllCountsAreTheSameAsOldOnes | Er: | 全チャンネルの計測値が、一つ前の回の計測値と\\ 同じだった時に発生。 | | _EvSendNack | Er:Data-Wait-Timeout | データ転送待ちがタイムアウトしたためにドライバに\\ NACK を送った時に発生。 | | _EvErrRemote | | リモートコマンドのやり取りでなにか不具合が起こったことの通知 | | | _EvErrChangerMove | | 試料交換機を指定位置に移動できなかったことの告知 | |