機能
転送ステータスの取得を行います。
書式
Ret = DioDmGetStatus ( Id , Dir , &Status , &Err )
引数
Id
[ C: short ] [ Python: ctypes.c_short ]
DioInitで取得したデバイスIDを指定します。
Dir[C:unsigned
long] [Python: ctypes.c_ulong]
転送方向を設定してください。
定義 |
値 [Dec] |
意味 |
DIODM_DIR_IN |
1 |
入力 |
DIODM_DIR_OUT |
2 |
出力 |
Status
[ C:unsigned long *] [ Python: ctypes.POINTER(ctypes.c_ulong) ]
ステータス情報(ステータス、警告)を返します。
ステータスは、以下に示す値の論理和で表されます。
定義 |
値 |
入出力 |
意味 |
DIODM_STATUS_BMSTOP |
0x01 |
入力/出力 |
バスマスタ転送が完了したことを示します。 |
DIODM_STATUS_PIOSTART |
0x02 |
入力/出力 |
PIO入出力がスタートしたことを示します。 |
DIODM_STATUS_PIOSTOP |
0x04 |
入力/出力 |
PIO入出力がストップしたことを示します。 |
DIODM_STATUS_TRGIN |
0x08 |
入力/出力 |
外部スタートでスタート信号が入ったことを示します。 |
DIODM_STATUS_OVERRUN |
0x10 |
入力/出力 |
外部スタートでスタート信号が2回以上入ったことを示します。 転送は問題なく続けられます。 外部接続信号の使用上問題がなければ無視してください。 |
Err
[ C:unsigned long *] [ Python: ctypes.POINTER(ctypes.c_ulong) ]
エラー情報を返します。
エラーは、以下に示す値の論理和で表されます。
定義 |
値 |
入出力 |
意味 |
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 [ C: long ] [ Python: ctypes.c_long ]
定義 |
値 [Dec] |
意味 |
DIO_ERR_SUCCESS |
0 |
正常終了 |
DIO_ERR_DLL_INVALID_ID |
10001 |
無効なIDが指定されました。 |
DIO_ERR_DLL_CALL_DRIVER |
10002 |
ドライバを呼び出せません(デバイスI/Oコントロールに失敗)。 |
DIO_ERR_DLL_BUFF_ADDRESS |
10100 |
データバッファアドレスが不正です。 |
DIO_ERR_SYS_DIRECTION |
50000 |
入出力方向が設定範囲外です。 |
その他のエラー(参照:エラーコード詳細)
初期値
なし
説明
各ステータス、エラーは、入力/出力毎、ボード毎に存在します。転送完了後は、必ずステータスをチェックするようにしてください。
使用例
C |
Ret =DioDmGetStatus(Id,
DIODM_DIR_IN, &Status, &Err); |
Python |
Ret =cdio.DioDmGetStatus(Id,
cdio.DIODM_DIR_IN, ctypes.byref(Status), ctypes.byref(Err)) |
関連項目
なし