/** * @brief MainWindow::uiUpdate */ void MainWindow::uiUpdate(){ ui->pushButtonBusOn->setEnabled(connected); ui->comboBoxBaud->setEnabled(!busOn); ui->checkBox_Silent->setEnabled(!busOn); if(connected){ canBusStatistics stats; canStatus stat; stat = canRequestBusStatistics(canHandle); if( stat < 0){ qDebug() debugprefix << "canRequestBusStatistics failed"; }else{ stat = canGetBusStatistics(canHandle, &stats, sizeof(canBusStatistics)); if(stat < 0){ qDebug() debugprefix << "canGetBusStatistics failed"; }else{ ui->label_corruptCounter->setText(QString().setNum(stats.errFrame)); unsigned long c = stats.stdData + stats.stdRemote + stats.extData + stats.extRemote; ui->label_packetCounter->setText(QString().setNum(c)); ui->progressBarBusLoad->setValue(stats.busLoad); } } if(busOn){ // Dirty but effective while(1){ long id; unsigned char data[8]; unsigned int dlc, flags; unsigned long timestamp; canStatus stat = canRead(canHandle, &id, data, &dlc, &flags, ×tamp); if (stat < 0) { //qDebug() debugprefix << "canRead() end of queue"; break; }else{ QString l; if(flags & canMSG_ERROR_FRAME){ l.sprintf("%ld",timestamp); qDebug() debugprefix << "canRead() got error"; }else{ int rtr = 0; if( flags & canMSG_RTR ) rtr = 1; l.sprintf("%ld\tID:0x%08X\tRTR:%d\t",timestamp,id,rtr); if( dlc > 0 ) l.append(QString().sprintf("DATA: %02X", (quint8)data[0])); if( dlc > 1 ) l.append(QString().sprintf("%02X", (quint8)data[1])); if( dlc > 2 ) l.append(QString().sprintf("%02X", (quint8)data[2])); if( dlc > 3 ) l.append(QString().sprintf("%02X", (quint8)data[3])); if( dlc > 4 ) l.append(QString().sprintf("%02X", (quint8)data[4])); if( dlc > 5 ) l.append(QString().sprintf("%02X", (quint8)data[5])); if( dlc > 6 ) l.append(QString().sprintf("%02X", (quint8)data[6])); if( dlc > 7 ) l.append(QString().sprintf("%02X", (quint8)data[7])); } qDebug() debugprefix << "canRead() got valid message"; ui->textEditCanIn->append(l); } } } } }
void testBusLoad(canHandle handle) { canStatus stat; canBusStatistics bstat; stat = canRequestBusStatistics(handle); check("canRequestBusStatistics", stat); usleep(500000); stat = canGetBusStatistics(handle, &bstat, sizeof(bstat)); check("canGetBusStatistics", stat); printBusStatistics(&bstat); }