受信受容設定をします。
Ret = CanSetChannelAcceptance ( Id , ChannelNo , MessageTypeMask , CanIdMask , CanIdCode )
Id
[ VB.NET: Short ] [ C, C++: short ] [ C#: short ]
CanInitで取得したデバイスIDを指定します。
ChannelNo
[ VB.NET: UShort ] [ C, C++: unsigned short ] [ C#: ushort ]
チャネル番号を指定します。
MessageTypeMask
[ VB.NET: UInteger ] [ C, C++: unsigned long ] [ C#: uint ]
受信しないメッセージタイプを指定します。
ビット指定されているメッセージタイプが受信対象外となります。
複数のメッセージタイプを指定する場合は、論理和(OR)でビット演算します。
例えば、0x00の場合、メッセージタイプの指定がないため、全メッセージタイプが受信対象となります。
定義 |
値 |
意味 |
CCAN_MSG_TYPE_DISABLE |
0x00 |
指定なし(全メッセージタイプが受信対象とする) |
CCAN_MSG_TYPE_CAN |
0x01 |
CANメッセージ |
CCAN_MSG_TYPE_CAN_FD |
0x02 |
CAN FDメッセージ |
CCAN_MSG_TYPE_REMOTE_FRAME |
0x04 |
リモートフレーム。 ※CANのみ有効にできます |
CCAN_MSG_TYPE_BITRATE_SWITCH |
0x08 |
ビットレートスイッチ。 ※CAN FDのみ有効にできます |
CCAN_MSG_TYPE_EXTENDED_FORMAT |
0X20 |
拡張フォーマット |
CanIdMask
[ VB.NET: UInteger ] [ C, C++: unsigned long ] [ C#: uint
]
受信対象とするCAN IDのマスク指定をします。
標準フォーマットが指定されている場合は、ベースID(11bit)で指定します。
有効な指定範囲は、0x000~0x7FFです。
0x000を指定すると、すべてのCAN IDメッセージが受信バッファに格納されます。
0x7FFを指定すると、すべてのCAN IDがフィルタ対象となり、CanIdCodeで受信バッファに格納するCAN IDメッセージを指定します。
拡張フォーマットが指定されている場合は、拡張ID + ベースID (合計29bit)で指定します。
有効な指定範囲は、0x000~0x1FFFFFFFです。
0x00000000を指定すると、すべてのCAN IDメッセージが受信バッファに格納されます。
0x1FFFFFFFを指定すると、すべてのCAN IDがフィルタ対象となり、CanIdCodeで受信バッファに格納するCAN IDメッセージを指定します。
CanIdMask |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
09 |
08 |
07 |
06 |
05 |
04 |
03 |
02 |
01 |
00 |
拡張ID / ベースID |
- |
- |
- |
拡張ID |
ベースID |
|||||||||||||||||||||||||||
各IDのビット番号 |
- |
- |
- |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
09 |
08 |
07 |
06 |
05 |
04 |
03 |
02 |
01 |
00 |
10 |
09 |
08 |
07 |
06 |
05 |
04 |
03 |
02 |
01 |
00 |
CanIdCode
[ VB.NET: UInteger ] [ C, C++: unsigned long ] [ C#: uint
]
CanIdMask指定でフィルタ対象となったメッセージの中で、受信バッファへ格納するCAN IDをコード指定します。
標準フォーマットが指定されている場合は、ベースID(11bit)で指定します。
有効な指定範囲は、0x000~0x7FFです。
拡張フォーマットが指定されている場合は、拡張ID + ベースID (合計29bit)で指定します。
拡張IDが上位ビット、ベースIDが下位ビットとなります。
有効な指定範囲は、0x000~0x1FFFFFFFです。
CanIdCode |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
09 |
08 |
07 |
06 |
05 |
04 |
03 |
02 |
01 |
00 |
拡張ID / ベースID |
- |
- |
- |
拡張ID |
ベースID |
|||||||||||||||||||||||||||
各IDのビット番号 |
- |
- |
- |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
09 |
08 |
07 |
06 |
05 |
04 |
03 |
02 |
01 |
00 |
10 |
09 |
08 |
07 |
06 |
05 |
04 |
03 |
02 |
01 |
00 |
Ret [ VB.NET: Integer ] [ C, C++: long ] [ C#: int ]
定義 |
戻り値 [Dec] |
内容 |
CAN_ERR_SUCCESS |
0 |
正常終了 |
CAN_ERR_SYS_RECOVERED_FROM_STANDBY |
7 |
スタンバイモードから復帰したため、DioResetDevice関数を実行してください |
CAN_ERR_DLL_INVALID_ID |
10001 |
無効なIDが指定されました。 |
CAN_ERR_DLL_CALL_DRIVER |
10002 |
ドライバーを呼び出せません(デバイスI/Oコントロールに失敗)。 |
CAN_ERR_SYS_CH_NO |
20101 |
チャネル番号が設定可能範囲外です |
CAN_ERR_SYS_DATA_FRAME_FORMAT |
20102 |
データフレームフォーマットが設定可能範囲外です。 |
その他のエラー(参照:エラーコード詳細)
MessageTypeMask = 0x00 (CCAN_MSG_TYPE_DISABLEL。指定なし(全メッセージタイプが受信対象とする)
)
CanIdMask = 0x00000000 (全メッセージが受信バッファへ格納されます)
CanIdCode = 0x00000000
受信受容設定をします。
バス未接続時のみ設定可能です。
1つのCAN IDを受信対象とするだけでなく、CanIdMaskとCanIdCodeを組み合わせることで、複数のCAN
IDを受信対象にすることができます。
詳細は、「CanIdMaskとCanIdCodeの設定例」を参照ください。
ChannelNo = 1へ、標準フォーマットのCAN通信で、CanIdMask = 2047、CanIdCode = 3に設定します。なお、10進数の2047を、16進数で表すと 0x7FFです。
VB.NET |
Dim Ret As Integer Ret = CanSetChannelAcceptance
( Id , 1 , CCAN_MSG_TYPE_CAN , 2047 , 3 ) |
C, C++ |
long Ret; Ret = CanSetChannelAcceptance
( Id , 1 , CCAN_MSG_TYPE_CAN , 2047 , 3 ); |
C# |
int Ret; Ret = can.SetChannelAcceptance
( Id , 1 , CCAN_MSG_TYPE_CAN , 2047 , 3 ); |