#include "mainwindow.h" #include "ui_mainwindow.h" #include #include "google/protobuf/io/zero_copy_stream_impl.h" #include "google/protobuf/text_format.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); mpquery = new groupqueryclient(); mpquery->start(); QTimer * timer = new QTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(onTimer())); timer->start(100); setWindowTitle("View Group Message"); } MainWindow::~MainWindow() { delete ui; } void MainWindow::onTimer() { minfo = mpquery->GetVehinfo(); int noldindex = ui->comboBox->currentIndex(); if(mvectoritem.size() != minfo.size()) { ui->comboBox->clear(); unsigned int i; for(i=0;icomboBox->addItem(minfo[i].strvehid.data()); } } if(noldindex>=0)ui->comboBox->setCurrentIndex(noldindex); if(mvectoritem.size() == 0)return; using google::protobuf::TextFormat; using google::protobuf::io::FileOutputStream; using google::protobuf::io::ZeroCopyOutputStream; std::string strout; ZeroCopyOutputStream *output = new google::protobuf::io::StringOutputStream(&strout);//new FileOutputStream(file_descriptor); int index = ui->comboBox->currentIndex(); if(minfo[index].mvehinfo.has_mgpsimu()) { bool success = TextFormat::Print(*(minfo[index].mvehinfo.mutable_mgpsimu()), output); if(success) { ui->plainTextEdit->setPlainText(strout.data()); } } delete output; strout.clear(); output = new google::protobuf::io::StringOutputStream(&strout); if(minfo[index].mvehinfo.has_mbrainstate()) { bool success = TextFormat::Print(*(minfo[index].mvehinfo.mutable_mbrainstate()), output); if(success) { ui->plainTextEdit_brainstate->setPlainText(strout.data()); } } delete output; strout.clear(); output = new google::protobuf::io::StringOutputStream(&strout); if(minfo[index].mvehinfo.has_mdecition()) { bool success = TextFormat::Print(*(minfo[index].mvehinfo.mutable_mdecition()), output); if(success) { ui->plainTextEdit_decision->setPlainText(strout.data()); } } }