CanGetCanFdTiming


機能

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 ]

定義

戻り値
[Dec]

内容

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;
Ret = CanGetCanFdTiming ( Id , 1 , &ArbBitrate , &ArbTSeg1 , &ArbSJW , &ArbTSeg2 , &DataBitrate , &DataTSeg1 , &DataSJW , &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) )

 

関連項目

CanSetCanFdTiming