CAN FDの通信タイミング設定を取得します。
Ret = CanGetCanFdTiming ( Id , ChannelNo , ArbBitrate , ArbTSeg1 , ArbSJW , ArbTSeg2 , DataBitrate , DataSeg1 , DataSJW , DataSeg2 )
Id
[ C: short ] [ Python: ctypes.c_short ]
CanInitで取得したデバイスIDを指定します。
ChannelNo
[ C: unsigned short ] [ Python: ctypes.c_ushort ]
チャネル番号を指定します。
ArbBitrate
[ C: unsigned int * ] [ Python: ctypes.POINTER(ctypes.c_uint) ]
アービトレーション ビットレートを取得します。単位はbpsです。(bit per second)
ArbTSeg1 [
C: unsigned short * ] [ Python: ctypes.POINTER(ctypes.c_ushort) ]
アービトレーション時間セグメント1を取得します。単位は TQです。
ArbSJW [
C: unsigned short * ] [ Python: ctypes.POINTER(ctypes.c_ushort) ]
アービトレーション同期ジャンプ幅を取得します。単位は TQです。
ArbTSeg2 [
C: unsigned short * ] [ Python: ctypes.POINTER(ctypes.c_ushort) ]
アービトレーション時間セグメント2を取得します。単位は TQです。
DataBitrate
[ C: unsigned int * ] [ Python: ctypes.POINTER(ctypes.c_uint) ]
データ ビットレートを取得します。単位はbpsです。(kbit per second)
DataTSeg1 [
C: unsigned short * ] [ Python: ctypes.POINTER(ctypes.c_ushort) ]
データ時間セグメント1を取得します。単位は TQです。
DataSJW [
C: unsigned short * ] [ Python: ctypes.POINTER(ctypes.c_ushort) ]
データ同期ジャンプ幅を取得します。単位は TQです。
DataTSeg2 [
C: unsigned short * ] [ Python: ctypes.POINTER(ctypes.c_ushort) ]
データ時間セグメント2を取得します。単位は TQです。
Ret [ C: long ] [ Python: ctypes.c_long ]
定義 |
戻り値 |
内容 |
CAN_ERR_SUCCESS |
0 |
正常終了 |
CAN_ERR_DLL_INVALID_ID |
10001 |
無効なIDが指定されました。 |
CAN_ERR_DLL_CALL_DRIVER |
10002 |
ドライバを呼び出せません(ioctlに失敗)。 |
CAN_ERR_DLL_BUFF_ADDRESS |
10100 |
データバッファアドレスが不正です。 |
CAN_ERR_SYS_CH_NO |
20101 |
チャネル番号が設定可能範囲外です |
その他のエラー(参照:エラーコード詳細)
なし
CAN FDの通信タイミング設定を取得します。
CANバス接続時でも、利用可能です。
詳細は、CAN2.0B通信とCAN
FD通信の違いや、CAN通信の伝送時間を参照ください。
ChannelNo = 1に設定されているArbBitrate、ArbTSeg1、ArbSJW、ArbTSeg2、DataBitrate、DataTSeg1、DataSJW、DataTSeg2を取得します。
C |
long Ret; unsigned int ArbBitrate; unsigned short ArbTSeg1; unsigned short ArbSJW; unsigned short ArbTSeg2; unsigned int DataBitrate; unsigned short DataTSeg1; unsigned short DataSJW; unsigned short DataTSeg2; |
Python |
Ret = ctypes.c_long() ArbBitrate = ctypes.ctypes.c_uint() ArbTSeg1 = ctypes.c_ushort() ArbSJW = ctypes.c_ushort() ArbTSeg2 = ctypes.c_ushort() DataBitrate = ctypes.ctypes.c_uint() DataTSeg1 = ctypes.c_ushort() DataSJW = ctypes.c_ushort() DataTSeg2 = ctypes.c_ushort() Ret.value = ccan.CanGetCanFdTiming ( Id , 1 , ctypes.byref(ArbBitrate) , ctypes.byref(ArbTSeg1) , ctypes.byref(ArbSJW) , ctypes.byref(ArbTSeg2) , ctypes.byref(DataBitrate) , ctypes.byref(DataTSeg1) , ctypes.byref(DataSJW) , ctypes.byref(DataTSeg2) )
|