CanGetCanFdTiming


機能

CAN FDの通信タイミング設定を取得します。

書式

Ret = CanGetCanTiming ( Id , ChannelNo , ArbBitrate , ArbTSeg1 , ArbSJW , ArbTSeg2 , DataBitrate , DataSeg1 , DataSJW , DataSeg2 )

引数

Id [ VB.NET: Short ] [ C, C++: short ] [ C#: short ] [ Python: ctypes.c_short ]
CanInitで取得したデバイスIDを指定します。

ChannelNo [ VB.NET: UShort ] [ C, C++: unsigned short ] [ C#: ushort ] [ Python: ctypes.c_ushort ]
チャネル番号を指定します。

ArbBitrate [ VB.NET: UInteger ] [ C, C++: unsigned long * ] [ C#:out uint ] [ Python: ctypes.POINTER(ctypes.c_uint) ]
アービトレーション ビットレートを取得します。単位はbpsです。(bit per second)

ArbTSeg1 [ VB.NET: UShort ] [ C, C++: unsigned short * ] [ C#: out ushort ] [ Python: ctypes.POINTER(ctypes.c_ushort) ]
アービトレーション時間セグメント1を取得します。単位は TQです。

ArbSJW [ VB.NET: UShort ] [ C, C++: unsigned short * ] [ C#: out ushort ] [ Python: ctypes.POINTER(ctypes.c_ushort) ]
アービトレーション同期ジャンプ幅を取得します。単位は TQです。

ArbTSeg2 [ VB.NET: UShort ] [ C, C++: unsigned short * ] [ C#: out ushort ] [ Python: ctypes.POINTER(ctypes.c_ushort) ]
アービトレーション時間セグメント2を取得します。単位は TQです。

DataBitrate [ VB.NET: UInteger ] [ C, C++: unsigned long * ] [ C#:out uint ] [ Python: ctypes.POINTER(ctypes.c_uint) ]
データ ビットレートを取得します。単位はbpsです。(kbit per second)

DataTSeg1 [ VB.NET: UShort ] [ C, C++: unsigned short * ] [ C#: out ushort ] [ Python: ctypes.POINTER(ctypes.c_ushort) ]
データ時間セグメント1を取得します。単位は TQです。

DataSJW [ VB.NET: UShort ] [ C, C++: unsigned short * ] [ C#: out ushort ] [ Python: ctypes.POINTER(ctypes.c_ushort) ]
データ同期ジャンプ幅を取得します。単位は TQです。

DataTSeg2 [ VB.NET: UShort ] [ C, C++: unsigned short * ] [ C#: out ushort ] [ Python: ctypes.POINTER(ctypes.c_ushort) ]
データ時間セグメント2を取得します。単位は TQです。

戻り値

Ret [ VB.NET: Integer ] [ C, C++: long ] [ C#: int ] [ Python: ctypes.c_long ]

定義

戻り値
[Dec]

内容

CAN_ERR_SUCCESS

0

正常終了

CAN_ERR_SYS_RECOVERED_FROM_STANDBY

7

スタンバイモードから復帰したため、CanResetDevice関数を実行してください

CAN_ERR_DLL_INVALID_ID

10001

無効なIDが指定されました。

CAN_ERR_DLL_CALL_DRIVER

10002

ドライバーを呼び出せません(デバイスI/Oコントロールに失敗)。

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を取得します。

VB.NET

Dim Ret As Integer

Dim ArbBitrate As UInteger

Dim ArbTSeg1 As UShort

Dim ArbSJW As UShort

Dim ArbTSeg2 As UShort

Dim DataBitrate As UInteger

Dim DataTSeg1 As UShort

Dim DataSJW As UShort

Dim DataTSeg2 As UShort

Ret = CanGetCanFdTiming ( Id , 1 , ArbBitrate , ArbTSeg1 , ArbSJW , ArbTSeg2 , DataBitrate , DataTSeg1 , DataSJW , DataTSeg2 )
 

C, C++

long Ret;

unsigned long ArbBitrate;

unsigned short ArbTSeg1;

unsigned short ArbSJW;

unsigned short ArbTSeg2;

unsigned long DataBitrate;

unsigned short DataTSeg1;

unsigned short DataSJW;

unsigned short DataTSeg2;
Ret = CanGetCanFdTiming ( Id , 1 , &ArbBitrate , &ArbTSeg1 , &ArbSJW , &ArbTSeg2 , &DataBitrate , &DataTSeg1 , &DataSJW , &DataTSeg2 );
 

C#

int Ret;

ulong ArbBitrate;

ushort ArbTSeg1;

ushort ArbSJW;

ushort ArbTSeg2;

ulong DataBitrate;

ushort DataTSeg1;

ushort DataSJW;

ushort DataTSeg2;
Ret = can.GetCanFdTiming ( Id , 1 , out ArbBitrate , out ArbTSeg1 , out ArbSJW , out ArbTSeg2 , out DataBitrate , out DataTSeg1 , out DataSJW , out 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