転送ステータスの取得を行います。
Ret = DioDmGetStatus ( Id , Direction , Status , Err )
Id
[ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short
]
DioInitで取得したデバイスIDを指定します。
Direction
[ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short
]
転送方向を設定してください。
定義 |
値 [Dec] |
意味 |
DIODM_DIR_IN |
1 |
入力 |
DIODM_DIR_OUT |
2 |
出力 |
Status
[ VB.NET: Integer ] [ C, C++: unsigned long * ] [ C#: out uint ] [ Python:
ctypes.POINTER(ctypes.c_ulong) ]
ステータス情報(ステータス、警告)を返します。
シンボル |
値 [Hex] |
入出力 |
意味 |
DIODM_STATUS_BMSTOP |
0x01 |
入力/出力 |
バスマスタ転送が完了したことを示します。 |
DIODM_STATUS_PIOSTART |
0x02 |
入力/出力 |
PIO入出力がスタートしたことを示します。 |
DIODM_STATUS_PIOSTOP |
0x04 |
入力/出力 |
PIO入出力がストップしたことを示します。 |
DIODM_STATUS_TRGIN |
0x08 |
入力/出力 |
外部スタートでスタート信号が入ったことを示します。 |
DIODM_STATUS_OVERRUN |
0x10 |
入力/出力 |
外部スタートでスタート信号が2回以上入ったことを示します。 転送は問題なく続けられます。 外部接続信号の使用上問題がなければ無視してください。 |
Err
[ VB.NET: Integer ] [ C, C++: unsigned long * ] [ C#: out uint ] [ Python:
ctypes.POINTER(ctypes.c_ulong) ]
エラー情報を返します。
シンボル |
値 [Hex] |
入出力 |
意味 |
DIODM_STATUS_FIFOEMPTY |
0x01 |
出力 |
FIFOが空になったことを示します。 主要因は、システムの負荷が高くバスマスタ転送が間に合わないためです。 転送レートを下げる、システム付加を軽くするなどの対策が必要です。 |
DIODM_STATUS_FIFOFULL |
0x02 |
入力 |
FIFOが一杯になったことを示します。 主要因は、システムの負荷が高くバスマスタ転送が間に合わないためです。 転送レートを下げる、システム付加を軽くするなどの対策が必要です。 |
DIODM_STATUS_SGOVERIN |
0x04 |
入力 |
バッファがオーバーフローしたことを示します。 転送しようとしたデータ数がバッファのサイズを超えています。 バッファサイズを大きくしてください |
DIODM_STATUS_TRGERR |
0x08 |
入力/出力 |
外部スタートでスタート信号とストップ信号が同時に入ったことを示します。 外部スタート信号と外部ストップ信号の入り方を確認してください。 |
DIODM_STATUS_CLKERR |
0x10 |
入力/出力 |
外部クロックでデータ入力中に次のクロックが入ったことを示します。 このステータスが立った場合、指定の外部クロックではサンプリングできません。 外部クロックの周期を下げることを検討してください。 |
DIODM_STATUS_SLAVEHALT |
0x20 |
入力/出力 |
スレーブからの停止要因で強制終了したことを示します。 スレーブ側のエラーを確認してください。 |
DIODM_STATUS_MASTERHALT |
0x40 |
入力/出力 |
マスターからの停止要因で強制終了したことを示します。 マスター側のエラーを確認してください。 |
Ret [ VB.NET: Integer ] [ C, C++: long ] [ C#: int ] [ Python: ctypes.c_long ]
定義 |
値 [Dec] |
意味 |
DIO_ERR_SUCCESS |
0 |
正常終了 |
DIO_ERR_SYS_RECOVERED_FROM_STANDBY |
7 |
スタンバイモードから復帰したため、DioResetDevice関数を実行してください |
DIO_ERR_DLL_INVALID_ID |
10001 |
無効なIDが指定されました。 |
DIO_ERR_DLL_CALL_DRIVER |
10002 |
ドライバーを呼び出せません(デバイスI/Oコントロールに失敗)。 |
DIO_ERR_DLL_BUFF_ADDRESS |
10100 |
データバッファアドレスが不正です。 |
DIO_ERR_SYS_NOT_SUPPORTED |
20001 |
このデバイスではこの関数は使用できません。 |
DIO_ERR_SYS_IODIRECTION |
20500 |
入出力方向が設定範囲外です。 |
その他のエラー(参照:エラーコード詳細)
なし
各ステータス、エラーは、入力/出力毎、ボード毎に存在します。転送完了後は、必ずステータスをチェックするようにしてください。
通常、転送完了の確認にはDioDmSetStopEvent関数を使用しますが、この関数を使用して転送完了を確認する場合、バスマスタ転送機能の使用(転送完了)をご参照ください。
入力転送ステータスを取得します。
VB.NET |
Dim Ret As Integer |
C, C++ |
long Ret; |
C# |
int Ret; |
Python |
Ret = ctypes.c_long() |