Compare commits

..

No commits in common. "a5046356a1366f70497c4b09600f0ec80df7d6f2" and "a2c4e2ff95ceb407f452ad9d8cdf342c7ffc282e" have entirely different histories.

17 changed files with 8020 additions and 3069 deletions

View File

@ -18,7 +18,6 @@ DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \ SOURCES += \
comWorks.cpp \ comWorks.cpp \
customcombobox.cpp \
customlabel.cpp \ customlabel.cpp \
main.cpp \ main.cpp \
mainwindow.cpp \ mainwindow.cpp \
@ -28,7 +27,6 @@ SOURCES += \
HEADERS += \ HEADERS += \
comWorks.h \ comWorks.h \
customcombobox.h \
customlabel.h \ customlabel.h \
enums.h \ enums.h \
mainwindow.h \ mainwindow.h \

BIN
app.ico

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

@ -1,57 +0,0 @@
#include "customcombobox.h"
CustomComboBox::CustomComboBox(QWidget *parent) : QComboBox(parent)
{
this->setStyleSheet("QComboBox { background-color : black; color : #00bbff; "
"}QComboBox:editable {"
" background: #00bbff; selection-background-color: black; color : black;}"
"QComboBox QAbstractItemView {"
" selection-background-color: black;}"
);
}
void CustomComboBox::wheelEvent(QWheelEvent * event)
{
if (event->delta() > 0) {
emit wheelUp();
}else{
emit wheelDown();
}
}
/*
void CustomComboBox::mousePressEvent(QMouseEvent *event)
{
emit clicked();
}
*/
void CustomComboBox::enterEvent(QEvent * event)
{
this->setStyleSheet("QComboBox { selection-color: white; color : white; background-color : black; background: black; selection-background-color: black;}"
);
/*
this->setStyleSheet("QComboBox { background-color : black; color : green; "
"}QComboBox:editable {"
" background: black; selection-background-color: black;}"
"QComboBox QAbstractItemView {"
" selection-background-color: black;}"
);
*/
emit focused();
}
void CustomComboBox::leaveEvent(QEvent * event)
{
this->setStyleSheet("QComboBox { background-color : black; color : #00bbff; selection-color: #00bbff;"
"}QComboBox:editable {"
" background: #00bbff; selection-background-color: black; color : black;}"
"QComboBox QAbstractItemView {"
" selection-background-color: black;}"
);
emit unfocused();
}

View File

@ -1,31 +0,0 @@
#ifndef CUSTOMCOMBOBOX_H
#define CUSTOMCOMBOBOX_H
#include <QWidget>
#include <QComboBox>
#include <QMouseEvent>
#include <QWheelEvent>
#include <QDebug>
class CustomComboBox : public QComboBox
{
Q_OBJECT
public:
explicit CustomComboBox(QWidget *parent = nullptr);
protected:
void wheelEvent(QWheelEvent * event) override;
// void mousePressEvent(QMouseEvent *event) override;
void enterEvent(QEvent * event) override;
void leaveEvent(QEvent * event) override;
signals:
void wheelUp();
void wheelDown();
void clicked();
void focused();
void unfocused();
};
#endif // CUSTOMCOMBOBOX_H

View File

@ -22,12 +22,12 @@ void CustomLabel::mousePressEvent(QMouseEvent *event)
void CustomLabel::enterEvent(QEvent * event) void CustomLabel::enterEvent(QEvent * event)
{ {
this->setStyleSheet("QLabel { color : white; }"); this->setStyleSheet("QLabel { background-color : #00bbff; color : black; }");
emit focused(); emit focused();
} }
void CustomLabel::leaveEvent(QEvent * event) void CustomLabel::leaveEvent(QEvent * event)
{ {
this->setStyleSheet("QLabel { color : #00bbff; }"); this->setStyleSheet("QLabel { background-color : black; color : #00bbff; }");
emit unfocused(); emit unfocused();
} }

View File

@ -14,8 +14,6 @@ typedef enum{MS2=0, PA, H } typeUnit;
typedef enum{Oz=0, Pz } typePlavGround; typedef enum{Oz=0, Pz } typePlavGround;
typedef enum{Norm=0, Overload } typeOverload; typedef enum{Norm=0, Overload } typeOverload;
typedef enum{SENS_REQ_TYPE=0, STATE_REQ_TYPE} typeReq;
typedef enum{in=0, ku, fv,fn,unit,overload,pz } typeParam; typedef enum{in=0, ku, fv,fn,unit,overload,pz } typeParam;
typedef enum {UART_PARITY_NONE=0, UART_PARITY_ODD, UART_PARITY_EVEN} Parity; typedef enum {UART_PARITY_NONE=0, UART_PARITY_ODD, UART_PARITY_EVEN} Parity;

View File

