if(pointWeightOne == pointrPrem->compWei.end()){ emit printComponentOne(""); qDebug() << "Passage(1^^^^^ "; } else{ qDebug() << "Passage(2^^^^^ "; emit printComponentOne(pointWeightOne->nameComponent); }
void MainWindow::PrintInItog(const Premiks pointrPrem){ // QList<Premiks> listPrem; // Premiks pointrPremTmp ; // double premiks=0; // double itogRec=0;// qDebug() <<"START";// if(liistPremiks.isEmpty()){// qDebug() <<"TWADawdawd"<< liistPremiks.isEmpty();// qDebug() <<"PrintInItog(const Premiks pointrPrem)1111111111111";// pointrPremTmp = pointrPrem;// liistPremiks << pointrPrem;// qDebug() <<"LIST"<<liistPremiks.size(); qDebug() <<"NAME"<<pointrPrem.itogPrem; qDebug() <<"NAME"<<pointrPrem.namePrem; // qDebug() <<"TWADawdawd"<< listPrem.isEmpty(); // qDebug() <<"Name Prem"<< pointrPremTmp.namePrem;// }// else{// qDebug() <<"222222222";// if(pointrPremTmp != pointrPrem){// qDebug() <<"PrintInItog(const Premiks pointrPrem)333333333333";// liistPremiks +=pointrPrem;// pointrPremTmp = pointrPrem;// qDebug() <<"LIST"<<liistPremiks.size();// }// else {// qDebug() <<"PrintInItog(const Premiks pointrPrem)44444444444";// }// qDebug() <<"PrintInItog(const Premiks pointrPrem)5555555555555";// qDebug() <<"Print";// Print(liistPremiks);// }}
liistPremiks << pointrPrem;
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QTimer>#include <QPixmap>#include <QLinkedList>#include "port.h"#include "recepe.h"#include "switchcontrol.h"#include "counterwindow.h"namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow();signals: void writeData(QByteArray name);//сигнал записи в порт void send(); void eguallySignal(bool tmp);private: Ui::MainWindow *ui; bool statusStab = false; bool statusEqually = false; QLinkedList<Premiks> liistPremiks; Premiks pointrPremTmp ; double premiks=0; double itogRec=0;private slots: void ReadWeight (double weightActual); void OnOfCheckBox(bool tmp); void disableButton(); void setWeight(double tmp); void Equally(bool tmp);//слот включения выключения иконки равно void PrintInItog(const Premiks pointrPrem); void Print(QLinkedList<Premiks> &tmp);private: QTimer *pSendTimer; QPixmap myPixmapS_on;//Переменная хранящая иконку на ВКЛ стабильного веса QPixmap myPixmapS_of;//Переменная хранящая иконку на ВЫКЛ стабильного веса QPixmap myPixmapEqually_on;//Переменная хранящая иконку на ВКЛ равно QPixmap myPixmapEqually_of;//Переменная хранящая иконку на ВЫКЛ равно double weight;//вес текущего компонента};#endif // MAINWINDOW_H
#include "mainwindow.h"#include "ui_mainwindow.h"#include <qdebug.h>#include <QString>#include <QThread>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); myPixmapS_on.load("C:\\Qt\\Projects\\build-Libra_ADH_pro-Desktop_Qt_5_9_3_MinGW_32bit-Debug\\debug\\icons\\key_S_on"); myPixmapS_of.load("C:\\Qt\\Projects\\build-Libra_ADH_pro-Desktop_Qt_5_9_3_MinGW_32bit-Debug\\debug\\icons\\key_S"); myPixmapEqually_of.load("C:\\Qt\\Projects\\build-Libra_ADH_pro-Desktop_Qt_5_9_3_MinGW_32bit-Debug\\debug\\icons\\key_equal_of"); myPixmapEqually_on.load("C:\\Qt\\Projects\\build-Libra_ADH_pro-Desktop_Qt_5_9_3_MinGW_32bit-Debug\\debug\\icons\\key_equal_on"); ui->label_4->setPixmap(myPixmapS_of); ui->label_5->setPixmap(myPixmapEqually_of); ui->label->setStyleSheet("QLabel { background-color : lightgray; color : black; }"); //palette.setColor(ui->pLabel->foregroundRole(), Qt::yellow); QThread *thread_New = new QThread;//Создаем поток для порта платы Port *PortNew = new Port();//Создаем обьект по классу PortNew->moveToThread(thread_New);//помешаем класс в поток PortNew->thisPort.moveToThread(thread_New);//Помещаем сам порт в поток// connect(PortNew, SIGNAL(error_(QString)), this, SLOT(Print(QString)));//Лог ошибок connect(thread_New, SIGNAL(started()), PortNew, SLOT(process_Port()));//Переназначения метода run connect(PortNew, SIGNAL(finished_Port()), thread_New, SLOT(quit()));//Переназначение метода выход connect(thread_New, SIGNAL(finished()), PortNew, SLOT(deleteLater()));//Удалить к чертям поток connect(PortNew, SIGNAL(finished_Port()), thread_New, SLOT(deleteLater()));//Удалить к чертям поток// connect(PortNew, SIGNAL(outPort(QString)), this, SLOT(Print(QString)));//Лог ошибок connect(this,SIGNAL(writeData(QByteArray)),PortNew,SLOT(WriteToPort(QByteArray))); connect(PortNew, SIGNAL(sendWeight(double)),this,SLOT(ReadWeight(double))); connect(PortNew,SIGNAL(stability(bool)),this,SLOT(OnOfCheckBox(bool))); connect(this,SIGNAL(eguallySignal(bool)),this,SLOT(Equally(bool))); connect(this,SIGNAL(send()),PortNew,SLOT(SendStartPack())); thread_New->start(); pSendTimer=new QTimer(); pSendTimer->setInterval(50); connect(pSendTimer, SIGNAL(timeout()),this, SIGNAL(send()));//связь с таймером (каждые 50 мс, отправляем запрос на весы) pSendTimer->start(250); Recepe recOne("Барбекю 15000321"); SwitchControl *Control= new SwitchControl(recOne); //заполнение списков для рецептуры recOne.FillOne(); connect(Control,SIGNAL(printInNameRecept(QString)),ui->label_2,SLOT(setText(QString))); connect(Control,SIGNAL(printNamePremiks(QString)),ui->label_3,SLOT(setText(QString))); connect(Control,SIGNAL(printComponentOne(QString)),ui->label_8,SLOT(setText(QString))); connect(Control,SIGNAL(printComponentTwo(QString)),ui->label,SLOT(setText(QString))); connect(Control,SIGNAL(printComponentThree(QString)),ui->label_7,SLOT(setText(QString))); connect(Control,SIGNAL(printWeight(double)),ui->lcdNumber_2,SLOT(display(double))); connect(Control,SIGNAL(printWeight(double)),this,SLOT(setWeight(double))); connect(ui->pushButton,SIGNAL(clicked(bool)),Control,SLOT(Passage())); connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(disableButton())); connect(Control,SIGNAL(sendListPremiks(const Premiks)),SLOT(PrintInItog(const Premiks))); Control->ArrangePointAndStartDispley(recOne); //******* ui->pushButton->setEnabled(false);}MainWindow::~MainWindow(){ delete ui; if(pSendTimer) delete pSendTimer;}void MainWindow::ReadWeight (double weightActual){ ui->lcdNumber->display(weightActual); if(weight == weightActual && statusStab == true){//проверяем на равенство ui->pushButton->setEnabled(true); emit eguallySignal(true); } else { ui->pushButton->setEnabled(false); emit eguallySignal(false); }}void MainWindow::OnOfCheckBox(bool tmp){//функция смены картинки стабильности if(tmp!= statusStab){ statusStab = !statusStab; if(statusStab==true){ ui->label_4->setPixmap(myPixmapS_on); } else ui->label_4->setPixmap(myPixmapS_of); }}void MainWindow::Equally(bool tmp){//функция смены картинки равно if(tmp != statusEqually){ statusEqually = !statusEqually; if(statusEqually == true){ ui->label_5->setPixmap(myPixmapEqually_on); } else { ui->label_5->setPixmap(myPixmapEqually_of); } }}void MainWindow::disableButton()//слот оключения кнопки по нажатию на нее.{ ui->pushButton->setEnabled(false);}void MainWindow::setWeight(double tmp){//вес компонента получаем сигналом weight = tmp;}void MainWindow::PrintInItog(const Premiks pointrPrem){ // QList<Premiks> listPrem; // Premiks pointrPremTmp ; // double premiks=0; // double itogRec=0; qDebug() <<"START"; if(liistPremiks.isEmpty()){ qDebug() <<"TWADawdawd"<< liistPremiks.isEmpty(); qDebug() <<"PrintInItog(const Premiks pointrPrem)1111111111111"; pointrPremTmp = pointrPrem; liistPremiks << pointrPrem; qDebug() <<"LIST"<<liistPremiks.size(); qDebug() <<"NAME"<<pointrPrem.itogPrem; qDebug() <<"NAME"<<pointrPrem.namePrem; // qDebug() <<"TWADawdawd"<< listPrem.isEmpty(); // qDebug() <<"Name Prem"<< pointrPremTmp.namePrem; } else{ qDebug() <<"222222222"; if(pointrPremTmp != pointrPrem){ qDebug() <<"PrintInItog(const Premiks pointrPrem)333333333333"; liistPremiks +=pointrPrem; pointrPremTmp = pointrPrem; qDebug() <<"LIST"<<liistPremiks.size(); } else { qDebug() <<"PrintInItog(const Premiks pointrPrem)44444444444"; } qDebug() <<"PrintInItog(const Premiks pointrPrem)5555555555555"; qDebug() <<"Print"; Print(liistPremiks); }}void MainWindow::Print(QLinkedList<Premiks> &tmp){ qDebug() <<"PrintINNNN"; foreach (Premiks var, tmp) { qDebug() << var.namePrem<< " " << var.itogPrem; qDebug() << premiks<< " " ; }}
#ifndef SWITCHCONTROL_H#define SWITCHCONTROL_H#include <QMainWindow>#include <QObject>#include <QWidget>#include "recepe.h"#include <QLinkedList>class SwitchControl : public QObject{ Q_OBJECTpublic: SwitchControl(); SwitchControl (Recepe tmp) : recContainer (tmp) {} SwitchControl& operator= (/*const */SwitchControl &drob);private: Recepe recContainer; QList<Weight>::iterator pointWeightOne;//Итератор указывающий на предыдущий компонент QList<Weight>::iterator pointWeightTwo;//Итератор указывающий на текущий компонент QList<Weight>::iterator pointWeightThree;//Итератор указывающий на следующий компонент QLinkedList<Premiks>::iterator pointrPrem;//Итератор указывающий на Премикс QLinkedList<Premiks> listPremiks;//полный список всех Премиксовprivate slots:public slots: Recepe returnrecContainer(); QList<Weight>::iterator returnrecpointWeightOne();// | ***** QList<Weight>::iterator returnrecpointWeightTwo();// | Возвращают закрытые члены класса QList<Weight>::iterator returnrecpointWeightThree();// | ***** QLinkedList<Premiks>::iterator returnrecpointrPrem();// | void ArrangePointAndStartDispley(Recepe recept);//инициализация рецептурой void Passage();//прохождение по нажатию по рецептуреsignals: void printInNameRecept(QString name);//сигнал по передаче имени Рецептуры на дисплей в mainwindow void printNamePremiks(QString name);//сигнал по передаче имени Премикса //на дисплей в mainwindow(привязан к итератору pointrPrem void printComponentOne(QString name);//сигнал по передаче имени Предыдущего компонента //на дисплей в mainwindow(привязан к итератору pointWeightOne void printComponentTwo(QString name);//сигнал по передаче имени Текущего компонента //на дисплей в mainwindow(привязан к итератору pointWeightTwo void printComponentThree(QString name);//сигнал по передаче имени Следующего компонента //на дисплей в mainwindow(привязан к итератору pointWeightThree void printWeight(double weight);//сигнал по передаче Веса на дисплей в mainwindow void sendListPremiks(Premiks pointrPremTmp);};#endif // SWITCHCONTROL_H
#include "switchcontrol.h"Recepe SwitchControl::returnrecContainer(){ return recContainer;}QList<Weight>::iterator SwitchControl::returnrecpointWeightOne(){ return pointWeightOne;}QList<Weight>::iterator SwitchControl::returnrecpointWeightTwo(){ return pointWeightTwo;}QList<Weight>::iterator SwitchControl::returnrecpointWeightThree(){ return pointWeightThree;} QLinkedList<Premiks>::iterator SwitchControl::returnrecpointrPrem(){ return pointrPrem;}SwitchControl& SwitchControl::operator= (/*const */SwitchControl &drob){ this->recContainer = drob.returnrecContainer(); this->pointWeightOne = drob.returnrecpointWeightOne(); this->pointWeightTwo = drob.returnrecpointWeightTwo(); this->pointWeightThree = drob.returnrecpointWeightThree(); this->pointrPrem = drob.returnrecpointrPrem(); return *this;}void SwitchControl::ArrangePointAndStartDispley(Recepe recept){ recContainer = recept; emit printInNameRecept(recept.nameRecepe); listPremiks += recept.basis; listPremiks +=recept.listPrem; pointrPrem = listPremiks.begin(); pointWeightOne=pointrPrem->compWei.end(); pointWeightTwo = pointrPrem->compWei.begin(); pointWeightThree = pointWeightTwo+1; emit printNamePremiks(pointrPrem->namePrem); if(pointWeightOne == pointrPrem->compWei.end()) emit printComponentOne(""); emit printComponentTwo(pointWeightTwo->nameComponent); emit printComponentThree(pointWeightThree->nameComponent); emit printWeight(pointWeightTwo->weight); qDebug() << "ArrangePointAndStartDispley(Recepe recept)"<<pointrPrem->namePrem; sendListPremiks(*(pointrPrem));}void SwitchControl::Passage(){ if(pointrPrem != listPremiks.end()){qDebug() << "BBBBBBB1 "<<(pointWeightOne != pointrPrem->compWei.end() && pointWeightThree != pointrPrem->compWei.end());qDebug() << "BBBBBBB2 "<<((pointWeightOne == pointrPrem->compWei.end()));qDebug() << "BBBBBBBBB3 "<< (pointWeightThree == pointrPrem->compWei.end());qDebug() << "AAAAAAAAAAAAA1 "<< (pointWeightOne != pointrPrem->compWei.end());qDebug() << "AAAAAAAAAAAAA1 "<< (pointWeightThree != pointrPrem->compWei.end()); if(pointWeightOne != pointrPrem->compWei.end() && pointWeightThree != pointrPrem->compWei.end()){ pointWeightOne++; pointWeightTwo++; pointWeightThree++; qDebug() << "Passage()111111111111111111 "<<pointrPrem->namePrem; emit sendListPremiks(*pointrPrem); } else if(pointWeightOne == pointrPrem->compWei.end()){ pointWeightOne = pointWeightTwo; pointWeightTwo ++; pointWeightThree = pointWeightTwo + 1; qDebug() << "Passage()222222222 "<<pointrPrem->namePrem; emit sendListPremiks(*pointrPrem); } else if(pointWeightThree == pointrPrem->compWei.end()) { if(pointrPrem == listPremiks.end()-1){ pointrPrem = listPremiks.begin(); } else { pointrPrem++; } pointWeightOne=pointrPrem->compWei.end(); pointWeightTwo = pointrPrem->compWei.begin(); pointWeightThree = pointWeightTwo+1; qDebug() << "Passage()333333333333333 "<<pointrPrem->namePrem; emit sendListPremiks(*pointrPrem); emit printNamePremiks(pointrPrem->namePrem); } if(pointWeightOne == pointrPrem->compWei.end()){ emit printComponentOne(""); qDebug() << "Passage(1^^^^^ "; } else{ qDebug() << "Passage(2^^^^^ "; emit printComponentOne(pointWeightOne->nameComponent); } if(pointWeightThree == pointrPrem->compWei.end()){ qDebug() << "Passage(3^^^^^ "; emit printComponentThree(""); } else{ qDebug() << "Passage(4^^^^^ "; emit printComponentThree(pointWeightThree->nameComponent); } qDebug() << "Passage(5^^^^^ ";// emit sendListPremiks(*(pointrPrem)); emit printComponentTwo(pointWeightTwo->nameComponent); emit printWeight(pointWeightTwo->weight); } qDebug() << "Passage()4444444444444444 "<<pointrPrem->namePrem;}
T & operator[] ( int j ) const