Прием Can CAN кадра Qt и USB-адаптер PeakCan - PullRequest
0 голосов
/ 28 мая 2018

Я хочу получить кадр Can Bus от Qt с USB-адаптером PeakCan от Peak System.В данный момент я могу писать на шине, и она работает хорошо, я проверяю с помощью PCAN View, но моя проблема в процессе чтения.

Когда я передаю данные с помощью PCAN View, мой слот для чтения не происходит, хотя явыполните подключение.

Это мой конструктор класса, а член m_device имеет тип QCanBusDevice:

m_device = QCanBus::instance()->createDevice("peakcan", "usb0");
m_device->connectDevice()
connect(m_device, &QCanBusDevice::framesReceived, this, &BusCan::onFramesReceived);

А теперь мой слот для чтения фреймов Can Bus:

void BusCan::onFramesReceived() {
    qDebug() << "[Frame received] !";
}

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 22 ноября 2018

Ваш код работает с моим pcan-ключом.Я ничего не менял в ваших звонках, кроме названий классов и т. Д.

Чтобы получить сигнал, вы должны убедиться, что

  • вы используете QCoreApplication илиQApplication
  • ваш класс BusCan должен наследовать QObject и содержать Q_OBJECT -макро.

Если он все еще не работает, вы можете сделать QCanBus показать подробное ведение журнала, как описано в документации:

http://doc.qt.io/qt-5/qtserialbus-index.html

Вы также можете проверить error() и errorString() с вашего QCanBusDevice

...