New Sensor-> Actor -> Item system (half implemented, relay support
only), new ui, Relay dehardcoeding.
This commit is contained in:
		
							parent
							
								
									74f117db69
								
							
						
					
					
						commit
						b04fbfb5bc
					
				
					 66 changed files with 3905 additions and 123 deletions
				
			
		
							
								
								
									
										14
									
								
								actorsettingsdialog.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								actorsettingsdialog.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,14 @@
 | 
				
			||||||
 | 
					#include "actorsettingsdialog.h"
 | 
				
			||||||
 | 
					#include "ui_actorsettingsdialog.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ActorSettingsDialog::ActorSettingsDialog(QWidget *parent) :
 | 
				
			||||||
 | 
					    QDialog(parent),
 | 
				
			||||||
 | 
					    ui(new Ui::ActorSettingsDialog)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->setupUi(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ActorSettingsDialog::~ActorSettingsDialog()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										22
									
								
								actorsettingsdialog.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								actorsettingsdialog.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					#ifndef ACTORSETTINGSDIALOG_H
 | 
				
			||||||
 | 
					#define ACTORSETTINGSDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QDialog>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui {
 | 
				
			||||||
 | 
					class ActorSettingsDialog;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ActorSettingsDialog : public QDialog
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit ActorSettingsDialog(QWidget *parent = nullptr);
 | 
				
			||||||
 | 
					    ~ActorSettingsDialog();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Ui::ActorSettingsDialog *ui;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // ACTORSETTINGSDIALOG_H
 | 
				
			||||||
							
								
								
									
										71
									
								
								actorsettingsdialog.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								actorsettingsdialog.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,71 @@
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <author/>
 | 
				
			||||||
 | 
					 <comment/>
 | 
				
			||||||
 | 
					 <exportmacro/>
 | 
				
			||||||
 | 
					 <class>ActorSettingsDialog</class>
 | 
				
			||||||
 | 
					 <widget class="QDialog" name="ActorSettingsDialog">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>400</width>
 | 
				
			||||||
 | 
					    <height>300</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Dialog</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <widget class="QDialogButtonBox" name="buttonBox">
 | 
				
			||||||
 | 
					   <property name="geometry">
 | 
				
			||||||
 | 
					    <rect>
 | 
				
			||||||
 | 
					     <x>30</x>
 | 
				
			||||||
 | 
					     <y>240</y>
 | 
				
			||||||
 | 
					     <width>341</width>
 | 
				
			||||||
 | 
					     <height>32</height>
 | 
				
			||||||
 | 
					    </rect>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="orientation">
 | 
				
			||||||
 | 
					    <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="standardButtons">
 | 
				
			||||||
 | 
					    <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					  </widget>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <pixmapfunction/>
 | 
				
			||||||
 | 
					 <resources/>
 | 
				
			||||||
 | 
					 <connections>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>accepted()</signal>
 | 
				
			||||||
 | 
					   <receiver>ActorSettingsDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>accept()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>248</x>
 | 
				
			||||||
 | 
					     <y>254</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>157</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>rejected()</signal>
 | 
				
			||||||
 | 
					   <receiver>ActorSettingsDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>reject()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>316</x>
 | 
				
			||||||
 | 
					     <y>260</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>286</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					 </connections>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
							
								
								
									
										14
									
								
								alarmwidget.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								alarmwidget.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,14 @@
 | 
				
			||||||
 | 
					#include "alarmwidget.h"
 | 
				
			||||||
 | 
					#include "ui_alarmwidget.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AlarmWidget::AlarmWidget(QWidget *parent) :
 | 
				
			||||||
 | 
					    QWidget(parent),
 | 
				
			||||||
 | 
					    ui(new Ui::AlarmWidget)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->setupUi(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AlarmWidget::~AlarmWidget()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										22
									
								
								alarmwidget.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								alarmwidget.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					#ifndef ALARMWIDGET_H
 | 
				
			||||||
 | 
					#define ALARMWIDGET_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QWidget>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui {
 | 
				
			||||||
 | 
					class AlarmWidget;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class AlarmWidget : public QWidget
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit AlarmWidget(QWidget *parent = nullptr);
 | 
				
			||||||
 | 
					    ~AlarmWidget();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Ui::AlarmWidget *ui;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // ALARMWIDGET_H
 | 
				
			||||||
							
								
								
									
										21
									
								
								alarmwidget.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								alarmwidget.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,21 @@
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <author/>
 | 
				
			||||||
 | 
					 <comment/>
 | 
				
			||||||
 | 
					 <exportmacro/>
 | 
				
			||||||
 | 
					 <class>AlarmWidget</class>
 | 
				
			||||||
 | 
					 <widget class="QWidget" name="AlarmWidget">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>400</width>
 | 
				
			||||||
 | 
					    <height>300</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Form</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <pixmapfunction/>
 | 
				
			||||||
 | 
					 <connections/>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
| 
						 | 
					@ -1,52 +0,0 @@
 | 
				
			||||||
#include "relaydialog.h"
 | 
					 | 
				
			||||||
#include "ui_relaydialog.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RelayDialog::RelayDialog(Microcontroller *micro, QWidget *parent) :
 | 
					 | 
				
			||||||
    QDialog(parent),
 | 
					 | 
				
			||||||
    ui(new Ui::RelayDialog),
 | 
					 | 
				
			||||||
    _micro(micro)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    ui->setupUi(this);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    _relayCheckBoxes.push_back(ui->checkBox_R0);
 | 
					 | 
				
			||||||
    _relayCheckBoxes.push_back(ui->checkBox_R1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    for(unsigned int i = 0; i < _relayCheckBoxes.size(); i++) connect(_relayCheckBoxes[i], SIGNAL(stateChanged(int)), this, SLOT(relayCheckBoxToggeled(int)));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    _micro->relayOn(STARTING_RELAY);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RelayDialog::~RelayDialog()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    delete ui;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void RelayDialog::relayCheckBoxToggeled(int state)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    for(unsigned int i = 0; i < _relayCheckBoxes.size(); i++)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if(_relayCheckBoxes[i] == sender())
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            std::cerr<<state<<"  "<<i<<std::endl;
 | 
					 | 
				
			||||||
            if(state == 2 && i == 0)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                std::cerr<<"primeing lambda\n";
 | 
					 | 
				
			||||||
                QTimer::singleShot(3600000, _micro, [this](){ _micro->relayOff(STARTING_RELAY); _relayCheckBoxes[0]->setChecked(false);});
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            _micro->relayToggle(state, i+STARTING_RELAY);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void RelayDialog::relayStateChanged(std::vector<bool> relayStates)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    if(relayStates.size() > STARTING_RELAY) for(unsigned int i = 0; i < relayStates.size()-STARTING_RELAY; i++)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        _relayCheckBoxes[i]->blockSignals(true);
 | 
					 | 
				
			||||||
        _relayCheckBoxes[i]->setChecked(relayStates[i+STARTING_RELAY]);
 | 
					 | 
				
			||||||
        _relayCheckBoxes[i]->blockSignals(false);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,39 +0,0 @@
 | 
				
			||||||
#ifndef RELAYDIALOG_H
 | 
					 | 
				
			||||||
#define RELAYDIALOG_H
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <QDialog>
 | 
					 | 
				
			||||||
#include <QList>
 | 
					 | 
				
			||||||
#include <vector>
 | 
					 | 
				
			||||||
#include <QAbstractButton>
 | 
					 | 
				
			||||||
#include "microcontroller.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define STARTING_RELAY 5
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace Ui {
 | 
					 | 
				
			||||||
class RelayDialog;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class RelayDialog : public QDialog
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    Q_OBJECT
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public:
 | 
					 | 
				
			||||||
    explicit RelayDialog(Microcontroller *micro, QWidget *parent = 0);
 | 
					 | 
				
			||||||
    ~RelayDialog();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
private:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   std::vector<QAbstractButton*> _relayCheckBoxes;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Ui::RelayDialog *ui;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Microcontroller *_micro;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
private slots:
 | 
					 | 
				
			||||||
    void relayCheckBoxToggeled(int state);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public slots:
 | 
					 | 
				
			||||||
    void relayStateChanged(std::vector<bool> relayStates);
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif // RELAYDIALOG_H
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,6 +0,0 @@
 | 
				
			||||||
#include "relaymanager.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RelayManager::RelayManager(QObject *parent) : QObject(parent)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,26 +0,0 @@
 | 
				
			||||||
#ifndef RELAYMANAGER_H
 | 
					 | 
				
			||||||
#define RELAYMANAGER_H
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <QObject>
 | 
					 | 
				
			||||||
#include <vector>
 | 
					 | 
				
			||||||
#include "relay.h"
 | 
					 | 
				
			||||||
#include "microcontroller.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class RelayManager : public QObject
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    Q_OBJECT
 | 
					 | 
				
			||||||
private:
 | 
					 | 
				
			||||||
    std::vector<Relay> relays;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Microcontroller* micro_;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public:
 | 
					 | 
				
			||||||
    explicit RelayManager(QObject *parent = nullptr);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
signals:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public slots:
 | 
					 | 
				
			||||||
    void
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif // RELAYMANAGER_H
 | 
					 | 
				
			||||||
							
								
								
									
										14
									
								
								relayscrollbox.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								relayscrollbox.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,14 @@
 | 
				
			||||||
 | 
					#include "relayscrollbox.h"
 | 
				
			||||||
 | 
					#include "ui_relayscrollbox.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RelayScrollBox::RelayScrollBox(QWidget *parent) :
 | 
				
			||||||
 | 
					    QWidget(parent),
 | 
				
			||||||
 | 
					    ui(new Ui::RelayScrollBox)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->setupUi(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RelayScrollBox::~RelayScrollBox()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										22
									
								
								relayscrollbox.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								relayscrollbox.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					#ifndef RELAYSCROLLBOX_H
 | 
				
			||||||
 | 
					#define RELAYSCROLLBOX_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QWidget>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui {
 | 
				
			||||||
 | 
					class RelayScrollBox;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class RelayScrollBox : public QWidget
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit RelayScrollBox(QWidget *parent = nullptr);
 | 
				
			||||||
 | 
					    ~RelayScrollBox();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Ui::RelayScrollBox *ui;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // RELAYSCROLLBOX_H
 | 
				
			||||||
							
								
								
									
										21
									
								
								relayscrollbox.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								relayscrollbox.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,21 @@
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <author/>
 | 
				
			||||||
 | 
					 <comment/>
 | 
				
			||||||
 | 
					 <exportmacro/>
 | 
				
			||||||
 | 
					 <class>RelayScrollBox</class>
 | 
				
			||||||
 | 
					 <widget name="RelayScrollBox" class="QWidget">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>400</width>
 | 
				
			||||||
 | 
					    <height>300</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Form</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <pixmapfunction/>
 | 
				
			||||||
 | 
					 <connections/>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
							
								
								
									
										14
									
								
								relaysettingsdialog.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								relaysettingsdialog.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,14 @@
 | 
				
			||||||
 | 
					#include "relaysettingsdialog.h"
 | 
				
			||||||
 | 
					#include "ui_relaysettingsdialog.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RelaySettingsDialog::RelaySettingsDialog(QWidget *parent) :
 | 
				
			||||||
 | 
					    QDialog(parent),
 | 
				
			||||||
 | 
					    ui(new Ui::RelaySettingsDialog)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->setupUi(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RelaySettingsDialog::~RelaySettingsDialog()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										22
									
								
								relaysettingsdialog.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								relaysettingsdialog.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					#ifndef RELAYSETTINGSDIALOG_H
 | 
				
			||||||
 | 
					#define RELAYSETTINGSDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QDialog>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui {
 | 
				
			||||||
 | 
					class RelaySettingsDialog;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class RelaySettingsDialog : public QDialog
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit RelaySettingsDialog(QWidget *parent = nullptr);
 | 
				
			||||||
 | 
					    ~RelaySettingsDialog();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Ui::RelaySettingsDialog *ui;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // RELAYSETTINGSDIALOG_H
 | 
				
			||||||
							
								
								
									
										71
									
								
								relaysettingsdialog.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								relaysettingsdialog.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,71 @@
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <author/>
 | 
				
			||||||
 | 
					 <comment/>
 | 
				
			||||||
 | 
					 <exportmacro/>
 | 
				
			||||||
 | 
					 <class>RelaySettingsDialog</class>
 | 
				
			||||||
 | 
					 <widget class="QDialog" name="RelaySettingsDialog">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>400</width>
 | 
				
			||||||
 | 
					    <height>300</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Dialog</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <widget class="QDialogButtonBox" name="buttonBox">
 | 
				
			||||||
 | 
					   <property name="geometry">
 | 
				
			||||||
 | 
					    <rect>
 | 
				
			||||||
 | 
					     <x>30</x>
 | 
				
			||||||
 | 
					     <y>240</y>
 | 
				
			||||||
 | 
					     <width>341</width>
 | 
				
			||||||
 | 
					     <height>32</height>
 | 
				
			||||||
 | 
					    </rect>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="orientation">
 | 
				
			||||||
 | 
					    <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="standardButtons">
 | 
				
			||||||
 | 
					    <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					  </widget>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <pixmapfunction/>
 | 
				
			||||||
 | 
					 <resources/>
 | 
				
			||||||
 | 
					 <connections>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>accepted()</signal>
 | 
				
			||||||
 | 
					   <receiver>RelaySettingsDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>accept()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>248</x>
 | 
				
			||||||
 | 
					     <y>254</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>157</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>rejected()</signal>
 | 
				
			||||||
 | 
					   <receiver>RelaySettingsDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>reject()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>316</x>
 | 
				
			||||||
 | 
					     <y>260</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>286</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					 </connections>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
							
								
								
									
										41
									
								
								src/actor.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								src/actor.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,41 @@
 | 
				
			||||||
 | 
					#include "actor.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Actor::Actor(QObject *parent): QObject(parent)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Actor::~Actor()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Actor::performAction()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    trigger();
 | 
				
			||||||
 | 
					    if(action_ == ACTION_OFF) off();
 | 
				
			||||||
 | 
					    else if(action_ == ACTION_ON) on();
 | 
				
			||||||
 | 
					    else if(action_ != ACTION_TRIGGER_ONLY) toggle();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Actor::setActive(int state)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    state ? makeActive() : makeInactive();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool Actor::isActive()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return active;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Actor::setAction(uint8_t action)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    action_ = action;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Actor::onStateChanged(bool state)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										45
									
								
								src/actor.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								src/actor.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,45 @@
 | 
				
			||||||
 | 
					#ifndef ACTOR_H
 | 
				
			||||||
 | 
					#define ACTOR_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QObject>
 | 
				
			||||||
 | 
					#include <QString>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Actor : public QObject
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    static const uint8_t ACTION_DEFAULT = 0;
 | 
				
			||||||
 | 
					    static const uint8_t ACTION_TOGGLE = 1;
 | 
				
			||||||
 | 
					    static const uint8_t ACTION_ON = 2;
 | 
				
			||||||
 | 
					    static const uint8_t ACTION_OFF = 3;
 | 
				
			||||||
 | 
					    static const uint8_t ACTION_TRIGGER_ONLY = 4;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QString name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
					    uint8_t action_ = 0;
 | 
				
			||||||
 | 
					    bool active = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void performAction();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					signals:
 | 
				
			||||||
 | 
					    void on();
 | 
				
			||||||
 | 
					    void off();
 | 
				
			||||||
 | 
					    void trigger();
 | 
				
			||||||
 | 
					    void toggle();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
					    virtual void makeActive() = 0;
 | 
				
			||||||
 | 
					    virtual void makeInactive() = 0;
 | 
				
			||||||
 | 
					    virtual void setActive(int state);
 | 
				
			||||||
 | 
					    virtual void onStateChanged(bool state);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    Actor(QObject* parent = nullptr);
 | 
				
			||||||
 | 
					    virtual ~Actor();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    bool isActive();
 | 
				
			||||||
 | 
					    void setAction(uint8_t action);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // ACTOR_H
 | 
				
			||||||
							
								
								
									
										33
									
								
								src/alarmactions.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								src/alarmactions.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,33 @@
 | 
				
			||||||
 | 
					#include "alarmactions.h"
 | 
				
			||||||
 | 
					#include <QProcess>
 | 
				
			||||||
 | 
					#include <QSound>
 | 
				
			||||||
 | 
					#include <QProcess>
 | 
				
			||||||
 | 
					#include <QTime>
 | 
				
			||||||
 | 
					#include <QApplication>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AlarmActions::AlarmActions(QSettings *settings, Microcontroller* micro, QObject *parent) : QObject(parent), _micro(micro), _settings(settings)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AlarmActions::syncoff()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    _settings->sync();
 | 
				
			||||||
 | 
					    for(unsigned int i = 0; i < _micro->getLastState().size(); i++) _micro->relayOff(i);
 | 
				
			||||||
 | 
					    QProcess::execute ( "syncoff" );
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AlarmActions::Alarm()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if(_settings->value("Alarms/alarmSoundFile").toString().size() != 0)_micro->startSunrise();
 | 
				
			||||||
 | 
					    if(_settings->value("Alarms/alarmSoundFile").toString().size() != 0)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        _micro->relayOn(0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        QTime dieTime= QTime::currentTime().addSecs(10);
 | 
				
			||||||
 | 
					        while (QTime::currentTime() < dieTime) QApplication::processEvents(QEventLoop::AllEvents, 100);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        QSound::play(_settings->value("Alarms/alarmSoundFile").toString());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										28
									
								
								src/alarmactions.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								src/alarmactions.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,28 @@
 | 
				
			||||||
 | 
					#ifndef POWER_H
 | 
				
			||||||
 | 
					#define POWER_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QObject>
 | 
				
			||||||
 | 
					#include <QSettings>
 | 
				
			||||||
 | 
					#include "microcontroller.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class AlarmActions : public QObject
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					    Microcontroller* _micro;
 | 
				
			||||||
 | 
					    QSettings* _settings;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit AlarmActions(QSettings* settings, Microcontroller* micro, QObject *parent = nullptr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					signals:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void syncoff();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void Alarm();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // POWER_H
 | 
				
			||||||
							
								
								
									
										51
									
								
								src/alarmtime.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								src/alarmtime.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,51 @@
 | 
				
			||||||
 | 
					#include "alarmtime.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AlarmTime::AlarmTime(const QTime time, QObject *parent) : Actor(parent), time_(time)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    connect(&timer, SIGNAL(timeout()), this, SLOT(doTick()));
 | 
				
			||||||
 | 
					    timer.setInterval(1000);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AlarmTime::~AlarmTime()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    makeInactive();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AlarmTime::run()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    makeInactive();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    active = true;
 | 
				
			||||||
 | 
					    timer.start();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    qDebug()<<"Start Alarm Time Manager\n";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AlarmTime::makeActive()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    run();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AlarmTime::makeInactive()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    timer.stop();
 | 
				
			||||||
 | 
					    active = false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AlarmTime::doTick()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(time_.hour() == QTime::currentTime().hour() && time_.minute() == QTime::currentTime().minute() && triggerd_==false )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					       qDebug()<<"Trigger\n";
 | 
				
			||||||
 | 
					       triggerd_=true;
 | 
				
			||||||
 | 
					       performAction();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else if( time_.hour() != QTime::currentTime().hour() ) triggerd_=false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AlarmTime::changeTime(QTime time)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    time_=time;
 | 
				
			||||||
 | 
					     qDebug()<<"Time Changed\n";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										45
									
								
								src/alarmtime.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								src/alarmtime.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,45 @@
 | 
				
			||||||
 | 
					#ifndef ALARMTIME_H
 | 
				
			||||||
 | 
					#define ALARMTIME_H
 | 
				
			||||||
 | 
					#include <QTime>
 | 
				
			||||||
 | 
					#include <QObject>
 | 
				
			||||||
 | 
					#include <QRunnable>
 | 
				
			||||||
 | 
					#include <QScopedPointer>
 | 
				
			||||||
 | 
					#include <QEventLoop>
 | 
				
			||||||
 | 
					#include <QTimer>
 | 
				
			||||||
 | 
					#include <QProcess>
 | 
				
			||||||
 | 
					#include <QDebug>
 | 
				
			||||||
 | 
					#include <stdint.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "actor.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class AlarmTime :  public Actor, public QRunnable
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    static const uint8_t REPEAT_NEVER = 0;
 | 
				
			||||||
 | 
					    static const uint8_t REPEAT_DAILY = 1;
 | 
				
			||||||
 | 
					    static const uint8_t REPEAT_WEEKLY = 2;
 | 
				
			||||||
 | 
					    static const uint8_t REPEAT_MONTHLY = 3;
 | 
				
			||||||
 | 
					    static const uint8_t REPEAT_YEARLY = 4;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    bool triggerd_ = false;
 | 
				
			||||||
 | 
					    QTime time_;
 | 
				
			||||||
 | 
					    QTimer timer;
 | 
				
			||||||
 | 
					    uint8_t repeat_ = REPEAT_NEVER;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit AlarmTime(const QTime time = QTime::currentTime(), QObject *parent = nullptr);
 | 
				
			||||||
 | 
					    ~AlarmTime();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
					    void run();
 | 
				
			||||||
 | 
					    virtual void makeActive();
 | 
				
			||||||
 | 
					    virtual void makeInactive();
 | 
				
			||||||
 | 
					    void doTick();
 | 
				
			||||||
 | 
					    void changeTime(QTime time);
 | 
				
			||||||
 | 
					    void setRepeat(uint8_t repeat);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // ALARMTIME_H
 | 
				
			||||||
							
								
								
									
										140
									
								
								src/main.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										140
									
								
								src/main.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,140 @@
 | 
				
			||||||
 | 
					#include <QtWidgets/QApplication>
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					#include <QDir>
 | 
				
			||||||
 | 
					#include <QDebug>
 | 
				
			||||||
 | 
					#include <QString>
 | 
				
			||||||
 | 
					#include <QSettings>
 | 
				
			||||||
 | 
					#include <QSignalMapper>
 | 
				
			||||||
 | 
					#include <QTcpSocket>
 | 
				
			||||||
 | 
					#include <QtSerialPort/QtSerialPort>
 | 
				
			||||||
 | 
					#include <QtSerialPort/QSerialPortInfo>
 | 
				
			||||||
 | 
					#include <QCommandLineParser>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "alarmtime.h"
 | 
				
			||||||
 | 
					#include "microcontroller.h"
 | 
				
			||||||
 | 
					#include "mainwindow.h"
 | 
				
			||||||
 | 
					#include "ampmanager.h"
 | 
				
			||||||
 | 
					#include "alarmactions.h"
 | 
				
			||||||
 | 
					#include "alarmsettingsdialog.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BAUD  QSerialPort::Baud38400
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int main(int argc, char *argv[])
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    QApplication a(argc, argv);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //set info
 | 
				
			||||||
 | 
					    QCoreApplication::setOrganizationName("UVOS");
 | 
				
			||||||
 | 
					    QCoreApplication::setOrganizationDomain("uvos.xyz");
 | 
				
			||||||
 | 
					    QCoreApplication::setApplicationName("SHinterface");
 | 
				
			||||||
 | 
					    QCoreApplication::setApplicationVersion("0.5");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QDir::setCurrent(a.applicationDirPath());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //parse comand line
 | 
				
			||||||
 | 
					    QCommandLineParser parser;
 | 
				
			||||||
 | 
					    parser.setApplicationDescription("Smart Home Interface");
 | 
				
			||||||
 | 
					    parser.addHelpOption();
 | 
				
			||||||
 | 
					    parser.addVersionOption();
 | 
				
			||||||
 | 
					    QCommandLineOption tcpOption(QStringList() << "t" << "tcp", QCoreApplication::translate("main", "Use Tcp connection"));
 | 
				
			||||||
 | 
					    parser.addOption(tcpOption);
 | 
				
			||||||
 | 
					    QCommandLineOption hostOption(QStringList() << "H" << "host", QCoreApplication::translate("main", "Set server host ip addres"), "adress");
 | 
				
			||||||
 | 
					    parser.addOption(hostOption);
 | 
				
			||||||
 | 
					    QCommandLineOption portOption(QStringList() << "p" << "port", QCoreApplication::translate("main", "Set server Port in TCP mode or Serial port in serial mode"), "port");
 | 
				
			||||||
 | 
					    parser.addOption(portOption);
 | 
				
			||||||
 | 
					    QCommandLineOption serialOption(QStringList() << "s" << "serial", QCoreApplication::translate("main", "Use serial connection"));
 | 
				
			||||||
 | 
					    parser.addOption(serialOption);
 | 
				
			||||||
 | 
					    QCommandLineOption baudOption(QStringList() << "b" << "baud", QCoreApplication::translate("main", "Set Baud Rate"));
 | 
				
			||||||
 | 
					    parser.addOption(baudOption);
 | 
				
			||||||
 | 
					    QCommandLineOption secondaryOption(QStringList() << "e" << "secondary", QCoreApplication::translate("main", "Set if instance is not main instance"));
 | 
				
			||||||
 | 
					    parser.addOption(secondaryOption);
 | 
				
			||||||
 | 
					    parser.process(a);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QSettings settings;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //connect to microcontoler
 | 
				
			||||||
 | 
					    Microcontroller micro;
 | 
				
			||||||
 | 
					    if(parser.isSet(tcpOption))
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        QTcpSocket* microSocket = new QTcpSocket;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        int port = 6856;
 | 
				
			||||||
 | 
					        if(parser.isSet(portOption)) port =  parser.value(portOption).toInt();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        QString host("127.0.0.1");
 | 
				
			||||||
 | 
					        if(parser.isSet(hostOption)) host = parser.value(hostOption);
 | 
				
			||||||
 | 
					        std::cout<<"connecting to "<<host.toStdString()<<':'<<port<<'\n';
 | 
				
			||||||
 | 
					        microSocket->connectToHost(host, port, QIODevice::ReadWrite);
 | 
				
			||||||
 | 
					        if(!microSocket->waitForConnected(1000))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            std::cout<<"Can not connect to to Server.\n";
 | 
				
			||||||
 | 
					            return 1;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        micro.setIODevice(microSocket);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        QSerialPort* microPort = new QSerialPort;
 | 
				
			||||||
 | 
					        if(parser.isSet(portOption)) microPort->setPortName(parser.value(portOption));
 | 
				
			||||||
 | 
					        else microPort->setPortName("ttyUSB0");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if(parser.isSet(portOption)) microPort->setBaudRate(parser.value(baudOption).toInt());
 | 
				
			||||||
 | 
					        else microPort->setBaudRate(BAUD);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if(!microPort->open(QIODevice::ReadWrite)) std::cout<<"Can not open serial port "<<microPort->portName().toStdString()<<". Continueing in demo mode"<<'\n';
 | 
				
			||||||
 | 
					        else micro.setIODevice(microPort);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    AlarmActions alarmActions(&settings, µ);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    AmpManager amp(µ, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //Alarms
 | 
				
			||||||
 | 
					    AlarmTime almNight(settings.value("nightTime").toTime());
 | 
				
			||||||
 | 
					    AlarmTime almAlarm(settings.value("alarmTime").toTime());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //mainwindow
 | 
				
			||||||
 | 
					    MainWindow w(µ, parser.isSet(secondaryOption));
 | 
				
			||||||
 | 
					    QObject::connect(µ, SIGNAL(textRecived(QString)), &w, SLOT(changeHeaderLableText(QString)));
 | 
				
			||||||
 | 
					    QObject::connect(µ, SIGNAL(relayStateChanged(std::vector<bool>)), &w, SLOT(relayStateChanged(std::vector<bool>)));
 | 
				
			||||||
 | 
					    QObject::connect(µ, SIGNAL(auxStateChanged(int)), &w, SLOT(auxStateChanged(int)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //dialogs
 | 
				
			||||||
 | 
					    AlarmSettingsDialog alarmDialog(&almNight, &almAlarm, &settings, &w);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if(!parser.isSet(secondaryOption))
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        QObject::connect(&almNight, SIGNAL(trigger()), &alarmActions, SLOT(syncoff()));
 | 
				
			||||||
 | 
					        QObject::connect(&w, SIGNAL(signalAlmNightChanged(QTime)), &almNight, SLOT(changeTime(QTime)));
 | 
				
			||||||
 | 
					        QObject::connect(&w, SIGNAL(signalAlmNightStateChanged(int)), &almNight, SLOT(runOrAbort(int)));
 | 
				
			||||||
 | 
					        almNight.run();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        QObject::connect(&almAlarm, &AlarmTime::trigger, µ, &Microcontroller::startSunrise);
 | 
				
			||||||
 | 
					        QObject::connect(&w, SIGNAL(signalAlmAlarmChanged(QTime)), &almAlarm, SLOT(changeTime(QTime)));
 | 
				
			||||||
 | 
					        QObject::connect(&w, SIGNAL(signalAlmAlarmStateChanged(int)), &almAlarm, SLOT(runOrAbort(int)));
 | 
				
			||||||
 | 
					        almAlarm.run();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //Amplifyer
 | 
				
			||||||
 | 
					        QObject::connect(&w, SIGNAL(signalAmpOn()), &, SLOT(run()));
 | 
				
			||||||
 | 
					        QObject::connect(&w, SIGNAL(signalAmpOff()), &, SLOT(abort()));
 | 
				
			||||||
 | 
					        QMetaObject::invokeMethod(&, "run", Qt::QueuedConnection  );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //show dialogs
 | 
				
			||||||
 | 
					    QObject::connect(&w, &MainWindow::showAlmSettingsDialog, &alarmDialog, &AlarmSettingsDialog::show);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QMetaObject::invokeMethod(µ, "run", Qt::QueuedConnection  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    w.show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    micro.requestRelayList();
 | 
				
			||||||
 | 
					    micro.requestState();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    micro.requestRelayList();
 | 
				
			||||||
 | 
					    micro.requestState();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return a.exec();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										229
									
								
								src/microcontroller.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										229
									
								
								src/microcontroller.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,229 @@
 | 
				
			||||||
 | 
					#include "microcontroller.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//relays
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Microcontroller::relayToggle(int state, int relay)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    char buffer[8];
 | 
				
			||||||
 | 
					    int length = sprintf(buffer, "%d \n", relay);
 | 
				
			||||||
 | 
					    if(_port != nullptr) state ? _port->write("relay on ", sizeof("relay on ")-1) : _port->write("relay off ", sizeof("relay off ")-1);
 | 
				
			||||||
 | 
					    state ? std::cout<<"relay on " : std::cout<<"relay off ";
 | 
				
			||||||
 | 
					    std::cout<<buffer;
 | 
				
			||||||
 | 
					    if(_port != nullptr) _port->write(buffer, length);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Microcontroller::relayOn(int relay)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  relayToggle(true, relay);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Microcontroller::relayOff(int relay)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  relayToggle(false, relay);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//rgb lights
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Microcontroller::rgbOn()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(_port != nullptr) _port->write("rgb on\n", sizeof("rgb on\n")-1);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Microcontroller::rgbOff()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(_port != nullptr) _port->write( "rgb off\n", sizeof("rgb off\n")-1);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Microcontroller::changeRgbColor(const QColor color)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    char buffer[64];
 | 
				
			||||||
 | 
					    int length = sprintf(buffer, "rgb set %03d %03d %03d \n", color.red(), color.green(), color.blue() );
 | 
				
			||||||
 | 
					    if(_port != nullptr) _port->write(buffer, length);
 | 
				
			||||||
 | 
					    std::cout<<buffer;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Microcontroller::setAuxPwm(int duty)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(duty != _auxState)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if(duty > 1)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if(_auxState <= 1 && _port != nullptr) _port->write("aux on\n");
 | 
				
			||||||
 | 
					            char buffer[64];
 | 
				
			||||||
 | 
					            int length = sprintf(buffer, "aux set %03d \n", duty );
 | 
				
			||||||
 | 
					            if(_port != nullptr) _port->write(buffer, length);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if(_port != nullptr)_port->write("aux off\n");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    _auxState = duty;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Microcontroller::setPattern(int pattern)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(_port != nullptr)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        char buffer[4];
 | 
				
			||||||
 | 
					        std::cout<<"pattern apply\n";
 | 
				
			||||||
 | 
					        _port->write("rgb pattern ", sizeof("rgb pattern ")-1);
 | 
				
			||||||
 | 
					        int length = sprintf(buffer, "%d \n", pattern);
 | 
				
			||||||
 | 
					        _port->write(buffer, length);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Microcontroller::startSunrise()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    setPattern(4);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool Microcontroller::connected()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					   if(_port != nullptr) return _port->isOpen();
 | 
				
			||||||
 | 
					   else return false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Microcontroller::run()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    abort();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    loop.reset(new QEventLoop);
 | 
				
			||||||
 | 
					    QTimer timer;
 | 
				
			||||||
 | 
					    connect(&timer, SIGNAL(timeout()), this, SLOT(doTick()));
 | 
				
			||||||
 | 
					    timer.setInterval(500);
 | 
				
			||||||
 | 
					    timer.start();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    loop->exec();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Microcontroller::requestState()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					   if(_port != nullptr) _port->write("state\n", sizeof("state\n"));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Microcontroller::requestRelayList()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(_port != nullptr) _port->write("relay list\n", sizeof("relay list\n"));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Microcontroller::abort()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (!loop.isNull())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        loop->quit();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					std::vector<bool> Microcontroller::getLastState()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return _relayStates;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//housekeeping
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Microcontroller::Microcontroller(QIODevice* port): _port(port)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Microcontroller::Microcontroller()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Microcontroller::~Microcontroller()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(_port != nullptr) delete _port;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Microcontroller::setIODevice(QIODevice *port)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    _port = port;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Microcontroller::processMicroReturn()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    QString workbuff = _buffer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if(listMode)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        QStringList workbufList = workbuff.split(' ');
 | 
				
			||||||
 | 
					        if(workbufList.size() >= 5 && workbufList[0] == "NUMBER:")
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            QString name;
 | 
				
			||||||
 | 
					            for(int i = 5; i < workbufList.size(); i++) name.append(workbufList[i] + ' ');
 | 
				
			||||||
 | 
					            name.remove(name.size()-1, 1);
 | 
				
			||||||
 | 
					            relayList.push_back(RelayStore(workbufList[1].toInt(), name, workbufList[3].toInt()));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if(_buffer.startsWith("EOL"))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            listMode = false;
 | 
				
			||||||
 | 
					            gotRelayList(relayList);
 | 
				
			||||||
 | 
					            relayList.clear();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else listMode = false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if(_buffer.startsWith("Relays:"))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            listMode = true;
 | 
				
			||||||
 | 
					            relayList.clear();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if(_buffer.startsWith("ST"))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            workbuff.remove(0, 2);
 | 
				
			||||||
 | 
					            QStringList workbufList = workbuff.split(',');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //aux state
 | 
				
			||||||
 | 
					            if(workbufList[0].toInt() != _auxState)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _auxState = workbufList[0].toInt();
 | 
				
			||||||
 | 
					                auxStateChanged(_auxState);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //relay state
 | 
				
			||||||
 | 
					            uint_fast8_t numberOfRelays = workbufList[1].toInt();
 | 
				
			||||||
 | 
					            if(workbufList.size() >= numberOfRelays+2)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _relayStates.resize(numberOfRelays, false);
 | 
				
			||||||
 | 
					                for(uint_fast8_t i = 0; i < numberOfRelays; i++)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    if(_relayStates[i] != static_cast<bool>(workbufList[i+2].toInt()))
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        _relayStates[i] = static_cast<bool>(workbufList[i+2].toInt());
 | 
				
			||||||
 | 
					                       relayStateChanged(RelayStore(i, "", 0, _relayStates[i]));
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if(workbuff.contains("Door Open Warning"))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            doorOpenTimeout();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if(workbuff.size() > 2 && workbuff[0]=='D' && workbuff[1]=='2')
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if(workbuff[3] == 'O') doorOpened(1);
 | 
				
			||||||
 | 
					            else if(workbuff[3] == 'C') doorClosed(1);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Microcontroller::doTick()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(_port != nullptr)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        char charBuf;
 | 
				
			||||||
 | 
					        while(_port->getChar(&charBuf))
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            _buffer.push_back(charBuf);
 | 
				
			||||||
 | 
					            if( _buffer.endsWith('\n') )
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _buffer.remove('\n');
 | 
				
			||||||
 | 
					                processMicroReturn();
 | 
				
			||||||
 | 
					                textRecived(_buffer);
 | 
				
			||||||
 | 
					                _buffer.clear();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										79
									
								
								src/microcontroller.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								src/microcontroller.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,79 @@
 | 
				
			||||||
 | 
					#ifndef MICROCONTROLLER_H
 | 
				
			||||||
 | 
					#define MICROCONTROLLER_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <iostream>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QObject>
 | 
				
			||||||
 | 
					#include <QColor>
 | 
				
			||||||
 | 
					#include <QIODevice>
 | 
				
			||||||
 | 
					#include <QString>
 | 
				
			||||||
 | 
					#include <QRunnable>
 | 
				
			||||||
 | 
					#include <QScopedPointer>
 | 
				
			||||||
 | 
					#include <QEventLoop>
 | 
				
			||||||
 | 
					#include <QTimer>
 | 
				
			||||||
 | 
					#include <QAbstractButton>
 | 
				
			||||||
 | 
					#include <vector>
 | 
				
			||||||
 | 
					#include "relay.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Microcontroller : public QObject
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    static constexpr char AMP_RELAY = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    bool listMode = false;
 | 
				
			||||||
 | 
					    std::vector<RelayStore> relayList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    std::vector<bool> _relayStates; //ugh vector of bools
 | 
				
			||||||
 | 
					    int _auxState = 0;
 | 
				
			||||||
 | 
					    QIODevice* _port = nullptr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QScopedPointer<QEventLoop> loop;
 | 
				
			||||||
 | 
					    QString _buffer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void processMicroReturn();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    Microcontroller(QIODevice* port);
 | 
				
			||||||
 | 
					    Microcontroller();
 | 
				
			||||||
 | 
					    ~Microcontroller();
 | 
				
			||||||
 | 
					    bool connected();
 | 
				
			||||||
 | 
					    void setIODevice(QIODevice* port);
 | 
				
			||||||
 | 
					    std::vector<bool> getLastState();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
					    void rgbOn();
 | 
				
			||||||
 | 
					    void rgbOff();
 | 
				
			||||||
 | 
					    void changeRgbColor(const QColor color);
 | 
				
			||||||
 | 
					    void setPattern(int pattern);
 | 
				
			||||||
 | 
					    void startSunrise();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void requestRelayList();
 | 
				
			||||||
 | 
					     void requestState();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void setAuxPwm(int duty);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void relayOn(int relay);
 | 
				
			||||||
 | 
					    void relayOff(int relay);
 | 
				
			||||||
 | 
					    void relayToggle(int state, int id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void run();
 | 
				
			||||||
 | 
					    void abort();
 | 
				
			||||||
 | 
					    void doTick();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					signals:
 | 
				
			||||||
 | 
					    void textRecived(const QString string);
 | 
				
			||||||
 | 
					    void relayStateChanged(RelayStore relay);
 | 
				
			||||||
 | 
					    void auxStateChanged(int value);
 | 
				
			||||||
 | 
					    void gotRelayList(std::vector<RelayStore>& relays);
 | 
				
			||||||
 | 
					    void doorOpenTimeout();
 | 
				
			||||||
 | 
					    void doorOpened(int id);
 | 
				
			||||||
 | 
					    void doorClosed(int id);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // MICROCONTROLLER_H
 | 
				
			||||||
							
								
								
									
										116
									
								
								src/relay.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								src/relay.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,116 @@
 | 
				
			||||||
 | 
					#include "relay.h"
 | 
				
			||||||
 | 
					#include "microcontroller.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RelayStore::RelayStore(uint8_t id, QString name, uint16_t address, bool state): name_(name),  state_(state), id_(id), address_(address)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					QString RelayStore::getName() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return name_;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void RelayStore::setName(QString name)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    name_ = name;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool RelayStore::getState() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return state_;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool RelayStore::actorsActive() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return actorsActive_;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uint16_t RelayStore::getAddress() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return address_;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uint8_t RelayStore::getId() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return id_;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void RelayStore::setId(uint8_t id)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    id_=id;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//Relay
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Relay::Relay(Microcontroller* micro, uint8_t id, QString name, uint16_t address, bool state, QObject* parent): QObject(parent), RelayStore(id, name, address, state), micro_(micro)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Relay::Relay(Microcontroller* micro, const RelayStore& relayStore, QObject *parent): QObject(parent), RelayStore(relayStore), micro_(micro)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Relay::setState(bool state)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    state_ = state;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Relay::addActor(Actor* actor)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    actor->setParent(this);
 | 
				
			||||||
 | 
					    actors_.push_back(actor);
 | 
				
			||||||
 | 
					    connect(actor, &Actor::on, this, &Relay::on);
 | 
				
			||||||
 | 
					    connect(actor, &Actor::off, this, &Relay::off);
 | 
				
			||||||
 | 
					    connect(actor, &Actor::toggle, this, &Relay::toggle);
 | 
				
			||||||
 | 
					    if(actorsActive_) actor->makeActive();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					std::vector< Actor* > Relay::getActors()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return actors_;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool Relay::hasActors()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return actors_.size() > 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Relay* Relay::copy() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Relay* copy = new Relay(micro_, id_, name_, address_, parent());
 | 
				
			||||||
 | 
					    copy->actors_ = actors_;
 | 
				
			||||||
 | 
					    return copy;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Relay::on()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    micro_->relayOn(id_);
 | 
				
			||||||
 | 
					    state_ = true;
 | 
				
			||||||
 | 
					    for(unsigned i = 0; i < actors_.size(); i++) actors_[i]->onStateChanged(state_);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Relay::off()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    micro_->relayOff(id_);
 | 
				
			||||||
 | 
					    state_ = false;
 | 
				
			||||||
 | 
					    for(unsigned i = 0; i < actors_.size(); i++) actors_[i]->onStateChanged(state_);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Relay::toggle()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    state_ ? off() : on();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Relay::moveToState(bool state)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    state ? on() : off();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void Relay::setActorsActive(bool in)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    actorsActive_ = true;
 | 
				
			||||||
 | 
					    for(unsigned i = 0; i < actors_.size(); i++) in ? actors_[i]->makeActive() : actors_[i]->makeInactive();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										57
									
								
								src/relay.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								src/relay.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,57 @@
 | 
				
			||||||
 | 
					#ifndef RELAY_H
 | 
				
			||||||
 | 
					#define RELAY_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include<stdint.h>
 | 
				
			||||||
 | 
					#include<QObject>
 | 
				
			||||||
 | 
					#include<QString>
 | 
				
			||||||
 | 
					#include<vector>
 | 
				
			||||||
 | 
					#include<memory>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include"actor.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Microcontroller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class RelayStore
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    protected:
 | 
				
			||||||
 | 
					        QString name_;
 | 
				
			||||||
 | 
					        bool state_ = false;
 | 
				
			||||||
 | 
					        uint8_t id_;
 | 
				
			||||||
 | 
					        uint16_t address_;
 | 
				
			||||||
 | 
					        bool actorsActive_ = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public:
 | 
				
			||||||
 | 
					        RelayStore(uint8_t id, QString name = "", uint16_t address = 0, bool state = false);
 | 
				
			||||||
 | 
					        bool actorsActive() const;
 | 
				
			||||||
 | 
					        QString getName() const;
 | 
				
			||||||
 | 
					        void setName(QString name);
 | 
				
			||||||
 | 
					        uint16_t getAddress() const;
 | 
				
			||||||
 | 
					        uint8_t getId() const;
 | 
				
			||||||
 | 
					        void setId(uint8_t id);
 | 
				
			||||||
 | 
					        bool getState() const;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Relay : public QObject, public RelayStore
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Microcontroller* micro_;
 | 
				
			||||||
 | 
					    std::vector< Actor* > actors_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
					    void on();
 | 
				
			||||||
 | 
					    void off();
 | 
				
			||||||
 | 
					    void toggle();
 | 
				
			||||||
 | 
					    void moveToState(bool state);
 | 
				
			||||||
 | 
					    void setActorsActive(bool in);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    Relay(Microcontroller* micro, uint8_t id, QString name = "", uint16_t address = 0, bool state = false, QObject *parent = nullptr);
 | 
				
			||||||
 | 
					    Relay(Microcontroller* micro, const RelayStore& relayStore, QObject *parent = nullptr);
 | 
				
			||||||
 | 
					    void addActor(Actor* actor);
 | 
				
			||||||
 | 
					    bool hasActors();
 | 
				
			||||||
 | 
					    Relay* copy() const;
 | 
				
			||||||
 | 
					    void setState(bool state);
 | 
				
			||||||
 | 
					    std::vector< Actor* > getActors();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif // RELAY_H
 | 
				
			||||||
							
								
								
									
										66
									
								
								src/relayscrollbox.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								src/relayscrollbox.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,66 @@
 | 
				
			||||||
 | 
					#include "relayscrollbox.h"
 | 
				
			||||||
 | 
					#include "ui_relayscrollbox.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RelayScrollBox::RelayScrollBox(QWidget *parent) :
 | 
				
			||||||
 | 
					    QWidget(parent),
 | 
				
			||||||
 | 
					    ui(new Ui::RelayScrollBox)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->setupUi(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RelayScrollBox::~RelayScrollBox()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void RelayScrollBox::addRelay(const Relay& relay)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    widgets_.push_back(new RelayWidget(relay.copy(), this));
 | 
				
			||||||
 | 
					    ui->relayWidgetVbox->addWidget(widgets_.back());
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void RelayScrollBox::addRelay(const RelayStore& relay)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    RelayWidget* newWidget = new RelayWidget(new Relay(micro_, relay), this);
 | 
				
			||||||
 | 
					    widgets_.push_back(newWidget);
 | 
				
			||||||
 | 
					    ui->relayWidgetVbox->addWidget(widgets_.back());
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void RelayScrollBox::setMicrocontoller(Microcontroller* micro)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    micro_ = micro;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void RelayScrollBox::gotRelays(const std::vector<RelayStore>& relays)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    for(unsigned i = 0; i < widgets_.size(); i++ )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        bool mached = false;
 | 
				
			||||||
 | 
					        for(unsigned j = 0; j < relays.size(); j++) if(widgets_[i]->getRelay()->getAddress() == relays[j].getAddress())
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            mached = true;
 | 
				
			||||||
 | 
					            if(widgets_[i]->getRelay()->getId() != relays[j].getId()) widgets_[i]->getRelay()->setId(relays[j].getId());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if(!mached)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            delete widgets_[i];
 | 
				
			||||||
 | 
					            widgets_.erase(widgets_.begin()+i);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for(unsigned j = 0; j < relays.size(); j++)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        bool mached = false;
 | 
				
			||||||
 | 
					        for(unsigned i = 0; i < widgets_.size(); i++ ) if(widgets_[i]->getRelay()->getAddress() == relays[j].getAddress()) mached = true;
 | 
				
			||||||
 | 
					        if(!mached)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					           addRelay(relays[j]);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void RelayScrollBox::relaySateChanged(const RelayStore& Realy)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										40
									
								
								src/relayscrollbox.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								src/relayscrollbox.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,40 @@
 | 
				
			||||||
 | 
					#ifndef RELAYSCROLLBOX_H
 | 
				
			||||||
 | 
					#define RELAYSCROLLBOX_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QWidget>
 | 
				
			||||||
 | 
					#include <vector>
 | 
				
			||||||
 | 
					#include <memory>
 | 
				
			||||||
 | 
					#include "relaywidget.h"
 | 
				
			||||||
 | 
					#include "relay.h"
 | 
				
			||||||
 | 
					#include "microcontroller.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui {
 | 
				
			||||||
 | 
					class RelayScrollBox;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class RelayScrollBox : public QWidget
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Microcontroller* micro_ = nullptr;
 | 
				
			||||||
 | 
					    std::vector< RelayWidget* > widgets_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit RelayScrollBox(QWidget *parent = nullptr);
 | 
				
			||||||
 | 
					    ~RelayScrollBox();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
					    void addRelay(const Relay& relay);
 | 
				
			||||||
 | 
					    void addRelay(const RelayStore& relay);
 | 
				
			||||||
 | 
					    void setMicrocontoller(Microcontroller* micro);
 | 
				
			||||||
 | 
					    void gotRelays(const std::vector<RelayStore>& relays);
 | 
				
			||||||
 | 
					    void relaySateChanged(const RelayStore& Realy);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Ui::RelayScrollBox *ui;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // RELAYSCROLLBOX_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										67
									
								
								src/serial_io.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								src/serial_io.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,67 @@
 | 
				
			||||||
 | 
					#include "serial_io.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct termios toptions;;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void sWrite(int port, char string[], size_t length)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(port != -1) write(port, string, length);
 | 
				
			||||||
 | 
					    else std::cout<<string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void sWrite(int port, const char string[], size_t length)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(port != -1) write(port, string, length);
 | 
				
			||||||
 | 
					    else std::cout<<string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ssize_t sRead(int port, void *buf, size_t count)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return (port != -1) ? read(port, buf, count) : 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int serialport_init()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					int fd;
 | 
				
			||||||
 | 
					    system("stty -F /dev/ttyUSB0 38400 sane -echo");
 | 
				
			||||||
 | 
					    fd = open(DEVICE, O_RDWR | O_NOCTTY | O_NDELAY);
 | 
				
			||||||
 | 
					    if (fd == -1)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					        perror("init_serialport: Unable to open port ");
 | 
				
			||||||
 | 
					        return -1;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (tcgetattr(fd, &toptions) < 0)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					        perror("init_serialport: Couldn't get term attributes");
 | 
				
			||||||
 | 
					        return -1;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    speed_t brate = BAUDRATE;
 | 
				
			||||||
 | 
					    cfsetispeed(&toptions, brate);
 | 
				
			||||||
 | 
					    cfsetospeed(&toptions, brate);
 | 
				
			||||||
 | 
					    // 8N1
 | 
				
			||||||
 | 
					    toptions.c_cflag &= ~PARENB;
 | 
				
			||||||
 | 
					    toptions.c_cflag &= ~CSTOPB;
 | 
				
			||||||
 | 
					    toptions.c_cflag &= ~CSIZE;
 | 
				
			||||||
 | 
					    toptions.c_cflag |= CS8;
 | 
				
			||||||
 | 
					    // no flow control
 | 
				
			||||||
 | 
					    toptions.c_cflag &= ~CRTSCTS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    toptions.c_cflag |= CREAD | CLOCAL | IGNPAR;  // turn on READ & ignore ctrl lines
 | 
				
			||||||
 | 
					    toptions.c_iflag &= ~(IXON | IXOFF | IXANY); // turn off s/w flow ctrl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    toptions.c_lflag &= ~(ICANON | ISIG | ECHO | ECHOE); // make raw
 | 
				
			||||||
 | 
					    toptions.c_oflag &= ~OPOST; // make raw
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // see: http://unixwiz.net/techtips/termios-vmin-vtime.html
 | 
				
			||||||
 | 
					    toptions.c_cc[VMIN]  = 0;
 | 
				
			||||||
 | 
					    toptions.c_cc[VTIME] = 20;
 | 
				
			||||||
 | 
					    fcntl(fd, F_SETFL, FNDELAY);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if( tcsetattr(fd, TCSANOW, &toptions) < 0)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					        perror("init_serialport: Couldn't set term attributes");
 | 
				
			||||||
 | 
					        return -1;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    return fd;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										21
									
								
								src/serial_io.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								src/serial_io.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,21 @@
 | 
				
			||||||
 | 
					#ifndef SERIAL_H
 | 
				
			||||||
 | 
					#define SERIAL_H
 | 
				
			||||||
 | 
					#include <termios.h>
 | 
				
			||||||
 | 
					#include <fcntl.h>
 | 
				
			||||||
 | 
					#include <unistd.h>
 | 
				
			||||||
 | 
					#include <iostream>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BAUDRATE B38400
 | 
				
			||||||
 | 
					#define DEVICE "/dev/ttyUSB0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void sWrite(int port, char string[], size_t length);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void sWrite(int port, const char string[], size_t length);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ssize_t sRead(int port, void *buf, size_t count);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int serialport_init();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // SERIAL_H
 | 
				
			||||||
							
								
								
									
										36
									
								
								src/serialwatcher.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								src/serialwatcher.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,36 @@
 | 
				
			||||||
 | 
					#include "serialwatcher.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SerialWatcher::run()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    abort();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    loop.reset(new QEventLoop);
 | 
				
			||||||
 | 
					    QTimer timer;
 | 
				
			||||||
 | 
					    connect(&timer, SIGNAL(timeout()), this, SLOT(doTick()));
 | 
				
			||||||
 | 
					    timer.setInterval(500);
 | 
				
			||||||
 | 
					    timer.start();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    loop->exec();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SerialWatcher::abort()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (!loop.isNull()){
 | 
				
			||||||
 | 
					        loop->quit();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SerialWatcher::doTick()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    char charBuf;
 | 
				
			||||||
 | 
					    while(sRead(_serial, &charBuf, 1) == 1)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        _buffer.push_back(charBuf);
 | 
				
			||||||
 | 
					        if( _buffer.endsWith('\n') )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            textRecived(_buffer);
 | 
				
			||||||
 | 
					            _buffer.clear();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										39
									
								
								src/serialwatcher.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								src/serialwatcher.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,39 @@
 | 
				
			||||||
 | 
					#ifndef SERIALWATCHER_H
 | 
				
			||||||
 | 
					#define SERIALWATCHER_H
 | 
				
			||||||
 | 
					#include "serial_io.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BUFFER_SIZE 128
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include<QString>
 | 
				
			||||||
 | 
					#include<QObject>
 | 
				
			||||||
 | 
					#include<QRunnable>
 | 
				
			||||||
 | 
					#include<QScopedPointer>
 | 
				
			||||||
 | 
					#include<QEventLoop>
 | 
				
			||||||
 | 
					#include<QTimer>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class SerialWatcher: public QObject, public QRunnable
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QScopedPointer<QEventLoop> loop;
 | 
				
			||||||
 | 
					    int _serial;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    QString _buffer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit SerialWatcher(int serial, QObject *parent = 0);
 | 
				
			||||||
 | 
					    ~SerialWatcher();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					signals:
 | 
				
			||||||
 | 
					    void textRecived(const QString string);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
					    void run();
 | 
				
			||||||
 | 
					    void abort();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void doTick();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // SERIALWATCHER_H
 | 
				
			||||||
							
								
								
									
										65
									
								
								src/speakersensor.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								src/speakersensor.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,65 @@
 | 
				
			||||||
 | 
					#include "ampmanager.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AmpManager::AmpManager(Microcontroller *micro, int relayNumber, QObject *parent) : QObject(parent), _micro(micro), _relayNumber(relayNumber)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  silenceCount = 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AmpManager::~AmpManager()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    abort();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AmpManager::run()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    abort();
 | 
				
			||||||
 | 
					    arecord.start( "arecord -D front  -" );
 | 
				
			||||||
 | 
					    loop.reset(new QEventLoop);
 | 
				
			||||||
 | 
					    QTimer timer;
 | 
				
			||||||
 | 
					    connect(&timer, SIGNAL(timeout()), this, SLOT(doTick()));
 | 
				
			||||||
 | 
					    timer.setInterval(500);
 | 
				
			||||||
 | 
					    timer.start();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    qDebug()<<"Start Auto Amp Manager\n";
 | 
				
			||||||
 | 
					    _micro->relayOn(_relayNumber);
 | 
				
			||||||
 | 
					    relayState = true;
 | 
				
			||||||
 | 
					    loop->exec();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AmpManager::abort()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (!loop.isNull()){
 | 
				
			||||||
 | 
					        loop->quit();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if(arecord.state() == QProcess::Running)arecord.close();
 | 
				
			||||||
 | 
					    qDebug()<<"Stop Auto Amp Manager\n";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AmpManager::doTick()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(arecord.state() == QProcess::Running)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					       QByteArray buffer = arecord.readAllStandardOutput();
 | 
				
			||||||
 | 
					       for(long i = 0; i < buffer.size(); i++)
 | 
				
			||||||
 | 
					       {
 | 
				
			||||||
 | 
					           if((uint8_t) buffer.at(i) != 128)
 | 
				
			||||||
 | 
					           {
 | 
				
			||||||
 | 
					               silenceCount = 0;
 | 
				
			||||||
 | 
					           }
 | 
				
			||||||
 | 
					       }
 | 
				
			||||||
 | 
					       if(silenceCount > 40 && relayState)
 | 
				
			||||||
 | 
					       {
 | 
				
			||||||
 | 
					            std::cout<<"Auto off Amp\n";
 | 
				
			||||||
 | 
					            _micro->relayOff(_relayNumber);
 | 
				
			||||||
 | 
					            relayState = false;
 | 
				
			||||||
 | 
					       }
 | 
				
			||||||
 | 
					       else if(silenceCount == 0 && !relayState)
 | 
				
			||||||
 | 
					       {
 | 
				
			||||||
 | 
					           std::cout<<"Auto on Amp\n";
 | 
				
			||||||
 | 
					           _micro->relayOn(_relayNumber);
 | 
				
			||||||
 | 
					           relayState = true;
 | 
				
			||||||
 | 
					       }
 | 
				
			||||||
 | 
					       silenceCount ++;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										48
									
								
								src/speakersensor.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								src/speakersensor.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,48 @@
 | 
				
			||||||
 | 
					#ifndef AMPMANAGER_H
 | 
				
			||||||
 | 
					#define AMPMANAGER_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <iostream>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QObject>
 | 
				
			||||||
 | 
					#include <QRunnable>
 | 
				
			||||||
 | 
					#include <QScopedPointer>
 | 
				
			||||||
 | 
					#include <QEventLoop>
 | 
				
			||||||
 | 
					#include <QTimer>
 | 
				
			||||||
 | 
					#include <QProcess>
 | 
				
			||||||
 | 
					#include <QByteArray>
 | 
				
			||||||
 | 
					#include <QtDebug>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "microcontroller.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class AmpManager : public QObject
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit AmpManager(Microcontroller *micro, int relayNumber, QObject *parent = nullptr);
 | 
				
			||||||
 | 
					    ~AmpManager();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
					    void run();
 | 
				
			||||||
 | 
					    void abort();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private slots:
 | 
				
			||||||
 | 
					    void doTick();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    QScopedPointer<QEventLoop> loop;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    long silenceCount = 0;
 | 
				
			||||||
 | 
					    Microcontroller *_micro;
 | 
				
			||||||
 | 
					    int _relayNumber;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QProcess arecord;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    bool relayState = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // AMPMANAGER_H
 | 
				
			||||||
							
								
								
									
										14
									
								
								src/ui/actorsettingsdialog.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/ui/actorsettingsdialog.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,14 @@
 | 
				
			||||||
 | 
					#include "actorsettingsdialog.h"
 | 
				
			||||||
 | 
					#include "ui_actorsettingsdialog.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ActorSettingsDialog::ActorSettingsDialog(QWidget *parent) :
 | 
				
			||||||
 | 
					    QDialog(parent),
 | 
				
			||||||
 | 
					    ui(new Ui::ActorSettingsDialog)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->setupUi(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ActorSettingsDialog::~ActorSettingsDialog()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										22
									
								
								src/ui/actorsettingsdialog.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/ui/actorsettingsdialog.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					#ifndef ACTORSETTINGSDIALOG_H
 | 
				
			||||||
 | 
					#define ACTORSETTINGSDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QDialog>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui {
 | 
				
			||||||
 | 
					class ActorSettingsDialog;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ActorSettingsDialog : public QDialog
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit ActorSettingsDialog(QWidget *parent = nullptr);
 | 
				
			||||||
 | 
					    ~ActorSettingsDialog();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Ui::ActorSettingsDialog *ui;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // ACTORSETTINGSDIALOG_H
 | 
				
			||||||
							
								
								
									
										104
									
								
								src/ui/actorsettingsdialog.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								src/ui/actorsettingsdialog.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,104 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <class>ActorSettingsDialog</class>
 | 
				
			||||||
 | 
					 <widget class="QDialog" name="ActorSettingsDialog">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>400</width>
 | 
				
			||||||
 | 
					    <height>300</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Dialog</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <layout class="QVBoxLayout" name="verticalLayout">
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <layout class="QVBoxLayout" name="vertlayout">
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <layout class="QHBoxLayout" name="horizontalLayout">
 | 
				
			||||||
 | 
					       <item>
 | 
				
			||||||
 | 
					        <widget class="QLabel" name="label">
 | 
				
			||||||
 | 
					         <property name="sizePolicy">
 | 
				
			||||||
 | 
					          <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
 | 
				
			||||||
 | 
					           <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					           <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					          </sizepolicy>
 | 
				
			||||||
 | 
					         </property>
 | 
				
			||||||
 | 
					         <property name="text">
 | 
				
			||||||
 | 
					          <string>Action:</string>
 | 
				
			||||||
 | 
					         </property>
 | 
				
			||||||
 | 
					        </widget>
 | 
				
			||||||
 | 
					       </item>
 | 
				
			||||||
 | 
					       <item>
 | 
				
			||||||
 | 
					        <widget class="QComboBox" name="comboBox_action">
 | 
				
			||||||
 | 
					         <item>
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>On</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </item>
 | 
				
			||||||
 | 
					         <item>
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>Off</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </item>
 | 
				
			||||||
 | 
					         <item>
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>Toggle</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </item>
 | 
				
			||||||
 | 
					        </widget>
 | 
				
			||||||
 | 
					       </item>
 | 
				
			||||||
 | 
					      </layout>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					    </layout>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QDialogButtonBox" name="buttonBox">
 | 
				
			||||||
 | 
					     <property name="orientation">
 | 
				
			||||||
 | 
					      <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="standardButtons">
 | 
				
			||||||
 | 
					      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					  </layout>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <resources/>
 | 
				
			||||||
 | 
					 <connections>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>accepted()</signal>
 | 
				
			||||||
 | 
					   <receiver>ActorSettingsDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>accept()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>248</x>
 | 
				
			||||||
 | 
					     <y>254</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>157</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>rejected()</signal>
 | 
				
			||||||
 | 
					   <receiver>ActorSettingsDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>reject()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>316</x>
 | 
				
			||||||
 | 
					     <y>260</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>286</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					 </connections>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
							
								
								
									
										50
									
								
								src/ui/alarmsettingsdialog.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								src/ui/alarmsettingsdialog.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,50 @@
 | 
				
			||||||
 | 
					#include "alarmsettingsdialog.h"
 | 
				
			||||||
 | 
					#include "ui_alarmsettingsdialog.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QFileDialog>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AlarmSettingsDialog::AlarmSettingsDialog(AlarmTime* almNight, AlarmTime* almAlarm, QSettings* settings, QWidget *parent): QDialog(parent), ui(new Ui::AlarmSettingsDialog), almNight_(almNight), almAlarm_(almAlarm), settings_(settings)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->setupUi(this);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //restore settings
 | 
				
			||||||
 | 
					    ui->checkBox_Alarm->setChecked(settings_->value("Alarms/alarmOn").toBool());
 | 
				
			||||||
 | 
					    ui->checkBox_Sunrise->setChecked(settings_->value("Alarms/sunrise").toBool());
 | 
				
			||||||
 | 
					    ui->timeEdit_Shutdown->setTime(settings_->value("Alarms/shutdownTime").toTime());
 | 
				
			||||||
 | 
					    ui->timeEdit_Alarm->setTime(settings_->value("Alarms/alarmTime").toTime());
 | 
				
			||||||
 | 
					    ui->lineEdit->setText(settings_->value("Alarms/alarmSoundFile").toString());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    connect(ui->pushButton_changeFile, SIGNAL(clicked()), this, SLOT(showFileChooser()));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AlarmSettingsDialog::~AlarmSettingsDialog()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AlarmSettingsDialog::accept()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    //store settings
 | 
				
			||||||
 | 
					    settings_->setValue("Alarms/alarmOn", ui->checkBox_Alarm->checkState());
 | 
				
			||||||
 | 
					    settings_->setValue("Alarms/sunrise", ui->checkBox_Sunrise->checkState());
 | 
				
			||||||
 | 
					    settings_->setValue("Alarms/shutdownTime", ui->timeEdit_Shutdown->time());
 | 
				
			||||||
 | 
					    settings_->setValue("Alarms/alarmTime", ui->timeEdit_Alarm->time());
 | 
				
			||||||
 | 
					    settings_->setValue("Alarms/alarmSoundFile", ui->lineEdit->text());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //send signals
 | 
				
			||||||
 | 
					    signalAlarmSoundFile(ui->lineEdit->text());
 | 
				
			||||||
 | 
					    signalSunrise(ui->checkBox_Sunrise->checkState());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //modify alarm objects
 | 
				
			||||||
 | 
					    almAlarm_->changeTime(ui->timeEdit_Alarm->time());
 | 
				
			||||||
 | 
					    almNight_->changeTime(ui->timeEdit_Shutdown->time());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QDialog::accept();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void AlarmSettingsDialog::showFileChooser()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->lineEdit->setText(QFileDialog::getOpenFileName(this));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										43
									
								
								src/ui/alarmsettingsdialog.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								src/ui/alarmsettingsdialog.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,43 @@
 | 
				
			||||||
 | 
					#ifndef ALARMSETTINGSDIALOG_H
 | 
				
			||||||
 | 
					#define ALARMSETTINGSDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QDialog>
 | 
				
			||||||
 | 
					#include <QTime>
 | 
				
			||||||
 | 
					#include <QString>
 | 
				
			||||||
 | 
					#include <QSettings>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "alarmtime.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui {
 | 
				
			||||||
 | 
					class AlarmSettingsDialog;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class AlarmSettingsDialog : public QDialog
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    AlarmTime* almNight_;
 | 
				
			||||||
 | 
					    AlarmTime* almAlarm_;
 | 
				
			||||||
 | 
					    QSettings* settings_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit AlarmSettingsDialog(AlarmTime* almNight, AlarmTime* almAlarm, QSettings* settings, QWidget* parent = nullptr);
 | 
				
			||||||
 | 
					    ~AlarmSettingsDialog();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					signals:
 | 
				
			||||||
 | 
					    void signalAlarmSoundFile(QString fileName);
 | 
				
			||||||
 | 
					    void signalSunrise(bool enabled);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
					    void accept();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private slots:
 | 
				
			||||||
 | 
					    void showFileChooser();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Ui::AlarmSettingsDialog *ui;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // ALARMSETTINGSDIALOG_H
 | 
				
			||||||
							
								
								
									
										241
									
								
								src/ui/alarmsettingsdialog.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										241
									
								
								src/ui/alarmsettingsdialog.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,241 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <class>AlarmSettingsDialog</class>
 | 
				
			||||||
 | 
					 <widget class="QDialog" name="AlarmSettingsDialog">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>462</width>
 | 
				
			||||||
 | 
					    <height>406</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Dialog</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <layout class="QVBoxLayout" name="verticalLayout">
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QGroupBox" name="groupBox">
 | 
				
			||||||
 | 
					     <property name="title">
 | 
				
			||||||
 | 
					      <string>Alarm</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <layout class="QVBoxLayout" name="verticalLayout_2">
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <layout class="QHBoxLayout" name="horizontalLayout_alm">
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QLabel" name="label_3">
 | 
				
			||||||
 | 
					          <property name="sizePolicy">
 | 
				
			||||||
 | 
					           <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
 | 
				
			||||||
 | 
					            <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					            <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					           </sizepolicy>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>Time</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QTimeEdit" name="timeEdit_Alarm">
 | 
				
			||||||
 | 
					          <property name="sizePolicy">
 | 
				
			||||||
 | 
					           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
 | 
				
			||||||
 | 
					            <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					            <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					           </sizepolicy>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QCheckBox" name="checkBox_Alarm">
 | 
				
			||||||
 | 
					          <property name="sizePolicy">
 | 
				
			||||||
 | 
					           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
 | 
				
			||||||
 | 
					            <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					            <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					           </sizepolicy>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>Enable</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					       </layout>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <layout class="QHBoxLayout" name="horizontalLayout_snd">
 | 
				
			||||||
 | 
					        <property name="leftMargin">
 | 
				
			||||||
 | 
					         <number>0</number>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <property name="topMargin">
 | 
				
			||||||
 | 
					         <number>0</number>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QLabel" name="label">
 | 
				
			||||||
 | 
					          <property name="sizePolicy">
 | 
				
			||||||
 | 
					           <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
 | 
				
			||||||
 | 
					            <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					            <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					           </sizepolicy>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>Sound File</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QLineEdit" name="lineEdit">
 | 
				
			||||||
 | 
					          <property name="enabled">
 | 
				
			||||||
 | 
					           <bool>true</bool>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QPushButton" name="pushButton_changeFile">
 | 
				
			||||||
 | 
					          <property name="sizePolicy">
 | 
				
			||||||
 | 
					           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
 | 
				
			||||||
 | 
					            <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					            <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					           </sizepolicy>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>Change</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					       </layout>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <layout class="QHBoxLayout" name="horizontalLayout_2">
 | 
				
			||||||
 | 
					        <property name="topMargin">
 | 
				
			||||||
 | 
					         <number>0</number>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QLabel" name="label_2">
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>Sunrise</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <spacer name="horizontalSpacer">
 | 
				
			||||||
 | 
					          <property name="orientation">
 | 
				
			||||||
 | 
					           <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="sizeHint" stdset="0">
 | 
				
			||||||
 | 
					           <size>
 | 
				
			||||||
 | 
					            <width>40</width>
 | 
				
			||||||
 | 
					            <height>20</height>
 | 
				
			||||||
 | 
					           </size>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </spacer>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QCheckBox" name="checkBox_Sunrise">
 | 
				
			||||||
 | 
					          <property name="sizePolicy">
 | 
				
			||||||
 | 
					           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
 | 
				
			||||||
 | 
					            <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					            <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					           </sizepolicy>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>Enable</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					       </layout>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					     </layout>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QGroupBox" name="groupBox_2">
 | 
				
			||||||
 | 
					     <property name="sizePolicy">
 | 
				
			||||||
 | 
					      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
 | 
				
			||||||
 | 
					       <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					       <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					      </sizepolicy>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="title">
 | 
				
			||||||
 | 
					      <string>Auto Power off</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <layout class="QVBoxLayout" name="verticalLayout_3">
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <layout class="QHBoxLayout" name="horizontalLayout_4">
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QLabel" name="label_4">
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>Time</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QTimeEdit" name="timeEdit_Shutdown"/>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QCheckBox" name="checkBox_Shutdown">
 | 
				
			||||||
 | 
					          <property name="sizePolicy">
 | 
				
			||||||
 | 
					           <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
 | 
				
			||||||
 | 
					            <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					            <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					           </sizepolicy>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>Enable</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="checked">
 | 
				
			||||||
 | 
					           <bool>true</bool>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					       </layout>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					     </layout>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QDialogButtonBox" name="buttonBox">
 | 
				
			||||||
 | 
					     <property name="orientation">
 | 
				
			||||||
 | 
					      <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="standardButtons">
 | 
				
			||||||
 | 
					      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					  </layout>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <resources/>
 | 
				
			||||||
 | 
					 <connections>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>accepted()</signal>
 | 
				
			||||||
 | 
					   <receiver>AlarmSettingsDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>accept()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>248</x>
 | 
				
			||||||
 | 
					     <y>254</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>157</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>rejected()</signal>
 | 
				
			||||||
 | 
					   <receiver>AlarmSettingsDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>reject()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>316</x>
 | 
				
			||||||
 | 
					     <y>260</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>286</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					 </connections>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
							
								
								
									
										142
									
								
								src/ui/alarmsettingsdialog.ui.orig
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								src/ui/alarmsettingsdialog.ui.orig
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,142 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <class>AlarmSettingsDialog</class>
 | 
				
			||||||
 | 
					 <widget class="QDialog" name="AlarmSettingsDialog">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>423</width>
 | 
				
			||||||
 | 
					    <height>281</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Dialog</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <layout class="QVBoxLayout" name="verticalLayout">
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QLabel" name="label">
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>Sound File:</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <layout class="QHBoxLayout" name="horizontalLayout">
 | 
				
			||||||
 | 
					     <property name="leftMargin">
 | 
				
			||||||
 | 
					      <number>0</number>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="topMargin">
 | 
				
			||||||
 | 
					      <number>0</number>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QLineEdit" name="lineEdit">
 | 
				
			||||||
 | 
					       <property name="enabled">
 | 
				
			||||||
 | 
					        <bool>false</bool>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QPushButton" name="pushButton">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>Change</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					    </layout>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <layout class="QHBoxLayout" name="horizontalLayout_2">
 | 
				
			||||||
 | 
					     <property name="topMargin">
 | 
				
			||||||
 | 
					      <number>0</number>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QLabel" name="label_2">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>Sunrise</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <spacer name="horizontalSpacer">
 | 
				
			||||||
 | 
					       <property name="orientation">
 | 
				
			||||||
 | 
					        <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="sizeHint" stdset="0">
 | 
				
			||||||
 | 
					        <size>
 | 
				
			||||||
 | 
					         <width>40</width>
 | 
				
			||||||
 | 
					         <height>20</height>
 | 
				
			||||||
 | 
					        </size>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </spacer>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QCheckBox" name="checkBox">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>Enable</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					    </layout>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <spacer name="verticalSpacer">
 | 
				
			||||||
 | 
					     <property name="orientation">
 | 
				
			||||||
 | 
					      <enum>Qt::Vertical</enum>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="sizeHint" stdset="0">
 | 
				
			||||||
 | 
					      <size>
 | 
				
			||||||
 | 
					       <width>20</width>
 | 
				
			||||||
 | 
					       <height>40</height>
 | 
				
			||||||
 | 
					      </size>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </spacer>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QDialogButtonBox" name="buttonBox">
 | 
				
			||||||
 | 
					     <property name="orientation">
 | 
				
			||||||
 | 
					      <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="standardButtons">
 | 
				
			||||||
 | 
					      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					  </layout>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <resources/>
 | 
				
			||||||
 | 
					 <connections>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>accepted()</signal>
 | 
				
			||||||
 | 
					   <receiver>AlarmSettingsDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>accept()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>248</x>
 | 
				
			||||||
 | 
					     <y>254</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>157</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>rejected()</signal>
 | 
				
			||||||
 | 
					   <receiver>AlarmSettingsDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>reject()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>316</x>
 | 
				
			||||||
 | 
					     <y>260</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>286</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					 </connections>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
							
								
								
									
										0
									
								
								src/ui/alarmsettingsdialog_BASE_22257.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								src/ui/alarmsettingsdialog_BASE_22257.ui
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										142
									
								
								src/ui/alarmsettingsdialog_LOCAL_22257.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								src/ui/alarmsettingsdialog_LOCAL_22257.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,142 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <class>AlarmSettingsDialog</class>
 | 
				
			||||||
 | 
					 <widget class="QDialog" name="AlarmSettingsDialog">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>423</width>
 | 
				
			||||||
 | 
					    <height>281</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Dialog</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <layout class="QVBoxLayout" name="verticalLayout">
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QLabel" name="label">
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>Sound File:</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <layout class="QHBoxLayout" name="horizontalLayout">
 | 
				
			||||||
 | 
					     <property name="leftMargin">
 | 
				
			||||||
 | 
					      <number>0</number>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="topMargin">
 | 
				
			||||||
 | 
					      <number>0</number>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QLineEdit" name="lineEdit">
 | 
				
			||||||
 | 
					       <property name="enabled">
 | 
				
			||||||
 | 
					        <bool>false</bool>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QPushButton" name="pushButton">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>Change</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					    </layout>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <layout class="QHBoxLayout" name="horizontalLayout_2">
 | 
				
			||||||
 | 
					     <property name="topMargin">
 | 
				
			||||||
 | 
					      <number>0</number>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QLabel" name="label_2">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>Sunrise</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <spacer name="horizontalSpacer">
 | 
				
			||||||
 | 
					       <property name="orientation">
 | 
				
			||||||
 | 
					        <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="sizeHint" stdset="0">
 | 
				
			||||||
 | 
					        <size>
 | 
				
			||||||
 | 
					         <width>40</width>
 | 
				
			||||||
 | 
					         <height>20</height>
 | 
				
			||||||
 | 
					        </size>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </spacer>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QCheckBox" name="checkBox">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>Enable</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					    </layout>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <spacer name="verticalSpacer">
 | 
				
			||||||
 | 
					     <property name="orientation">
 | 
				
			||||||
 | 
					      <enum>Qt::Vertical</enum>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="sizeHint" stdset="0">
 | 
				
			||||||
 | 
					      <size>
 | 
				
			||||||
 | 
					       <width>20</width>
 | 
				
			||||||
 | 
					       <height>40</height>
 | 
				
			||||||
 | 
					      </size>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </spacer>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QDialogButtonBox" name="buttonBox">
 | 
				
			||||||
 | 
					     <property name="orientation">
 | 
				
			||||||
 | 
					      <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="standardButtons">
 | 
				
			||||||
 | 
					      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					  </layout>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <resources/>
 | 
				
			||||||
 | 
					 <connections>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>accepted()</signal>
 | 
				
			||||||
 | 
					   <receiver>AlarmSettingsDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>accept()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>248</x>
 | 
				
			||||||
 | 
					     <y>254</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>157</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>rejected()</signal>
 | 
				
			||||||
 | 
					   <receiver>AlarmSettingsDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>reject()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>316</x>
 | 
				
			||||||
 | 
					     <y>260</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>286</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					 </connections>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
							
								
								
									
										71
									
								
								src/ui/alarmsettingsdialog_REMOTE_22257.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								src/ui/alarmsettingsdialog_REMOTE_22257.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,71 @@
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <author/>
 | 
				
			||||||
 | 
					 <comment/>
 | 
				
			||||||
 | 
					 <exportmacro/>
 | 
				
			||||||
 | 
					 <class>AlarmSettingsDialog</class>
 | 
				
			||||||
 | 
					 <widget name="AlarmSettingsDialog" class="QDialog">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>400</width>
 | 
				
			||||||
 | 
					    <height>300</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Dialog</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <widget name="buttonBox" class="QDialogButtonBox">
 | 
				
			||||||
 | 
					   <property name="geometry">
 | 
				
			||||||
 | 
					    <rect>
 | 
				
			||||||
 | 
					     <x>30</x>
 | 
				
			||||||
 | 
					     <y>240</y>
 | 
				
			||||||
 | 
					     <width>341</width>
 | 
				
			||||||
 | 
					     <height>32</height>
 | 
				
			||||||
 | 
					    </rect>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="orientation">
 | 
				
			||||||
 | 
					    <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="standardButtons">
 | 
				
			||||||
 | 
					    <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					  </widget>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <pixmapfunction/>
 | 
				
			||||||
 | 
					 <resources/>
 | 
				
			||||||
 | 
					 <connections>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>accepted()</signal>
 | 
				
			||||||
 | 
					   <receiver>AlarmSettingsDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>accept()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>248</x>
 | 
				
			||||||
 | 
					     <y>254</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>157</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>rejected()</signal>
 | 
				
			||||||
 | 
					   <receiver>AlarmSettingsDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>reject()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>316</x>
 | 
				
			||||||
 | 
					     <y>260</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>286</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					 </connections>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
							
								
								
									
										14
									
								
								src/ui/alarmwidget.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/ui/alarmwidget.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,14 @@
 | 
				
			||||||
 | 
					#include "alarmwidget.h"
 | 
				
			||||||
 | 
					#include "ui_alarmwidget.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AlarmWidget::AlarmWidget(QWidget *parent) :
 | 
				
			||||||
 | 
					    QWidget(parent),
 | 
				
			||||||
 | 
					    ui(new Ui::AlarmWidget)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->setupUi(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AlarmWidget::~AlarmWidget()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										22
									
								
								src/ui/alarmwidget.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/ui/alarmwidget.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					#ifndef ALARMWIDGET_H
 | 
				
			||||||
 | 
					#define ALARMWIDGET_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QWidget>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui {
 | 
				
			||||||
 | 
					class AlarmWidget;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class AlarmWidget : public QWidget
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit AlarmWidget(QWidget *parent = nullptr);
 | 
				
			||||||
 | 
					    ~AlarmWidget();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Ui::AlarmWidget *ui;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // ALARMWIDGET_H
 | 
				
			||||||
							
								
								
									
										134
									
								
								src/ui/alarmwidget.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										134
									
								
								src/ui/alarmwidget.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,134 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <class>AlarmWidget</class>
 | 
				
			||||||
 | 
					 <widget class="QWidget" name="AlarmWidget">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>357</width>
 | 
				
			||||||
 | 
					    <height>166</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="sizePolicy">
 | 
				
			||||||
 | 
					   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
 | 
				
			||||||
 | 
					    <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					    <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					   </sizepolicy>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Form</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="autoFillBackground">
 | 
				
			||||||
 | 
					   <bool>false</bool>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <layout class="QFormLayout" name="formLayout">
 | 
				
			||||||
 | 
					   <property name="fieldGrowthPolicy">
 | 
				
			||||||
 | 
					    <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="rowWrapPolicy">
 | 
				
			||||||
 | 
					    <enum>QFormLayout::DontWrapRows</enum>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="labelAlignment">
 | 
				
			||||||
 | 
					    <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="formAlignment">
 | 
				
			||||||
 | 
					    <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="horizontalSpacing">
 | 
				
			||||||
 | 
					    <number>50</number>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="verticalSpacing">
 | 
				
			||||||
 | 
					    <number>6</number>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <item row="0" column="0">
 | 
				
			||||||
 | 
					    <widget class="QLabel" name="label">
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>Time:</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item row="0" column="1">
 | 
				
			||||||
 | 
					    <widget class="QDateTimeEdit" name="dateTimeEdit">
 | 
				
			||||||
 | 
					     <property name="locale">
 | 
				
			||||||
 | 
					      <locale language="English" country="Germany"/>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="showGroupSeparator" stdset="0">
 | 
				
			||||||
 | 
					      <bool>false</bool>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="currentSection">
 | 
				
			||||||
 | 
					      <enum>QDateTimeEdit::DaySection</enum>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="displayFormat">
 | 
				
			||||||
 | 
					      <string>dd.mM.yyyy hh:mm</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="calendarPopup">
 | 
				
			||||||
 | 
					      <bool>true</bool>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item row="2" column="0">
 | 
				
			||||||
 | 
					    <widget class="QLabel" name="label_2">
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>Repeating:</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item row="5" column="1">
 | 
				
			||||||
 | 
					    <widget class="QRadioButton" name="radioButton_2">
 | 
				
			||||||
 | 
					     <property name="enabled">
 | 
				
			||||||
 | 
					      <bool>false</bool>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>Wee&kly</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item row="6" column="1">
 | 
				
			||||||
 | 
					    <widget class="QRadioButton" name="radioButton_3">
 | 
				
			||||||
 | 
					     <property name="enabled">
 | 
				
			||||||
 | 
					      <bool>false</bool>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>Monthly</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item row="7" column="1">
 | 
				
			||||||
 | 
					    <widget class="QRadioButton" name="radioButton_4">
 | 
				
			||||||
 | 
					     <property name="enabled">
 | 
				
			||||||
 | 
					      <bool>false</bool>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>Yearly</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item row="4" column="1">
 | 
				
			||||||
 | 
					    <widget class="QRadioButton" name="radioButton">
 | 
				
			||||||
 | 
					     <property name="enabled">
 | 
				
			||||||
 | 
					      <bool>false</bool>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>Daily</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="checkable">
 | 
				
			||||||
 | 
					      <bool>true</bool>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="checked">
 | 
				
			||||||
 | 
					      <bool>true</bool>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item row="2" column="1">
 | 
				
			||||||
 | 
					    <widget class="QCheckBox" name="checkBox">
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string> Enable</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					  </layout>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <resources/>
 | 
				
			||||||
 | 
					 <connections/>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
							
								
								
									
										78
									
								
								src/ui/mainwindow.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								src/ui/mainwindow.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,78 @@
 | 
				
			||||||
 | 
					#include "mainwindow.h"
 | 
				
			||||||
 | 
					#include "ui_mainwindow.h"
 | 
				
			||||||
 | 
					#include "relayscrollbox.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MainWindow::MainWindow(Microcontroller *micro , bool isRemoteMode , QWidget *parent) :
 | 
				
			||||||
 | 
					    QMainWindow(parent),
 | 
				
			||||||
 | 
					    ui(new Ui::MainWindow),
 | 
				
			||||||
 | 
					    colorChooser(this),
 | 
				
			||||||
 | 
					    _micro(micro)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->setupUi(this);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if(!_micro->connected()) ui->label_serialRecive->setText("No IO Port! Debug only.");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //Relays
 | 
				
			||||||
 | 
					    connect(ui->pushButton_refesh, SIGNAL(clicked()), _micro, SLOT(requestRelayList()));
 | 
				
			||||||
 | 
					    ui->relayList->setMicrocontoller(_micro);
 | 
				
			||||||
 | 
					    connect(_micro, &Microcontroller::gotRelayList, ui->relayList, &RelayScrollBox::gotRelays);
 | 
				
			||||||
 | 
					    connect(_micro, &Microcontroller::relayStateChanged, ui->relayList, &RelayScrollBox::relaySateChanged);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //RGB Leds
 | 
				
			||||||
 | 
					    connect(ui->presettApply, SIGNAL(clicked()), this, SLOT(slotApplyPreset()));
 | 
				
			||||||
 | 
					    connect(&colorChooser, SIGNAL(colorSelected(const QColor)), this, SLOT(slotChangedRgb(const QColor)));
 | 
				
			||||||
 | 
					    connect(ui->button_lightsOn, SIGNAL(clicked()), _micro, SLOT(rgbOn()));
 | 
				
			||||||
 | 
					    connect(ui->button_lightsOff, SIGNAL(clicked()), _micro, SLOT(rgbOff()));
 | 
				
			||||||
 | 
					    connect(ui->button_quit, SIGNAL(clicked()), this, SLOT(close()));
 | 
				
			||||||
 | 
					    connect(ui->button_color, SIGNAL(clicked()), &colorChooser, SLOT(show()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    new QListWidgetItem(tr("Pattern 0 Solid"), ui->listWidget_patern);
 | 
				
			||||||
 | 
					    new QListWidgetItem(tr("Pattern 1"), ui->listWidget_patern);
 | 
				
			||||||
 | 
					    new QListWidgetItem(tr("Pattern 2 Alarm"), ui->listWidget_patern);
 | 
				
			||||||
 | 
					    new QListWidgetItem(tr("Pattern 3"), ui->listWidget_patern);
 | 
				
			||||||
 | 
					    new QListWidgetItem(tr("Pattern 4 Sunrise"), ui->listWidget_patern);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //Desk light
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    connect(ui->horizontalSlider_deskLight, &QAbstractSlider::valueChanged, _micro, [this](int value){ _micro->setAuxPwm(value); });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    connect(ui->pushButton_alarms, SIGNAL(clicked()), this, SIGNAL(showAlmSettingsDialog()));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MainWindow::remoteMode()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MainWindow::~MainWindow()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MainWindow::slotChangedRgb(const QColor color)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    _micro->changeRgbColor(color);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MainWindow::slotApplyPreset()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(ui->listWidget_patern->selectedItems().count() == 1) _micro->setPattern(ui->listWidget_patern->currentRow());
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MainWindow::slotDoorOpenTimeout()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    //ui->checkBox_doorOpen->setChecked(true);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MainWindow::auxStateChanged(int value)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->horizontalSlider_deskLight->blockSignals(true);
 | 
				
			||||||
 | 
					    ui->horizontalSlider_deskLight->setValue(value);
 | 
				
			||||||
 | 
					    ui->horizontalSlider_deskLight->blockSignals(false);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void MainWindow::changeHeaderLableText(const QString string)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->label_serialRecive->setText(string);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										59
									
								
								src/ui/mainwindow.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								src/ui/mainwindow.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,59 @@
 | 
				
			||||||
 | 
					#ifndef MAINWINDOW_H
 | 
				
			||||||
 | 
					#define MAINWINDOW_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QMainWindow>
 | 
				
			||||||
 | 
					#include <QColorDialog>
 | 
				
			||||||
 | 
					#include <QListWidgetItem>
 | 
				
			||||||
 | 
					#include <QTime>
 | 
				
			||||||
 | 
					#include <vector>
 | 
				
			||||||
 | 
					#include "alarmtime.h"
 | 
				
			||||||
 | 
					#include "microcontroller.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					class MainWindow;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class MainWindow : public QMainWindow
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit MainWindow(Microcontroller *micro, bool isRemoteMode = false, QWidget *parent = nullptr);
 | 
				
			||||||
 | 
					    ~MainWindow();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Ui::MainWindow *ui;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    QColorDialog colorChooser;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Microcontroller *_micro;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void remoteMode();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					signals:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void signalAmpOn();
 | 
				
			||||||
 | 
					    void signalAmpOff();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void showAlmSettingsDialog();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private slots:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //RGB
 | 
				
			||||||
 | 
					    void slotChangedRgb(const QColor color);
 | 
				
			||||||
 | 
					    void slotApplyPreset();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void changeHeaderLableText(const QString string);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //door
 | 
				
			||||||
 | 
					    void slotDoorOpenTimeout();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void auxStateChanged(int value);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // MAINWINDOW_H
 | 
				
			||||||
							
								
								
									
										332
									
								
								src/ui/mainwindow.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										332
									
								
								src/ui/mainwindow.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,332 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <class>MainWindow</class>
 | 
				
			||||||
 | 
					 <widget class="QMainWindow" name="MainWindow">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>862</width>
 | 
				
			||||||
 | 
					    <height>570</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="sizePolicy">
 | 
				
			||||||
 | 
					   <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
 | 
				
			||||||
 | 
					    <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					    <verstretch>50</verstretch>
 | 
				
			||||||
 | 
					   </sizepolicy>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="minimumSize">
 | 
				
			||||||
 | 
					   <size>
 | 
				
			||||||
 | 
					    <width>600</width>
 | 
				
			||||||
 | 
					    <height>197</height>
 | 
				
			||||||
 | 
					   </size>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Smart Home Interface</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowIcon">
 | 
				
			||||||
 | 
					   <iconset resource="resources.qrc">
 | 
				
			||||||
 | 
					    <normaloff>:/images/UVOSicon.bmp</normaloff>:/images/UVOSicon.bmp</iconset>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <widget class="QWidget" name="centralWidget">
 | 
				
			||||||
 | 
					   <property name="sizePolicy">
 | 
				
			||||||
 | 
					    <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
 | 
				
			||||||
 | 
					     <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					     <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					    </sizepolicy>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="layoutDirection">
 | 
				
			||||||
 | 
					    <enum>Qt::LeftToRight</enum>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <property name="autoFillBackground">
 | 
				
			||||||
 | 
					    <bool>false</bool>
 | 
				
			||||||
 | 
					   </property>
 | 
				
			||||||
 | 
					   <layout class="QHBoxLayout" name="horizontalLayout_10">
 | 
				
			||||||
 | 
					    <item>
 | 
				
			||||||
 | 
					     <layout class="QHBoxLayout" name="horizontalLayout">
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <layout class="QVBoxLayout" name="verticalLayout_2">
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <layout class="QHBoxLayout" name="horizontalLayout_9">
 | 
				
			||||||
 | 
					          <property name="topMargin">
 | 
				
			||||||
 | 
					           <number>0</number>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="bottomMargin">
 | 
				
			||||||
 | 
					           <number>10</number>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <item>
 | 
				
			||||||
 | 
					           <widget class="QLabel" name="label_serialRecive">
 | 
				
			||||||
 | 
					            <property name="sizePolicy">
 | 
				
			||||||
 | 
					             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
 | 
				
			||||||
 | 
					              <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					              <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					             </sizepolicy>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="frameShape">
 | 
				
			||||||
 | 
					             <enum>QFrame::Box</enum>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					            <property name="text">
 | 
				
			||||||
 | 
					             <string>SHinterface</string>
 | 
				
			||||||
 | 
					            </property>
 | 
				
			||||||
 | 
					           </widget>
 | 
				
			||||||
 | 
					          </item>
 | 
				
			||||||
 | 
					         </layout>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QGroupBox" name="groupBox">
 | 
				
			||||||
 | 
					          <property name="sizePolicy">
 | 
				
			||||||
 | 
					           <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
 | 
				
			||||||
 | 
					            <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					            <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					           </sizepolicy>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="title">
 | 
				
			||||||
 | 
					           <string>Relays</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <layout class="QVBoxLayout" name="verticalLayout_4">
 | 
				
			||||||
 | 
					           <item>
 | 
				
			||||||
 | 
					            <widget class="RelayScrollBox" name="relayList" native="true">
 | 
				
			||||||
 | 
					             <property name="sizePolicy">
 | 
				
			||||||
 | 
					              <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
 | 
				
			||||||
 | 
					               <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					               <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					              </sizepolicy>
 | 
				
			||||||
 | 
					             </property>
 | 
				
			||||||
 | 
					            </widget>
 | 
				
			||||||
 | 
					           </item>
 | 
				
			||||||
 | 
					           <item>
 | 
				
			||||||
 | 
					            <widget class="QPushButton" name="pushButton_refesh">
 | 
				
			||||||
 | 
					             <property name="text">
 | 
				
			||||||
 | 
					              <string>Refesh</string>
 | 
				
			||||||
 | 
					             </property>
 | 
				
			||||||
 | 
					            </widget>
 | 
				
			||||||
 | 
					           </item>
 | 
				
			||||||
 | 
					          </layout>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					       </layout>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					     </layout>
 | 
				
			||||||
 | 
					    </item>
 | 
				
			||||||
 | 
					    <item>
 | 
				
			||||||
 | 
					     <layout class="QVBoxLayout" name="verticalLayout">
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <widget class="QListWidget" name="listWidget_patern">
 | 
				
			||||||
 | 
					        <property name="sizePolicy">
 | 
				
			||||||
 | 
					         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
 | 
				
			||||||
 | 
					          <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					          <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					         </sizepolicy>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <property name="minimumSize">
 | 
				
			||||||
 | 
					         <size>
 | 
				
			||||||
 | 
					          <width>0</width>
 | 
				
			||||||
 | 
					          <height>0</height>
 | 
				
			||||||
 | 
					         </size>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <property name="maximumSize">
 | 
				
			||||||
 | 
					         <size>
 | 
				
			||||||
 | 
					          <width>16777215</width>
 | 
				
			||||||
 | 
					          <height>120</height>
 | 
				
			||||||
 | 
					         </size>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <property name="baseSize">
 | 
				
			||||||
 | 
					         <size>
 | 
				
			||||||
 | 
					          <width>0</width>
 | 
				
			||||||
 | 
					          <height>50</height>
 | 
				
			||||||
 | 
					         </size>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </widget>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <layout class="QHBoxLayout" name="horizontalLayout_2">
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <spacer name="horizontalSpacer_3">
 | 
				
			||||||
 | 
					          <property name="orientation">
 | 
				
			||||||
 | 
					           <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="sizeHint" stdset="0">
 | 
				
			||||||
 | 
					           <size>
 | 
				
			||||||
 | 
					            <width>40</width>
 | 
				
			||||||
 | 
					            <height>20</height>
 | 
				
			||||||
 | 
					           </size>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </spacer>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QPushButton" name="presettApply">
 | 
				
			||||||
 | 
					          <property name="minimumSize">
 | 
				
			||||||
 | 
					           <size>
 | 
				
			||||||
 | 
					            <width>128</width>
 | 
				
			||||||
 | 
					            <height>32</height>
 | 
				
			||||||
 | 
					           </size>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>Apply</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					       </layout>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <widget class="QPushButton" name="button_color">
 | 
				
			||||||
 | 
					        <property name="sizePolicy">
 | 
				
			||||||
 | 
					         <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
 | 
				
			||||||
 | 
					          <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					          <verstretch>50</verstretch>
 | 
				
			||||||
 | 
					         </sizepolicy>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <property name="minimumSize">
 | 
				
			||||||
 | 
					         <size>
 | 
				
			||||||
 | 
					          <width>0</width>
 | 
				
			||||||
 | 
					          <height>0</height>
 | 
				
			||||||
 | 
					         </size>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <property name="maximumSize">
 | 
				
			||||||
 | 
					         <size>
 | 
				
			||||||
 | 
					          <width>16777215</width>
 | 
				
			||||||
 | 
					          <height>80</height>
 | 
				
			||||||
 | 
					         </size>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <property name="baseSize">
 | 
				
			||||||
 | 
					         <size>
 | 
				
			||||||
 | 
					          <width>0</width>
 | 
				
			||||||
 | 
					          <height>128</height>
 | 
				
			||||||
 | 
					         </size>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <property name="text">
 | 
				
			||||||
 | 
					         <string>Choose Color</string>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </widget>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <layout class="QHBoxLayout" name="horizontalLayout_11">
 | 
				
			||||||
 | 
					        <property name="topMargin">
 | 
				
			||||||
 | 
					         <number>10</number>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <property name="bottomMargin">
 | 
				
			||||||
 | 
					         <number>10</number>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QPushButton" name="button_lightsOn">
 | 
				
			||||||
 | 
					          <property name="sizePolicy">
 | 
				
			||||||
 | 
					           <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
 | 
				
			||||||
 | 
					            <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					            <verstretch>50</verstretch>
 | 
				
			||||||
 | 
					           </sizepolicy>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="minimumSize">
 | 
				
			||||||
 | 
					           <size>
 | 
				
			||||||
 | 
					            <width>0</width>
 | 
				
			||||||
 | 
					            <height>48</height>
 | 
				
			||||||
 | 
					           </size>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>ON</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QPushButton" name="button_lightsOff">
 | 
				
			||||||
 | 
					          <property name="sizePolicy">
 | 
				
			||||||
 | 
					           <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
 | 
				
			||||||
 | 
					            <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					            <verstretch>50</verstretch>
 | 
				
			||||||
 | 
					           </sizepolicy>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="minimumSize">
 | 
				
			||||||
 | 
					           <size>
 | 
				
			||||||
 | 
					            <width>0</width>
 | 
				
			||||||
 | 
					            <height>48</height>
 | 
				
			||||||
 | 
					           </size>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>OFF</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					       </layout>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <layout class="QHBoxLayout" name="horizontalLayout_8">
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QLabel" name="label_3">
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>Desk Light</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QSlider" name="horizontalSlider_deskLight">
 | 
				
			||||||
 | 
					          <property name="maximum">
 | 
				
			||||||
 | 
					           <number>254</number>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="tracking">
 | 
				
			||||||
 | 
					           <bool>false</bool>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="orientation">
 | 
				
			||||||
 | 
					           <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					       </layout>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <spacer name="verticalSpacer_2">
 | 
				
			||||||
 | 
					        <property name="orientation">
 | 
				
			||||||
 | 
					         <enum>Qt::Vertical</enum>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <property name="sizeType">
 | 
				
			||||||
 | 
					         <enum>QSizePolicy::Preferred</enum>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <property name="sizeHint" stdset="0">
 | 
				
			||||||
 | 
					         <size>
 | 
				
			||||||
 | 
					          <width>20</width>
 | 
				
			||||||
 | 
					          <height>20</height>
 | 
				
			||||||
 | 
					         </size>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </spacer>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <widget class="QPushButton" name="pushButton_alarms">
 | 
				
			||||||
 | 
					        <property name="text">
 | 
				
			||||||
 | 
					         <string>Alarms</string>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </widget>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <widget class="QPushButton" name="button_quit">
 | 
				
			||||||
 | 
					        <property name="sizePolicy">
 | 
				
			||||||
 | 
					         <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
 | 
				
			||||||
 | 
					          <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					          <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					         </sizepolicy>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <property name="layoutDirection">
 | 
				
			||||||
 | 
					         <enum>Qt::RightToLeft</enum>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					        <property name="text">
 | 
				
			||||||
 | 
					         <string>Quit</string>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </widget>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					     </layout>
 | 
				
			||||||
 | 
					    </item>
 | 
				
			||||||
 | 
					   </layout>
 | 
				
			||||||
 | 
					  </widget>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <layoutdefault spacing="6" margin="11"/>
 | 
				
			||||||
 | 
					 <customwidgets>
 | 
				
			||||||
 | 
					  <customwidget>
 | 
				
			||||||
 | 
					   <class>RelayScrollBox</class>
 | 
				
			||||||
 | 
					   <extends>QWidget</extends>
 | 
				
			||||||
 | 
					   <header>relayscrollbox.h</header>
 | 
				
			||||||
 | 
					   <container>1</container>
 | 
				
			||||||
 | 
					  </customwidget>
 | 
				
			||||||
 | 
					 </customwidgets>
 | 
				
			||||||
 | 
					 <resources>
 | 
				
			||||||
 | 
					  <include location="resources.qrc"/>
 | 
				
			||||||
 | 
					 </resources>
 | 
				
			||||||
 | 
					 <connections/>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
							
								
								
									
										230
									
								
								src/ui/relaydialog.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										230
									
								
								src/ui/relaydialog.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,230 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <class>RelayDialog</class>
 | 
				
			||||||
 | 
					 <widget class="QDialog" name="RelayDialog">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>358</width>
 | 
				
			||||||
 | 
					    <height>320</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Advanced Relays</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <layout class="QVBoxLayout" name="verticalLayout">
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QGroupBox" name="groupBox">
 | 
				
			||||||
 | 
					     <property name="title">
 | 
				
			||||||
 | 
					      <string>Advanced</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <layout class="QVBoxLayout" name="verticalLayout_2">
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <layout class="QHBoxLayout" name="horizontalLayout_3">
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QLabel" name="label_3">
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>3Dator</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <spacer name="horizontalSpacer_3">
 | 
				
			||||||
 | 
					          <property name="orientation">
 | 
				
			||||||
 | 
					           <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="sizeHint" stdset="0">
 | 
				
			||||||
 | 
					           <size>
 | 
				
			||||||
 | 
					            <width>40</width>
 | 
				
			||||||
 | 
					            <height>20</height>
 | 
				
			||||||
 | 
					           </size>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </spacer>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QCheckBox" name="checkBox_R0">
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>On</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					       </layout>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <widget class="Line" name="line_4">
 | 
				
			||||||
 | 
					        <property name="orientation">
 | 
				
			||||||
 | 
					         <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </widget>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <layout class="QHBoxLayout" name="horizontalLayout_4">
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QLabel" name="label_4">
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>3040</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <spacer name="horizontalSpacer_4">
 | 
				
			||||||
 | 
					          <property name="orientation">
 | 
				
			||||||
 | 
					           <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="sizeHint" stdset="0">
 | 
				
			||||||
 | 
					           <size>
 | 
				
			||||||
 | 
					            <width>40</width>
 | 
				
			||||||
 | 
					            <height>20</height>
 | 
				
			||||||
 | 
					           </size>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </spacer>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QCheckBox" name="checkBox_R1">
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>On</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					       </layout>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <widget class="Line" name="line_5">
 | 
				
			||||||
 | 
					        <property name="orientation">
 | 
				
			||||||
 | 
					         <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </widget>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					      <item>
 | 
				
			||||||
 | 
					       <layout class="QHBoxLayout" name="horizontalLayout_2">
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QLabel" name="label_6">
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>Aux</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <spacer name="horizontalSpacer_6">
 | 
				
			||||||
 | 
					          <property name="orientation">
 | 
				
			||||||
 | 
					           <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					          <property name="sizeHint" stdset="0">
 | 
				
			||||||
 | 
					           <size>
 | 
				
			||||||
 | 
					            <width>40</width>
 | 
				
			||||||
 | 
					            <height>20</height>
 | 
				
			||||||
 | 
					           </size>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </spacer>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					        <item>
 | 
				
			||||||
 | 
					         <widget class="QCheckBox" name="checkBox_R2">
 | 
				
			||||||
 | 
					          <property name="text">
 | 
				
			||||||
 | 
					           <string>On</string>
 | 
				
			||||||
 | 
					          </property>
 | 
				
			||||||
 | 
					         </widget>
 | 
				
			||||||
 | 
					        </item>
 | 
				
			||||||
 | 
					       </layout>
 | 
				
			||||||
 | 
					      </item>
 | 
				
			||||||
 | 
					     </layout>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <layout class="QHBoxLayout" name="horizontalLayout_5">
 | 
				
			||||||
 | 
					     <property name="leftMargin">
 | 
				
			||||||
 | 
					      <number>0</number>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="topMargin">
 | 
				
			||||||
 | 
					      <number>0</number>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QLabel" name="label_5">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>Enterance Watch</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <spacer name="horizontalSpacer_5">
 | 
				
			||||||
 | 
					       <property name="orientation">
 | 
				
			||||||
 | 
					        <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="sizeHint" stdset="0">
 | 
				
			||||||
 | 
					        <size>
 | 
				
			||||||
 | 
					         <width>40</width>
 | 
				
			||||||
 | 
					         <height>20</height>
 | 
				
			||||||
 | 
					        </size>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </spacer>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QCheckBox" name="checkBox">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>Inside</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="checked">
 | 
				
			||||||
 | 
					        <bool>true</bool>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QCheckBox" name="checkBox_2">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>Watch</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="checked">
 | 
				
			||||||
 | 
					        <bool>true</bool>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					    </layout>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QDialogButtonBox" name="buttonBox">
 | 
				
			||||||
 | 
					     <property name="orientation">
 | 
				
			||||||
 | 
					      <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="standardButtons">
 | 
				
			||||||
 | 
					      <set>QDialogButtonBox::Ok</set>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					  </layout>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <resources/>
 | 
				
			||||||
 | 
					 <connections>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>accepted()</signal>
 | 
				
			||||||
 | 
					   <receiver>RelayDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>accept()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>248</x>
 | 
				
			||||||
 | 
					     <y>254</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>157</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>rejected()</signal>
 | 
				
			||||||
 | 
					   <receiver>RelayDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>reject()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>316</x>
 | 
				
			||||||
 | 
					     <y>260</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>286</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					 </connections>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
							
								
								
									
										32
									
								
								src/ui/relayscrollbox.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								src/ui/relayscrollbox.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,32 @@
 | 
				
			||||||
 | 
					#include "relayscrollbox.h"
 | 
				
			||||||
 | 
					#include "ui_relayscrollbox.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RelayScrollBox::RelayScrollBox(QWidget *parent) :
 | 
				
			||||||
 | 
					    QWidget(parent),
 | 
				
			||||||
 | 
					    ui(new Ui::RelayScrollBox)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->setupUi(this);
 | 
				
			||||||
 | 
					    QScroller::grabGesture(ui->scrollArea, QScroller::TouchGesture);
 | 
				
			||||||
 | 
					    QScroller::grabGesture(ui->scrollArea, QScroller::LeftMouseButtonGesture);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RelayScrollBox::~RelayScrollBox()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void RelayScrollBox::addRelay(std::weak_ptr<Relay> relay)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    widgets_.push_back(new RelayWidget(relay));
 | 
				
			||||||
 | 
					    ui->relayWidgetVbox->addWidget(widgets_.back());
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void RelayScrollBox::removeRelay(const RelayStore& realy)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    for(unsigned i = 0; i < widgets_.size(); i++)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if(widgets_[i]->controles(realy)) widgets_.erase(widgets_.begin()+i);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										40
									
								
								src/ui/relayscrollbox.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								src/ui/relayscrollbox.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,40 @@
 | 
				
			||||||
 | 
					#ifndef RELAYSCROLLBOX_H
 | 
				
			||||||
 | 
					#define RELAYSCROLLBOX_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QWidget>
 | 
				
			||||||
 | 
					#include <vector>
 | 
				
			||||||
 | 
					#include <memory>
 | 
				
			||||||
 | 
					#include <QScroller>
 | 
				
			||||||
 | 
					#include "relaywidget.h"
 | 
				
			||||||
 | 
					#include "../relay.h"
 | 
				
			||||||
 | 
					#include "../item.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui {
 | 
				
			||||||
 | 
					class RelayScrollBox;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class RelayScrollBox : public QWidget
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    std::vector< RelayWidget* > widgets_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit RelayScrollBox(QWidget *parent = nullptr);
 | 
				
			||||||
 | 
					    ~RelayScrollBox();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void setItemStore(ItemStore* itemStore);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void addRelay(std::weak_ptr<Relay> relay);
 | 
				
			||||||
 | 
					    void removeRelay(const RelayStore& Realy);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Ui::RelayScrollBox *ui;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // RELAYSCROLLBOX_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										56
									
								
								src/ui/relayscrollbox.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								src/ui/relayscrollbox.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,56 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <class>RelayScrollBox</class>
 | 
				
			||||||
 | 
					 <widget class="QWidget" name="RelayScrollBox">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>400</width>
 | 
				
			||||||
 | 
					    <height>300</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Form</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <layout class="QHBoxLayout" name="horizontalLayout">
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QScrollArea" name="scrollArea">
 | 
				
			||||||
 | 
					     <property name="widgetResizable">
 | 
				
			||||||
 | 
					      <bool>true</bool>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <widget class="QWidget" name="scrollAreaWidgetContents">
 | 
				
			||||||
 | 
					      <property name="geometry">
 | 
				
			||||||
 | 
					       <rect>
 | 
				
			||||||
 | 
					        <x>0</x>
 | 
				
			||||||
 | 
					        <y>0</y>
 | 
				
			||||||
 | 
					        <width>384</width>
 | 
				
			||||||
 | 
					        <height>284</height>
 | 
				
			||||||
 | 
					       </rect>
 | 
				
			||||||
 | 
					      </property>
 | 
				
			||||||
 | 
					      <layout class="QVBoxLayout" name="verticalLayout">
 | 
				
			||||||
 | 
					       <item>
 | 
				
			||||||
 | 
					        <layout class="QVBoxLayout" name="relayWidgetVbox"/>
 | 
				
			||||||
 | 
					       </item>
 | 
				
			||||||
 | 
					       <item>
 | 
				
			||||||
 | 
					        <spacer name="verticalSpacer">
 | 
				
			||||||
 | 
					         <property name="orientation">
 | 
				
			||||||
 | 
					          <enum>Qt::Vertical</enum>
 | 
				
			||||||
 | 
					         </property>
 | 
				
			||||||
 | 
					         <property name="sizeHint" stdset="0">
 | 
				
			||||||
 | 
					          <size>
 | 
				
			||||||
 | 
					           <width>20</width>
 | 
				
			||||||
 | 
					           <height>40</height>
 | 
				
			||||||
 | 
					          </size>
 | 
				
			||||||
 | 
					         </property>
 | 
				
			||||||
 | 
					        </spacer>
 | 
				
			||||||
 | 
					       </item>
 | 
				
			||||||
 | 
					      </layout>
 | 
				
			||||||
 | 
					     </widget>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					  </layout>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <resources/>
 | 
				
			||||||
 | 
					 <connections/>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
							
								
								
									
										18
									
								
								src/ui/relaysettingsdialog.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/ui/relaysettingsdialog.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					#include "relaysettingsdialog.h"
 | 
				
			||||||
 | 
					#include "ui_relaysettingsdialog.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RelaySettingsDialog::RelaySettingsDialog(RelayStore* relay, QWidget *parent) :
 | 
				
			||||||
 | 
					    QDialog(parent),
 | 
				
			||||||
 | 
					    relay_(relay),
 | 
				
			||||||
 | 
					    ui(new Ui::RelaySettingsDialog)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->setupUi(this);
 | 
				
			||||||
 | 
					    ui->label_address->setText(QString::number(relay_->getAddress(), 2));
 | 
				
			||||||
 | 
					    ui->label_name->setText(relay_->getName());
 | 
				
			||||||
 | 
					    ui->label_id->setText(QString::number(relay_->getId(), 10));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RelaySettingsDialog::~RelaySettingsDialog()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										24
									
								
								src/ui/relaysettingsdialog.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								src/ui/relaysettingsdialog.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,24 @@
 | 
				
			||||||
 | 
					#ifndef RELAYSETTINGSDIALOG_H
 | 
				
			||||||
 | 
					#define RELAYSETTINGSDIALOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QDialog>
 | 
				
			||||||
 | 
					#include "relay.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui {
 | 
				
			||||||
 | 
					class RelaySettingsDialog;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class RelaySettingsDialog : public QDialog
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					    RelayStore* relay_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit RelaySettingsDialog(RelayStore* relay, QWidget *parent = nullptr);
 | 
				
			||||||
 | 
					    ~RelaySettingsDialog();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Ui::RelaySettingsDialog *ui;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // RELAYSETTINGSDIALOG_H
 | 
				
			||||||
							
								
								
									
										207
									
								
								src/ui/relaysettingsdialog.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										207
									
								
								src/ui/relaysettingsdialog.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,207 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <class>RelaySettingsDialog</class>
 | 
				
			||||||
 | 
					 <widget class="QDialog" name="RelaySettingsDialog">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>400</width>
 | 
				
			||||||
 | 
					    <height>319</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Relay Settings</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowIcon">
 | 
				
			||||||
 | 
					   <iconset resource="resources.qrc">
 | 
				
			||||||
 | 
					    <normaloff>:/images/UVOSicon.bmp</normaloff>:/images/UVOSicon.bmp</iconset>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <layout class="QVBoxLayout" name="verticalLayout">
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <layout class="QFormLayout" name="formLayout">
 | 
				
			||||||
 | 
					     <property name="fieldGrowthPolicy">
 | 
				
			||||||
 | 
					      <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="rightMargin">
 | 
				
			||||||
 | 
					      <number>0</number>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="bottomMargin">
 | 
				
			||||||
 | 
					      <number>10</number>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <item row="3" column="0">
 | 
				
			||||||
 | 
					      <widget class="QLabel" name="label_5">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>Address</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="3" column="1">
 | 
				
			||||||
 | 
					      <widget class="QLabel" name="label_address">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>TextLabel</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="alignment">
 | 
				
			||||||
 | 
					        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="2" column="1">
 | 
				
			||||||
 | 
					      <widget class="QLabel" name="label_name">
 | 
				
			||||||
 | 
					       <property name="sizePolicy">
 | 
				
			||||||
 | 
					        <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
 | 
				
			||||||
 | 
					         <horstretch>5</horstretch>
 | 
				
			||||||
 | 
					         <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					        </sizepolicy>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="layoutDirection">
 | 
				
			||||||
 | 
					        <enum>Qt::LeftToRight</enum>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>TextLabel</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="alignment">
 | 
				
			||||||
 | 
					        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="2" column="0">
 | 
				
			||||||
 | 
					      <widget class="QLabel" name="label">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>Name:</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="alignment">
 | 
				
			||||||
 | 
					        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="1" column="1">
 | 
				
			||||||
 | 
					      <widget class="QLabel" name="label_id">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>TextLabel</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="alignment">
 | 
				
			||||||
 | 
					        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item row="1" column="0">
 | 
				
			||||||
 | 
					      <widget class="QLabel" name="label_2">
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>ID:</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					    </layout>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QListWidget" name="listWidget"/>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QPushButton" name="pushButton">
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>Remove</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <layout class="QHBoxLayout" name="horizontalLayout">
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QComboBox" name="comboBox">
 | 
				
			||||||
 | 
					       <item>
 | 
				
			||||||
 | 
					        <property name="text">
 | 
				
			||||||
 | 
					         <string>Alarm</string>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </item>
 | 
				
			||||||
 | 
					       <item>
 | 
				
			||||||
 | 
					        <property name="text">
 | 
				
			||||||
 | 
					         <string>Timer</string>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </item>
 | 
				
			||||||
 | 
					       <item>
 | 
				
			||||||
 | 
					        <property name="text">
 | 
				
			||||||
 | 
					         <string>Speaker</string>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </item>
 | 
				
			||||||
 | 
					       <item>
 | 
				
			||||||
 | 
					        <property name="text">
 | 
				
			||||||
 | 
					         <string>RGB Value</string>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </item>
 | 
				
			||||||
 | 
					       <item>
 | 
				
			||||||
 | 
					        <property name="text">
 | 
				
			||||||
 | 
					         <string>Temperature</string>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </item>
 | 
				
			||||||
 | 
					       <item>
 | 
				
			||||||
 | 
					        <property name="text">
 | 
				
			||||||
 | 
					         <string/>
 | 
				
			||||||
 | 
					        </property>
 | 
				
			||||||
 | 
					       </item>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					     <item>
 | 
				
			||||||
 | 
					      <widget class="QPushButton" name="pushButton_add">
 | 
				
			||||||
 | 
					       <property name="sizePolicy">
 | 
				
			||||||
 | 
					        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
 | 
				
			||||||
 | 
					         <horstretch>0</horstretch>
 | 
				
			||||||
 | 
					         <verstretch>0</verstretch>
 | 
				
			||||||
 | 
					        </sizepolicy>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					       <property name="text">
 | 
				
			||||||
 | 
					        <string>Add</string>
 | 
				
			||||||
 | 
					       </property>
 | 
				
			||||||
 | 
					      </widget>
 | 
				
			||||||
 | 
					     </item>
 | 
				
			||||||
 | 
					    </layout>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QDialogButtonBox" name="buttonBox">
 | 
				
			||||||
 | 
					     <property name="orientation">
 | 
				
			||||||
 | 
					      <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="standardButtons">
 | 
				
			||||||
 | 
					      <set>QDialogButtonBox::Ok</set>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					  </layout>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <resources>
 | 
				
			||||||
 | 
					  <include location="resources.qrc"/>
 | 
				
			||||||
 | 
					 </resources>
 | 
				
			||||||
 | 
					 <connections>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>accepted()</signal>
 | 
				
			||||||
 | 
					   <receiver>RelaySettingsDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>accept()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>248</x>
 | 
				
			||||||
 | 
					     <y>254</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>157</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					  <connection>
 | 
				
			||||||
 | 
					   <sender>buttonBox</sender>
 | 
				
			||||||
 | 
					   <signal>rejected()</signal>
 | 
				
			||||||
 | 
					   <receiver>RelaySettingsDialog</receiver>
 | 
				
			||||||
 | 
					   <slot>reject()</slot>
 | 
				
			||||||
 | 
					   <hints>
 | 
				
			||||||
 | 
					    <hint type="sourcelabel">
 | 
				
			||||||
 | 
					     <x>316</x>
 | 
				
			||||||
 | 
					     <y>260</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					    <hint type="destinationlabel">
 | 
				
			||||||
 | 
					     <x>286</x>
 | 
				
			||||||
 | 
					     <y>274</y>
 | 
				
			||||||
 | 
					    </hint>
 | 
				
			||||||
 | 
					   </hints>
 | 
				
			||||||
 | 
					  </connection>
 | 
				
			||||||
 | 
					 </connections>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
							
								
								
									
										50
									
								
								src/ui/relaywidget.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								src/ui/relaywidget.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,50 @@
 | 
				
			||||||
 | 
					#include "relaywidget.h"
 | 
				
			||||||
 | 
					#include "ui_relaywidget.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QCheckBox>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RelayWidget::RelayWidget(Relay* relay, QWidget *parent) :
 | 
				
			||||||
 | 
					    QWidget(parent),
 | 
				
			||||||
 | 
					    relay_(relay),
 | 
				
			||||||
 | 
					    ui(new Ui::RelayWidget)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->setupUi(this);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    relay_->setParent(this);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if(!relay->hasActors())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        ui->checkBox_auto->hide();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    ui->checkBox_auto->setChecked(relay->actorsActive());
 | 
				
			||||||
 | 
					    ui->checkBox->setChecked(relay->getState());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ui->label->setText(relay_->getName());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    connect(ui->checkBox, &QCheckBox::toggled, relay_, &Relay::moveToState);
 | 
				
			||||||
 | 
					    connect(ui->checkBox_auto, &QCheckBox::toggled, relay_, &Relay::setActorsActive);
 | 
				
			||||||
 | 
					    connect(ui->pushButton, &QPushButton::clicked, this, &RelayWidget::showSettingsDialog);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void RelayWidget::showSettingsDialog()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    RelaySettingsDialog dialog(relay_, this);
 | 
				
			||||||
 | 
					    dialog.exec();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Relay* RelayWidget::getRelay()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return relay_;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void RelayWidget::stateChanged(bool state)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->checkBox->setChecked(state);
 | 
				
			||||||
 | 
					    relay_->setState(state);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RelayWidget::~RelayWidget()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										33
									
								
								src/ui/relaywidget.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								src/ui/relaywidget.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,33 @@
 | 
				
			||||||
 | 
					#ifndef RELAYWIDGET_H
 | 
				
			||||||
 | 
					#define RELAYWIDGET_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QWidget>
 | 
				
			||||||
 | 
					#include "relaysettingsdialog.h"
 | 
				
			||||||
 | 
					#include "relay.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui {
 | 
				
			||||||
 | 
					class RelayWidget;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class RelayWidget : public QWidget
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Relay* relay_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private slots:
 | 
				
			||||||
 | 
					    void showSettingsDialog();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit RelayWidget(Relay* relay_, QWidget *parent = nullptr);
 | 
				
			||||||
 | 
					    Relay* getRelay();
 | 
				
			||||||
 | 
					    ~RelayWidget();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
					    void stateChanged(bool state);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Ui::RelayWidget *ui;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // RELAYWIDGET_H
 | 
				
			||||||
							
								
								
									
										65
									
								
								src/ui/relaywidget.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								src/ui/relaywidget.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,65 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <class>RelayWidget</class>
 | 
				
			||||||
 | 
					 <widget class="QWidget" name="RelayWidget">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>435</width>
 | 
				
			||||||
 | 
					    <height>48</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Form</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <layout class="QHBoxLayout" name="horizontalLayout">
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QLabel" name="label">
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>TextLabel</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <spacer name="horizontalSpacer">
 | 
				
			||||||
 | 
					     <property name="orientation">
 | 
				
			||||||
 | 
					      <enum>Qt::Horizontal</enum>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="sizeHint" stdset="0">
 | 
				
			||||||
 | 
					      <size>
 | 
				
			||||||
 | 
					       <width>40</width>
 | 
				
			||||||
 | 
					       <height>20</height>
 | 
				
			||||||
 | 
					      </size>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </spacer>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QCheckBox" name="checkBox">
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>On</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QCheckBox" name="checkBox_auto">
 | 
				
			||||||
 | 
					     <property name="enabled">
 | 
				
			||||||
 | 
					      <bool>true</bool>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>Auto</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					   <item>
 | 
				
			||||||
 | 
					    <widget class="QPushButton" name="pushButton">
 | 
				
			||||||
 | 
					     <property name="text">
 | 
				
			||||||
 | 
					      <string>Settings</string>
 | 
				
			||||||
 | 
					     </property>
 | 
				
			||||||
 | 
					    </widget>
 | 
				
			||||||
 | 
					   </item>
 | 
				
			||||||
 | 
					  </layout>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <resources/>
 | 
				
			||||||
 | 
					 <connections/>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
							
								
								
									
										14
									
								
								src/ui/sensoractorwidget.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/ui/sensoractorwidget.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,14 @@
 | 
				
			||||||
 | 
					#include "sensoractorwidget.h"
 | 
				
			||||||
 | 
					#include "ui_sensoractorwidget.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SensorActorWidget::SensorActorWidget(QWidget *parent) :
 | 
				
			||||||
 | 
					    QWidget(parent),
 | 
				
			||||||
 | 
					    ui(new Ui::SensorActorWidget)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    ui->setupUi(this);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SensorActorWidget::~SensorActorWidget()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    delete ui;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										22
									
								
								src/ui/sensoractorwidget.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/ui/sensoractorwidget.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					#ifndef SENSORACTORWIDGET_H
 | 
				
			||||||
 | 
					#define SENSORACTORWIDGET_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <QWidget>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Ui {
 | 
				
			||||||
 | 
					class SensorActorWidget;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class SensorActorWidget : public QWidget
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    explicit SensorActorWidget(QWidget *parent = nullptr);
 | 
				
			||||||
 | 
					    ~SensorActorWidget();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					    Ui::SensorActorWidget *ui;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // SENSORACTORWIDGET_H
 | 
				
			||||||
							
								
								
									
										21
									
								
								src/ui/sensoractorwidget.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								src/ui/sensoractorwidget.ui
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,21 @@
 | 
				
			||||||
 | 
					<ui version="4.0">
 | 
				
			||||||
 | 
					 <author/>
 | 
				
			||||||
 | 
					 <comment/>
 | 
				
			||||||
 | 
					 <exportmacro/>
 | 
				
			||||||
 | 
					 <class>SensorActorWidget</class>
 | 
				
			||||||
 | 
					 <widget name="SensorActorWidget" class="QWidget">
 | 
				
			||||||
 | 
					  <property name="geometry">
 | 
				
			||||||
 | 
					   <rect>
 | 
				
			||||||
 | 
					    <x>0</x>
 | 
				
			||||||
 | 
					    <y>0</y>
 | 
				
			||||||
 | 
					    <width>400</width>
 | 
				
			||||||
 | 
					    <height>300</height>
 | 
				
			||||||
 | 
					   </rect>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					  <property name="windowTitle">
 | 
				
			||||||
 | 
					   <string>Form</string>
 | 
				
			||||||
 | 
					  </property>
 | 
				
			||||||
 | 
					 </widget>
 | 
				
			||||||
 | 
					 <pixmapfunction/>
 | 
				
			||||||
 | 
					 <connections/>
 | 
				
			||||||
 | 
					</ui>
 | 
				
			||||||
							
								
								
									
										33
									
								
								src/ui/sensorlistwidget.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								src/ui/sensorlistwidget.cpp
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,33 @@
 | 
				
			||||||
 | 
					#include "sensorlistwidget.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SensorListWidget::SensorListWidget(QWidget *parent): QListWidget (parent)
 | 
				
			||||||
 | 
					{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SensorListWidget::SensorListWidget(SensorStore& sensorStore, QWidget* parent): QListWidget (parent)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					      sensorsChanged(*(sensorStore.getSensors()));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void SensorListWidget::sensorsChanged(std::vector<Sensor> sensors)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    clear();
 | 
				
			||||||
 | 
					    for(size_t i = 0; i < sensors.size(); ++i)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        QString itemString = sensors[i].name + ": ";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if(sensors[i].type == Sensor::TYPE_DOOR)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if(sensors[i].field) itemString.append("Open");
 | 
				
			||||||
 | 
					            else itemString.append("Closed");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if(sensors[i].type == Sensor::TYPE_AUDIO_OUTPUT)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if(sensors[i].field) itemString.append("Playing");
 | 
				
			||||||
 | 
					            else itemString.append("Silent");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else itemString.append(QString::number(sensors[i].field));
 | 
				
			||||||
 | 
					        addItem(itemString);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										18
									
								
								src/ui/sensorlistwidget.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/ui/sensorlistwidget.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					#pragma once
 | 
				
			||||||
 | 
					#include <QListWidget>
 | 
				
			||||||
 | 
					#include <vector>
 | 
				
			||||||
 | 
					#include "../sensor.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class SensorListWidget : public QListWidget
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    Q_OBJECT
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SensorListWidget(QWidget *parent = nullptr);
 | 
				
			||||||
 | 
					    SensorListWidget(SensorStore& sensorStore, QWidget* parent = nullptr);
 | 
				
			||||||
 | 
					    virtual ~SensorListWidget(){}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public slots:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void sensorsChanged(std::vector<Sensor> sensors);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue