第4章 リファレンス
21. CanOutputSync
【パラメータ】
hDeviceHandle
CanOpenPort 関数で取得したデバイスハンドルを指定してください。
TrgLine
内部同期出力を行う信号を指定します。
指定可能な識別子は下記から選択します。
識別子 値 内容
CAN_SYNC_NUM1 00000001h 内部同期ライン 1 TrgMode
内部同期トリガ出力条件を指定識別子のうちいずれか 1 つを指定します。
内部同期トリガ出力は、下記の識別子で指定されます。
識別子 値 内容
CAN_SYNC_DISABLE 00000000h 外部トリガ出力なし(デフォルト) CAN_SYNC_RECV 00000001h 内部同期トリガを受信時に出力する
【戻り値】
正常終了した場合は、IFCAN_ERROR_SUCCESSが返されます。
IFCAN_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照くださ い。
【備考】
本関数は、ITC-A81310(S)、ITC-A71310T(S)、ITC-A61310(S)で使用できます。
【使用例】
●C 言語 INT nRet;
HANDLE hDeviceHandle;
DWORD dwTimerConfig;
DWORD dwTimerCount;
hDeviceHandle = CanOpenPort(“IFCAN1”);
: :
// 内部同期トリガを受信時に出力するよう設定
nRet = CanOutputSync(hDeviceHandle, CAN_SYNC_NUM_1, CAN_SYNC_RECV);
●Visual Basic
Dim lpszName As String Dim hDeviceHandle As Long Dim nRet As Long
Dim dwTimerConfig As Long Dim dwTimerCount As Long lpszName = "IFCAN1" & Chr( 0 )
hDeviceHandle = CanOpenPort(lpszName) :
:
' 内部同期トリガを受信時に出力するよう設定
nRet = CanOutputSync(hDeviceHandle, CAN_SYNC_NUM_1, CAN_SYNC_RECV)
●Delphi var
lpszName: String;
hDeviceHandle: THandle;
nRet: Integer;
dwTimerConfig: DWORD;
dwTimerCount: DWORD;
lpszName := ‘IFCAN1’;
hDeviceHandle := CanOpenPort(lpszName);
: :
// 内部同期トリガを受信時に出力するよう設定
nRet := CanOutputSync(hDeviceHandle, CAN_SYNC_NUM_1, CAN_SYNC_RECV);
●Visual C# .NET uint Ret;
IFCCAN_ANY.CAN_MESSAGE CanMessage = new IFCCAN_ANY.CAN_MESSAGE();
IntPtr DeviceHandle;
DeviceHandle = IFCCAN_ANY.CanOpenPort(“IFCAN1”);
: :
●Visual Basic .NET
Dim DeviceHandle As Integer
Dim CanMessage As IFCCAN_ANY.CAN_MESSAGE = New IFCCAN_ANY.CAN_MESSAGE Dim Ret As Integer
Dim TimerConfig As Integer Dim TimerCount As Integer
DeviceHandle = IFCCAN_ANY.CanOpenPort(“IFCAN1”) :
:
' 内部同期トリガを受信時に出力するよう設定
Ret=IFCCAN_ANY.CanOutputSync(DeviceHandle,IFCCAN_ANY.CAN_SYNC_NUM_1, IFCCAN_ANY.CAN_SYNC_RECV)
●Visual C++ CLR プロジェクト unsigned int Ret;
IFCCAN_ANY::CAN_MESSAGE CanMessage;
IntPtr DeviceHandle;
DeviceHandle = IFCCAN_ANY::CanOpenPort(“IFCAN1”);
: :
// 内部同期トリガを受信時に出力するよう設定
Ret=IFCCAN_ANY::CanOutputSync(DeviceHandle,IFCCAN_ANY::CAN_SYNC_NUM_1, IFCCAN_ANY::CAN_SYNC_RECV);
デバイス名「IFCAN1」の CAN インタフェースがデータ受信時に内部同期トリガを出力するよう 設定します。
4.2.2 CAN インタフェース制御用関数 1. CanSetConfig
【機能】
CAN インタフェースの各種設定を行います。
本関数で設定を行うためには、CAN バスへの接続を無効化(CanDeactivate 関数)しておく必 要があります。(接続中のまま実行すると、エラーが返されます)
設定変更後、再度 CAN バスへ接続するためには CanActivate 関数を実行して下さい。
設定値の中には、設定の難しい物もありますので、CanGetConfig 関数で初期値を取得し、その 中から変更したい箇所だけ変更して設定する方法をお勧めします。
※ 「 Intel PCH EG20T 」 の CAN コ ン ト ロ ー ラ を 搭 載 し た 製 品 ( TPC-B016SAxx, TPC-B016SBxx,ETC-B016)では CAN バスへの接続状態に関係なく設定を行うことができます。
一部設定できない項目があります。項目については構造体 CAN_PORT_CONFIG を参照してく ださい。
【書式】
●C 言語
INT CanSetConfig(
HANDLE hDeviceHandle, PCAN_PORT_CONFIG pPortConfig );
●Visual Basic
Declare Function CanSetConfig Lib "IFCan.DLL"( _ ByVal hDeviceHandle As Long, _
ByRef pPortConfig As CAN_PORT_CONFIG _ )As Long
●Delphi
function CanSetConfig(
hDeviceHandle: THandle;
var pPortConfig: CAN_PORT_CONFIG ): Integer; stdcall; external ‘IFCan.DLL’;
●Visual C# .NET(x86、x64 共用)
[DllImport(“IFCan.dll”)]
public static extern uint CanSetConfig(
IntPtr DeviceHandle, ref CAN_PORT_CONFIG PortConfig
●Visual C# .NET(x86 専用)
[DllImport(“IFCan.dll”)]
public static extern uint CanSetConfig(
uint DeviceHandle, ref CAN_PORT_CONFIG PortConfig );
●Visual Basic .NET(x86、x64 共用)
Declare Function CanSetConfig Lib "IFCan.DLL"( _ ByVal DeviceHandle As IntPtr, _
ByRef PortConfig As CAN_PORT_CONFIG _ ) As Integer
●Visual Basic .NET(x86 専用)
Declare Function CanSetConfig Lib "IFCan.DLL"( _ ByVal DeviceHandle As Integer, _
ByRef PortConfig As CAN_PORT_CONFIG _ ) As Integer
【パラメータ】
hDeviceHandle
CanOpenPort 関数で取得したデバイスハンドルを指定してください。
pPortConfig
通信条件設定構造体へのポインタを指定してください。
構造体の説明については、『4.3 構造体説明』をご参照ください。
【戻り値】
正常終了した場合は、IFCAN_ERROR_SUCCESSが返されます。
IFCAN_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照くださ い。
【備考】
1. 受信フィルタの設定は、CanSetAcceptanceFilter 関数で行って下さい。
2. バスマスタ版 CAN 製品は送信中のデータがある状態で、送信バッファサイズの変更は行え ません。
【使用例】
●C 言語 INT nRet;
HANDLE hDeviceHandle;
CAN_PORT_CONFIG PortConfig
hDeviceHandle = CanOpenPort(“IFCAN1”);
: :
nRet = CanGetConfig(hDeviceHandle, &PortConfig);
PortConfig.ulBaudRate = CAN_BAUDRATE_1M;
nRet = CanSetConfig(hDeviceHandle, &PortConfig);
●Visual Basic
Dim lpszName As String Dim hDeviceHandle As Long
Dim PortConfig As CAN_PORT_CONFIG Dim nRet As Long
lpszName = "IFCAN1" & Chr( 0 )
hDeviceHandle = CanOpenPort(lpszName) :
:
nRet = CanGetConfig(hDeviceHandle, PortConfig) PortConfig.ulBaudRate = CAN_BAUDRATE_1M
nRet = CanSetConfig(hDeviceHandle, PortConfig)
●Delphi var
lpszName: String;
hDeviceHandle: THandle;
PortConfig: CAN_PORT_CONFIG;
nRet: Integer;
lpszName := ‘IFCAN1’;
hDeviceHandle := CanOpenPort(lpszName);
●Visual C# .NET uint Ret;
IntPtr DeviceHandle;
IFCCAN_ANY.CAN_PORT_CONFIG PortConfig = new IFCCAN_ANY.CAN_PORT_CONFIG();
DeviceHandle = IFCCAN_ANY.CanOpenPort(“IFCAN1”);
:
Ret = IFCCAN_ANY.CanGetConfig(DeviceHandle, out PortConfig);
PortConfig.BaudRate = IFCCAN_ANY.CAN_BAUDRATE_1M;
Ret = IFCCAN_ANY.CanSetConfig(DeviceHandle, ref PortConfig);
●Visual Basic .NET
Dim DeviceHandle As Integer
Dim PortConfig As IFCCAN_ANY.CAN_PORT_CONFIG = New IFCCAN_ANY.CAN_PORT_CONFIG Dim Ret As Integer
DeviceHandle = IFCCAN_ANY.CanOpenPort(“IFCAN1”) :
Ret = IFCCAN_ANY.CanGetConfig(DeviceHandle, PortConfig) PortConfig.BaudRate = IFCCAN_ANY.CAN_BAUDRATE_1M
Ret = IFCCAN_ANY.CanSetConfig(DeviceHandle, PortConfig)
●Visual C++ CLR プロジェクト unsigned int Ret;
IntPtr DeviceHandle;
IFCCAN_ANY::CAN_PORT_CONFIG PortConfig;
DeviceHandle = IFCCAN_ANY::CanOpenPort(“IFCAN1”);
:
Ret = IFCCAN_ANY::CanGetConfig(DeviceHandle, PortConfig);
PortConfig::BaudRate = IFCCAN_ANY::CAN_BAUDRATE_1M;
Ret = IFCCAN_ANY::CanSetConfig(DeviceHandle, PortConfig);
デバイス名「IFCAN1」の CAN インタフェースを、通信速度 1Mbps に設定します。