#include "mainwindow.h" #include "ui_mainwindow.h" #include "iostream" #include "modulecomm.h" #include "decition.pb.h" #include "chassis.pb.h" #include static bool gbHaveVehSpd = false; static double gfVehSpd = 0.0; static double gfAng=0.0; QString qsSpd ; QString qsAng ; void UpdateChassis(const char *strdata, const unsigned int nSize, const unsigned int index, const QDateTime *dt, const char *strmemname); //void ListenChassis(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname) //{ // UpdateChassis(strdata,nSize); //} MainWindow* instance; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); instance=this; this->setWindowTitle("中汽智联车辆线控测试系统"); this->setObjectName("parent"); this->setStyleSheet("#parent { border-image: url(:/new/prefix1/background4.png);}"); this->setWindowFlags(Qt::WindowMinimizeButtonHint|Qt::WindowCloseButtonHint); timer =new QTimer(this); mpaVechicleDeciton = iv::modulecomm::RegisterSend("deciton",10000,10); gpachassis = iv::modulecomm::RegisterRecv("chassis",UpdateChassis); connect(timer,SIGNAL(timeout()),this,SLOT(ShareChassisDebug())); timer->start(20); decition_debug.set_wheelangle(5); decition_debug.set_torque(1); decition_debug.set_brake(2); decition_debug.set_leftlamp(0); decition_debug.set_rightlamp(0); } //建立自身调用 MainWindow *MainWindow::getInstance() { return instance; } void UpdateChassis(const char *strdata, const unsigned int nSize, const unsigned int index, const QDateTime *dt, const char *strmemname) { (void)index; (void)dt; (void)strmemname; iv::chassis xchassis; // static int ncount = 0; if(!xchassis.ParseFromArray(strdata,nSize)) { std::cout<<"iv::decition::BrainDecition::UpdateChassis ParseFrom Array Error."<ShowChassisData(); } void MainWindow::ShowChassisData() { ui->Vehicle_Speed->setText(qsSpd); ui->EPS_Ang->setText(qsAng); } void MainWindow::ShareChassisDebug() { int nsize = decition_debug.ByteSize(); char * str = new char[nsize]; std::shared_ptr pstr; pstr.reset(str); if(ui->left_turn->isChecked()) { decition_debug.set_leftlamp(1); decition_debug.set_rightlamp(0); } else if(ui->right_turn->isChecked()) { decition_debug.set_leftlamp(0); decition_debug.set_rightlamp(1); } else { decition_debug.set_leftlamp(0); decition_debug.set_rightlamp(0); } if(decition_debug.SerializeToArray(str,nsize)) { if(ui->start_send->isChecked()) iv::modulecomm::ModuleSendMsg(mpaVechicleDeciton,str,nsize); } else { std::cout<<"iv::decition::ShareChassisDebug::ShareChassisDebug serialize error."<=0.0) { decition_debug.set_torque(arg1); decition_debug.set_brake(0); ui->brake->setValue(0.0); } else { decition_debug.set_torque(0); } } void MainWindow::on_brake_valueChanged(double arg1) { if(arg1<=0.0) { decition_debug.set_torque(0); decition_debug.set_brake(arg1); ui->targe_acc->setValue(0.0); } else { decition_debug.set_brake(arg1); } } void MainWindow::on_left_turn_clicked() { } void MainWindow::on_left_turn_clicked(bool checked) { // if(checked) // { // decition_debug.set_leftlamp(1); // decition_debug.set_rightlamp(0); // } // else // decition_debug.set_leftlamp(0); } void MainWindow::on_right_turn_clicked(bool checked) { // if(checked) // decition_debug.set_rightlamp(1); // else // decition_debug.set_rightlamp(0); }