Sensors now work over broadcast pipe
Added Polynomal actor Added Item adding dialog Added Factor Actor
This commit is contained in:
parent
f6aaebafc6
commit
772d21a982
63 changed files with 1450 additions and 225 deletions
|
|
@ -20,7 +20,7 @@ public:
|
|||
|
||||
private slots:
|
||||
void toggleRepeating(int state);
|
||||
void setRepeatingType();
|
||||
void setRepeatingType();
|
||||
|
||||
private:
|
||||
Ui::AlarmWidget *ui;
|
||||
|
|
|
|||
85
src/ui/actorwidgets/factoractorwidget.cpp
Normal file
85
src/ui/actorwidgets/factoractorwidget.cpp
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
#include "factoractorwidget.h"
|
||||
#include "ui_factoractorwidget.h"
|
||||
#include "../actorsettingsdialog.h"
|
||||
|
||||
FactorActorWidget::FactorActorWidget(MultiFactorActor* actor, QWidget *parent) :
|
||||
QWidget(parent),
|
||||
actor_(actor),
|
||||
ui(new Ui::FactorActorWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->comboBox->setCurrentText(actor_->getFactorDirection() ? "True" : "False");
|
||||
ui->spinBox->setValue(actor_->getPreCancleTime());
|
||||
if(actor_->getFactorActor()) ui->label_FactorActor->setText(actor_->getFactorActor()->getName());
|
||||
connect(ui->pushButton, &QPushButton::clicked, this, &FactorActorWidget::createFactorActor);
|
||||
connect(ui->comboBox_Direcion, &QComboBox::currentTextChanged, this, &FactorActorWidget::setDirection);
|
||||
connect(ui->spinBox, qOverload<int>(&QSpinBox::valueChanged), this, &FactorActorWidget::setPreCancleTime);
|
||||
}
|
||||
|
||||
FactorActorWidget::~FactorActorWidget()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void FactorActorWidget::createFactorActor()
|
||||
{
|
||||
ActorSettingsDialog* dialog = nullptr;
|
||||
Actor* actor = nullptr;
|
||||
|
||||
if(ui->comboBox->currentText() == "Alarm")
|
||||
{
|
||||
AlarmTime* alarm = new AlarmTime;
|
||||
actor = alarm;
|
||||
dialog = new ActorSettingsDialog(alarm, this);
|
||||
}
|
||||
else if(ui->comboBox->currentText() == "Sensor")
|
||||
{
|
||||
SensorActor* sensorActor = new SensorActor();
|
||||
actor = sensorActor;
|
||||
dialog = new ActorSettingsDialog(sensorActor, this);
|
||||
}
|
||||
else if(ui->comboBox->currentText() == "Timer" )
|
||||
{
|
||||
TimerActor* timerActor = new TimerActor();
|
||||
actor = timerActor;
|
||||
dialog = new ActorSettingsDialog(timerActor, this);
|
||||
}
|
||||
else if(ui->comboBox->currentText() == "Regulator")
|
||||
{
|
||||
Regulator* regulator = new Regulator();
|
||||
actor = regulator;
|
||||
dialog = new ActorSettingsDialog(regulator, this);
|
||||
}
|
||||
|
||||
else if(ui->comboBox->currentText() == "Polynomal")
|
||||
{
|
||||
PolynomalActor* polynomalActor = new PolynomalActor();
|
||||
actor = polynomalActor;
|
||||
dialog = new ActorSettingsDialog(polynomalActor, this);
|
||||
}
|
||||
|
||||
|
||||
if(dialog != nullptr)
|
||||
{
|
||||
dialog->setParent(this);
|
||||
dialog->show();
|
||||
if(dialog->exec() == QDialog::Accepted)
|
||||
{
|
||||
actor_->setFactorActor(actor);
|
||||
ui->label_FactorActor->setText(actor->getName());
|
||||
}
|
||||
else delete actor;
|
||||
delete dialog;
|
||||
}
|
||||
}
|
||||
|
||||
void FactorActorWidget::setDirection(const QString& type)
|
||||
{
|
||||
if(type == "True") actor_->setFactorDirection(true);
|
||||
else actor_->setFactorDirection(false);
|
||||
}
|
||||
|
||||
void FactorActorWidget::setPreCancleTime(int time)
|
||||
{
|
||||
actor_->setPreCancleTime(time);
|
||||
}
|
||||
30
src/ui/actorwidgets/factoractorwidget.h
Normal file
30
src/ui/actorwidgets/factoractorwidget.h
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
#ifndef FACTORACTORWIDGET_H
|
||||
#define FACTORACTORWIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include "../../actors/factoractor.h"
|
||||
|
||||
namespace Ui {
|
||||
class FactorActorWidget;
|
||||
}
|
||||
|
||||
class FactorActorWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
MultiFactorActor* actor_;
|
||||
|
||||
public:
|
||||
explicit FactorActorWidget(MultiFactorActor* actor, QWidget *parent = nullptr);
|
||||
~FactorActorWidget();
|
||||
|
||||
private slots:
|
||||
void createFactorActor();
|
||||
void setDirection(const QString& direction);
|
||||
void setPreCancleTime(int time);
|
||||
|
||||
private:
|
||||
Ui::FactorActorWidget *ui;
|
||||
};
|
||||
|
||||
#endif // FACTORACTORWIDGET_H
|
||||
136
src/ui/actorwidgets/factoractorwidget.ui
Normal file
136
src/ui/actorwidgets/factoractorwidget.ui
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>FactorActorWidget</class>
|
||||
<widget class="QWidget" name="FactorActorWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>395</width>
|
||||
<height>169</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="1" column="0">
|
||||
<widget class="QComboBox" name="comboBox">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Sensor</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Polynomal</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Alarm</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Timer</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Regulator</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="label_FactorActor">
|
||||
<property name="text">
|
||||
<string>None</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QPushButton" name="pushButton">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Create Factor</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Factor Direciton:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QComboBox" name="comboBox_Direcion">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>True</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>False</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Current Factor:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Factor time tollerance</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="spinBox">
|
||||
<property name="maximum">
|
||||
<number>10000</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>10</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Min</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
48
src/ui/actorwidgets/polynomalactorwidget.cpp
Normal file
48
src/ui/actorwidgets/polynomalactorwidget.cpp
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
#include "polynomalactorwidget.h"
|
||||
#include "ui_polynomalactorwidget.h"
|
||||
|
||||
PolynomalActorWidget::PolynomalActorWidget(PolynomalActor* actor, SensorStore* sensors, QWidget *parent):
|
||||
QWidget(parent),
|
||||
sensors_(sensors),
|
||||
actor_(actor),
|
||||
ui(new Ui::PolynomalActorWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
if(sensors)ui->listView->sensorsChanged(*(sensors->getSensors()));
|
||||
else
|
||||
{
|
||||
ui->listView->hide();
|
||||
ui->label->hide();
|
||||
}
|
||||
|
||||
double pow3, pow2, pow1, pow0;
|
||||
|
||||
actor_->getCoeffiancts(pow3, pow2, pow1, pow0);
|
||||
|
||||
ui->doubleSpinBox_pow0->setValue(pow0);
|
||||
ui->doubleSpinBox_pow1->setValue(pow1);
|
||||
ui->doubleSpinBox_pow2->setValue(pow2);
|
||||
ui->doubleSpinBox_pow3->setValue(pow3);
|
||||
|
||||
connect(ui->doubleSpinBox_pow3, &QDoubleSpinBox::editingFinished, this, &PolynomalActorWidget::setPow);
|
||||
connect(ui->doubleSpinBox_pow2, &QDoubleSpinBox::editingFinished, this, &PolynomalActorWidget::setPow);
|
||||
connect(ui->doubleSpinBox_pow1, &QDoubleSpinBox::editingFinished, this, &PolynomalActorWidget::setPow);
|
||||
connect(ui->doubleSpinBox_pow0, &QDoubleSpinBox::editingFinished, this, &PolynomalActorWidget::setPow);
|
||||
connect(ui->listView, &SensorListWidget::clicked, this, &PolynomalActorWidget::setSensor);
|
||||
|
||||
}
|
||||
|
||||
PolynomalActorWidget::~PolynomalActorWidget()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void PolynomalActorWidget::setPow()
|
||||
{
|
||||
actor_->setCoeffiancts(ui->doubleSpinBox_pow3->value(), ui->doubleSpinBox_pow2->value(), ui->doubleSpinBox_pow1->value(), ui->doubleSpinBox_pow0->value());
|
||||
}
|
||||
|
||||
void PolynomalActorWidget::setSensor(const QModelIndex &index)
|
||||
{
|
||||
actor_->setSensor(sensors_->getSensors()->at(index.row()));
|
||||
}
|
||||
30
src/ui/actorwidgets/polynomalactorwidget.h
Normal file
30
src/ui/actorwidgets/polynomalactorwidget.h
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
#ifndef POLYNOMALACTORWIDGET_H
|
||||
#define POLYNOMALACTORWIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include "../../actors/polynomalactor.h"
|
||||
|
||||
namespace Ui {
|
||||
class PolynomalActorWidget;
|
||||
}
|
||||
|
||||
class PolynomalActorWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
SensorStore* sensors_;
|
||||
PolynomalActor* actor_;
|
||||
|
||||
public:
|
||||
explicit PolynomalActorWidget(PolynomalActor* regulator, SensorStore* sensors = nullptr, QWidget *parent = nullptr);
|
||||
~PolynomalActorWidget();
|
||||
|
||||
private slots:
|
||||
|
||||
void setPow();
|
||||
void setSensor(const QModelIndex &index);
|
||||
|
||||
private:
|
||||
Ui::PolynomalActorWidget *ui;
|
||||
};
|
||||
|
||||
#endif // POLYNOMALACTORWIDGET_H
|
||||
140
src/ui/actorwidgets/polynomalactorwidget.ui
Normal file
140
src/ui/actorwidgets/polynomalactorwidget.ui
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>PolynomalActorWidget</class>
|
||||
<widget class="QWidget" name="PolynomalActorWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>420</width>
|
||||
<height>306</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Select Sensor</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="SensorListWidget" name="listView">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QDoubleSpinBox" name="doubleSpinBox_pow3">
|
||||
<property name="minimum">
|
||||
<double>-500.000000000000000</double>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>500.000000000000000</double>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>0.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>x³+</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDoubleSpinBox" name="doubleSpinBox_pow2">
|
||||
<property name="minimum">
|
||||
<double>-500.000000000000000</double>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>500.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>x²+</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDoubleSpinBox" name="doubleSpinBox_pow1">
|
||||
<property name="minimum">
|
||||
<double>-500.000000000000000</double>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>500.000000000000000</double>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>1.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>x+</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDoubleSpinBox" name="doubleSpinBox_pow0">
|
||||
<property name="minimum">
|
||||
<double>-500.000000000000000</double>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<double>500.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>SensorListWidget</class>
|
||||
<extends>QListView</extends>
|
||||
<header location="global">../src/ui/sensorlistwidget.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
Loading…
Add table
Add a link
Reference in a new issue