@ -48,9 +48,6 @@ const char *STRINGS_OUTUNITS[] = {"0.0001мВ/",
const char *STRINGS_UNITS[]={"мс2","Па","Н"}; // массив с единицами измерений const char *STRINGS_UNITS[]={"мс2","Па","Н"}; // массив с единицами измерений
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ {
conf = new QSettings(); conf = new QSettings();
@ -80,7 +77,15 @@ MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWin
// Перечислим порты в консоль
foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts()){ //для каждого доступного порта
QSerialPort port; //
port.setPort(info); //
if(port.open(QIODevice::ReadWrite)){// если порт доступен
ui->comboBoxPort->addItem(info.portName()); // Добавляем в список доступных
comList.push_back(info.portName());
}
}//конец foreach
//формирую комбобокс для установки скорости //формирую комбобокс для установки скорости
@ -93,18 +98,6 @@ MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWin
ui->comboBoxBit->addItem("Четности"); // Добавляем в список доступных ui->comboBoxBit->addItem("Четности"); // Добавляем в список доступных
ui->comboBoxBit->addItem("Нечетности"); // Добавляем в список доступных ui->comboBoxBit->addItem("Нечетности"); // Добавляем в список доступных
// Перечислим порты в консоль
foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts()){ //для каждого доступного порта
QSerialPort port; //
port.setPort(info); //
if(port.open(QIODevice::ReadWrite)){// если порт доступен
ui->comboBoxPort->addItem(info.portName()); // Добавляем в список доступных
comList.push_back(info.portName());
}
}//конец foreach
// значения для полей из сохраненных значений // значения для полей из сохраненных значений
ui->comboBoxPort->setCurrentIndex(conf->value("section1/keyCurrentPort").toInt()); ui->comboBoxPort->setCurrentIndex(conf->value("section1/keyCurrentPort").toInt());
ui->comboBoxSpeed->setCurrentIndex(conf->value("section1/keyCurrentSpeed").toInt()); ui->comboBoxSpeed->setCurrentIndex(conf->value("section1/keyCurrentSpeed").toInt());
@ -118,29 +111,7 @@ MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWin
speedComboboxIndex=ui->comboBoxSpeed->currentIndex(); speedComboboxIndex=ui->comboBoxSpeed->currentIndex();
//заполняю статические комбобоксы
ui->comboBoxPlavGround->addItem("ОЗ");
ui->comboBoxPlavGround->addItem("ПЗ");
ui->comboBoxNch->addItem("0.1");
ui->comboBoxNch->addItem("0.3");
ui->comboBoxNch->addItem("1");
ui->comboBoxNch->addItem("3");
ui->comboBoxNch->addItem("10");
ui->comboBoxNch->addItem("30");
ui->comboBoxNch->addItem("100");
ui->comboBoxVch->addItem("0.2");
ui->comboBoxVch->addItem("1");
ui->comboBoxVch->addItem("2");
ui->comboBoxVch->addItem("10");
ui->comboBoxUnitSens->addItem("пКл/Н");
ui->comboBoxUnitSens->addItem("пКл/Па");
ui->comboBoxUnitSens->addItem("пКл/мс2");
}//конец конструктора главного окна }//конец конструктора главного окна
@ -149,9 +120,8 @@ MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWin
MainWindow::~MainWindow() MainWindow::~MainWindow()
{ {
qDebug()<<ui->comboBoxPort->currentIndex(); qDebug()<<"сработал деструктор первого окна";
//сохранение значения полей //сохранение значения полей
conf->setValue("section1/keyCurrentPort", ui->comboBoxPort->currentIndex()); conf->setValue("section1/keyCurrentPort", ui->comboBoxPort->currentIndex());
conf->setValue("section1/keyCurrentSpeed", ui->comboBoxSpeed->currentIndex()); conf->setValue("section1/keyCurrentSpeed", ui->comboBoxSpeed->currentIndex());
conf->setValue("section1/keyCurrentBit", ui->comboBoxBit->currentIndex()); conf->setValue("section1/keyCurrentBit", ui->comboBoxBit->currentIndex());
@ -202,7 +172,13 @@ void MainWindow::on_pushButtonConnect_clicked()
//удаляем прибор с данным адресом из списка //удаляем прибор с данным адресом из списка
//опустошаем форму
ui->labelKu->setText("XXXXX");
ui->labelNch->setText("XX");
ui->labelVch->setText("XX");
ui->labelSens->setText("XXXXX");
ui->labelPlavGround->setText("XX");
ui->labelUnitSens->setText("XXXXXX");
//разблокируем элементы //разблокируем элементы
ui->lineEditAddr->setDisabled(false); ui->lineEditAddr->setDisabled(false);
@ -261,65 +237,54 @@ void MainWindow::refreshDisplay(){
else if(state.sens<100&&state.sens>=10){ui->labelSens->setText(QString::number(state.sens,'f', 3));} else if(state.sens<100&&state.sens>=10){ui->labelSens->setText(QString::number(state.sens,'f', 3));}
else {ui->labelSens->setText(QString::number(state.sens,'f', 4));} else {ui->labelSens->setText(QString::number(state.sens,'f', 4));}
//с автоподгонкой всё начинает прыгать. Я думаю всё прокатит если её применять тоьлко по изменеию содержимого //с автоподгонкой всё начинает прыгать. Я думаю всё прокатит если её применять поьлко по изменеию содержимого
//ui->labelSens->adjustSize(); //подгоняем размер по содержимому //ui->labelSens->adjustSize(); //подгоняем размер по содержимому
switch (state.fn) { switch (state.fn) {
case Lp100: case Lp100:
ui->labelNch->setText("0.1");
ui->comboBoxNch->setCurrentIndex(0);
break; break;
case Lp300: case Lp300:
ui->labelNch->setText("0.3");
ui->comboBoxNch->setCurrentIndex(1);
break; break;
case Lp1000: case Lp1000:
ui->labelNch->setText("1");
ui->comboBoxNch->setCurrentIndex(2);
break; break;
case Lp3000: case Lp3000:
ui->labelNch->setText("3");
ui->comboBoxNch->setCurrentIndex(3);
break; break;
case Lp10000: case Lp10000:
ui->labelNch->setText("10");
ui->comboBoxNch->setCurrentIndex(4);
break; break;
case Lp30000: case Lp30000:
ui->labelNch->setText("30");
ui->comboBoxNch->setCurrentIndex(5);
break; break;
case Lp100000: case Lp100000:
ui->labelNch->setText("100");
ui->comboBoxNch->setCurrentIndex(6);
break; break;
default: default:
// ui->labelNch->setText("#####"); ui->labelNch->setText("#####");
break; break;
} }
switch (state.fv) { switch (state.fv) {
case Hp0_2 : case Hp0_2 :
ui->labelVch->setText("0.2");
ui->comboBoxVch->setCurrentIndex(0);
break; break;
case Hp1: case Hp1:
ui->labelVch->setText("1");
ui->comboBoxVch->setCurrentIndex(1);
break; break;
case Hp2: case Hp2:
ui->labelVch->setText("2");
ui->comboBoxVch->setCurrentIndex(2);
break; break;
case Hp10: case Hp10:
ui->labelVch->setText("10");
ui->comboBoxVch->setCurrentIndex(3);
break; break;
default: default:
ui->labelVch->setText("#####");
break; break;
} }
@ -343,36 +308,22 @@ void MainWindow::refreshDisplay(){
strcpy(result, STRINGS_OUTUNITS[state.ku+OffsetKuDisplay]); strcpy(result, STRINGS_OUTUNITS[state.ku+OffsetKuDisplay]);
strcat(result, STRINGS_UNITS[state.unit]); strcat(result, STRINGS_UNITS[state.unit]);
ui->labelKu->setText(result);
ui->labelKu->adjustSize();
free(result); /// освободил память free(result); /// освободил память
//шляпа для комбобокса
ui->comboBoxKu->clear();
for(int i=0; i<=12; i++){
QString StringForComboBox;
StringForComboBox.append(STRINGS_OUTUNITS[i+OffsetKuDisplay]);
StringForComboBox.append(STRINGS_UNITS[state.unit]);
ui->comboBoxKu->addItem(StringForComboBox);
};
ui->comboBoxKu->setCurrentIndex(state.ku);
switch (state.pz) { //todo тут нужно нормирование switch (state.pz) { //todo тут нужно нормирование
case 0 : case 0 :
ui->comboBoxPlavGround->show(); ui->labelPlavGround->setText("ОЗ");
ui->comboBoxPlavGround->setCurrentIndex(0);
break; break;
case 1: case 1:
ui->comboBoxPlavGround->show(); ui->labelPlavGround->setText("ПЗ");
ui->comboBoxPlavGround->setCurrentIndex(1);
break; break;
default: default:
ui->labelPlavGround->setText("#####");
ui->comboBoxPlavGround->hide();
break; break;
} }
@ -382,28 +333,25 @@ void MainWindow::refreshDisplay(){
switch (state.unit) { //todo тут нужно нормирование switch (state.unit) { //todo тут нужно нормирование
case H : case H :
ui->labelUnitSens->setText("пКл/Н");
ui->comboBoxUnitSens->setCurrentIndex(0);
// ui->labelUnitKu->setText("xВ/Н"); // Заменил на нормирование с прибора // ui->labelUnitKu->setText("xВ/Н"); // Заменил на нормирование с прибора
break; break;
case PA: case PA:
ui->labelUnitSens->setText("пКл/Па");
ui->comboBoxUnitSens->setCurrentIndex(1);
// ui->labelUnitKu->setText("xВ/Па"); // ui->labelUnitKu->setText("xВ/Па");
break; break;
case MS2: case MS2:
ui->labelUnitSens->setText("пКл/мс2");
ui->comboBoxUnitSens->setCurrentIndex(2);
// ui->labelUnitKu->setText("xВс2"); // ui->labelUnitKu->setText("xВс2");
break; break;
default: default:
ui->labelUnitSens->setText("#####");
break; break;
} }
//ui->labelUnitSens->adjustSize(); //ui->labelUnitSens->adjustSize();
switch (state.overload) { switch (state.overload) { //todo тут нужно нормирование
case Norm : case Norm :
ui->labelOverload->setText(""); ui->labelOverload->setText("");
break; break;
@ -418,6 +366,77 @@ void MainWindow::refreshDisplay(){
void MainWindow::on_labelKu_wheelDown()
{ //смотрим на текущее состояние дел
state.ku=typeIKU((uint16_t)state.ku-1);
modebus->writeDataToPribor(state);
//writePalam(serial, adrPri, ku, newVal); // и тут ему говорим - отправь на запись такое то значение КУ
qDebug()<<"WheelDown";
}
void MainWindow::on_labelKu_wheelUp()
{
state.ku=typeIKU((uint16_t)state.ku+1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
qDebug()<<"WheelUp";
}
void MainWindow::on_labelVch_wheelDown()
{
state.fv=typeIFV((uint16_t)state.fv-1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
qDebug()<<"WheelUp";
}
void MainWindow::on_labelVch_wheelUp()
{
state.fv=typeIFV((uint16_t)state.fv+1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
qDebug()<<"WheelUp";
}
void MainWindow::on_labelNch_wheelDown()
{
state.fn=typeIFN((uint16_t)state.fn-1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
}
void MainWindow::on_labelNch_wheelUp()
{
state.fn=typeIFN((uint16_t)state.fn+1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
}
void MainWindow::on_labelPlavGround_wheelDown()
{
state.pz=typePlavGround((uint16_t)state.pz-1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
}
void MainWindow::on_labelPlavGround_wheelUp()
{
state.pz=typePlavGround((uint16_t)state.pz+1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
}
void MainWindow::on_labelUnitSens_wheelDown()
{
state.unit=typeUnit((uint16_t)state.unit-1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
}
void MainWindow::on_labelUnitSens_wheelUp()
{
state.unit=typeUnit((uint16_t)state.unit+1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
}
@ -428,7 +447,7 @@ void MainWindow::on_labelSens_clicked()
tr("Введите значение чувствительности датчика"), state.sens, 0.001, 1000, 4, &ok, tr("Введите значение чувствительности датчика"), state.sens, 0.001, 1000, 4, &ok,
Qt::WindowFlags(), 1); Qt::WindowFlags(), 1);
if (ok){modebus->writeDataToPribor(state, SENS_REQ_TYPE);} if (ok){modebus->writeDataToPribor(state);}
} }
@ -452,44 +471,3 @@ void MainWindow::on_lineEditAddr_textEdited(const QString &)
{ {
adrValue=ui->lineEditAddr->text(); adrValue=ui->lineEditAddr->text();
} }
void MainWindow::on_comboBoxUnitSens_activated(int index)
{
if(index==0)state.unit=H;
if(index==1)state.unit=PA; //тут были непонятки, скорее всего сработает без этого
if(index==2)state.unit=MS2;
modebus->writeDataToPribor(state, STATE_REQ_TYPE);
}
void MainWindow::on_comboBoxKu_activated(int index)
{
state.ku=typeIKU(index);
modebus->writeDataToPribor(state, STATE_REQ_TYPE);
}
void MainWindow::on_comboBoxVch_activated(int index)
{
state.fv=typeIFV(index);
modebus->writeDataToPribor(state, STATE_REQ_TYPE);
}
void MainWindow::on_comboBoxNch_activated(int index)
{
state.fn=typeIFN(index);
modebus->writeDataToPribor(state, STATE_REQ_TYPE);
}
void MainWindow::on_comboBoxPlavGround_activated(int index)
{
state.pz=typePlavGround(index);
modebus->writeDataToPribor(state, STATE_REQ_TYPE);
}

View File

@ -58,6 +58,26 @@ private slots:
void on_pushButtonSetPri_clicked(); void on_pushButtonSetPri_clicked();
void on_labelKu_wheelDown();
void on_labelKu_wheelUp();
void on_labelVch_wheelDown();
void on_labelVch_wheelUp();
void on_labelNch_wheelDown();
void on_labelNch_wheelUp();
void on_labelPlavGround_wheelDown();
void on_labelPlavGround_wheelUp();
void on_labelUnitSens_wheelDown();
void on_labelUnitSens_wheelUp();
void on_labelSens_clicked(); void on_labelSens_clicked();
void on_comboBoxPort_currentIndexChanged(int index); void on_comboBoxPort_currentIndexChanged(int index);
@ -68,16 +88,6 @@ private slots:
void on_lineEditAddr_textEdited(const QString &arg1); void on_lineEditAddr_textEdited(const QString &arg1);
void on_comboBoxUnitSens_activated(int index);
void on_comboBoxKu_activated(int index);
void on_comboBoxVch_activated(int index);
void on_comboBoxNch_activated(int index);
void on_comboBoxPlavGround_activated(int index);
private: private:
uint16_t adrPri; uint16_t adrPri;

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@
#define REQ_PERIOD 500 //прериод опроса #define REQ_PERIOD 50 //прериод опроса
@ -15,10 +15,14 @@ ModBusHandler::ModBusHandler(QObject *parent) : QObject(parent)
modbusDevice = new QModbusRtuSerialMaster; modbusDevice = new QModbusRtuSerialMaster;
//заводим таймер //заводим таймер
tmr = new QTimer(); tmr = new QTimer();
tmr->start(REQ_PERIOD); tmr->start(REQ_PERIOD);
connect(tmr, SIGNAL(timeout()), this, SLOT(requestPriborFromList())); connect(tmr, SIGNAL(timeout()), this, SLOT(requestPriborFromList()));
// 2. Если вы находитесь в состоянии соединения, отключите соединение // 2. Если вы находитесь в состоянии соединения, отключите соединение
if (modbusDevice->state() == QModbusDevice::ConnectedState) if (modbusDevice->state() == QModbusDevice::ConnectedState)
{ {
@ -46,9 +50,8 @@ void ModBusHandler::requestPriborFromList() //слот для истекшег
//пробегаемся по листу и опрашиваем выкидываая сигналы //пробегаемся по листу и опрашиваем выкидываая сигналы
static uint numForReqest; static uint numForReqest;
//QMap<uint,PrborConnectonAtr>::iterator iteratorPriborMap;
// qDebug()<<"Приборов в списке "<<PriborMap.size(); qDebug()<<"Приборов в списке "<<PriborMap.size();
for(PrborConnectonAtr atr:PriborMap){ for(PrborConnectonAtr atr:PriborMap){
@ -56,6 +59,20 @@ void ModBusHandler::requestPriborFromList() //слот для истекшег
} }
/////это всё тлен и плюсы
//делаем итератор где то наверху
//обновляем количество элементов
//проверяем, если элемент последний, то в начало
//если нет то ++
//делаем запрос. - он у нас раз в 300 мс, типа успеет отработать. Ну должен успеть
} }
@ -74,13 +91,11 @@ void ModBusHandler::removeFromReqList(uint adress)
void ModBusHandler::getDataFromPribor(PrborConnectonAtr atr) //слот для истекшего таймера void ModBusHandler::getDataFromPribor(PrborConnectonAtr atr) //слот для истекшего таймера
{ {
{ {
modbusDevice->disconnectDevice();
modbusDevice->setConnectionParameter(QModbusDevice::SerialPortNameParameter, QVariant(atr.port)); modbusDevice->setConnectionParameter(QModbusDevice::SerialPortNameParameter, QVariant(atr.port));
modbusDevice->setConnectionParameter(QModbusDevice::SerialStopBitsParameter, QSerialPort::OneStop); modbusDevice->setConnectionParameter(QModbusDevice::SerialStopBitsParameter, QSerialPort::OneStop);
modbusDevice->setConnectionParameter(QModbusDevice::SerialDataBitsParameter, QSerialPort::Data8); modbusDevice->setConnectionParameter(QModbusDevice::SerialDataBitsParameter, QSerialPort::Data8);
modbusDevice->setTimeout(100); //1 таймаута modbusDevice->setTimeout(100); //1 таймаута
modbusDevice->setNumberOfRetries(0);// попытки достучатся modbusDevice->setNumberOfRetries(1);// попытки достучатся
modbusDevice->setConnectionParameter(QModbusDevice::SerialBaudRateParameter, atr.speed); modbusDevice->setConnectionParameter(QModbusDevice::SerialBaudRateParameter, atr.speed);
switch (atr.parity) {//выставляем парити switch (atr.parity) {//выставляем парити
case UART_PARITY_NONE: case UART_PARITY_NONE:
@ -131,6 +146,7 @@ void ModBusHandler::onReadReady()
{ {
qDebug() << "Read response Error: " << reply->errorString(); qDebug() << "Read response Error: " << reply->errorString();
} }
// Удалить перенастремленность
isWaitingResponse=false; isWaitingResponse=false;
reply->deleteLater(); reply->deleteLater();
} }
@ -214,12 +230,12 @@ void ModBusHandler::dataCollector(quint16 adress, QVector<quint16>recivedData)
data.pz=(typePlavGround)recivedData[7]; data.pz=(typePlavGround)recivedData[7];
stateIsRecived=1; stateIsRecived=1;
}; };
if(sensIsRecived&&stateIsRecived){ if(stateIsRecived&&stateIsRecived){
//connect(this,SIGNAL(dataRecivedNotify(DataStruct)),parent(),SLOT(dataSetter(DataStruct))); //connect(this,SIGNAL(dataRecivedNotify(DataStruct)),parent(),SLOT(dataSetter(DataStruct)));
emit dataRecivedNotify(data); emit dataRecivedNotify(data);
// qDebug()<<"Должен проити эмит"; // qDebug()<<"Должен проити эмит";
sensIsRecived=0; stateIsRecived=0;
stateIsRecived=0; stateIsRecived=0;
} }
} }
@ -243,8 +259,7 @@ void ModBusHandler::prepareWrite(uint16_t adress, int startAddress, int count, Q
} else if(lastRequest->error() == QModbusDevice::TimeoutError) { } else if(lastRequest->error() == QModbusDevice::TimeoutError) {
qDebug() << "таймаут"; qDebug() << "таймаут";
} else if (lastRequest->error() != QModbusDevice::NoError) { } else if (lastRequest->error() != QModbusDevice::NoError) {
qDebug() << "Какая то ошибка"; qDebug() << "уууууууу";
qDebug() << lastRequest->rawResult();
} else if(lastRequest->error() == QModbusDevice::NoError) { } else if(lastRequest->error() == QModbusDevice::NoError) {
qDebug() << "успех)"; qDebug() << "успех)";
} }
@ -262,9 +277,6 @@ void ModBusHandler::prepareWrite(uint16_t adress, int startAddress, int count, Q
} }
} }
void ModBusHandler::scanAdressSignalChain(uint16_t adrToScan) void ModBusHandler::scanAdressSignalChain(uint16_t adrToScan)
{ {
if(adrToScan<=247){// делаем запрос if(adrToScan<=247){// делаем запрос
@ -293,20 +305,16 @@ void ModBusHandler::scanAdressSignalChain(uint16_t adrToScan)
} }
void ModBusHandler::scanPort(QString port){ void ModBusHandler::scanPort(QString port){
modbusDevice->setConnectionParameter(QModbusDevice::SerialPortNameParameter, QVariant(port)); modbusDevice->setConnectionParameter(QModbusDevice::SerialPortNameParameter, QVariant(port));
modbusDevice->setConnectionParameter(QModbusDevice::SerialStopBitsParameter, QSerialPort::OneStop); modbusDevice->setConnectionParameter(QModbusDevice::SerialStopBitsParameter, QSerialPort::OneStop);
modbusDevice->setConnectionParameter(QModbusDevice::SerialDataBitsParameter, QSerialPort::Data8); modbusDevice->setConnectionParameter(QModbusDevice::SerialDataBitsParameter, QSerialPort::Data8);
modbusDevice->setTimeout(30); //1 таймаута
modbusDevice->setNumberOfRetries(0);// попытки достучатся modbusDevice->setNumberOfRetries(0);// попытки достучатся
scanPort(); scanPort();
} }
void ModBusHandler::scanPort() //принимает сигнал о завершенных адресах void ModBusHandler::scanPort() //принимает сигнал о завершенных адресах
{ {
@ -328,50 +336,6 @@ void ModBusHandler::scanPort() //принимает сигнал о заверш
modbusDevice->disconnectDevice();//отключавемся modbusDevice->disconnectDevice();//отключавемся
modbusDevice->setConnectionParameter(QModbusDevice::SerialBaudRateParameter, BAUDRATE[s]); modbusDevice->setConnectionParameter(QModbusDevice::SerialBaudRateParameter, BAUDRATE[s]);
switch (BAUDRATE[s]) {//выставляем парити
case 4800:
modbusDevice->setTimeout(140); //1 таймаута
break;
case 7200:
modbusDevice->setTimeout(90); //1 таймаута
break;
case 9600:
modbusDevice->setTimeout(80); //1 таймаута
break;
case 14400:
modbusDevice->setTimeout(70); //1 таймаута
break;
case 19200:
modbusDevice->setTimeout(60); //1 таймаута
break;
case 38400:
modbusDevice->setTimeout(50); //1 таймаута
break;
case 57600:
modbusDevice->setTimeout(40); //1 таймаута
break;
case 115200:
modbusDevice->setTimeout(30); //1 таймаута
break;
case 128000:
modbusDevice->setTimeout(30); //1 таймаута
break;
default:
qDebug()<< "пролет свитча с таймаутом";
break;
}
switch (b) {//выставляем парити switch (b) {//выставляем парити
case UART_PARITY_NONE: case UART_PARITY_NONE:
modbusDevice->setConnectionParameter(QModbusDevice::SerialParityParameter, QSerialPort::NoParity); modbusDevice->setConnectionParameter(QModbusDevice::SerialParityParameter, QSerialPort::NoParity);
@ -481,20 +445,17 @@ void ModBusHandler::writeConnectionAttr(PrborConnectonAtr oldAtr,PrborConnectonA
void ModBusHandler::writeDataToPribor(DataStruct datastruct, typeReq type) void ModBusHandler::writeDataToPribor(DataStruct datastruct)
{ {
if(type==SENS_REQ_TYPE){
usfloat floated; usfloat floated;
floated.fl = datastruct.sens; floated.fl = datastruct.sens;
QVector <uint16_t> floatedQVector(2); QVector <uint16_t> floatedQVector(2);
floatedQVector[0]=floated.sh[1]; floatedQVector[0]=floated.sh[1];
floatedQVector[1]=floated.sh[0]; floatedQVector[1]=floated.sh[0];
prepareWrite(datastruct.adress, 7004, 2, floatedQVector);//7004* prepareWrite(datastruct.adress, 7004, 2, floatedQVector);//7004*
}
if(type==STATE_REQ_TYPE){ QVector <uint16_t> dataValues(10);
QVector <uint16_t> dataValues(10);
dataValues={ dataValues={
dataValues[0]=datastruct.in, dataValues[0]=datastruct.in,
dataValues[1]=datastruct.fv, dataValues[1]=datastruct.fv,
@ -507,8 +468,8 @@ void ModBusHandler::writeDataToPribor(DataStruct datastruct, typeReq type)
dataValues[8]=0, dataValues[8]=0,
dataValues[9]=datastruct.unit, dataValues[9]=datastruct.unit,
// dataValues[10]=datastruct.overload, // dataValues[10]=datastruct.overload,
}; };
prepareWrite(datastruct.adress, 5001, 10, dataValues); prepareWrite(datastruct.adress, 5001, 10, dataValues);
}
} }

View File

@ -36,7 +36,6 @@ public:
bool isConnected = false; bool isConnected = false;
// QList <PrborConnectonAtr> PriborList; // QList <PrborConnectonAtr> PriborList;
QMap<uint,PrborConnectonAtr>PriborMap; QMap<uint,PrborConnectonAtr>PriborMap;
QMap<uint,PrborConnectonAtr>::iterator iteratorPriborMap;
bool isWaitingResponse=false; bool isWaitingResponse=false;
QTimer *tmr; QTimer *tmr;
@ -63,7 +62,7 @@ public slots:
void scanPort(QString port); void scanPort(QString port);
void scanPort(); void scanPort();
void writeDataToPribor(DataStruct datastruct, typeReq type); //обработчик в лямде!!!!! void writeDataToPribor(DataStruct datastruct); //обработчик в лямде!!!!!
void prepareWrite(uint16_t adress, int startAddress, int count, QVector<uint16_t> values); void prepareWrite(uint16_t adress, int startAddress, int count, QVector<uint16_t> values);
void getDataFromPribor(PrborConnectonAtr atr); void getDataFromPribor(PrborConnectonAtr atr);

View File

@ -1,376 +0,0 @@
#define __DBL_MIN_EXP__ (-1021)
#define __FLT32X_MAX_EXP__ 1024
#define __cpp_attributes 200809
#define __pentiumpro__ 1
#define __UINT_LEAST16_MAX__ 0xffff
#define __ATOMIC_ACQUIRE 2
#define __FLT128_MAX_10_EXP__ 4932
#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F
#define __GCC_IEC_559_COMPLEX 2
#define __UINT_LEAST8_TYPE__ unsigned char
#define __SIZEOF_FLOAT80__ 12
#define _WIN32 1
#define __INTMAX_C(c) c ## LL
#define __CHAR_BIT__ 8
#define __UINT8_MAX__ 0xff
#define __WINT_MAX__ 0xffff
#define __FLT32_MIN_EXP__ (-125)
#define __cpp_static_assert 200410
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __SIZE_MAX__ 0xffffffffU
#define __WCHAR_MAX__ 0xffff
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L)
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
#define __GCC_ATOMIC_CHAR_LOCK_FREE 2
#define __GCC_IEC_559 2
#define __FLT32X_DECIMAL_DIG__ 17
#define __FLT_EVAL_METHOD__ 2
#define __cpp_binary_literals 201304
#define __FLT64_DECIMAL_DIG__ 17
#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
#define __cpp_variadic_templates 200704
#define __UINT_FAST64_MAX__ 0xffffffffffffffffULL
#define __SIG_ATOMIC_TYPE__ int
#define __DBL_MIN_10_EXP__ (-307)
#define __FINITE_MATH_ONLY__ 0
#define __GNUC_PATCHLEVEL__ 0
#define __FLT32_HAS_DENORM__ 1
#define __UINT_FAST8_MAX__ 0xff
#define __has_include(STR) __has_include__(STR)
#define _stdcall __attribute__((__stdcall__))
#define __DEC64_MAX_EXP__ 385
#define __INT8_C(c) c
#define __INT_LEAST8_WIDTH__ 8
#define __UINT_LEAST64_MAX__ 0xffffffffffffffffULL
#define __SHRT_MAX__ 0x7fff
#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L
#define __FLT64X_MAX_10_EXP__ 4932
#define __UINT_LEAST8_MAX__ 0xff
#define __GCC_ATOMIC_BOOL_LOCK_FREE 2
#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128
#define __UINTMAX_TYPE__ long long unsigned int
#define __DEC32_EPSILON__ 1E-6DF
#define __FLT_EVAL_METHOD_TS_18661_3__ 2
#define __OPTIMIZE__ 1
#define __UINT32_MAX__ 0xffffffffU
#define __GXX_EXPERIMENTAL_CXX0X__ 1
#define __LDBL_MAX_EXP__ 16384
#define __FLT128_MIN_EXP__ (-16381)
#define __WINT_MIN__ 0
#define __FLT128_MIN_10_EXP__ (-4931)
#define __INT_LEAST16_WIDTH__ 16
#define __SCHAR_MAX__ 0x7f
#define __FLT128_MANT_DIG__ 113
#define __WCHAR_MIN__ 0
#define __INT64_C(c) c ## LL
#define __DBL_DIG__ 15
#define __GCC_ATOMIC_POINTER_LOCK_FREE 2
#define __FLT64X_MANT_DIG__ 64
#define __SIZEOF_INT__ 4
#define __SIZEOF_POINTER__ 4
#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
#define __USER_LABEL_PREFIX__ _
#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x
#define __STDC_HOSTED__ 1
#define __WIN32 1
#define __LDBL_HAS_INFINITY__ 1
#define __FLT32_DIG__ 6
#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F
#define __GXX_WEAK__ 1
#define __SHRT_WIDTH__ 16
#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
#define __DEC32_MAX__ 9.999999E96DF
#define __cpp_threadsafe_static_init 200806
#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x
#define __MINGW32__ 1
#define __FLT32X_HAS_INFINITY__ 1
#define __INT32_MAX__ 0x7fffffff
#define __INT_WIDTH__ 32
#define __SIZEOF_LONG__ 4
#define __UINT16_C(c) c
#define __PTRDIFF_WIDTH__ 32
#define __DECIMAL_DIG__ 21
#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64
#define __INTMAX_WIDTH__ 64
#define __FLT64_MIN_EXP__ (-1021)
#define __has_include_next(STR) __has_include_next__(STR)
#define __FLT64X_MIN_10_EXP__ (-4931)
#define __LDBL_HAS_QUIET_NAN__ 1
#define __FLT64_MANT_DIG__ 53
#define _REENTRANT 1
#define __GNUC__ 7
#define _cdecl __attribute__((__cdecl__))
#define __GXX_RTTI 1
#define __cpp_delegating_constructors 200604
#define __FLT_HAS_DENORM__ 1
#define __SIZEOF_LONG_DOUBLE__ 12
#define __BIGGEST_ALIGNMENT__ 16
#define __STDC_UTF_16__ 1
#define __FLT64_MAX_10_EXP__ 308
#define __i686 1
#define __FLT32_HAS_INFINITY__ 1
#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L)
#define _thiscall __attribute__((__thiscall__))
#define __cpp_raw_strings 200710
#define __INT_FAST32_MAX__ 0x7fffffff
#define __WINNT 1
#define __DBL_HAS_INFINITY__ 1
#define __INT64_MAX__ 0x7fffffffffffffffLL
#define __WINNT__ 1
#define __DEC32_MIN_EXP__ (-94)
#define __INTPTR_WIDTH__ 32
#define __FLT32X_HAS_DENORM__ 1
#define __INT_FAST16_TYPE__ short int
#define _fastcall __attribute__((__fastcall__))
#define __LDBL_HAS_DENORM__ 1
#define __cplusplus 201103L
#define __cpp_ref_qualifiers 200710
#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
#define __INT_LEAST32_MAX__ 0x7fffffff
#define __DEC32_MIN__ 1E-95DF
#define __DEPRECATED 1
#define __cpp_rvalue_references 200610
#define __DBL_MAX_EXP__ 1024
#define __WCHAR_WIDTH__ 16
#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32
#define __DEC128_EPSILON__ 1E-33DL
#define __ATOMIC_HLE_RELEASE 131072
#define __WIN32__ 1
#define __PTRDIFF_MAX__ 0x7fffffff
#define __ATOMIC_HLE_ACQUIRE 65536
#define __FLT32_HAS_QUIET_NAN__ 1
#define __GNUG__ 7
#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL
#define __SIZEOF_SIZE_T__ 4
#define __cpp_rvalue_reference 200610
#define __cpp_nsdmi 200809
#define __FLT64X_MIN_EXP__ (-16381)
#define __SIZEOF_WINT_T__ 2
#define __LONG_LONG_WIDTH__ 64
#define __cpp_initializer_lists 200806
#define __FLT32_MAX_EXP__ 128
#define __cpp_hex_float 201603
#define __GCC_HAVE_DWARF2_CFI_ASM 1
#define __GXX_ABI_VERSION 1011
#define __FLT128_HAS_INFINITY__ 1
#define __FLT_MIN_EXP__ (-125)
#define __i686__ 1
#define __cpp_lambdas 200907
#define __FLT64X_HAS_QUIET_NAN__ 1
#define __INT_FAST64_TYPE__ long long int
#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64
#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L)
#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x
#define __DECIMAL_BID_FORMAT__ 1
#define __GXX_TYPEINFO_EQUALITY_INLINE 0
#define __FLT64_MIN_10_EXP__ (-307)
#define __FLT64X_DECIMAL_DIG__ 21
#define __DEC128_MIN__ 1E-6143DL
#define __REGISTER_PREFIX__
#define __UINT16_MAX__ 0xffff
#define __DBL_HAS_DENORM__ 1
#define __cdecl __attribute__((__cdecl__))
#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32
#define __UINT8_TYPE__ unsigned char
#define __i386 1
#define __FLT_MANT_DIG__ 24
#define __LDBL_DECIMAL_DIG__ 21
#define __VERSION__ "7.3.0"
#define __UINT64_C(c) c ## ULL
#define __cpp_unicode_characters 200704
#define __GCC_ATOMIC_INT_LOCK_FREE 2
#define __FLT128_MAX_EXP__ 16384
#define __FLT32_MANT_DIG__ 24
#define _X86_ 1
#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __FLT128_HAS_DENORM__ 1
#define __FLT128_DIG__ 33
#define __SCHAR_WIDTH__ 8
#define __INT32_C(c) c
#define __DEC64_EPSILON__ 1E-15DD
#define __ORDER_PDP_ENDIAN__ 3412
#define __DEC128_MIN_EXP__ (-6142)
#define __code_model_32__ 1
#define __FLT32_MAX_10_EXP__ 38
#define __INT_FAST32_TYPE__ int
#define __UINT_LEAST16_TYPE__ short unsigned int
#define __FLT64X_HAS_INFINITY__ 1
#define __INT16_MAX__ 0x7fff
#define __i386__ 1
#define __cpp_rtti 199711
#define __SIZE_TYPE__ unsigned int
#define __UINT64_MAX__ 0xffffffffffffffffULL
#define __FLT64X_DIG__ 18
#define __INT8_TYPE__ signed char
#define __GCC_ASM_FLAG_OUTPUTS__ 1
#define __FLT_RADIX__ 2
#define __INT_LEAST16_TYPE__ short int
#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L
#define __UINTMAX_C(c) c ## ULL
#define __SIG_ATOMIC_MAX__ 0x7fffffff
#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
#define __SIZEOF_PTRDIFF_T__ 4
#define __FLT32X_MANT_DIG__ 53
#define __FLT32X_MIN_EXP__ (-1021)
#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF
#define __pentiumpro 1
#define __MSVCRT__ 1
#define __INT_FAST16_MAX__ 0x7fff
#define __FLT64_DIG__ 15
#define __UINT_FAST32_MAX__ 0xffffffffU
#define __UINT_LEAST64_TYPE__ long long unsigned int
#define __FLT_HAS_QUIET_NAN__ 1
#define __FLT_MAX_10_EXP__ 38
#define __LONG_MAX__ 0x7fffffffL
#define __FLT64X_HAS_DENORM__ 1
#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL
#define __FLT_HAS_INFINITY__ 1
#define __cpp_unicode_literals 200710
#define __UINT_FAST16_TYPE__ short unsigned int
#define __DEC64_MAX__ 9.999999999999999E384DD
#define __INT_FAST32_WIDTH__ 32
#define __CHAR16_TYPE__ short unsigned int
#define __PRAGMA_REDEFINE_EXTNAME 1
#define __SIZE_WIDTH__ 32
#define __SEG_FS 1
#define __INT_LEAST16_MAX__ 0x7fff
#define __DEC64_MANT_DIG__ 16
#define __UINT_LEAST32_MAX__ 0xffffffffU
#define __SEG_GS 1
#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32
#define __GCC_ATOMIC_LONG_LOCK_FREE 2
#define __SIG_ATOMIC_WIDTH__ 32
#define __INT_LEAST64_TYPE__ long long int
#define __INT16_TYPE__ short int
#define __INT_LEAST8_TYPE__ signed char
#define __DEC32_MAX_EXP__ 97
#define __INT_FAST8_MAX__ 0x7f
#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128
#define __INTPTR_MAX__ 0x7fffffff
#define __GXX_MERGED_TYPEINFO_NAMES 0
#define __cpp_range_based_for 200907
#define __FLT64_HAS_QUIET_NAN__ 1
#define __stdcall __attribute__((__stdcall__))
#define __FLT32_MIN_10_EXP__ (-37)
#define __EXCEPTIONS 1
#define __LDBL_MANT_DIG__ 64
#define __DBL_HAS_QUIET_NAN__ 1
#define __FLT64_HAS_INFINITY__ 1
#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x
#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
#define __INTPTR_TYPE__ int
#define __UINT16_TYPE__ short unsigned int
#define __WCHAR_TYPE__ short unsigned int
#define __SIZEOF_FLOAT__ 4
#define __UINTPTR_MAX__ 0xffffffffU
#define __INT_FAST64_WIDTH__ 64
#define __DEC64_MIN_EXP__ (-382)
#define __cpp_decltype 200707
#define __FLT32_DECIMAL_DIG__ 9
#define __INT_FAST64_MAX__ 0x7fffffffffffffffLL
#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
#define __FLT_DIG__ 6
#define __FLT64X_MAX_EXP__ 16384
#define __UINT_FAST64_TYPE__ long long unsigned int
#define __INT_MAX__ 0x7fffffff
#define WIN32 1
#define __INT64_TYPE__ long long int
#define __FLT_MAX_EXP__ 128
#define __DBL_MANT_DIG__ 53
#define __cpp_inheriting_constructors 201511
#define __SIZEOF_FLOAT128__ 16
#define __INT_LEAST64_MAX__ 0x7fffffffffffffffLL
#define __DEC64_MIN__ 1E-383DD
#define __WINT_TYPE__ short unsigned int
#define __UINT_LEAST32_TYPE__ unsigned int
#define __SIZEOF_SHORT__ 2
#define __LDBL_MIN_EXP__ (-16381)
#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64
#define __WINT_WIDTH__ 16
#define __INT_LEAST8_MAX__ 0x7f
#define __FLT32X_MAX_10_EXP__ 308
#define __WCHAR_UNSIGNED__ 1
#define __LDBL_MAX_10_EXP__ 4932
#define __ATOMIC_RELAXED 0
#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L)
#define __thiscall __attribute__((__thiscall__))
#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128
#define __UINT8_C(c) c
#define __FLT64_MAX_EXP__ 1024
#define __INT_LEAST32_TYPE__ int
#define __SIZEOF_WCHAR_T__ 2
#define __FLT128_HAS_QUIET_NAN__ 1
#define __INT_FAST8_TYPE__ signed char
#define __fastcall __attribute__((__fastcall__))
#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x
#define __GNUC_STDC_INLINE__ 1
#define __FLT64_HAS_DENORM__ 1
#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32
#define __DBL_DECIMAL_DIG__ 17
#define __STDC_UTF_32__ 1
#define __INT_FAST8_WIDTH__ 8
#define __DEC_EVAL_METHOD__ 2
#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x
#define __ORDER_BIG_ENDIAN__ 4321
#define __cpp_runtime_arrays 198712
#define __UINT64_TYPE__ long long unsigned int
#define __UINT32_C(c) c ## U
#define __INTMAX_MAX__ 0x7fffffffffffffffLL
#define __cpp_alias_templates 200704
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
#define WINNT 1
#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F
#define __INT8_MAX__ 0x7f
#define __LONG_WIDTH__ 32
#define __UINT_FAST32_TYPE__ unsigned int
#define __CHAR32_TYPE__ unsigned int
#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F
#define __cpp_constexpr 200704
#define __INT32_TYPE__ int
#define __SIZEOF_DOUBLE__ 8
#define __cpp_exceptions 199711
#define __FLT_MIN_10_EXP__ (-37)
#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64
#define __INT_LEAST32_WIDTH__ 32
#define __INTMAX_TYPE__ long long int
#define i386 1
#define _INTEGRAL_MAX_BITS 64
#define __DEC128_MAX_EXP__ 6145
#define __FLT32X_HAS_QUIET_NAN__ 1
#define __ATOMIC_CONSUME 1
#define __GNUC_MINOR__ 3
#define __INT_FAST16_WIDTH__ 16
#define __UINTMAX_MAX__ 0xffffffffffffffffULL
#define __DEC32_MANT_DIG__ 7
#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x
#define __DBL_MAX_10_EXP__ 308
#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L
#define __INT16_C(c) c
#define __STDC__ 1
#define __FLT32X_DIG__ 15
#define __PTRDIFF_TYPE__ int
#define __ATOMIC_SEQ_CST 5
#define __UINT32_TYPE__ unsigned int
#define __FLT32X_MIN_10_EXP__ (-307)
#define __UINTPTR_TYPE__ unsigned int
#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD
#define __DEC128_MANT_DIG__ 34
#define __LDBL_MIN_10_EXP__ (-4931)
#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128
#define __SIZEOF_LONG_LONG__ 8
#define __cpp_user_defined_literals 200809
#define __FLT128_DECIMAL_DIG__ 36
#define __GCC_ATOMIC_LLONG_LOCK_FREE 2
#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x
#define __LDBL_DIG__ 18
#define __FLT_DECIMAL_DIG__ 9
#define __UINT_FAST16_MAX__ 0xffff
#define __GCC_ATOMIC_SHORT_LOCK_FREE 2
#define __INT_LEAST64_WIDTH__ 64
#define __UINT_FAST8_TYPE__ unsigned char
#define __ATOMIC_ACQ_REL 4
#define __ATOMIC_RELEASE 3
#define __declspec(x) __attribute__((x))

View File

@ -56,27 +56,6 @@ SecondWindows::SecondWindows(MainWindow *parent) ://конструктор
ui->comboBoxBit->setCurrentIndex(conf->value("section2/keyCurrentBit").toInt()); ui->comboBoxBit->setCurrentIndex(conf->value("section2/keyCurrentBit").toInt());
ui->lineEditAddr->setText(conf->value("section2/keyAdress").toString()); ui->lineEditAddr->setText(conf->value("section2/keyAdress").toString());
ui->comboBoxPlavGround->addItem("ОЗ");
ui->comboBoxPlavGround->addItem("ПЗ");
ui->comboBoxNch->addItem("0.1");
ui->comboBoxNch->addItem("0.3");
ui->comboBoxNch->addItem("1");
ui->comboBoxNch->addItem("3");
ui->comboBoxNch->addItem("10");
ui->comboBoxNch->addItem("30");
ui->comboBoxNch->addItem("100");
ui->comboBoxVch->addItem("0.2");
ui->comboBoxVch->addItem("1");
ui->comboBoxVch->addItem("2");
ui->comboBoxVch->addItem("10");
ui->comboBoxUnitSens->addItem("пКл/Н");
ui->comboBoxUnitSens->addItem("пКл/Па");
ui->comboBoxUnitSens->addItem("пКл/мс2");
} }
@ -103,7 +82,6 @@ void SecondWindows::dataSetter(DataStruct data)
} }
//todo: заблокировать элементы управления без подключения //todo: заблокировать элементы управления без подключения
void SecondWindows::on_pushButtonConnect_clicked() void SecondWindows::on_pushButtonConnect_clicked()
{ {
@ -135,9 +113,12 @@ void SecondWindows::on_pushButtonConnect_clicked()
//удаляем прибор с данным адресом из списка //удаляем прибор с данным адресом из списка
//опустошаем форму //опустошаем форму
ui->labelKu->setText("XXXXX");
ui->labelNch->setText("XX");
ui->labelVch->setText("XX");
ui->labelSens->setText("XXXXX"); ui->labelSens->setText("XXXXX");
ui->labelPlavGround->setText("XX");
ui->labelUnitSens->setText("XXXXXX");
//разблокируем элементы //разблокируем элементы
ui->lineEditAddr->setDisabled(false); ui->lineEditAddr->setDisabled(false);
@ -165,61 +146,51 @@ void SecondWindows::refreshDisplay(){
switch (state.fn) { switch (state.fn) {
case Lp100: case Lp100:
ui->labelNch->setText("0.1");
ui->comboBoxNch->setCurrentIndex(0);
break; break;
case Lp300: case Lp300:
ui->labelNch->setText("0.3");
ui->comboBoxNch->setCurrentIndex(1);
break; break;
case Lp1000: case Lp1000:
ui->labelNch->setText("1");
ui->comboBoxNch->setCurrentIndex(2);
break; break;
case Lp3000: case Lp3000:
ui->labelNch->setText("3");
ui->comboBoxNch->setCurrentIndex(3);
break; break;
case Lp10000: case Lp10000:
ui->labelNch->setText("10");
ui->comboBoxNch->setCurrentIndex(4);
break; break;
case Lp30000: case Lp30000:
ui->labelNch->setText("30");
ui->comboBoxNch->setCurrentIndex(5);
break; break;
case Lp100000: case Lp100000:
ui->labelNch->setText("100");
ui->comboBoxNch->setCurrentIndex(6);
break; break;
default: default:
// ui->labelNch->setText("#####"); ui->labelNch->setText("#####");
break; break;
} }
switch (state.fv) { switch (state.fv) {
case Hp0_2 : case Hp0_2 :
ui->labelVch->setText("0.2");
ui->comboBoxVch->setCurrentIndex(0);
break; break;
case Hp1: case Hp1:
ui->labelVch->setText("1");
ui->comboBoxVch->setCurrentIndex(1);
break; break;
case Hp2: case Hp2:
ui->labelVch->setText("2");
ui->comboBoxVch->setCurrentIndex(2);
break; break;
case Hp10: case Hp10:
ui->labelVch->setText("10");
ui->comboBoxVch->setCurrentIndex(3);
break; break;
default: default:
ui->labelVch->setText("#####");
break; break;
} }
//////////////////////////////////// ////////////////////////////////////
///// вывод юнитов и нормирование/// ///// вывод юнитов и нормирование///
//////////////////////////////////// ////////////////////////////////////
@ -239,36 +210,22 @@ void SecondWindows::refreshDisplay(){
strcpy(result, STRINGS_OUTUNITS[state.ku+OffsetKuDisplay]); strcpy(result, STRINGS_OUTUNITS[state.ku+OffsetKuDisplay]);
strcat(result, STRINGS_UNITS[state.unit]); strcat(result, STRINGS_UNITS[state.unit]);
ui->labelKu->setText(result);
ui->labelKu->adjustSize();
free(result); /// освободил память free(result); /// освободил память
//шляпа для комбобокса
ui->comboBoxKu->clear();
for(int i=0; i<=12; i++){
QString StringForComboBox;
StringForComboBox.append(STRINGS_OUTUNITS[i+OffsetKuDisplay]);
StringForComboBox.append(STRINGS_UNITS[state.unit]);
ui->comboBoxKu->addItem(StringForComboBox);
};
ui->comboBoxKu->setCurrentIndex(state.ku);
switch (state.pz) { //todo тут нужно нормирование switch (state.pz) { //todo тут нужно нормирование
case 0 : case 0 :
ui->comboBoxPlavGround->show(); ui->labelPlavGround->setText("ОЗ");
ui->comboBoxPlavGround->setCurrentIndex(0);
break; break;
case 1: case 1:
ui->comboBoxPlavGround->show(); ui->labelPlavGround->setText("ПЗ");
ui->comboBoxPlavGround->setCurrentIndex(1);
break; break;
default: default:
ui->labelPlavGround->setText("#####");
ui->comboBoxPlavGround->hide();
break; break;
} }
@ -276,31 +233,27 @@ void SecondWindows::refreshDisplay(){
switch (state.unit) { //todo тут нужно нормирование switch (state.unit) { //todo тут нужно нормирование
case H : case H :
ui->labelUnitSens->setText("пКл/Н");
ui->comboBoxUnitSens->setCurrentIndex(0);
// ui->labelUnitKu->setText("xВ/Н"); // Заменил на нормирование с прибора // ui->labelUnitKu->setText("xВ/Н"); // Заменил на нормирование с прибора
break; break;
case PA: case PA:
ui->labelUnitSens->setText("пКл/Па");
ui->comboBoxUnitSens->setCurrentIndex(1);
// ui->labelUnitKu->setText("xВ/Па"); // ui->labelUnitKu->setText("xВ/Па");
break; break;
case MS2: case MS2:
ui->labelUnitSens->setText("пКл/мс2");
ui->comboBoxUnitSens->setCurrentIndex(2);
// ui->labelUnitKu->setText("xВс2"); // ui->labelUnitKu->setText("xВс2");
break; break;
default: default:
ui->labelUnitSens->setText("#####");
break; break;
} }
//ui->labelUnitSens->adjustSize(); //ui->labelUnitSens->adjustSize();
switch (state.overload) { switch (state.overload) { //todo тут нужно нормирование
case Norm : case Norm :
ui->labelOverload->setText(""); ui->labelOverload->setText("");
break; break;
@ -315,6 +268,80 @@ void SecondWindows::refreshDisplay(){
void SecondWindows::on_labelKu_wheelDown()
{ //смотрим на текущее состояние дел
state.ku=typeIKU((uint16_t)state.ku-1);
modebus->writeDataToPribor(state);
//writePalam(serial, adrPri, ku, newVal); // и тут ему говорим - отправь на запись такое то значение КУ
qDebug()<<"WheelDown";
}
void SecondWindows::on_labelKu_wheelUp()
{
state.ku=typeIKU((uint16_t)state.ku+1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
qDebug()<<"WheelUp";
}
void SecondWindows::on_labelVch_wheelDown()
{
state.fv=typeIFV((uint16_t)state.fv-1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
qDebug()<<"WheelUp";
}
void SecondWindows::on_labelVch_wheelUp()
{
state.fv=typeIFV((uint16_t)state.fv+1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
qDebug()<<"WheelUp";
}
void SecondWindows::on_labelNch_wheelDown()
{
state.fn=typeIFN((uint16_t)state.fn-1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
}
void SecondWindows::on_labelNch_wheelUp()
{
state.fn=typeIFN((uint16_t)state.fn+1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
}
void SecondWindows::on_labelPlavGround_wheelDown()
{
state.pz=typePlavGround((uint16_t)state.pz-1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
}
void SecondWindows::on_labelPlavGround_wheelUp()
{
state.pz=typePlavGround((uint16_t)state.pz+1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
}
void SecondWindows::on_labelUnitSens_wheelDown()
{
state.unit=typeUnit((uint16_t)state.unit-1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
}
void SecondWindows::on_labelUnitSens_wheelUp()
{
state.unit=typeUnit((uint16_t)state.unit+1);
modebus->writeDataToPribor(state); // и тут ему говорим - отправь на запись такое то значение КУ
}
void SecondWindows::on_labelSens_clicked() void SecondWindows::on_labelSens_clicked()
{ {
bool ok; bool ok;
@ -322,50 +349,10 @@ void SecondWindows::on_labelSens_clicked()
tr("Введите значение чувствительности датчика"), state.sens, 0.001, 1000, 4, &ok, tr("Введите значение чувствительности датчика"), state.sens, 0.001, 1000, 4, &ok,
Qt::WindowFlags(), 1); Qt::WindowFlags(), 1);
if (ok){modebus->writeDataToPribor(state, SENS_REQ_TYPE);} if (ok){modebus->writeDataToPribor(state);}
} }
void SecondWindows::on_comboBoxUnitSens_activated(int index)
{
if(index==0)state.unit=H;
if(index==1)state.unit=PA; //тут были непонятки, скорее всего сработает без этого
if(index==2)state.unit=MS2;
modebus->writeDataToPribor(state, STATE_REQ_TYPE);
}
void SecondWindows::on_comboBoxKu_activated(int index)
{
state.ku=typeIKU(index);
modebus->writeDataToPribor(state, STATE_REQ_TYPE);
}
void SecondWindows::on_comboBoxVch_activated(int index)
{
state.fv=typeIFV(index);
modebus->writeDataToPribor(state, STATE_REQ_TYPE);
}
void SecondWindows::on_comboBoxNch_activated(int index)
{
state.fn=typeIFN(index);
modebus->writeDataToPribor(state, STATE_REQ_TYPE);
}
void SecondWindows::on_comboBoxPlavGround_activated(int index)
{
state.pz=typePlavGround(index);
modebus->writeDataToPribor(state, STATE_REQ_TYPE);
}

View File

@ -29,18 +29,17 @@ public:
void dataSetter(DataStruct data); void dataSetter(DataStruct data);
private slots: private slots:
void on_labelKu_wheelDown();
void on_labelKu_wheelUp();
void on_labelVch_wheelDown();
void on_labelVch_wheelUp();
void on_labelNch_wheelDown();
void on_labelNch_wheelUp();
void on_labelPlavGround_wheelDown();
void on_labelPlavGround_wheelUp();
void on_labelUnitSens_wheelDown();
void on_labelUnitSens_wheelUp();
void on_labelSens_clicked(); void on_labelSens_clicked();
void on_comboBoxUnitSens_activated(int index);
void on_comboBoxKu_activated(int index);
void on_comboBoxVch_activated(int index);
void on_comboBoxNch_activated(int index);
void on_comboBoxPlavGround_activated(int index);
private: private:
Ui::SecondWindows *ui; Ui::SecondWindows *ui;
ModBusHandler *modebus; ModBusHandler *modebus;

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@
#include "QDebug" #include "QDebug"
#include "mainwindow.h" #include "mainwindow.h"
#include "comWorks.h" #include "comWorks.h"
//#include <QModbusRtuSerialMaster> // чтоб знал ошибки модбаса #include <QModbusRtuSerialMaster> // чтоб знал ошибки модбаса
namespace Ui { namespace Ui {
class setPribor; class setPribor;

View File

@ -36,7 +36,7 @@
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>Проверьте правильность указания порта</string> <string>Убедитесь что к шине подключен только один прибор</string>
</property> </property>
</widget> </widget>
<widget class="QComboBox" name="comboBoxCurrentSpeed"> <widget class="QComboBox" name="comboBoxCurrentSpeed">
@ -246,7 +246,7 @@
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>100</x> <x>100</x>
<y>90</y> <y>70</y>
<width>69</width> <width>69</width>
<height>22</height> <height>22</height>
</rect> </rect>
@ -256,7 +256,7 @@
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>30</x> <x>30</x>
<y>90</y> <y>70</y>
<width>47</width> <width>47</width>
<height>13</height> <height>13</height>
</rect> </rect>
@ -265,19 +265,6 @@
<string>Порт</string> <string>Порт</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="label_7">
<property name="geometry">
<rect>
<x>20</x>
<y>50</y>
<width>361</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>Убедитесь что к шине подключен только один прибор</string>
</property>
</widget>
<zorder>groupBox_2</zorder> <zorder>groupBox_2</zorder>
<zorder>groupBox</zorder> <zorder>groupBox</zorder>
<zorder>label</zorder> <zorder>label</zorder>
@ -295,7 +282,6 @@
<zorder>progressBar</zorder> <zorder>progressBar</zorder>
<zorder>comboBoxPort</zorder> <zorder>comboBoxPort</zorder>
<zorder>label_6</zorder> <zorder>label_6</zorder>
<zorder>label_7</zorder>
</widget> </widget>
<resources/> <resources/>
<connections/> <connections/>