Newer
Older
SurgeTankControl / orderform.cpp
[wangxitong] on 27 Jan 2022 7 KB first commit
#include "orderform.h"
#include "ui_orderform.h"
#include <QProcess>
#include <QDebug>
#include <QDesktopServices>
#include <QUrl>
#include <mainwindow.h>
#include <QMessageBox>
#include <Windows.h>
#include<QRegExpValidator>
static QTcpSocket *tcpsocket;


OrderForm::OrderForm(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::OrderForm)
{
    ui->setupUi(this);
    ui->lineEdit1->setValidator(new QRegExpValidator(QRegExp("^[+-]?[0-9.0-9]*")));
    ui->lineEdit2->setValidator(new QRegExpValidator(QRegExp("^[+-]?[0-9.0-9]*")));
    ui->lineEdit3->setValidator(new QRegExpValidator(QRegExp("^[+-]?[0-9.0-9]*")));
    ui->lineEdit4->setValidator(new QRegExpValidator(QRegExp("^[+-]?[0-9.0-9]*")));
    ui->lineEdit5->setValidator(new QRegExpValidator(QRegExp("^[+-]?[0-9.0-9]*")));
    ui->lineEdit1->installEventFilter(this);
    ui->lineEdit2->installEventFilter(this);
    ui->lineEdit3->installEventFilter(this);
    ui->lineEdit4->installEventFilter(this);
    ui->lineEdit5->installEventFilter(this);

    ui->lineEdit6->setValidator(new QRegExpValidator(QRegExp("^[+-]?[0-9.0-9]*")));
    ui->lineEdit7->setValidator(new QRegExpValidator(QRegExp("^[+-]?[0-9.0-9]*")));
    ui->lineEdit8->setValidator(new QRegExpValidator(QRegExp("^[+-]?[0-9.0-9]*")));
    ui->lineEdit9->setValidator(new QRegExpValidator(QRegExp("^[+-]?[0-9.0-9]*")));
    ui->lineEdit10->setValidator(new QRegExpValidator(QRegExp("^[+-]?[0-9.0-9]*")));
    ui->lineEdit6->installEventFilter(this);
    ui->lineEdit7->installEventFilter(this);
    ui->lineEdit8->installEventFilter(this);
    ui->lineEdit9->installEventFilter(this);
    ui->lineEdit10->installEventFilter(this);

    tcpsocket = new QTcpSocket();
    tcpsocket->abort();
    //连接服务器
    tcpsocket->connectToHost("127.0.0.1", 15000);
    //等待连接成功
    if(!tcpsocket->waitForConnected(30000))
    {
        qDebug() << "Connection failed!";
        QMessageBox::critical(0, QObject::tr("failed"), "Connection failed!");
        return;
    }
    //connect(tcpsocket, SIGNAL(readyRead()), this, SLOT(read_from_server()));
    qDebug() << "Connect successfully!";
    QMessageBox::critical(0, QObject::tr("successfully"), "Connection successfully!");

}

OrderForm::~OrderForm()
{
    delete ui;
}

//事件过滤器
bool OrderForm::eventFilter(QObject *watched, QEvent *event)
{
    if(event->type()==QEvent::MouseButtonPress){
        if(watched==ui->lineEdit1 ||watched==ui->lineEdit2 ||watched==ui->lineEdit3 || watched==ui->lineEdit4 ||watched==ui->lineEdit5 ||
           watched==ui->lineEdit6 ||watched==ui->lineEdit7 ||watched==ui->lineEdit8 || watched==ui->lineEdit9 ||watched==ui->lineEdit10){
            int pInt = QProcess::execute("taskkill /im osk.exe /f");
            QDesktopServices::openUrl(QUrl("osk.exe", QUrl::TolerantMode));
        }
    }
    return QWidget::eventFilter(watched,event);
}

void OrderForm::read_from_server()
{
    tcpsocket->connectToHost("127.0.0.1", 15000);
    QString qstr = "";
    while (tcpsocket->bytesAvailable())
    {
        QString temp = tcpsocket->readAll();
        qstr+= temp;
        if(qstr.endsWith("\r\n")){
            std::string str = qstr.toStdString();
            tcpsocket->write(str.c_str());
            tcpsocket->flush();
            qstr = "";
        }
    }
}
void OrderForm::on_pushButton1_clicked()
{
    QString qstr = "Control:tiaoya," + ui->lineEdit1->text()+"\r\n";
    if(ui->lineEdit1->text()==""){
        qstr = "Control:tiaoya,0\r\n";
    }
    std::string str = qstr.toStdString();
    tcpsocket->write(str.c_str());
    tcpsocket->flush();
}

void OrderForm::on_pushButton2_clicked()
{
    QString qstr = "Control:tiaoliu," + ui->lineEdit2->text()+"\r\n";
    if(ui->lineEdit2->text()==""){
        qstr = "Control:tiaoliu,0\r\n";
    }
    std::string str = qstr.toStdString();
    tcpsocket->write(str.c_str());
    tcpsocket->flush();
}

void OrderForm::on_pushButton3_clicked()
{
    QString qstr = "Control:quya," + ui->lineEdit3->text()+"\r\n";
    if(ui->lineEdit3->text()==""){
        qstr = "Control:quya,0\r\n";
    }
    std::string str = qstr.toStdString();
    tcpsocket->write(str.c_str());
    tcpsocket->flush();
}

void OrderForm::on_pushButton4_clicked()
{
    QString qstr = "Control:quliu," + ui->lineEdit4->text()+"\r\n";
    if(ui->lineEdit4->text()==""){
        qstr = "Control:quliu,0\r\n";
    }
    std::string str = qstr.toStdString();
    tcpsocket->write(str.c_str());
    tcpsocket->flush();
}

void OrderForm::on_pushButton5_clicked()
{
    if(ui->lineEdit5->text().toFloat()>32){
        return;
    }
    QString qstr = "Control:diliu," + ui->lineEdit5->text()+"\r\n";
    if(ui->lineEdit5->text()==""){
        qstr = "Control:diliu,0\r\n";
    }
    std::string str = qstr.toStdString();
    tcpsocket->write(str.c_str());
    tcpsocket->flush();
}

void OrderForm::on_pushButton1_4_clicked()
{
    QString qstr = "Control:yalishangxian," + ui->lineEdit6->text()+"\r\n";
    if(ui->lineEdit6->text()==""){
        qstr = "Control:yalishangxian,0\r\n";
    }
    std::string str = qstr.toStdString();
    tcpsocket->write(str.c_str());
    tcpsocket->flush();
}

void OrderForm::on_pushButton1_5_clicked()
{
    QString qstr = "Control:yalixiaxian," + ui->lineEdit7->text()+"\r\n";
    if(ui->lineEdit7->text()==""){
        qstr = "Control:yalixiaxian,0\r\n";
    }
    std::string str = qstr.toStdString();
    tcpsocket->write(str.c_str());
    tcpsocket->flush();
}

void OrderForm::on_pushButton1_6_clicked()
{
    QString qstr = "Control:liuliangshangxian," + ui->lineEdit8->text()+"\r\n";
    if(ui->lineEdit8->text()==""){
        qstr = "Control:liuliangshangxian,0\r\n";
    }
    std::string str = qstr.toStdString();
    tcpsocket->write(str.c_str());
    tcpsocket->flush();
}

void OrderForm::on_pushButton1_7_clicked()
{
    QString qstr = "Control:liuliangxiaxian," + ui->lineEdit9->text()+"\r\n";
    if(ui->lineEdit9->text()==""){
        qstr = "Control:liuliangxiaxian,0\r\n";
    }
    std::string str = qstr.toStdString();
    tcpsocket->write(str.c_str());
    tcpsocket->flush();
}

void OrderForm::on_pushButton1_8_clicked()
{
    QString qstr = "Control:zengjianbuchang," + ui->lineEdit10->text()+"\r\n";
    if(ui->lineEdit10->text()==""){
        qstr = "Control:zengjianbuchang,0\r\n";
    }
    std::string str = qstr.toStdString();
    tcpsocket->write(str.c_str());
    tcpsocket->flush();
}


void OrderForm::on_choosebtn1_clicked()
{
    if(ui->radioButton->isChecked()){
        QString qstr = "Control:bendizhongxin,1\r\n";
        std::string str = qstr.toStdString();
        tcpsocket->write(str.c_str());
        tcpsocket->flush();
    }else{
        QString qstr = "Control:bendizhongxin,0\r\n";
        std::string str = qstr.toStdString();
        tcpsocket->write(str.c_str());
        tcpsocket->flush();
    }
}

void OrderForm::on_choosebtn2_clicked()
{
    if(ui->radioButton_3->isChecked()){
        QString qstr = "Control:zidongshoudong,0\r\n";
        std::string str = qstr.toStdString();
        tcpsocket->write(str.c_str());
        tcpsocket->flush();
    }else{
        QString qstr = "Control:zidongshoudong,1\r\n" ;
        std::string str = qstr.toStdString();
        tcpsocket->write(str.c_str());
        tcpsocket->flush();
    }
}