diff --git a/micro_climate_config.pro.user b/micro_climate_config.pro.user index 22d6096..53bac21 100644 --- a/micro_climate_config.pro.user +++ b/micro_climate_config.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -77,7 +77,7 @@ Desktop Qt 5.12.9 MinGW 32-bit Desktop Qt 5.12.9 MinGW 32-bit qt.qt5.5129.win32_mingw73_kit - 1 + 0 0 0 @@ -320,7 +320,7 @@ false true - E:/Y/QT/build-micro_climate_config-Desktop_Qt_5_12_9_MinGW_32_bit-Release + E:/Y/QT/build-micro_climate_config-Desktop_Qt_5_12_9_MinGW_32_bit-Debug 1 diff --git a/widget.cpp b/widget.cpp index 1c9fc08..7cb4721 100644 --- a/widget.cpp +++ b/widget.cpp @@ -289,7 +289,7 @@ void Widget::on_get_data_pushButton_clicked() sent_comand.append(static_cast(0x00)); sent_comand.append(static_cast(0x1E)); sent_comand.append(static_cast(0x00)); - sent_comand.append(static_cast(0x0A)); + sent_comand.append(static_cast(0x0B)); uint8_t sent_comand_u8[sent_comand.length()]; for(int i = 0; i < sent_comand.length(); i++) @@ -344,8 +344,8 @@ void Widget::get_configdata() read_comand_u8[i] = readed_data[i]; } - if(readed_data.length() >= 25) - if(modbusCrc16(read_comand_u8, 23) >> 8 == read_comand_u8[23] && (modbusCrc16(read_comand_u8, 23) & 0x00FF) == read_comand_u8[24]) + if(readed_data.length() >= 27) + if(modbusCrc16(read_comand_u8, 25) >> 8 == read_comand_u8[25] && (modbusCrc16(read_comand_u8, 25) & 0x00FF) == read_comand_u8[26]) { qDebug() << "CRC16校验成功"; uint16_t config_1R5 = read_comand_u8[3] << 8 | read_comand_u8[4]; @@ -355,9 +355,10 @@ void Widget::get_configdata() uint16_t coefficient = read_comand_u8[11] <<8 | read_comand_u8[12]; uint16_t ns_distance = read_comand_u8[13] << 8 | read_comand_u8[14]; uint16_t we_distance = read_comand_u8[15] << 8 | read_comand_u8[16]; - uint16_t errorlog = read_comand_u8[17] << 8 | read_comand_u8[18]; - uint16_t ns_c = read_comand_u8[19] << 8 | read_comand_u8[20]; - uint16_t we_c = read_comand_u8[21] << 8 | read_comand_u8[22]; + uint16_t delay_time = read_comand_u8[17] << 8 | read_comand_u8[18]; + uint16_t errorlog = read_comand_u8[19] << 8 | read_comand_u8[20]; + uint16_t ns_c = read_comand_u8[21] << 8 | read_comand_u8[22]; + uint16_t we_c = read_comand_u8[23] << 8 | read_comand_u8[24]; qDebug() << "config_1R5:" << config_1R5; qDebug() << "config_4R5:" << config_4R5; @@ -366,6 +367,7 @@ void Widget::get_configdata() qDebug() << "coefficient:" << coefficient; qDebug() << "ns_distance:" << ns_distance; qDebug() << "we_distance:" << we_distance; + qDebug() << "DelayTime:" << delay_time; qDebug() << "errorlog:" << errorlog; qDebug() << "ns_c:" << ns_c; qDebug() << "we_c:" << we_c; @@ -377,6 +379,7 @@ void Widget::get_configdata() ui -> Coefficient_lineEdit ->setText(QString::number((float)coefficient/10000.0)); ui -> distance_NS_lineEdit -> setText(QString::number((float)ns_distance/500.0) + "mm"); ui -> distance_WE_lineEdit -> setText(QString::number((float)we_distance/500.0) + "mm"); + ui -> Delay_Time_lineEdit -> setText(QString::number((float)delay_time) + "us"); ui -> c_NS_lineEdit -> setText(QString::number((float)ns_c/10.0) + "m/s"); ui -> c_WE_lineEdit -> setText(QString::number((float)we_c/10.0) + "m/s"); @@ -680,11 +683,11 @@ void Widget::on_Get_ID_pushButton_clicked() sent_comand.append(static_cast(0x30)); sent_comand.append(static_cast(0x03)); sent_comand.append(static_cast(0x00)); - sent_comand.append(static_cast(0x37)); + sent_comand.append(static_cast(0x38)); sent_comand.append(static_cast(0x00)); sent_comand.append(static_cast(0x04)); - sent_comand.append(static_cast(0xF1)); - sent_comand.append(static_cast(0xE6)); + sent_comand.append(static_cast(0xC1)); + sent_comand.append(static_cast(0xE5)); Serial_port->write(sent_comand); @@ -695,7 +698,7 @@ void Widget::on_Get_ID_pushButton_clicked() } uint32_t PassWord[2] = {0}; -uint32_t key[] = {0x509770ff, 0x29c6b369, 0x4da2c125, 0x0}; +uint32_t key[] = {0x509770ff, 0x29c6b369, 0x4da2c125, 0x0};//ID中间32位 void Widget::getIdData() { uint32_t ID_1; @@ -777,7 +780,7 @@ void Widget::on_Trans_password_pushButton_clicked() sent_comand.append(static_cast(0x30)); sent_comand.append(static_cast(0x10)); sent_comand.append(static_cast(0x00)); - sent_comand.append(static_cast(0x3B)); + sent_comand.append(static_cast(0x3C)); sent_comand.append(static_cast(0x00)); sent_comand.append(static_cast(0x04)); sent_comand.append(static_cast(0x08)); @@ -858,3 +861,43 @@ void Widget::write_ack() } disconnect(Serial_port, &QSerialPort::readyRead, nullptr, nullptr); } + +//37 ->25 +void Widget::on_pushButton_9_clicked() +{ + QString text = ui -> write_delay_time_lineEdit -> text(); + bool ok; + double data = text.toDouble(&ok); + qDebug() << data; + uint16_t data_u16 = (uint16_t)data; + + QByteArray sent_comand; + + sent_comand.append(static_cast(0x30)); + sent_comand.append(static_cast(0x10)); + sent_comand.append(static_cast(0x00)); + sent_comand.append(static_cast(0x25)); + sent_comand.append(static_cast(0x00)); + sent_comand.append(static_cast(0x01)); + sent_comand.append(static_cast(0x02)); + sent_comand.append(static_cast(data_u16 >> 8)); + sent_comand.append(static_cast(data_u16 & 0x00FF)); + + uint8_t sent_comand_u8[sent_comand.length()]; + for(int i = 0; i < sent_comand.length(); i++) + { + sent_comand_u8[i] = sent_comand[i]; + } + + uint16_t crc_16_val = modbusCrc16(sent_comand_u8, sent_comand.length()); + + sent_comand.append(crc_16_val >> 8); + sent_comand.append(crc_16_val); + + Serial_port->write(sent_comand); + + //连接信号与槽 + //断开所有其他的信号与槽连接 + disconnect(Serial_port, &QSerialPort::readyRead, nullptr, nullptr); + connect(Serial_port, SIGNAL(readyRead()), this, SLOT(write_ack()), Qt::UniqueConnection); +} diff --git a/widget.h b/widget.h index 755f08a..5f0c426 100644 --- a/widget.h +++ b/widget.h @@ -56,6 +56,8 @@ private slots: void on_pushButton_8_clicked(); + void on_pushButton_9_clicked(); + private: Ui::Widget *ui; //关闭窗口提示 diff --git a/widget.ui b/widget.ui index 25c2744..571e1b9 100644 --- a/widget.ui +++ b/widget.ui @@ -419,170 +419,265 @@ border-radius: 10px; /* 圆角半径 */ 配置 - - - 1 - - - 1 - - - 1 - - - 1 - - - 1 - - - - - RSSI有效范围: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 风速WE: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 换能器参数8R0: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 换能器表面距离NS: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 换能器表面距离WE: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + Qt::LeftToRight + 换能器参数1R5: - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 风速NS: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 粘度修正系数: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 换能器参数4R5: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + 70 + 20 + + true + + + + Qt::LeftToRight + + + 换能器参数4R5: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 70 + 20 + + true + + + + Qt::LeftToRight + + + 换能器参数8R0: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 70 + 20 + + true + + + + Qt::LeftToRight + + + RSSI有效范围: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 70 + 20 + + true + + + + Qt::LeftToRight + + + 粘度修正系数: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 70 + 20 + + true + + + + Qt::LeftToRight + + + 换能器表面距离NS: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 70 + 20 + + true + + + + Qt::LeftToRight + + + 换能器表面距离WE: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 70 + 20 + + true + + + + Qt::LeftToRight + + + 换能器匹配层延时S: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + - + + + + 70 + 20 + + true + + + + Qt::LeftToRight + + + 风速NS: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + 70 + 20 + + + + true + + + + + + + Qt::LeftToRight + + + 风速WE: + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + 70 + 20 + + true @@ -596,30 +691,33 @@ border-radius: 10px; /* 圆角半径 */ 写入配置 - + - 1 + 0 - 1 + 0 - 1 + 0 - 1 + 6 - 1 + 0 - - + + - 写入 + 换能器参数1R5: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - + @@ -638,17 +736,24 @@ border-radius: 10px; /* 圆角半径 */ - - + + - RSSI有效范围: + 写入 + + + + + + + 换能器参数4R5: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - + false @@ -658,28 +763,8 @@ border-radius: 10px; /* 圆角半径 */ - - - - false - - - 0-100 - - - - - - - false - - - 1.1201 - - - - - + + 写入 @@ -695,44 +780,34 @@ border-radius: 10px; /* 圆角半径 */ - - + + false - 115.12mm + 0-100 - - - - 换能器参数1R5: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 换能器表面距离WE: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - + + 写入 - + + + + RSSI有效范围: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + false @@ -742,8 +817,35 @@ border-radius: 10px; /* 圆角半径 */ - - + + + + 写入 + + + + + + + 粘度修正系数: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + false + + + 1.1201 + + + + + 写入 @@ -759,7 +861,7 @@ border-radius: 10px; /* 圆角半径 */ - + false @@ -769,48 +871,71 @@ border-radius: 10px; /* 圆角半径 */ - - + + - 换能器参数4R5: + 写入 + + + + + + + 换能器表面距离WE: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - 粘度修正系数: + + + + false - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + 115.12mm - + 写入 - - + + + + 换能器匹配层延时: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + false + + + 2us + + + + + 写入 - - - - 写入 - - - - + 读取数据 @@ -1094,7 +1219,7 @@ border-radius: 10px; /* 圆角半径 */ Qt::LeftToRight - 温湿度 + 湿度 Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -1120,7 +1245,7 @@ border-radius: 10px; /* 圆角半径 */ Qt::LeftToRight - 占位 + 温度 Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter