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 ]
定義 |
戻り値 |
内容 |
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; |
C# |
int Ret; ulong ArbBitrate; ushort ArbTSeg1; ushort ArbSJW; ushort ArbTSeg2; ulong DataBitrate; ushort DataTSeg1; ushort DataSJW; ushort 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) )
|