SystecCAN プラグインの使用

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

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

CANバスデバイスの作成

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

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

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

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

QString errorString;
QCanBusDevice *device = QCanBus::instance()->createDevice(
    QStringLiteral("systeccan"), QStringLiteral("can0.0"), &errorString);
if (!device) {
    // Error handling goes here
    qDebug << errorString;
} else {
    device->connectDevice();
}

ここで、can0.0はアクティブなCANインターフェース名(インターフェース0、チャンネル0)です。SystecCANプラグインは、can0.0から can63.1までの64個のUSBインターフェース(いわゆるモジュール)をサポートしています。各モジュールは1つまたは2つのチャンネルを持つことができ、それらはインデックスcanX.0またはcanX.1でアクセスできます。availableDevices() メソッドは、現在使用可能なデバイスのリストを返します。

注: SYS TECは、8チャンネルまたは16チャンネルのCANインターフェースも提供しています。これらのユニットは、USBハブと複数の2チャンネル・モジュールで構成されています。

このデバイスは、CANフレームの書き込みと読み出しが可能です:

QCanBusFrame frame;
frame.setFrameId(8);
QByteArray payload("A36E");
frame.setPayload(payload);
device->writeFrame(frame);

読み出しは、readFrame ()メソッドを使用して行うことができます。framesReceived() シグナルは、少なくとも1つの新しいフレームが読み出し可能になったときに出力されます:

QCanBusFrame frame = device->readFrame();

SystecCANは、setConfigurationParameter()から制御できる以下のコンフィギュレーションをサポートしています:

設定パラメータキー説明
QCanBusDevice::BitRateKeyCANバス接続のビットレートを決定します。以下のビットレートがサポートされています:10000、20000、50000、100000、125000、250000、500000、800000、1000000。このコンフィギュレーション・パラメーターは、QCanBusDevice が接続されていない状態でしか調整できないことに注意してください。
QCanBusDevice::ReceiveOwnKeyデフォルトでは、CANフレームを送信したのと同じチャンネルでのCANフレームの受信は無効になっています。このオプションを有効にすると、受信したフレームにはQCanBusFrame::hasLocalEcho() が表示されます。

SystecCANは、以下の追加機能をサポートしています:

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