VectorCANプラグインの使用

VectorCANプラグインは、Vector InformatikCANアダプターで動作するための低レベルAPIをカプセル化します。

このプラグインを使用するには、Vector CANデバイスドライバとvxlapi.dll (64ビットビルドの場合はvxlapi64.dll)が必要です。

CANバスデバイスの作成

最初に、QCanBus 、目的のプラグインが提供されていることを確認する必要があります:

if (QCanBus::instance()->plugins().contains(QStringLiteral("vectorcan"))) {
    // plugin available
}

ここで、vectorcanはプラグイン名です。

次に、特定のインターフェースへの接続を確立します:

QString errorString;
QCanBusDevice *device = QCanBus::instance()->createDevice(
    QStringLiteral("vectorcan"), QStringLiteral("can0"), &errorString);
if (!device) {
    // Error handling goes here
    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::BitRateKeyCANバス接続のビットレートを決定します。
QCanBusDevice::ReceiveOwnKeyデフォルトでは、CANフレームを送信した同じデバイスでのCANフレームの受信は無効になっています。このオプションを有効にすると、CANバスに送信されたすべてのCANフレームが直ちに受信バッファに表示されます。これは、送信に成功したかどうかを確認するために使用できます。このオプションを有効にすると、受信したフレームにはQCanBusFrame::hasLocalEcho() が表示されます。
QCanBusDevice::CanFdKeyCANバス接続でCAN FDの使用を有効にします。このオプションが有効な場合、送信中の自分のCANフレームを受信することはできないので、QCanBusDevice::ReceiveOwnKey をtrueに設定しても効果はありません。Qt 5.15以降。
QCanBusDevice::DataBitRateKeyCANバス接続のデータビットレートを決定します。これはQCanBusDevice::CanFdKey がtrueに設定されているときのみ有効です。Qt 5.15以降。

VectorCANは以下の追加関数をサポートしています:

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、各所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundationによって発行されたGNU Free Documentation License version 1.3の条件の下でライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。