複数のデバイスを同時に使用する場合、各デバイスに対して初期化を行い別々のIDを取得する必要があります。
関数の実行は各デバイスのIDを指定して行い、終了時には各デバイスに終了処理を行います。
ここでは、複数のデバイスを使用する場合の使用例を示します。
CAN-4P-PEを2枚、CAN-4PF-PEを1台使用し、各デバイスが以下のデバイス名に設定されていて
各デバイスのIDを格納する変数を、ID_CAN1、ID_CAN2、ID_CANFD1とする場合
CAN-4P-PE 1枚目:CAN000
CAN-4P-PE 2枚目:CAN001
CAN-4PF-PE :CAN002
Cでの例
デバイス |
CAN-4P-PE 1枚目 |
CAN-4P-PE 2枚目 |
CAN-4PF-PE |
デバイス名 |
CAN000 |
CAN001 |
CAN002 |
ID変数宣言 |
short ID_CAN1; |
short ID_CAN2; |
short ID_CAN2WF; |
初期化 |
Ret = CanInit("CAN000" ,&ID_CAN1); |
Ret = CanInit("CAN001" ,&ID_CAN2) |
Ret = CanInit("CAN002" ,&ID_CANFD1); |
他の関数 |
Ret = Can***( ID_CAN1, *** ); |
Ret = Can***( ID_CAN2, *** ); |
Ret = Can***( ID_CANFD1, *** ); |
Pythonでの例
デバイス |
CAN-4P-PE 1枚目 |
CAN-4P-PE 2枚目 |
CAN-4PF-PE |
デバイス名 |
CAN000 |
CAN001 |
CAN002 |
ID変数宣言 |
ID_CAN1 = ctypes.c_short() |
ID_CAN2 = ctypes.c_short() |
ID_CAN2WF = ctypes.c_short() |
初期化 |
Ret.value = ccan.CanInit ( b"CAN000" , ctypes.byref(ID_CAN1)) |
Ret.value = ccan.CanInit ( b"CAN001" , ctypes.byref(ID_CAN2)) |
Ret.value = ccan.CanInit( b"CAN002" , ctypes.byre(ID_CANFD1)) |
他の関数 |
Ret.value = ccan.Can***( ID_CAN1, *** ) |
Ret.value = ccan.Can***( ID_CAN2, *** ) |
Ret.value = ccan.Can***( ID_CANFD1, *** ) |