■機能 ステータスバイトの設定とともにSRQを送出するかどうかの設定が行えます。GpSrq関数の拡張版です。今後はこちらを使用してください。
■書式
(VB.NET用)
Dim Stb, SrqFlag, EoiFlag As Integer
Dim Ret As Integer
Ret = GpSrqEx(Stb, SrqFlag, EoiFlag)
(C言語用)
DWORD Stb, SrqFlag, EoiFlag;
DWORD Ret;
Ret = GpSrqEx(Stb, SrqFlag, EoiFlag);
(C#用)
uint Stb, SrqFlag, EoiFlag;
uint Ret;
Ret = gpib.SrqEx(Stb, SrqFlag, EoiFlag);
(Python用)
Stb, SrqFlag, EoiFlag = ctypes.c_ulong(), ctypes.c_ulong(), ctypes.c_ulong()
Ret = ctypes.c_ulong()
Ret.value = GpibPy.GpSrqEx(Stb, SrqFlag, EoiFlag)
■モード スレーブモード
■引数
Stb : ステータスバイトを指定
指定可能な範囲: 0 ~ 255
SrqFlag : SRQ送出の指定
0 : SRQ送信なし
1 : SRQ送信あり
EoiFlag : SRQ送出時、ステータスバイトにEOIを付加するかどうかの指定
0 : EOI送信なし
1 : EOI送信あり
Ret : 終了情報(戻り値)
0 : 正常終了
80 : 初期化未実行
140 : 非同期関数の実行中
255 : パラメータエラー
(詳細は「戻り値一覧」参照)
■補足
本関数ではSRQ(スレーブ側の要求)を送出せずにステータスバイトの変更ができます。
本関数実行後にマスタよりポーリング(GpPoll関数)されると設定されたステータスバイトが出力されます。
ステータスバイトには40Hを示す以下のBitは使用できません。
このBitはSRQの送出用に予約されています。
このため、引数の設定によって出力されるステータスバイトは次のように変化します。
SrqFlag = 0の場合: ステータスバイトから上図のBit6がクリア(=0)されます
SrqFlag = 1の場合: ステータスバイトに上図のBit6がマスク(=1)されます
具体的には次のようになります。
ステータスバイトが変化するケース
・Stb = 01H、SrqFlag = 1のとき実際に設定される値: 41H
・Stb = 41H、SrqFlag = 0のとき実際に設定される値: 01H
ステータスバイトが変化しないケース
・Stb = 01H、SrqFlag = 0のとき
・Stb = 41H、SrqFlag = 1のとき