int mainDo(){ if (HAS_STATE(state,ABOUT_NOW)){ about_fun(); } if (HAS_STATE(state,VERSION)){ printf("\nVERSION : %s \n\n",VERSION_STR); } if (HAS_STATE(state,FUNNY_FLAG)){ quFun(); } // 从这里开始程序正常状态 判断 if (HAS_STATE(state,NEEDHELP)){ // 这里需要帮助 //printf("NEEDHELP now !!! \n"); help(); } else{ // 这里开始程序的正常功能 realDo(); // printf("do nothing !\n"); } // 程序执行到这里完全成功。 return 1; }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); offcount = 0; datadisp = new DataDisplay(this); // this->setWindowFlags(Qt::WindowStaysOnTopHint); // this->setAttribute(Qt::WA_TranslucentBackground, true); setWindowTitle(tr("TMT Actuator Test Station Software")); ui->enccomboBox->addItem("10 seconds"); ui->enccomboBox->addItem("25 seconds"); ui->enccomboBox->addItem("50 seconds"); ui->enccomboBox->addItem("100 seconds"); ui->offcomboBox->addItem("1 mm"); ui->offcomboBox->addItem("3 mm"); ui->offcomboBox->addItem("6 mm"); ui->vcmcomboBox->addItem("20 seconds"); ui->vcmcomboBox->addItem("40 seconds"); ui->vcmcomboBox->addItem("80 seconds"); ui->vcmcomboBox->addItem("100 seconds"); ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom); // ui->customPlot->setBackground(Qt::transparent); ui->customPlot->legend->setVisible(true); ui->customPlot->legend->setFont(QFont("Helvetica", 7)); ui->customPlot->axisRect()->setBackground(Qt::darkGray); ui->customPlot->axisRect()->setupFullAxesBox(); ui->customPlot->addGraph(); // blue line ui->customPlot->graph(0)->setName("Encoder Count vs. Time"); ui->customPlot->graph(0)->setPen(QPen(Qt::blue)); ui->customPlot->graph(0)->setLineStyle(QCPGraph::lsLine); ui->customPlot->graph(0)->setAntialiasedFill(false); ui->customPlot->xAxis->setTickLabelType(QCPAxis::ltDateTime); ui->customPlot->xAxis->setDateTimeFormat("hh:mm:ss"); ui->customPlot->xAxis->setAutoTickStep(true); ui->customPlot->xAxis->setTickStep(1); ui->customPlot_1->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom); ui->customPlot_1->legend->setVisible(true); ui->customPlot_1->legend->setFont(QFont("Helvetica", 7)); ui->customPlot_1->axisRect()->setBackground(Qt::darkGray); ui->customPlot_1->axisRect()->setupFullAxesBox(); ui->customPlot_1->addGraph(); // blue line ui->customPlot_1->graph(0)->setName("Sensor Data vs. Time"); ui->customPlot_1->graph(0)->setPen(QPen(Qt::green)); ui->customPlot_1->graph(0)->setLineStyle(QCPGraph::lsLine); ui->customPlot_1->graph(0)->setAntialiasedFill(false); ui->customPlot_1->xAxis->setTickLabelType(QCPAxis::ltDateTime); ui->customPlot_1->xAxis->setDateTimeFormat("hh:mm:ss"); ui->customPlot_1->xAxis->setAutoTickStep(true); foreach (QextPortInfo info, QextSerialEnumerator::getPorts()) ui->portBox->addItem(info.portName); ui->portBox->setEditable(true); ui->baudRateBox->addItem("9600", BAUD9600); ui->baudRateBox->addItem("115200", BAUD115200); ui->baudRateBox->setCurrentIndex(2); ui->parityBox->addItem("NONE", PAR_NONE); ui->parityBox->addItem("ODD", PAR_ODD); ui->parityBox->addItem("EVEN", PAR_EVEN); ui->dataBitsBox->addItem("5", DATA_5); ui->dataBitsBox->addItem("6", DATA_6); ui->dataBitsBox->addItem("7", DATA_7); ui->dataBitsBox->addItem("8", DATA_8); ui->dataBitsBox->setCurrentIndex(3); ui->stopBitsBox->addItem("1", STOP_1); ui->stopBitsBox->addItem("2", STOP_2); ui->queryModeBox->addItem("POLLING", QextSerialPort::Polling); ui->queryModeBox->addItem("EVENT DRIVEN", QextSerialPort::EventDriven); timer = new QTimer(this); timer->setInterval(40); PortSettings settings = {BAUD115200, DATA_8, PAR_NONE, STOP_1, FLOW_OFF, 10}; port = new QextSerialPort(ui->portBox->currentText(), settings, QextSerialPort::Polling); enumerator = new QextSerialEnumerator(this); enumerator->setUpNotifications(); connect(ui->connect_Button, SIGNAL(clicked()), SLOT(run())); connect(ui->disconnect_Button, SIGNAL(clicked()), SLOT(disconnectClient())); connect(ui->stop_Button, SIGNAL(clicked()), SLOT(stopplot())); connect(ui->reset_window_Button, SIGNAL(clicked()), SLOT(resetfun())); connect(ui->enc_test_run_Button, SIGNAL(clicked()), SLOT(encoderfun())); connect(ui->enc_test_run_Button, SIGNAL(clicked()), SLOT(showdatadisp())); connect(ui->off_up_Button, SIGNAL(clicked()), SLOT(offloaderfun())); connect(ui->off_down_Button, SIGNAL(clicked()), SLOT(offloaderfun_1())); connect(ui->vcm_test_run_Button, SIGNAL(clicked()), SLOT(vcmfun())); connect(ui->vcm_test_run_Button, SIGNAL(clicked()), SLOT(showdatadisp())); connect(ui->reset_drive_board_Button, SIGNAL(clicked()), SLOT(resetdrivefun())); connect(ui->save_plot_Button, SIGNAL(clicked()), SLOT(saveplot_fun())); connect(ui->baudRateBox, SIGNAL(currentIndexChanged(int)), SLOT(onBaudRateChanged(int))); connect(ui->parityBox, SIGNAL(currentIndexChanged(int)), SLOT(onParityChanged(int))); connect(ui->dataBitsBox, SIGNAL(currentIndexChanged(int)), SLOT(onDataBitsChanged(int))); connect(ui->stopBitsBox, SIGNAL(currentIndexChanged(int)), SLOT(onStopBitsChanged(int))); connect(ui->portBox, SIGNAL(editTextChanged(QString)), SLOT(onPortNameChanged(QString))); connect(ui->openCloseButton, SIGNAL(clicked()), SLOT(onOpenCloseButtonClicked())); connect(ui->sendButton, SIGNAL(clicked()), SLOT(onSendButtonClicked())); connect(ui->aboutButton, SIGNAL(clicked()), SLOT(about_fun())); connect(timer, SIGNAL(timeout()), SLOT(onReadyRead())); connect(port, SIGNAL(readyRead()), SLOT(onReadyRead())); connect(enumerator, SIGNAL(deviceDiscovered(QextPortInfo)), SLOT(onPortAddedOrRemoved())); connect(enumerator, SIGNAL(deviceRemoved(QextPortInfo)), SLOT(onPortAddedOrRemoved())); }