VectorCANプラグインの使用
VectorCANプラグインは、Vector InformatikCANアダプタで動作するための低レベルAPIをカプセル化します。
このプラグインを使用するには、Vector CANデバイスドライバとvxlapi.dll (64ビットビルドの場合はvxlapi64.dll)が必要です。
CANバスデバイスの作成
最初に、QCanBus 、目的のプラグインが提供されているかどうかを確認する必要があります:
if (QCanBus::instance()->plugins().contains(QStringLiteral("vectorcan"))) { // plugin available }
ここで、vectorcanはプラグイン名です。
次に、特定のインターフェースへの接続を確立する:
QStringerrorString;QCanBusDevice*デバイス =QCanBus::instance()->createDevice( QStringLiteral("vectorcan")、 QStringLiteral("can0"), &errorString);if(!device) {// エラー処理はここで行う。 qDebug << errorString; }else{ device->connectDevice(); }
can0はアクティブなCANチャンネル名です。VectorCANプラグインは、can0から can63までの64チャンネル(Vector APIのXL_CONFIG_MAX_CHANNELSで定義)を提供します。これらのチャンネルの一部は仮想チャンネルであるため、実際のCANハードウェアがなくても使用できます。仮想チャンネルを調べるには、ベクターのドライバ・パッケージに含まれるプログラム「Vector Hardware Config」(vcanconf.exe)を使用する。availableDevices() メソッドは、現在使用可能なデバイスのリストを返す。
これで、デバイスはCANフレームの書き込みと読み出しができるようになりました:
QCanBusFrame frame; frame.setFrameId(8); QByteArray payload("A36E"); frame.setPayload(payload); device->writeFrame(frame);
読み出しは、readFrame() メソッドを使用して行うことができます。framesReceived() シグナルは、少なくとも1つの新しいフレームが読み出し可能になったときに出力されます:
QCanBusFrame frame = device->readFrame();
VectorCANは、setConfigurationParameter ()を介して制御できる以下の設定をサポートしています:
設定パラメータキー | 説明 |
---|---|
QCanBusDevice::BitRateKey | CANバス接続のビットレートを決定します。 |
QCanBusDevice::ReceiveOwnKey | デフォルトでは、CANフレームを送信した同じデバイスでのCANフレームの受信は無効になっています。このオプションを有効にすると、CANバスに送信されたすべてのCANフレームが直ちに受信バッファに表示されます。これは、送信に成功したかどうかを確認するために使用できます。このオプションを有効にすると、受信したフレームにはQCanBusFrame::hasLocalEcho() が表示されます。 |
QCanBusDevice::CanFdKey | CANバス接続でCAN FDの使用を有効にします。このオプションが有効な場合、送信中の自分のCANフレームを受信することはできないので、QCanBusDevice::ReceiveOwnKey をtrueに設定しても効果はありません。Qt 5.15以降。 |
QCanBusDevice::DataBitRateKey | CANバス接続のデータビットレートを決定します。これはQCanBusDevice::CanFdKey がtrueに設定されているときのみ有効です。Qt 5.15以降。 |
VectorCANは以下の追加機能をサポートしています:
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.