From f3c75121d0f37b4aa22f5cc77cc1ed42ea8bca57 Mon Sep 17 00:00:00 2001 From: leiju <3074194431@qq.com> Date: Thu, 13 Sep 2018 17:37:24 +0800 Subject: [PATCH 1/2] add smart_home_client --- smart_home_client/airconditurepage.ui | 19 + smart_home_client/camerapage.cpp | 14 + smart_home_client/camerapage.ui | 19 + smart_home_client/client.cpp | 28 + smart_home_client/client.h | 23 + smart_home_client/historydata.cpp | 188 +++ smart_home_client/historydata.cpp.autosave | 189 +++ smart_home_client/historydata.h | 60 + smart_home_client/historydata.ui | 85 ++ smart_home_client/lightpage.cpp | 26 + smart_home_client/lightpage.h | 30 + smart_home_client/lightpage.ui | 89 ++ smart_home_client/main.cpp | 11 + smart_home_client/picture.qrc | 14 + smart_home_client/picture/airconditioner.png | Bin 0 -> 12717 bytes .../picture/airconditionerOFF.png | Bin 0 -> 37778 bytes .../picture/airconditionerON.png | Bin 0 -> 34882 bytes smart_home_client/picture/camera.png | Bin 0 -> 65461 bytes smart_home_client/picture/humiditySymbol.png | Bin 0 -> 27320 bytes smart_home_client/picture/light.png | Bin 0 -> 10859 bytes smart_home_client/picture/lightOFF.png | Bin 0 -> 15012 bytes smart_home_client/picture/lightON.png | Bin 0 -> 23597 bytes .../picture/temperatureSymbol.png | Bin 0 -> 36532 bytes smart_home_client/picture/traycon.png | Bin 0 -> 34244 bytes smart_home_client/setsecurevalue.cpp | 85 ++ smart_home_client/setsecurevalue.h | 33 + smart_home_client/setsecurevalue.ui | 1285 +++++++++++++++++ smart_home_client/smart_home.pro | 44 + smart_home_client/smart_home.pro.user | 318 ++++ smart_home_client/smart_home.pro.user.2bdcebe | 318 ++++ smart_home_client/smart_home.pro.user.2fa79d3 | 318 ++++ smart_home_client/widget.cpp | 480 ++++++ smart_home_client/widget.h | 82 ++ smart_home_client/widget.ui | 614 ++++++++ 34 files changed, 4372 insertions(+) create mode 100755 smart_home_client/airconditurepage.ui create mode 100755 smart_home_client/camerapage.cpp create mode 100755 smart_home_client/camerapage.ui create mode 100755 smart_home_client/client.cpp create mode 100755 smart_home_client/client.h create mode 100755 smart_home_client/historydata.cpp create mode 100755 smart_home_client/historydata.cpp.autosave create mode 100755 smart_home_client/historydata.h create mode 100755 smart_home_client/historydata.ui create mode 100755 smart_home_client/lightpage.cpp create mode 100755 smart_home_client/lightpage.h create mode 100755 smart_home_client/lightpage.ui create mode 100755 smart_home_client/main.cpp create mode 100755 smart_home_client/picture.qrc create mode 100755 smart_home_client/picture/airconditioner.png create mode 100755 smart_home_client/picture/airconditionerOFF.png create mode 100755 smart_home_client/picture/airconditionerON.png create mode 100755 smart_home_client/picture/camera.png create mode 100755 smart_home_client/picture/humiditySymbol.png create mode 100755 smart_home_client/picture/light.png create mode 100755 smart_home_client/picture/lightOFF.png create mode 100755 smart_home_client/picture/lightON.png create mode 100755 smart_home_client/picture/temperatureSymbol.png create mode 100755 smart_home_client/picture/traycon.png create mode 100755 smart_home_client/setsecurevalue.cpp create mode 100755 smart_home_client/setsecurevalue.h create mode 100755 smart_home_client/setsecurevalue.ui create mode 100755 smart_home_client/smart_home.pro create mode 100755 smart_home_client/smart_home.pro.user create mode 100755 smart_home_client/smart_home.pro.user.2bdcebe create mode 100755 smart_home_client/smart_home.pro.user.2fa79d3 create mode 100755 smart_home_client/widget.cpp create mode 100755 smart_home_client/widget.h create mode 100755 smart_home_client/widget.ui diff --git a/smart_home_client/airconditurepage.ui b/smart_home_client/airconditurepage.ui new file mode 100755 index 0000000..edc2667 --- /dev/null +++ b/smart_home_client/airconditurepage.ui @@ -0,0 +1,19 @@ + + + airconditurePage + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + diff --git a/smart_home_client/camerapage.cpp b/smart_home_client/camerapage.cpp new file mode 100755 index 0000000..3833fe6 --- /dev/null +++ b/smart_home_client/camerapage.cpp @@ -0,0 +1,14 @@ +#include "camerapage.h" +#include "ui_camerapage.h" + +cameraPage::cameraPage(QWidget *parent) : + QWidget(parent), + ui(new Ui::cameraPage) +{ + ui->setupUi(this); +} + +cameraPage::~cameraPage() +{ + delete ui; +} diff --git a/smart_home_client/camerapage.ui b/smart_home_client/camerapage.ui new file mode 100755 index 0000000..f4a92fa --- /dev/null +++ b/smart_home_client/camerapage.ui @@ -0,0 +1,19 @@ + + + cameraPage + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + diff --git a/smart_home_client/client.cpp b/smart_home_client/client.cpp new file mode 100755 index 0000000..90ada69 --- /dev/null +++ b/smart_home_client/client.cpp @@ -0,0 +1,28 @@ +#include "client.h" + +#include + +client::client() +{ + socket = new QTcpSocket(this); +} + +//连接服务器 +void client::connect() +{ + socket->connectToHost("192.168.0.169", 8888); +} + +//发送消息 +void client::sendMessage() +{ + QString strLine = "hello world!"; + socket->write(strLine); +} + +//接收消息 +void client::recvMessage() +{ + QByteArray arr = socket->readAll(); + qDebug() << arr; +} diff --git a/smart_home_client/client.h b/smart_home_client/client.h new file mode 100755 index 0000000..a1f0839 --- /dev/null +++ b/smart_home_client/client.h @@ -0,0 +1,23 @@ +#ifndef CLIENT_H +#define CLIENT_H + +#include + +class client +{ +public: + client(); + + //连接服务器 + void connect(); + + //发送消息 + void sendMessage(); + + //接收消息 + void recvMessage(); +private: + QTcpSocket * socket; +}; + +#endif // CLIENT_H diff --git a/smart_home_client/historydata.cpp b/smart_home_client/historydata.cpp new file mode 100755 index 0000000..cbd2fa2 --- /dev/null +++ b/smart_home_client/historydata.cpp @@ -0,0 +1,188 @@ +#include "historydata.h" +#include "ui_historydata.h" + +#include +#include + +historyData::historyData(QWidget *parent) : + QWidget(parent), + ui(new Ui::historyData) +{ + ui->setupUi(this); + + //设置窗口标题 + this->setWindowTitle("历史数据"); + this->setFixedSize(this->width(), this->height()); + + //实例化 + chart = new QChart; + chart->setAnimationOptions(QChart::SeriesAnimations); //在缩放窗口大小时可以用动画进行美化 + TemSeries = new QLineSeries(); + HumSeries = new QLineSeries(); + LightSeries = new QLineSeries(); + SmokeSeries = new QLineSeries(); + paintXY(); + + //创建套接字,和A9服务器取得连接 + historyDataSocket = new QTcpSocket(this); + historyDataSocket->connectToHost("192.168.200.105", 7777); + + connect(historyDataSocket, SIGNAL(readyRead()), this, SLOT(recvA9ServerSlot())); +} + +historyData::~historyData() +{ + delete ui; + historyDataSocket->close(); + historyDataSocket = NULL; +} + +void historyData::on_historyDataReturnBrn_clicked() +{ + TemSeries->clear(); + HumSeries->clear(); + LightSeries->clear(); + SmokeSeries->clear(); + emit historyDataToWidgetSignal(); +} + +void historyData::on_searchHistoryDataBtn_clicked() +{ + QString command = {"searchHistoryData"}; + QByteArray arr; + arr.clear(); + arr.append(command); + if(this->historyDataSocket->write(arr) == -1) + { + int ret = QMessageBox::question(this, "提交命令失败", "你提交的命令并没有上传到服务器!!!", QMessageBox::Yes); + } + else + { + int ret = QMessageBox::question(this, "提交成功", "恭喜你成功提交数据到服务器!!!", QMessageBox::Yes); + } + + //清空坐标里的内容 + TemSeries->clear(); + HumSeries->clear(); + LightSeries->clear(); + SmokeSeries->clear(); + + paintTemSeries(); + paintHumSeries(); + paintLightSeries(); + paintSmokeSeries(); + +} + +void historyData::recvA9ServerSlot() +{ + QByteArray recvServer = historyDataSocket->readAll(); + qDebug() << "history recv " << recvServer; +} + +//画坐标轴 +void historyData::paintXY() +{ + axisX = new QValueAxis; + //设置坐标轴的格式 + + axisX->setRange(0,12); //设置范围 + axisX->setLabelFormat("%d"); //设置刻度的格式 + axisX->setGridLineVisible(true); //网格线可见 + axisX->setTickCount(12); //设置多少格 + axisX->setMinorTickCount(5); //设置每格小刻度线的数目 + chart->addAxis(axisX, Qt::AlignBottom); //为chart设置x轴,并把轴附加到线上 + + axisY = new QValueAxis; + axisY->setRange(0,100); //设置范围 + axisY->setLabelFormat("%d"); //设置刻度的格式 + axisY->setGridLineVisible(true); //网格线可见 + axisY->setTickCount(11); //设置多少格 + axisY->setMinorTickCount(5); //设置每格小刻度线的数目 + chart->addAxis(axisY, Qt::AlignLeft); //为chart设置y轴,并把轴附加到线上 + + //用Qchart在QChartView上面 + ui->canvas->setChart(chart); + ui->canvas->setRenderHint(QPainter::Antialiasing); //抗锯齿 +} + +//画温度的折线统计图 +void historyData::paintTemSeries() +{ + //设置一个pen给线 + QPen TemPen; + TemPen.setWidth(2); + TemPen.setColor(Qt::red); + + //把笔交给线 + TemSeries->setPen(TemPen); + TemSeries->setName("温度"); + + *TemSeries << QPointF(0,24) << QPointF(1,23) << QPointF(2,25) << QPointF(3,27) << QPointF(4,29)<< QPointF(5,29) << QPointF(6,30) << QPointF(7,32) << QPointF(8,35)<< QPointF(9,37) << QPointF(10,35) << QPointF(11,33) << QPointF(12,30); + chart->addSeries(TemSeries); + + //把线绑定到坐标轴上 + TemSeries->attachAxis(axisX); + TemSeries->attachAxis(axisY); +} + +//画湿度的折线统计图 +void historyData::paintHumSeries() +{ + //设置一个pen给线 + QPen HumPen; + HumPen.setWidth(2); + HumPen.setColor(Qt::yellow); + + //把笔交给线 + HumSeries->setPen(HumPen); + HumSeries->setName("湿度"); + + *HumSeries << QPointF(0,65) << QPointF(1,67) << QPointF(2,64) << QPointF(3,64) << QPointF(4,62)<< QPointF(5,60) << QPointF(6,58) << QPointF(7,57) << QPointF(8,57)<< QPointF(9,55) << QPointF(10,56) << QPointF(11,58) << QPointF(12,62); + chart->addSeries(HumSeries); + + //把线绑定到坐标轴上 + HumSeries->attachAxis(axisX); + HumSeries->attachAxis(axisY); +} + +//画光照强度的折线统计图 +void historyData::paintLightSeries() +{ + //设置一个pen给线 + QPen LightPen; + LightPen.setWidth(2); + LightPen.setColor(Qt::green); + + //把笔交给线 + LightSeries->setPen(LightPen); + LightSeries->setName("光照强度"); + + *LightSeries << QPointF(0,48) << QPointF(1,53) << QPointF(2,52) << QPointF(3,51) << QPointF(4,53)<< QPointF(5,50) << QPointF(6,55) << QPointF(7,60) << QPointF(8,68)<< QPointF(9,69) << QPointF(10,75) << QPointF(11,62) << QPointF(12,55); + chart->addSeries(LightSeries); + + //把线绑定到坐标轴上 + LightSeries->attachAxis(axisX); + LightSeries->attachAxis(axisY); +} + +//画烟雾浓度的折线统计图 +void historyData::paintSmokeSeries() +{ + //设置一个pen给线 + QPen SmokePen; + SmokePen.setWidth(2); + SmokePen.setColor(Qt::blue); + + //把笔交给线 + SmokeSeries->setPen(SmokePen); + SmokeSeries->setName("烟雾浓度"); + + *SmokeSeries << QPointF(0,10) << QPointF(3,10) << QPointF(7,10) << QPointF(9,10) << QPointF(12,10); + chart->addSeries(SmokeSeries); + + //把线绑定到坐标轴上 + SmokeSeries->attachAxis(axisX); + SmokeSeries->attachAxis(axisY); + +} diff --git a/smart_home_client/historydata.cpp.autosave b/smart_home_client/historydata.cpp.autosave new file mode 100755 index 0000000..157ade8 --- /dev/null +++ b/smart_home_client/historydata.cpp.autosave @@ -0,0 +1,189 @@ +#include "historydata.h" +#include "ui_historydata.h" + +#include +#include + +historyData::historyData(QWidget *parent) : + QWidget(parent), + ui(new Ui::historyData) +{ + ui->setupUi(this); + + //设置窗口标题 + this->setWindowTitle("历史数据"); + this->setFixedSize(this->width(), this->height()); + + //实例化 + chart = new QChart; + chart->setAnimationOptions(QChart::SeriesAnimations); //在缩放窗口大小时可以用动画进行美化 + TemSeries = new QLineSeries(); + HumSeries = new QLineSeries(); + LightSeries = new QLineSeries(); + SmokeSeries = new QLineSeries(); + paintXY(); + + //创建套接字,和A9服务器取得连接 + historyDataSocket = new QTcpSocket(this); + historyDataSocket->connectToHost("192.168.200.105", 7777); + + connect(historyDataSocket, SIGNAL(readyRead()), this, SLOT(recvA9ServerSlot())); +} + +historyData::~historyData() +{ + delete ui; + historyDataSocket->close(); + historyDataSocket = NULL; +} + +void historyData::on_historyDataReturnBrn_clicked() +{ + TemSeries->clear(); + HumSeries->clear(); + LightSeries->clear(); + SmokeSeries->clear(); + emit historyDataToWidgetSignal(); +} + +void historyData::on_searchHistoryDataBtn_clicked() +{ + QString command = {"searchHistoryData"}; + QByteArray arr; + arr.clear(); + arr.append(command); + if(this->historyDataSocket->write(arr) == -1) + { + int ret = QMessageBox::question(this, "提交命令失败", "你提交的命令并没有上传到服务器!!!", QMessageBox::Yes); + } + else + { + int ret = QMessageBox::question(this, "提交成功", "恭喜你成功提交数据到服务器!!!", QMessageBox::Yes); + } + + //清空坐标里的内容 + TemSeries->clear(); + HumSeries->clear(); + LightSeries->clear(); + SmokeSeries->clear(); + + paintTemSeries(); + paintHumSeries(); + paintLightSeries(); + paintSmokeSeries(); + +} + +void historyData::recvA9ServerSlot() +{ + QString recvServer = historyDataSocket->readAll(); + qDebug() << "history recv " << recvServer; + +} + +//画坐标轴 +void historyData::paintXY() +{ + axisX = new QValueAxis; + //设置坐标轴的格式 + + axisX->setRange(0,12); //设置范围 + axisX->setLabelFormat("%d"); //设置刻度的格式 + axisX->setGridLineVisible(true); //网格线可见 + axisX->setTickCount(12); //设置多少格 + axisX->setMinorTickCount(5); //设置每格小刻度线的数目 + chart->addAxis(axisX, Qt::AlignBottom); //为chart设置x轴,并把轴附加到线上 + + axisY = new QValueAxis; + axisY->setRange(0,100); //设置范围 + axisY->setLabelFormat("%d"); //设置刻度的格式 + axisY->setGridLineVisible(true); //网格线可见 + axisY->setTickCount(11); //设置多少格 + axisY->setMinorTickCount(5); //设置每格小刻度线的数目 + chart->addAxis(axisY, Qt::AlignLeft); //为chart设置y轴,并把轴附加到线上 + + //用Qchart在QChartView上面 + ui->canvas->setChart(chart); + ui->canvas->setRenderHint(QPainter::Antialiasing); //抗锯齿 +} + +//画温度的折线统计图 +void historyData::paintTemSeries() +{ + //设置一个pen给线 + QPen TemPen; + TemPen.setWidth(2); + TemPen.setColor(Qt::red); + + //把笔交给线 + TemSeries->setPen(TemPen); + TemSeries->setName("温度"); + + *TemSeries << QPointF(0,24) << QPointF(1,23) << QPointF(2,25) << QPointF(3,27) << QPointF(4,29)<< QPointF(5,29) << QPointF(6,30) << QPointF(7,32) << QPointF(8,35)<< QPointF(9,37) << QPointF(10,35) << QPointF(11,33) << QPointF(12,30); + chart->addSeries(TemSeries); + + //把线绑定到坐标轴上 + TemSeries->attachAxis(axisX); + TemSeries->attachAxis(axisY); +} + +//画湿度的折线统计图 +void historyData::paintHumSeries() +{ + //设置一个pen给线 + QPen HumPen; + HumPen.setWidth(2); + HumPen.setColor(Qt::yellow); + + //把笔交给线 + HumSeries->setPen(HumPen); + HumSeries->setName("湿度"); + + *HumSeries << QPointF(0,65) << QPointF(1,67) << QPointF(2,64) << QPointF(3,64) << QPointF(4,62)<< QPointF(5,60) << QPointF(6,58) << QPointF(7,57) << QPointF(8,57)<< QPointF(9,55) << QPointF(10,56) << QPointF(11,58) << QPointF(12,62); + chart->addSeries(HumSeries); + + //把线绑定到坐标轴上 + HumSeries->attachAxis(axisX); + HumSeries->attachAxis(axisY); +} + +//画光照强度的折线统计图 +void historyData::paintLightSeries() +{ + //设置一个pen给线 + QPen LightPen; + LightPen.setWidth(2); + LightPen.setColor(Qt::green); + + //把笔交给线 + LightSeries->setPen(LightPen); + LightSeries->setName("光照强度"); + + *LightSeries << QPointF(0,48) << QPointF(1,53) << QPointF(2,52) << QPointF(3,51) << QPointF(4,53)<< QPointF(5,50) << QPointF(6,55) << QPointF(7,60) << QPointF(8,68)<< QPointF(9,69) << QPointF(10,75) << QPointF(11,62) << QPointF(12,55); + chart->addSeries(LightSeries); + + //把线绑定到坐标轴上 + LightSeries->attachAxis(axisX); + LightSeries->attachAxis(axisY); +} + +//画烟雾浓度的折线统计图 +void historyData::paintSmokeSeries() +{ + //设置一个pen给线 + QPen SmokePen; + SmokePen.setWidth(2); + SmokePen.setColor(Qt::blue); + + //把笔交给线 + SmokeSeries->setPen(SmokePen); + SmokeSeries->setName("烟雾浓度"); + + *SmokeSeries << QPointF(0,10) << QPointF(3,10) << QPointF(7,10) << QPointF(9,10) << QPointF(12,10); + chart->addSeries(SmokeSeries); + + //把线绑定到坐标轴上 + SmokeSeries->attachAxis(axisX); + SmokeSeries->attachAxis(axisY); + +} diff --git a/smart_home_client/historydata.h b/smart_home_client/historydata.h new file mode 100755 index 0000000..49161c9 --- /dev/null +++ b/smart_home_client/historydata.h @@ -0,0 +1,60 @@ +#ifndef HISTORYDATA_H +#define HISTORYDATA_H + +#include +#include +#include +#include +#include +#include + +QT_CHARTS_USE_NAMESPACE + +namespace Ui { +class historyData; +} + +class historyData : public QWidget +{ + Q_OBJECT + +public: + explicit historyData(QWidget *parent = 0); + ~historyData(); + + //画坐标轴 + void paintXY(); + + //画温度的折线统计图 + void paintTemSeries(); + + //画湿度的折线统计图 + void paintHumSeries(); + + //画光照强度的折线统计图 + void paintLightSeries(); + + //画烟雾浓度的折线统计图 + void paintSmokeSeries(); +signals: + void historyDataToWidgetSignal(); + +private slots: + void on_historyDataReturnBrn_clicked(); + + void on_searchHistoryDataBtn_clicked(); + + void recvA9ServerSlot(); +private: + Ui::historyData *ui; + QTcpSocket * historyDataSocket; + QLineSeries * TemSeries; //创建画温度的线 + QLineSeries * HumSeries; //创建画湿度的线 + QLineSeries * LightSeries; //创建画光照强度的线 + QLineSeries * SmokeSeries; //创建画烟感的线 + QValueAxis * axisX; //X轴 + QValueAxis * axisY; //Y轴 + QChart * chart; +}; + +#endif // HISTORYDATA_H diff --git a/smart_home_client/historydata.ui b/smart_home_client/historydata.ui new file mode 100755 index 0000000..5eef1c2 --- /dev/null +++ b/smart_home_client/historydata.ui @@ -0,0 +1,85 @@ + + + historyData + + + + 0 + 0 + 992 + 612 + + + + Form + + + + + 410 + 30 + 171 + 41 + + + + + 华文行楷 + 20 + + + + 历史数据 + + + Qt::AlignCenter + + + + + + 330 + 550 + 111 + 41 + + + + 查询历史数据 + + + + + + 580 + 550 + 111 + 41 + + + + 返回 + + + + + + 19 + 79 + 951 + 451 + + + + + + + QChartView + QWidget +
qchartview.h
+ 1 +
+
+ + +
diff --git a/smart_home_client/lightpage.cpp b/smart_home_client/lightpage.cpp new file mode 100755 index 0000000..d5a6634 --- /dev/null +++ b/smart_home_client/lightpage.cpp @@ -0,0 +1,26 @@ +#include "lightpage.h" +#include "ui_lightpage.h" + +lightPage::lightPage(QWidget *parent) : + QWidget(parent), + ui(new Ui::lightPage) +{ + ui->setupUi(this); + + +} + +lightPage::~lightPage() +{ + delete ui; +} + +void lightPage::on_livingLightONOFFBtn_clicked() +{ + +} + +void lightPage::on_bedroomLightONOFFBtn_clicked() +{ + +} diff --git a/smart_home_client/lightpage.h b/smart_home_client/lightpage.h new file mode 100755 index 0000000..1fcc476 --- /dev/null +++ b/smart_home_client/lightpage.h @@ -0,0 +1,30 @@ +#ifndef LIGHTPAGE_H +#define LIGHTPAGE_H + +#include +#include + +namespace Ui { +class lightPage; +} + +class lightPage : public QWidget +{ + Q_OBJECT + +public: + explicit lightPage(QWidget *parent = 0); + ~lightPage(); + +private slots: + void on_livingLightONOFFBtn_clicked(); + + void on_bedroomLightONOFFBtn_clicked(); + +private: + Ui::lightPage *ui; + QPixmap lightONPix; + QPixmap lightOFFPix; +}; + +#endif // LIGHTPAGE_H diff --git a/smart_home_client/lightpage.ui b/smart_home_client/lightpage.ui new file mode 100755 index 0000000..b0a1fbf --- /dev/null +++ b/smart_home_client/lightpage.ui @@ -0,0 +1,89 @@ + + + lightPage + + + + 0 + 0 + 342 + 441 + + + + Form + + + + + 10 + 10 + 321 + 421 + + + + + + + + + + 200 + 280 + 101 + 61 + + + + + + + + + + 40 + 280 + 121 + 61 + + + + 卧室灯 ON + + + + + + 40 + 90 + 121 + 71 + + + + 客厅灯 ON + + + + + + 200 + 90 + 101 + 61 + + + + + + + lightPageLabel + bedroomLightONOFFBtn + bedroomLightONOFFPictureLabel + livingLightONOFFPictureLabel + livingLightONOFFBtn + + + + diff --git a/smart_home_client/main.cpp b/smart_home_client/main.cpp new file mode 100755 index 0000000..4d6c97b --- /dev/null +++ b/smart_home_client/main.cpp @@ -0,0 +1,11 @@ +#include "widget.h" +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + Widget w; + w.show(); + + return a.exec(); +} diff --git a/smart_home_client/picture.qrc b/smart_home_client/picture.qrc new file mode 100755 index 0000000..ed2108a --- /dev/null +++ b/smart_home_client/picture.qrc @@ -0,0 +1,14 @@ + + + picture/light.png + picture/temperatureSymbol.png + picture/airconditioner.png + picture/camera.png + picture/humiditySymbol.png + picture/traycon.png + picture/lightON.png + picture/lightOFF.png + picture/airconditionerOFF.png + picture/airconditionerON.png + + diff --git a/smart_home_client/picture/airconditioner.png b/smart_home_client/picture/airconditioner.png new file mode 100755 index 0000000000000000000000000000000000000000..0aea10fe50300ed0d2c78fa03316b26f110b01a7 GIT binary patch literal 12717 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 literal 0 HcmV?d00001 diff --git a/smart_home_client/picture/airconditionerOFF.png b/smart_home_client/picture/airconditionerOFF.png new file mode 100755 index 0000000000000000000000000000000000000000..8cfd0a23a34b006e706525c4a03d79f58bf37ddd GIT binary patch literal 37778 zcmV)IK)k<+P)de0`+ZX}IHYDue})oONU&hD?8-8tGbv*$?NJ!-W# z?4|=jZ{R@^-V{(Ml+8+?5wZ8X@4d{ZWT8+X*k*PaWFoWDM7((Kn(x}@&CkzAkfYgb zB9%%Zo6RDfPQx9Z=dF6a-4R8ReuvL|R4NsHc%CnRo6j?HUf)lkUaunzLnM<){hUX= z-qhd6AMz{tP6D}HR-WZN@(zE;&wSr}&i5jH&tG?pyuWI-ibkWMV_EB1@AvLE{0`?R zlgYF`^L>Baxp4=_9={I9!Z`|p;EwYfABUT3cO(*t&yDGB51y0bi;W=uKp@X(gO`ql#oAB}9;tubSbIIm}IkFqik` zyK;j*T8zVqjiR9ST{F(xk2QWDU*!JW(Md>m^ZT`g(MAcg^SkaGolN;<9Ba|RMz0YU zqW3Z;_xrXmz4s%|EN-lB{x*8V8IMPDy)WO*5pr-sz|;w?8}~iS03`UjG5|G+=Tq7> zltDyz%6CH1B7uA-5Jus9K9VVFCv(HTK6}bAWE`F^!SnEha@`iB&f z8)l&OC8c8+-)bOOCW0~n8HL=F5GDxq?IZsM}Tq3E=2(KxhC*@(Z z*J>g(wiQ({&qG`352=9u*ofn+HKA0HD&t07l_XeHi&kEX!2a_tu8FHGb3$q!Jkg%}&#jBQi9 zuxHPG7$4grHd02u7b@qH;qIh<{ul`StK;zWJV~j*qX7uZ}Nv zd}$062+`9HBC}M>WduPDrK#?9F|T)K1 zB-i)Jkf_U9#dbno&X*QD%$G-2m_;}fbV%?!#GCw)UTr-u_*cj8;fTAg-O=eb{<5wS zcmLmu%l%7ZAbQ7|wFVL?qj{R@O^fi#E5E|)ufL3ukzPD>Xg~Jt-HzVw3_O8tL32qS zHTgATLre0!qBu||iz+B;3RBkPvnG;$9lbp%Y~MPLeS3OD6HVjH=~u9_G>hk-{SJnP zA4I7rH!IIHF|vUj5^6Zpli|4)4DTmL(@?U<1B$ytR76JADMr<6%lV|z_F1~Oq^ zGx{&<_$m(chrhK81S6{&=pPj}_FFuR?`*#T=G=%ttcq2l#ikwXBo=_MnC<^10 z5eNf$URl0ZZ^d_<7tL1&Y9b}fRBzPKY&MWer-e}?G{YitU1@CJl|n5X6TBe+&ZX4;lxm)Jj6w z30%HpO5j>R1`z)eA|cd-Lavv8^9#{NO+5biLl_z?$VZ}aBGE9g4|z>E7mD@( z#1``8b9o=AsfK`kc(i{=+>!MFgrb?~qvkVtfnK^meiKr2tq4rJi6@>M#n@Pc58izR z(^oGb>B*RcdlH@r=B{QS-@32=@S5YRYODP7aHPDGG6yg@DUwHkOc1)#Mx{u}c=@ebGuu zfm0E^aK@di*9e$h-PH01U;Yl7a&2GUkIZWlzV9Us1Icd_^f!nWtJdey-PMi9AKQVS z|L7`CpL`F)gZClRRnRgCmRm4en_1k=hAp{ZDtHtskKT!o;;HqnZpM{uaNImLlFaH# zFI*ggr5&7aS4VTF>$}&jbo!1pTkp6NOmbs#Ykjw+3_RR?#OY(BWe`00n^rjtOiGw5 zL%7$&%@gN5PTL!;cj6dK8BL_;;Ok^QpKqPqeSt+@nh`AzH>vKmn;0&ZD{{(alPEV9 zarli_(bt>9efRA|HY0o7}g^4wO)719}-~6a1kglxm@hzK1Fg4MGD_727`r3I+Y~78ZkwBCTL`$W# z_9&SkAWR8k3&BNvq|i!K*udcuSUYQR?z9MTCUmg}E`(!(J26n_wcKltg=@khul0_N z5(x|QItg|ozwNBEA+hqY5dwAd!h3P!aKeV;VR7EQdKuk#TmhqF26wM_stt0=gU@c= zlJN>Xo{UUUtJU;9GK-T2?qYm)7vgt$bNtTv^Pl1LsiXMjH=f7XXpcyIYM+uwe4cAX zy>E@mybNFk8CEceMK`q_39~%Z5kKU*QF;+q?j2&1|s7njJJ=lP+rrM7?}dRJYH;)$R}SvkY0TRl4ry?HT-A0mP8jit>MXBzoEQJh-5^!PM<2c~ z5GsQM_wQDRK%>4ST8IlOwobSx46-c0uNd3LC7Wtyby68NDX)#m6KH0&j)^rxenP!w zVQ2{582vVjKy4yV|MbPa$s|Q83q%|r9Tz68;O5LZluCz?E#w5Y$!85H)YM7|dJdzu z#P^J+Vnc^3e~uq_s+@Fl=N7J$@$R+qG7fvb=;6lFIkq_bT<^DzSvnc-ZpIeZ22M!b z3Epn>yrfm0E53GdL~y4u#^=F(HyM{|e2~kWM0Dk^@e8^OIWFe+mzL&m=F|xsdgwlk zjSL{DQ~S{4R+S$Vg?Ja#?#X36ldVmA$4_dRcD>GPWNFz5K?@WKs=`b%7V=8a5Tz3+ zv{L(@^+k&7>jjk!U-f*fOAY zREQFWc|KQfwDz%!#EHpCGCsG<(Z5)Eczo?P`u+7jkB_JG+;=*M`)zz);wHdG z-NbH=9OHeF`C035V{-y5&e$7aQU@>NOr4D1VEo42Njr%nu94hLUb%c3<&`4#?%pAc zLz_lEqk}+ToR=sG(xUdMs%ByNwMWS0r39j}+#!!N`z6Tl(;Dy$HR02@g?Ld|({vm# zCC6};c?jdsc|hALq6d$VuP#!nQ9-WIKqgy5ar&CvL)B=VFeN-<1cPZsVl|n1$&=RH zx;@P3v|l>w{x@nP+-^SC(rW9CrPJQ%gg$Fs`%Vnri8?wz-v|ure2ycWJ4yJpAY7b* z?zVqH=lJ8V<8$t=d#CZmd8EZaof6fl&N%nG*Krj_jO%dV`Sa&7FwlpAzFy6&W(GE6 zIt-8|=(-kSPo;SNnqfTO)BXpkWI>oPi|bcrP$?~8V#^p(!c5JO#;`CC)s8&)U&0TK z+gTx8Q-iXg3*0MfS`e#P!)Az#sOdzKCE&}#u-&Su*vuqkLaB93(AM!ZE1TzXU1Quo zcV3A2#BbC9jn8wZw`-#kb|Z%Py&Ud-+&#s|x)Cksz8h!mPOWsOYrFGw3UT+HdpX=S zoZycOmAlpc?)$44$b8_h!D(&m?)jc|CN$K6!1u0Ry@HXEAu&M3AkHSytdzv|FUfa> zcpF6-a8t9cS)rN~L!NHvS~Wr@--VThCVupr8) z1iz&@j3YrHoX?DgvNDl|TIIaVQfM}-Vpo;WKd?!(TFQLpw+(f#H4!iw6xNNsu}O3_ z>rRukQ-SWJ0ag)0r?mI19d^6l+iQ5}AY@xcf9J7BSdWI|%=0-2XYIp{z`(dI-Knwf zbabMjwY2rU9G&+4-J*!N51?h!wm)w7Vv9>5CWrEUGK@9{u|&+semaxH(((ds&Q4=! zw18xu_Q;~x^~=!g0%{==ctYN1pfy`SHAtc9=jFSi9sDl*=)Zr6!@r$DKDiZXuSc7U zkf!~Fz_?^XVVoznjTiMGY7XiH!GH`Sr}3g7T1J$dLo+dtAiVB*Wr3LA9IH}$I^OmzqbBG8X*n?xutwBvACZ}P+v~wHMEpB2 z*%G&VwCpy|zUPG&a)zo=r$&cc%Pr5j>qjZ*zFusop3QO zwBtm7uZ$Bv*IG={iMG~zbZX_#`A>QN)fm*%mQ{pD)INkz+QQ2BG;y?2E}8ItgIWc|mLhq5WfBXeAPNo8hwxg%6-fSWvm>kG zI(PJ;H{bd^H8hTl$rYbdju{S2IC?SM)_jgCy)cpm%2bWcHCj6K_=6Kxtl)z@jw3x z*Kgdy-~821j7?^MbVZX+!zd{{Ct8CAaLq`)*BVPoRFtulF{2et(*b%B(jk|k1WCx{ z3%GLSiu^W>u}u@|xX>6@qQgLpoZH%_^yup_e#7ns+Az&=9|eN7p*-7A65;v~spC0* zX76*Kto3`(NH_2EuRX@c>|+C5yyg+DQYEn)@!UV_L%{#PW<(_o*KOeLt#mPNXansC z=}M)Nz_bAQJOiR8(UTd_A@kJ421Rj!%riUj=+l!( z5{O7;oy?JDb+mWQ0G)wX93!As}=*<*9x=L!IHScBCdCO2empNZ0xvG+psTRS9F~J9<)*CZ@(k9!m1zvSvDjVFgq_ zQQ!$v73BL{aQ-Ztka(Dyx)0rjLA6(y@esk;Z|+_#S!0oqvaekL(t^ zXc_hTGLk9LSPbHd=Fw1(molA5U5{+7DJm;`153R_n_LR^k=u+)br2tX@CkYfQ<$2( z52+NJkuZHjzLPSQvL+;zbONJ(TBA?%U~sLJ;OIu*Q(@K;XOcL=}u@elCvho55S?gE~9VFH80Y2~|g zI%T|WUc)e`NOcB2by1Z;L(N2>Gb0L&8=HYtmMQqDE_v?3nKLC^yV}6PgO6ZnXd9YA zLdNWApKVRsjuA+-hHi+k76fV&RJ2Na8HRM{@j9IlYo5nmGg{3?@uziv-tm*xYcFg+ zzUUD}tMraz&efu19U^QAp+C-}lle9ho7%_`W1#hIAvy{O#q^sIvZ<-T|vrc)_15d zP`54#O^r~f35pGcW2)f<()mgGZZeDc#Q^WWcU^3s9oVzyDRlRYW2G!CA&jYx-^kfG zZOFFjj-%TN@YUwO`pQIewL1J*!qMv1JJ~=jDeXL7M&x+wPrbdoV}AF=&ezUe{RI!t z*mzE%wU{P8E`PoI`{QMv-{sL_piXXdF(G9X>&m7Zn{_p;@`NVl1?cPR7sI`drA3w# z^ohi;qAMSuR$9>-o=ufC6&>({XN{s}zy-2KRPRnVxzzcvCc5GSNUYT2dRS*({^cYzPCVg;558W;fpd;0mta0ABi&uVZv;5*b=`b=q&V7IF+NibQ*IF?ibq(9{ z4)>kTtm)ew>p?u1?i5cZ?M&y{Xr@Ix*xX{EPXE0byt$Z`MMq{stS}5(r41yELZP6E zp)=PPL}3gfnT~|Gm*l&w6(SLLVd;7Uum1K!oH}+MsicSJUpR#AI|pRJrv?5c(Wo_* zC{oETwNQ-asmY>LjlJU)<(y?&di}Sd3`6lLW&0=A09_1C$lugE%GV1ZGv2I1am&s<3)6J^Vdf%qz zBdOQr-`wXYn=_kPrI_}gw1Goz)glC!&g5*No{iNov%^N{-6FYE|A?99o?}c;HLLy? z#t5`!ZwC58oj6vDMVc?jUj*`C(AsVuW}ObElaT|T_I-{eZr}OF{caGl=u}~-B%Ln4 zIY$fFwSv8NJYi@(-0@6`)!F)ywUOgN%C&;3oq1|;f{$k<-0KlP$65??r)$JxK<*K9 zW1Ew4fn2sQCzSfD^`Sdq1GPX^Kz97Vq()_ox=g#B!$&f%)6d42p?Q< z9-3InoHV&ck}(-dSf;S#+Vv9|dFravW)LBeC@@*$EGcNW&AlIq%K^&b`x(Nc^9Y7oI$ZvLMkK7-QS1Nkzu1X z*)PFk+E7YuJ3o<;DM)H#`-TdLz!qWEv_dy*1&Et=+d<~}nc~Any{^)qO;tE|oR?ay zidwa%1n!E$sI^q1SpmgGOJ|sJl$VESw2TQ>n>~*b>Y(9g`Fxi=cbQ62Za$VsTH-RB zjF|*UxkguN6)~!pvV&k;PGdY7R(}&1Bak#ym9-IR(}H#JplxUiAq|@KT44=^mK{tG zueNp9b_5*Hnd?l*jYA|ytge(`J?6O6VT7K)ijm?Bv>rrs-*w|~TZOh5h`%L7;UZDO z8jj>mri}gLnTa&pEExVSIjgA7wc%qV-7=c-c22fc^ppf4zW88|jj>x&+ zn30q0#EW152kd{~anX8R>UDeTo%e9~&390))G@hrD<&qVFfiC}(~lBnuU1Z2Bh;+$ zCOv!5rrK&R)NPLf5;`wWCNhfzWv)OMG;G0HeFSy&QgY7tH>)38P|Xqwf5Xq~O_PjU zsZ{lukT0DwjZfU3ptV|Ef0I!L>r%~S7CC4ULoSyW%~r6VC$${JX}qqkf(VK(T?ei! zHI3*?y6w1EW!0u3Vr@XF?T*cukV8BTi=ObL~0>^P@!T!{*qtGBlgJw4s6_2a#zL20VZ3PMky5}VG;gZm2Qvjq_yJ@Orv zWcT9Sr;GSV&Ut+{A&mMG9(nxFF|qXlfov%yxS#y^r+DSH*Kz33BY5obr!hIXO&5K6 zx!fuM%x2j{B~-#CA+Q~>5{s;5wa!K;4RmF4!srF<0;Dzc&M>#ZRx{zw(2cCt3AF@W z_l31ax|8OFJy96iJz!na40nz|zt?O~^VxnAF^?HFV#7ihJ(mz|Q|-g1W`gMZ>S?R$ z2F}gccd0Q9ByEU52=sNS+`!T@o5sv2^ek5@DpcfTNXuF?B*A&nHp>A%~iTHe7FS zuVp4e#-z?0nT?-iGqf8+yRA)H&lA_2YuOs^y-r6#{P}L22OH5)x3hsZa>P6MvtD+3-Xrq`qVFoaF>lRL)JfVcRZR=(X4GwB`>6MF%nDHC<;O%QDE#`6g z@+TrOn>hQ~8NB=6TS#OV@t1$|7zT%j(2Qop%8J6;lTV|se@F?aUT*4Qw=$ru)*$0&Gu%16BImt?PtKmj`HL4(5xZsU)K)zB;6aRw zW=*AiJ&)Nq%xNO?k0t{p6WZG$&{(hSx8M?_OzhVh*+$ZvRKl2xHZX)926Sgz8^JtSjK^-P^5h!zco;e>& z?~BD1EG{i;>Q=c_*7ptM&l$*%Q0J1uf)IINZ~()@#@=*pcxTV$@}@~h!g@XRyNH(%60y>v+P?Tu{nvaCDS2HaFB}}Mur%yQr3;L7;hk; zJOAlt_|;E;gmb4)h#gVIVf&6p zuz7Ny))p~qn=zeNfAbr>`sy1vc<>Nj{F86ULZmh8o3Mh!LIXQ(UGQ|7vk7EY7P+{z zgj1(Z;@I({n4X!D>z1{8_1cxIxOm|r9(m*ufu8p(?9tdwXd^h*6{fLGwF5*eyG&?m zq|msKRS?0zIOiNNKlj>E%A|!c?wo#Xv$Bxzim#-8vCrKf-~;0;HGGm zYEzvjWXSnq5-ZiBFzPL_kBd4^jxnKOfwVx;x`qvm2J69~&`+A$i*;i%2ZWM?gMAnt z8AP|(a*Z&w8%rD5s6sI`b4!g!ZH(yl{N)&?lX2p%^7R;~Q;WLaCLKLMgL;0e-qR*s zw_@9(M1(LCnmGE-kt2BRmp{iqP7E`#Q?4)1;$oP^mFZcWEU)1HJ$ulsL|D9D#aRCo z#)rmn?#d@%3%ci?e+E1E2m>U=9uX!jmT$@=FJr0L5I7NGX(7P;oWP8Qgb;g=z{7_` z+w8;CH|t0-P?cIZqqbn9QM2y%Kp=ccm`b1}ZETr8RtztTHcK@_)ofMTQS}Up*NT|A zdKuGKFUdVDV#}6MOiYdm6ZHxjxDO8;jvNNoL|C~>x(jp!l2#=-g$Q#)#fd&TulliRYX!PEY!7V zE}ia0Pxm&}S_A!CF*>#r<72y!D+uIco~ma&Wr>uB<&{N&Za)(!mcaARJ%f>v5tY15 zt0A)!8frwHol}!GxEUE+gy$f1*s)`WZZnx-DY=zwdqe>2*}V%lZro79A#5R0dX8yq z&@e8M7+29YcGgZZaT3EMEqAbG8uz|RaLY$(fcvokXG_IJt#i);=A*iM|kBgTs;@Y)q>Ipq`=s{gi9jr}|r}m&wPiYCvy&W52pw1)d7R%Ju zP}nu?_KGg`#6+A|ic12OevMB~9K&Y<-GX`#wV+Ro|8Bv_-6#wsG16Z^p=(sI^SCh1m=NrM zoHwT#)wx{1V024(&U+(p^1b)p5hA~WZ+!Ec*tUJEd^e3sxvJ7X%_fSTu`eR$Y67eq zI8p;QpP$slP1wu<5(VK2e>*v`MeMo(VMqgm_*qM<=&lYSyjJ3o^*pr}!bvr6RR%yi zZ`1`Je2Cmhth&ALG6E-ov%&X}zZ&A-rwWaF5d7a866h0bfhQDf@%6LK4a#DmrXqnN$|Hv>-QxADtg zzKp)UK5XAUW#Um>M?0kv;afV7jP;z2o z68rb?hEop3pkb>GLqb}F1iRZ|B+S1pzEvz*1uD&uke_ey3+WI${upX{RBz#Vp z(n;%8`J0Y8EKwO(I8-W!w(KLJu@}#3zL<3LoSoyh&PS#Uqga22n6p8@Y0qQgQ%Q{z zUA%Z1S1w_t>D)M&=X7_VawRFI0p5%Vq8SWDc&qZ(!$xU!X&2c6Lt7 zOs1!=;;2AyGWyQ#yD=xI9g@$qS)rUK=|JX(~)Y8HnemD_cRD{3aE-1jIPxiA?TT*fzdh z;$>)KL7I5!o8(b=CeN*7wd_0_F&f3RP0JdNtruO{6l6)2-XTgWE24#R>ay?e?-$L} zBSdR-;O5Pnv2*7Re0=mMW^UZX{H-~?Us9Ya!i!@6s@F>nb*aD%ryn@SDW{@d)sEDL0EjH05 z8Y-LY7KNVDL{r8YD9NthxF!;)tZKbnt?Hzb;MB;EO6J~e7PF>_P)#S<7(UB}z@|&7 zXY$lO_~0Xqk8Z(^?fYa*eZl}tLGjdvG2Spw;a5$r!{=(HqV|ysq#7w7s6n31nTUBh zV*-iYg>K|UdvXyqOCX)n0HR7@&$wB=R$i2yKaKaWCtju%xz`2pj2+=e?FDk4vQ>-b zIsf-+P2~;^h&GK^j9N0scugv;V>S+sy4oiub;jfFo~O0*=_PWm#6E>tIr z&-u`Fsb$d)*L8hHN5?b)nAdFuI$LA3T<+O(FxalB1*T?8=z&3X=ISx6XUtJ1Jum0dVkP3=9m)+L>HL&t@)o3FB3)HEP2AT>{bf;M`|tarD?JOifM-lP8tw zVeQT^HmWard|?|XhO`X>v3ZCyluZhu8q?RVTt-%yY17D%1|aF`PG!5$)jcSL)2AMw z+6pkaX%geZTTm-E&=AZ^qPVhzK`|mV^`0=H9%y=rmkvxr5gM;HKaNOO69=NmGM(Ju@ zSy|SOLQGg)TwD~5wW1OJc4mUn$Bb8G#Q5&YcPRmqk+QkGwV_O)knxL*XtHe95Ogw` zHZE4(8PB&2+eT%YPZl`M7T8jN=<`}Cc2J`cE}7Vl308W9T6W=0xr1R=jrYiPdPOsj zjg1KdRZOJc!c6rHMh0uRehmDJ!D~LQ$^3rw!F%ZLr9-D+=aSjxZ31ie5V9~ZG#W>R zpJx(TQ_R_u`KpOVUtVOX{gMW?&z-%%JHmkn9u(L%iWONGmcBSR=*xZ4;gD1&f})av z!BN#jCr+HgH(q)Xx!x{e*ucz75Ve%gy)e-iwt)Uhe=lIN>!bzkgbgw^B&sq6&cMp=`|+T(50woL_e8OMvE_gYbjeA zE;3#(>w1keQ$As{Mr^4Bj18vArAc4M-`6MOY8F&u8pGRb#fD6YzOULRR1K970k?vy z*QV8Oq0zrmVuQ*-Z5bB0+94g0ze@1h(m;*BC7Ft^ur{SJF?vsnOBE5O!1;4mWKJ8{ zyY~PF2ghYjJxw7?C>k*~sls75AM#w+ED2xJ#oj)05$Dcd#AA;6jcrD}k3CBUNK z?D63dJg{dc#)kT25@k`ix2Z1}RTwBElfSTV3nz}hhX)QF5Qs!5*ifRa&di`hwvxi-2r6li{6|R^7 zorRP(eSzc3sqK|*C0iOM%d7Ek_I^#aVml1>noh3189QyVR;dMC5vc}RP1bzWO2ab5 z4$ZcR(k6K7xIJ=(Wg1U06kv#!4f*Gli6$qf^xhYj7BwTov(eqQ55;k|`^V<}DeCs^ zhGw!Rf-s89GKWGZbGMcSzTL#o@EFF&CbeG%X^8EewI!L;BE~CY3+7FEMN`JwJ1`{k zkx>RZq;a80<6@q5dO1JOT1RL4PG>A=BfCeemHgVug(D|3+DwlNy&9p>jM@{C!N)xF zn`H4eZJok3`N^d#)7mJpQVBG2-PILh_s%|S8W&g*EGj+?n?;d2OIkWWUjVarFI~K> z4SNDM`Vc_qMQKw-$sHP;mSHz+rj;;do8=Q>PM9&F=c!a`>ctrr=ArGvdrGIx&5`JJ z?ll3_+^nmjq?blLZPY>n=>#kawoWVIWz}OO5cTR6fpY>e2L~}UG@=Ag2-nkNq`5k- zwNlepX~|qMYCn?_!(`B^mOhZNOfqO)nTyZ#4)WP~rc}$(D?$=djbLIgd`%|GS}mrK zP#A|E!R|sqOX#UxJxjx6I&~0ukrFQ9rWUa!5*lM6e5BS)1a=Rk$hfnOU1p#c9S6yL zK~r&V%q<`(zuPpm6_*5g%+4=jlL!W;>dQxX~Hxv8z31p0Na+wa=U1>Kle;1k zYv)8km`9B5#Ij7%3R0PrZtciE*G#!d_<5BUjcP-b82iO#jMi(KZ5>5NncfN3wG7QH zCa_G(LZ^*UD#X9EIFFTL8GH8(YH(0X&e@ezGn9jtOF0ap)&jdsUkcIIj%lHh&~zFs zi&y>l$GaO@JwV^A4An`D&PHjg4q_stI502@Wg2YFqY!XCQl10qV&8dCkTStqD!I)H* zoWMjn4pL&9GOvuxLl-`6Rqb?SnO_6SFu9KE6p08r5(=Sa7v?dyRMZ@{;qlG5C9f}E zx`ZWxarCN&L3;x)=KyaLl}Y{50I3Q)-!zqJnqozkyUfimi7hjNp5A_ScP9j5YbCIa z??GKfXxX36Cv51`(@;rI-vDmjS`bZNL#{8cU2$RSo{WNBTL(Gqu@+pr8~E0$wX)~4 z`+W$6syDQ6fVz5VjwE5?Euzv-eE2?^#UCiYB0TSe8yZm7!w6GM-V4uV#*4tUvY+jy-sVAa6s-fCT&A`{xAlf&S!koxR`x7{KaHP3q`k!by=EqUR^ET=A zqajahpUDVwB|;_eQn_UCzh~UWZWAwy30h^>BtVunP+F1!$WX7o_A37G|MGv~-&CcG^TAGIrJ>1SZ@T{Aho74*0w2o6XYC3J~ zE?eBk(-KA}>sd_C&Z8>OqknX>Xd!`-T|Hud0L!Hc#zd<$BNx*$u6rMC$?ljbvL)&8 zQrhRDERes!43?Se8upsnJ|*k!sZEuYd8YOV*@21eYi+KfIgf7M*;>OOG6JB`-6JN% zd9lA2(chalFi!Wrm9-2yqtmMoSDO@1#pz7V*$4yiaQSmdPOdg-N+nhDr4&*KM7ubH zbDy5Z+_ejM;}<_fo`!iLi`w!6qMC=L`LaIx`o=_xvp)c(ds#G)F`{V?Fp$R_sZ=^I ziy#JhrHQ`&QJDnxPRNNgPindl7nB;$HHHec>y1e&)aFszx;oO*ip9lcwHKJtn@pJk zv8q6iVo{)?oU>I%+>&arPNLAbu#<+6<;K;X_~_#g@X!DJPk8Ido2U!?qKA!1rf(iT zjJ^BzV`}SG!R({L+@>eEIkjD=mJ8asf80W#?ZR$F{M*H9j>$~qKUN+Q8RvlU{)r}G zS%u$gPA?FL<7GpC+F*4}6!mO{YtmHDRvRiz2%E@A&W3QsaFG&G(quunCihlqFNn6e zc5@DXHjhkqFILz+S+oiB6_Vfvt)5hR}Yue5@h8>QEj#+q~3_|?ptr-zy9NYK~E~cXjejv zcv+xY8Taqnfzgpsy!_fbSQ6shJ~@HqN=aZ@QASnJC^oYIXiF4}g0H#XPs7K&VE&6)R?b&byzdB;1XC;) z(KlfC(hS?lDlV-iwAG@77)*9#TkzsaRXuvk%gfj*j52%Uy1L>?Y>SHv_~^qA@WKl( z2m_5+$400c)o3F}^pO%2;cvosEwkFWW^J?9q{L7N#MjAvFN{50e{t85)Fh*Z8b6~( zqT?ei5{m(0=ILF$cwPin8H4>pV(^cvtwax+iQ9PU_=v2LABRRJIUu2MZgF}BE5d-| zn}$`AH%p@FLOPZ_R79`_u%#~Qhj%+ev~E|ucGNU%8>T_d1k^Li7}Vm@ym~q(rnZ^R zNb>uHM=exU&B0(TUD6J)wcX?Gz^EI)#=peQBmAWoKPjd`B(DJc9v&% zR?Xh-a3K!8mhIP&G=@97zYByD3DG1jm-CJc2$81}C@s#SFt7;=*XA(R-;4Wq?+^)H zgx9QLT%<`~A+H{jVsTlBw_k0A`PrLTE;6XtqwS?`&Msm0)-wL=Z~hG)d-6%-xMwM^ zN#5aZcIyA*9zS&@G%XEK=$BL~3hQ;7H7nyO7v-^{3*qb=w?lRRpn)lY&Cepjavg5? zdpaFRe5&?E6D^88#jNH3^dJ8ta_JPciY>j=E@C;l{*t|5CzT;^na8qrhj4c9WlI3f!zly_e zyp9F2FSc*pi5FjdQEaz|)VpW0s@qUgy>4E6i%BIOmU+ngMM6Gd)}&~lxuq42?yoRC ziXO;nU5#|woGzu0u{w{nP@ZchLhWfY%C!-*5T$5JdQj))Z;6eS!0_m>?I2{Em}pvw z$w=|JDO+SbpUx?cm?l!xV6#Q|_x!>lGzBh|&|VfU$bCBv6fb3PuN?zzlzE&j?RqQd zYh8RzK~M`&JJ+lTGd=v|Blu6v|A@ms{Q-`@`5SEO^6~s5Pa+|ozyIOesEcYI+BSl8 zfqe?PP^xmTppxSC`NguRXBnU`%rjraf=K#9&pwYo{p-KMH&34>)low1$NUQCl{8YO7f-LL)fz z&2HJiMiPG7e$@*XkJM9T)e}x9((ICHGtl(BEFY_V-v6@FN%3w(t z;CelSTvhC`S`AsRp`KdJH5B{CPi8gUN#{m|pP6fV!|3|2r{rCs_nW0<)L6jSJHWJK zQ=BOC%J`She8<4F6w_2A)}`6Bn9#<$)U(Il5zN3~MX}7q4M7VOC>f?`sm*OLzr$+c@UST0wEagr#>%@qX_$m-#_Kl=v$`tSZ{9D3{t!HgMGT*Y=u zfeDc6b|#GXuvuX zeP@CqA%;2;lJws@<0^w&ZtT|LG9al%Q$oh_oZ%j(k*MzCBJSV67rPJK zj}xbk;^@_@D9K!82L|A=B${b5Vt=sAcVS@(Wj09^1GuYy0QVi*hx-pbg0Fr3o7lQz zml%;%Xi~dgK>`u;RyeJ?X}nNh7icEUAt`Eib-5#jK#!L+EA)JacBkS zTIaUvm)i39iIcc^{+z;rOINPp;-$-Y;l-EG*IN*b9-yl$tImorYP6jaQDki(Tc8Eo zDfFHW16(4srDEJ-A>@o~Z}RzDvv~W+o49`UGV%iF=ul{iZA4;QURuEMqaWeY#S7T9 zWwW}r16#gLLR07q-*zN59$?ylvkS{u>>3v4Y@*I)E^={}7*IP^LlI)k2w@vP7Qro* z5GESvvgv!g^&D%iLX%pQlK*nayj-P%`C=VCqMUO19(1ubFEqh%Ub`XitxkcHw3W7= zi4}&n&t6&)NN8eJ3DduhYe+knP8RKu3tMiVxI1R}vJO+yO$m}TxHb^!LTHog>cM-z z`Yk>^`l0T=y&xR__L>G{9>JSQ3}#NPe; z)GZ%`2A^9)r$y+nTBscvxrf7BeIBQSc&JlX4RFz%VsB1t9>@Ro5C03Yq8UH<;5{6E z{RkF?2^s>oZcJapj6fXb2P*WH2PHS}hs36i3~dS-sm)5^w<3^hB`ZRySVJROM?w~M zd2vNxKod2xLa5Eh?>+93001BWNkl(#2jWfKno*eG-ZS<96=9AK(2C{|Sd4eGHjG0qO2u4Jc`1E|Woh(=SYu zQ-h{S7DT%|I^KcOsaR?X?gIWV|MD+5a^#4*XWQLjj3#6HOk8V4k&6ek-Oirv@2!Di zjW;DU9cV)AoXuM%aC3GRi%S*llg-R?dL>6#y3v!@G@Z!vVoc)}%#U5;UL~Mo8ZXwT z-KA_AM+qH|LA{2YV9;-V{UuCp9z#Z?@SBHsW9imBj=cF6@?AN#@s<~E$r?2@6^OkP zG#QkhFU?X&+V)Q7LQFQT2;6RT3p|tsE=R%)f-F`TGN?7wNM}6>(`i;j5G{+q>=Ap0 zbvcC3AH4fE&YV6WjJ;s`CCD|HaWFTxD7MN128Xs_*TIK12pzy|N~R3#c4GI9XOGZ6 znMey5VlNBUE+sUsXZr1#7H5QS)I5xTX;GfGR!#!ZdK+Z^?vA8`3U%M?hMmiZdS6<^ zZ~pcB$Ow+TZ|B1}cl9FPJ$VWHeIS>>9h0LIyfRy!qcWC4;*?Nk3RJr zeC^RD%;F_ACZN3pJma2r%{DZ7(v}Q6%|QlmEtyj4Z4m?X=1u(Yhd;#O!-sK8Fg_Qa zd1B5B;!29C@?B4ASI}md$hcdz8)#(Vf%Vw1kM+ptI5tmCX>nH+UDNuY^XET9u8_w= zj~v4A@PNtBQ^=Emt;C0I9^LZD85`yvm`H!>w_kSHN)$4*@fb+G#h|2UqN(vAEpedd zl(CSllbiA4OMilqu`vwvbqlmBBTLVf+CibN1?SqhvQLu1~EVnB5M2lR@IyrYv;X(D|fx zZ!^@!oND{HHDAXD`du8YZ0w{McihW|>hb)A3;0-Y^ovhEiW|h+?|+Qxo6D-oQ{7{l zicwiu#FcB)7%U8-EYhneMryGt(yL)^D%(|1?@_Hm7p19{Hz9;bU6&fkRfEiH*+H%s zos04ko4@?>%XszGSJiRQ@_fV+Dh;-eY&^m2IDl3V)7d?yDFz89mCA{|P|@~P^iEA} z+kxG?_X+%&*K!CgRmgW^YH}NP?AR^ub?ZH-7u|Q!apx|z_K#(wd(lCzu=wC{aO-`@IC7+@YF<5H#y7G znN`5pP{L#)P^$aFm`j(>Ac(0}&K8C(&B zQ1E<(iPSEHiXr!o5;|yb&RK6If~i5KAtuwZh)_3#W5wwJw`<-cOd%aY2idI0?hjxGCEX$^VMlGEBu(GAIfKtGT*S#w&Z68Dso-Vg zQGk~p5xp-GV<5s4&%cCF)coRa4x>~LQLHqOF7%0{5j87Xh%U{@M%&x*k-+v;_U(2Y z?E*705w#DY8kvXMhp>QlkggxoC#;?1zORgDi|`EK32mFHc4PE}?Q>`9aLgDeEG8zm z;>o9<)l!G^pM9d~OuP5(!xK+Et=Zlz?RHEaTG$qKZU?FHpnG48wOCM-THID9VMBX{ zb4QEmtC#WC8^1-hyn>~Ll76?)mBICEmqlyez^=Xbi6F@7nCYQRq%*p{&8F$nnlYJ z6y#bJUMH#U2uKfptO}(1vkwYnWOny1+H^g-|oX z2wuW(HM21N(O`mloIvMR4Gb<0ZE%t5`SsUd$3OkkKWS$iW=FdwgWAxZP1a*ATFGot zl(c)|#O}^Bg;s7>)FkhKNRy4=h&;TCaIf1?7gQ8*N90C=Kf;{TNC=@dU{zZ-4!3ZFzM{=#KSS z4?p?@1_p$MF2uzh#1J3A2Gz1fyX{NM=Xx zcJwi_sXCgS+zf1F+zg7$@N1dK?|=XMYV)uY3lH4|L7ODDod-O~RQf(WdR8$Q`=`AT z6>r-#-iu|(B#xEY@OKIau$$D!q9wIYo9!$eKg`78i{8dn4UGWoafKo zq;+0IvFJD7_uGpRPbO6@hBy&8U23}ZX?>CpEpZqd9mB-L1jfcjF@Ni(2s85;y<&`Y zjg60CiwL#Q7XPUuAvBp230rL&*)fE+v|<0`7`oDr;^f8axHMZ-_xHr6P1wJ=ACo;9 zVE`du_IuNI&H^Qcfohc+R+fqg>rM2Qfdk7zLB$Zui4bWKRLjezr$Rw~nrWIG1a%nE zW|c7%(pgl5+248Xb^PilKNjt_AObCmOXohr&+BzupT4HO{jfw|sG4`yH2S*n`f%={YUhIy6{%jI`lf&3D zJc#8+%4&KK-2%J1Q9&wdDtyxL0uzwMz9|V(pr)X6#up~d_I9b)wI;;m*BBB>D3q(S zESo|!nNXp`+(B&%EKK_8v9oyh@DZ#mETF3^r3t2+H;I7QJc4s)&*0|l4edB|@X$jT z80Z(+$@pJY=s;{MjRjgrXrcO@${E&rz0pjBHM{b77QcI1J?H5T1yzwUNr7}x_aK5y zH$raWTbIcYiGyq%Il2@5r0$WkRIXzzl@;masn6a~tLe;Q4dcjYA-WzT-?V#*EKwz_ zLx7z?fBCClDg%*W*d&q6LpV1(JFD+e)0ooeOp6$`c{yOaZo2--QH*(G(SJ8l_AOP4 zu}o^umMMoo?Aei-DTh!&pfyP5eL_;+gV9_;JbkOBT~rI(@@oU1+B>ir-+^~q2=AEP z%$acyclY#R*Pi{jdgZFxbc|)?@>yZ1aj|{&Vb{L>D#=T-KAwgVJUhM?ImA4DMpUE( zB4xvdmPHK6oH8qi_n#7tmSLu}=!{y>(6aYru3xo16K~lah|U5+#3K7^vzfn~w(JSR ziE-0pjhWa#0RzEwKMVXzB~2+sqgun|^A~aD+(ogmOjd#)H848VhesbdfSYrRICc6{ zy#Cs6bOX1ipM6HO?}#?CPibRDyY-46wPI#nl&90Yml_@dcwrOBD(_uQ}mgu z<;p4CzNn^|hk=}oXLxqkaN1$Izmm0~{8b%!ypCs+&aaK=< zmFhKN;G~xQFRv`2S}zGLq)^KEIL)RoL=1A7TSC~gEPIhNmy(`nB_^MWpz)hp&&6PF zd8Le7f;yPZ-_y-`t7`|KN{M#X3ij>Ui9xZ$PMkW8k3M=2i%WBO`spXNmqpJ&pK5)R zjR3W;T? zW78Q1b%qqSkq8$=r87fdW@bh+t$DCgRJYQgghboz&8kaE+qMRBlVOrSS4)@n zvzspcrsv$!k!$8-o~<_Hf`{zd%J@mz*8t|?{4HF*bXl34-Dmm+hS1mFr){ygk7_F& z2`0$PWK=DNv$lvS{)2V#TTj~>%wwP=lxYcfD`Iox3O#t};YYP~FKeMv*|cb&Q4ESb z$_h}HiqI}>hN>bpR^sGKOCh(kw2|bd>4>jQIyCmB_aB-(KN(_OKCj5S7LxR^Mp&t? zXdO=>C+p4}y`HR~6@g*$yE)M=b3szHl4v8L>zc2H4n`vens%#sa|yOdOC{7k%8ACR zmnxXMc|!#AX(R-uu>|JfhY#S|^mUv+e*r)L*^jl~_Md+1o7x2lmgzU@!j88VyW7T! ztu1Ea6{!XaQFDm;O-0(0DP$kFY7lZn&4`;xi)dxRB20m#0$g?^ zV@7@5BkD({CUd~v*M3^3ltEQLokG{>ATlHUn47t%!pSsxso~VgeTMVr&SLwvtu1?Vy~ZGM!jG4C#~J5tlS>uC>1L_KtD#_9 z;rJ*pg+f`edze4DZE711Ja9j*UOt6nRy0e*plMSi{(|lUQx^#K%CCQ|#dr^ip*OX4 z68(L>+Jup9rD(vi5|moxx-iC>GiUJO2Or~;Pe0ROCU>`+oSYOGkj2vC0xn&;gtKSQ zs{5LD4{wqT{I`Gmw|M56XEd4AO@!;FLP$5iv|=a5PKKiq53PjKRVnWd>REE~T{g9w z9Lr2f3F=A?H1CWJSIPo0-g@hGflfDY@WBJJxO)Ve>kno?8~?N!I-Jv;E&*I&TV!!M(G&rjvQR_`>rz^2W5|KLn4_Yy!qA}xOnBfx>g58`i_ha%X7a5(zrPjHOj@ymvrA9CUy=D4U6q` zABKj9bfM|8oW6Ed%M}QTX#a2vk}VSx`0jVVi|>5rudQ9w&>jkWGy_B6?ADS<%*A@8 z8G9nIsX`{l&R>;i=%&i|;;q)B7Kyd|RZ*Le)2XZy?B(lMFg-ns$%(Bv@Zh7G!N7d6 zLN8j*4&yC!#dW3*)Q4Gr!L{uE^J5K?Xh}}AxH>pJ`p9f{jR5s z>ENAVQ0DrX9@WO|(M_A}T^TRC^)VV~U;@ORYbPdfhyh#Q1X~q$MS}DLqrs9wq8LD1vxsuNC^k_>glqw06IIkI0;L;F&~1pOSm6E(x<<62!(?4FR?U>3(GeqayM1IA z`oA`W{lhzP>gcODclHx)?2=210QNJua&-o?b4%J>WzU}7*td5N1`Zy;yJ82O{P-i3 z7U%KI(@*2+XP?#nb)+rF5RTBD?d&#tjx&vW?U?FLhf8ACKI7CtTx=e06Xc$rv<4Fi zR~QRm+QtjdK8>Fpd<4J!?QcYCm|eV!MM9}LF=z{BCpXq;R7?2uvrqIqdF@+}*Fo_b z3cVP#8yVGl6$S&T{T3D%g>kOotZ1YwS1z0GrgFn1#7*Pl_`Cn<@9-b~!~d#%%E*Lt zCo|oK&#q@0JBCu~1z~6|a zyXS!Zr8Xzf-qXR0?LX9tD~1tVL*DkyweKx*uvQ_U$+OVTfRU?t(z9s*l%6>DQp!hF z_ziB)S=8QtU1Jk?{@a_xR=I@gN=o4W6y7?#fY)CsqFCbS0%Kz*Dyp@p=~Ia;QejRA zFptT?2*#cm!?v9}aQwuFc>C=mxFGPXR<6oD<~0WP$>~q9D3HFkQpA2?qDKVsU%x&r zQ12vW1kw?)eC?&LV{~k+72irGldS-}%ke`b651a;$_SEPfw3NT-uFG3gzE?Uo)}o z&CSoxizJ@b-(S8ghWPBPG8r`twIUq`fAv>?h423Rf3MBbUCSs+M(swKu!gq}bu922 zEu3qKh2JAQGDT3ULP3r`JC55+AY%h@KA197(7^1ua~E*nz(FkwPbzI2VL{>Jl3h(O z(`+PsI_|69WSMhfy!rk@9aoo^y1#9l4Y_7pt9D2u?A8ZW8He@!jPKADtBwLOjD5{EZeaKB-S~%p_y>IZ+uv3%lO27l zzk%uF;Asj6Gn8oq4Gj(IXWE_Adc9omYn5^7f^8AnMR2Plt!o}kU11EQE=)8$Y|6da z?)c3&kKl|vkIYvmP42w4HN2kxHZ3s*I&Dev&W~=lN%N2byEcG3d%+KO~4H6M5{bo zYmhwaR_DDZ8|vCmvmTkPtArW%??0fs2JYUu8%N%J4QEatM{#LE)>NR=@(MmWdR*uE z*{7evw(UDqsGdIa30`~cb(93^{r%tny*iytO_8Z7b32Q#cicm7?6z;*F^qG;^58(| zUjFkx|8r5B*YUmYeNT;LY86-fM$Z|Ui=Vq4ovEc<$pIfEZZ_#46Y+IxOLv>5(<|qD z{`nU~^Lz)7KmNGQL`a&TYvkOBwneRVRX6SKYeU1sYGY`}7j9FMF!^>WfoLIPa%{~p>UWCC+-a8w*lYxxg6=AL1d1YXiIs7c5*`F|!s*6q(5MJeqYm@o9>k;k9L<}H(W_nkNK z{=08sMzj&<{Fc~6M~|OU+I#%*$FOz#cBEy#S;Y7L`|m5=Fa?b3;FxG5X*zdepfxiQ z+zW>p<9R_&it`}uV=48&7f40ofA`&Ym029dbOYpo$sqj9aedvkSaQ2UyA5x3^Cfvr zO?Ch7`|<2^&*0zv#b09Y-hFyLUXyVNb_eCmx4Mr4tr&`Cj>~I0Ea;tblD}SW*hx`6 zpq)yMw0G@jz1HVucH&a^^9LaW1Asgjw3}k3ZFetDoH&6GKl)JZv&|EmwUK=$oz)%% z3A?eEYD*b6$Hcviw3RKjJLQ6J2XTiyuHVP8+V)%h+HB}+GBW7AVXq2bjC`?X)YI4S zHX%xFMYSI3<^Tks6If`m&SsTAl6R`&DsVASnmMs$sE8l+S9lY|&D~f{t;xGO}8Huz+ zbHl|CZ+CnVDE&DGa!k}pazq>65lcS&@WU!)neh4c+i$B)L}qawjrex#)KZQCT|X|D zVZaA9)V_WDbT{lLpLkrL(Bl|p6kTII-YSNUpW8uo7d7EI853a)#1-o$lg7nOCT&=o zWVM8`zP7b&>opE-i_1jWz`!nQy~)W<3O{em+|UG0LeGA-1G5eDb+cmzdefn{+NI}_ z!mQ{NNVMlcEOLqU6puvbg&geeL=gLvS< zhttFwRt1ZBtj(f6! z+zH~rCHFU9J0qR%aT8v0_;b%ar-S|Q!w9KfN$6x6W(w02N1S@# zzyUlWOv&vDlh)5pX-)UHwi>qfj_YTZOc-ZJV7vEdzqc&w{R5moe@-P0RX87Ac5hH> z4i~(1wLor{YS*95NypnyuGz|+hl96u?mQq2RFLcJ-Ln@HlM}7lB<|2aXcyWoLJg7Cb!M?9M z!+k&M6$0R}(GL=1$|!&a%7y>?u>4WSh^7nz4%65c2! zM9TJVX0TOLSt66$MuyR?)sxBA)*6hrFmY3xvfB~{Sck_2x$fIR+Bx$^k!2lWkuZ!w1%6r zH(UGl@cy}&)tYI>!MV{ySSry#W305q+xzY(xvuNX?{y9{Jqd$J z$OC{N0Va`R0wIzTmojBaq^xy$YhAVWhN`Xom-YvHz2&Xds$|QOD9e<^Xp#Z}h=2$X zAacg!+%ui~?fK5VxBH?wp%G}S%D$}T45qtZxbL2O(s#Z?q(DI-?xy^JCY;k~TrAo} zT6PNKU-heSIH*jDa_ddr7@nCml)mWI2V8_C(T zz-cjMX*Jkkwg3Pi07*naRJ-?SGOvj9=g;GooSVQ{ns?Mhs(nYcGy*6F$ZL_-4Gegw zf~v$Tj8>VNG4mWYlAm?ncag_+za08P=FB&jU^V_DH#~z&b?s9OfRminGPz=U)zFvj zK&(20XoBAnzg5gQb{{nRfT^=Gw__km2GkqaZgf>^JsQp|<@FOSRbh#_(lVD-^X=KY z504z!i=X_>5Ape_6Y56LFCQ8l(oLE{C?@1d2SDGQDG?Wub4oz(&%?&ulLori;rO~} z>QSH^53w)t4zJ{TV9 za=9#a?A(q|j~~a)TQ`gVv2t^9N#}tk2V1Drtp?9^b!v|vrSTF|B*Kn>O79gkxZ3n# zMhrrm@SN7oY}NU{$9$6Gw!6(63+?{`(>5|1<1@%Au_H-VGGdmd7^1IMusk&;=GrMS zv1_Qt#eAK-f~Z1`8$C0p z)Z5dG7sQ1KL^x-s$8ht;4O|inh+WC4>A42zumAFwzr@>bzm3NpdkhB-9MHg2TItwo z4ZqqCmfh*NuL9)1T$Ig!_|7MCpLaujrZ&&CNe zDJFJ)2FXGZX{LG7WbC3D z>68wMIkkQJHeCSRjp*p-MN^S5pBe5IE#R9}VWYnlwb46G(Nc12$|s$_({bN5kP{4_B+-SyeH69(Ov8z*t&ODR zh}zO^f+P<YBFHAJ9n;QoGIUa|&zf@WTOJ2!TQU!swx}%>p z_n2q|AY8DbT5U0J1H&wY8XDnx!h=>X*Jv3kKWj_SMm|tuF}wBZ;Oy>8Rtu&%uQ}5W zGMh=t+>OX$UO;VmR<3;>Rd#t`gp`4T74bL9OxDE^)ExD{ZH=N4b9=p^astjGZcIeK1u*Qck}3yT8%j36ONP z(Y64!a{^!M_{B%gd~?HBpP`L-HM0(@4+@V7G}N{K%?mHQpw2hLl|(kPm`p)_Bpqix zKieJ>(8_Anf@zaTe`rQ_C_~Mx!>LAJ#YF^cYrp!r=C2q10N@K>Zn#>{A1k#m{4T^><(UL+pQWA7&S3F*P@i z;&KtSGBIvRG2|(F?nVwO+LUL{J1c9a zby$Ydl15!$df`PJ{^S@=o%&n@O7w*e9Xh1ZH(D&8fBw0y73PI#%K0VT9Cy-W*dJes z26DsKME=Vcw08X;N5jM}3*5vRReSNJ7u8?+?6Z^V6Wtmc)9@wBDTYTzjAo!vu-qUF zHMC8igu=8enq^WZdR$&q@pM9|HC(RBL>Id?qQ~eRO*cmPG^`J(@HrY=3NYKjudI}? zAU+U7>7-$rm{`!yQ4qA;I577?-z=+0^@!DiSvju>)l$&-S=X&QV)^cFkC1(NFn6Y8 zgKLhBX4x;^YhnalEH1DyXtJDUGD!`1WV4-kUUvTHo_-qn@;v4XQ>a%&3`+8h$_XsY zmhr{etGIG)Tm&dE0#vW50J%~LZBVCGv$E;NT=dm&*O6X1w21J)U5om9#tb%m<#pwX zIB;M;4vOEy026(0rc}FW(kb+I z^(BL|udheV#F&^f-Tj+nQLs9(uEZKEm6B5FvPY~o6Bc1DzNe_#X;J^UEn{oo^f`nywj{reR?d%|`Ip+6V6 z+|-xSUk<7gGz1u-D}ndQ8BBcN%&xE6T+DoTWU`HK9%(YItZ+!^Mw0ydM|NpI0*aTQ{!b#?>o!0g3?h^{G?2Nq**-WVI2t zR96l?42KWOg4|ax`;F9E+dw&pf{FQvI`Po31vPqHh=-km`V-H_V&!$CoBR!Zd(wVWUp;Y$k2SWkOH1I9rf=6Th<Z*~9CbT6Y1TxEc2oOofOyu+7hYyJ6Ij<4L zv*#~rNAF#`_h9z}2e9{{M{x4=S<#3$v3u7}gYDC%2N6RM7~HAd||8cIp&?N@KWhJNm*cDAvk&L>BRKv4r`_In2px>go;5 zjZNUj#0^ZHokA%tn@c8!k!Tt_vt3AcccN=(Gx|ikWkoo%=?*d1I<%UVWcD#x;I&ME zj0mkpq7;lj7YnHs<0d38^y2w=w zagw*gEL?tsej*z-YxOLjmBZ%QXQ&;%H4u_$MifKSs92B9a(dA|%3wtEH*n$jy81dy z50mjKZmVJ=p=s}EbdB8r8^Lo5N!+ldx}36SI-2zrY9x=JcXdAe$%0C*&z|mXJpI(y z@!osyE5qs7%^SFJ?W#uPc5dH_$K>ZP-uxNffA?)<6R)6OHosKal`om+maOEO0;?tz%)!E&Jk*zzFCO9Di z(=#}PoM_4{hG8- zn24Zu4i^C?CXwY0J9lgs^X*e@JVp+2wo75Z-@T(d@xILU-~PWJV*2Ja>=(ai@9tgL zGCU;Dsv8AD&%)*!at+{2B|$~!fg?`y+I9$u`96>D*!zpPoi^a^IDY42-lQKySZ}nx z@0Z-R6QB1rXoJkqUIP~aeIPoIuISFyE-`>$iUh}SLngIA(;yjFbOIxDBi#eoly?24b%H@XXn z-X2tB;W7BZMBpILA=--dL=1ZH?+jcpND_CZn8hPfgE+s(_>G}1c7>i9 z$P-T@(b=uOpdsCl80K9Y{WUQ{BO_7kmZ-1am~d~Ax&)KcO8$agYpfP5@R?8UWVC+2 zo#VLk`~H?MOfGk$Fda+I$Up-VYusJtL=Q<@1-ZIg-R^?+}u`SjO&s z`!Vv=6PT07aBX2;QQT7(FXPPV(<+3#Gv+ipbDa&dQcL8;U+Y$2Y=`nKuvCJ(A4BX6 zCTP?yVS3Cmnq@4XM#!omM6{zKkyJy=xVef%Z1--Mkh&wqcfkjQmQuK8N(&sgm=Ug% zCqHZSrDe`69yNIz`UVsr_ArV@hs1UhGlngW&#CycBl`d zLoA2hjubX`Wzj8~C??N*yjsMW6QAmRZGZ3pw(ogBeLN+uw`Qg0zF|8l+O|CIK4SiY z0=`T@*A9@;z3(s9JB3HM9dR{H*Gho5(eUrVeaA1(^Zh!uy(|L}nOjSpT3w5uu%&ZkD$L$`#EQ?~tY*F@5v_nfs!zrNIEwl_dQB*RUT#^GP<=%82HTMeDe7`2s%v=%3J&%i!g2eN*nmY((VeK63al-u&s`p|HG! zj#M1w6yZLLC@jt(s1|_y9L}Bk3{y9+VEbS{Hj6cpUs%L&e;+1AQ=b3gG%j7dgsr1{ zH7HRmFRAv0Mhs0vkft-|C+bLTG)U3{s%u@e?IxET{NF#8A3WG-@wXxsR>Re8H2ib< zykG8bt+}m++2U*y2Os}5v`JDf-;puI=4v| zbZ?KC8w10tH8?L7%ZOT6a`}Ryy-C8NLM4lbxg~N1FoCPYj<#H4Uanz|&3~<3&xNhw z?1(W>n8#AIL@J}ZHJ5Wk$Wk;HO$xve`loDON{*54L=aCS!ft;`ycko%EP&}A!R~Yw znu?_0io}fn5E!3=AW{X(+I~xFz6G}DpAB1U6i+mWYTN`H4CHa{(s>*`@-YVbd-3YG zzlFVfwxUMnQ#oEyHkJ3@c^gafvltX#lh7hmS(ImRdB1u89b7$o3Lk#(0hVUQ(cj%E zCY;PeHHjs8pFDVR*}UdvCe<8_Sieh~0EEr8ZMfG%TQ3HaSoRl`TX;U9NV|j#Zjm~Z zuhs0^NPzrvwhBW#-(T%oS~rB&Tor#eW{m;Q)6REg&59i7lA=7(?Oo2}@~PuE{noFs zc=9xQ#6jIuPhd)XrRmB7M)x1W!>@e@;b&(tedQ*y^dF~ZwBtZdcDo>*z|EyOEV0Dm z+6~0T59wu%QapkT`~KuM%fjqcKZoWSYi*3_ma;WVhBPsi>Ofbnw}Dl250*?3RgGGj zmX}Uww5)`EgUS`tGTtr-qAs*83+x|ILDWCe*WP}rJ;g>p0#O&yfWwa9GODq8cyjf+76ZWxmj zH}UzY-{JhZGuXLf3x4p%cd>W(PD2>W>!sf&K5Rj>O@slJ;xdxa0NaKJP?dS7`S7%!2bCWm!}X(|;P}sfj_%nd?61Z}>ktDsjdNle z#7Bnk&DXvyHgzX%%`YG;ws{~LqEO5uOoZ6=&~EJi!RweB8pL$5iW_rzER9c~CMH>F zaTb-811^Z1Sa%KWcI$xP8d&qx5?y6g6wg@!up9VIGQzC4R0f!m7Pe zLxW>fUU8b%HqRBckRb!hiD<5f{eq}b$c;TeGm8rs&*O_PK35@l?wKd>@;6_=7V#$o z@^K@s^+^%!vkGO?1qD#fmFp7oH8-Hzt0w+YK#pn=uB4c=)V{GuRil@zCo71VT^Gw> z>$WY}zi+qfmSv?_rpcRMDJoG7Nn#k{j>f($F8^!-bSH42e~A&X4kLFWhOz_F_{vUp z>(W(x@OMAK;^Cv%CmZ&@r0o7v6F7cz5|_o9y`BPI{tvHV@QFw9n~y(1d43L~nGA~a zGqS+SC^LkeO`w0v0Ma{lpg&AtdsP;%m{(cNhZN<(7ce6(%#?QO7@rtZb9Jk1PKORXhsPd0ph?e=-5@ea%_)W2T?-nW8yOtHXMpCN zvZB2@Gi>-K!X7D`5P!sUX=k6=kS%yLWL{RD^Fm=skC{!z(9_+a+B#n-m=>k%%PN}7 zqRGBAV*gw_JV!fuq<^UqR&3xzCY@}XC3!ffPKe$7;~!)B+y%TmFoc7BgSd6<1kRs7 zi)+h^7)J$L4j#lque~a6Q56egbJ*6=i}Z>tdRZ`}`(+s&QD6nxRaeSI?Sde>MN9S}1Vc0HX~|UQw=#NOaa)O;1gF zfdbgjIaHgbWfe1#%0=0kH2fBI+YF7uMK}`+8YjoD$!2j&7W9&SZ~N9EJn+CCg=Y;9 z_o=^AtrSJOv%5oCeH8M^@x(OUC=>;mpK?YPeJvv|Q@|Kj$o*c?`(=9?y+>|pqMhgG zrnT&zf=W~It-t>nz9HASW7lpGri2Dbn9B;ZO-$GbZ205%+JyUO8=*2yYe<)&+2!Jj zIIKtUfB)*Qu{pntKY8kDJekd*cMhi9<6+sTED2cp^Y1o0J92S56kr zfbP~2IVZsRp~OMWmT_k=h)rD%Or6i(eL}otsW0tpii1Lkym*S!6^lXvcQZ z9wpIQjG7S@GB-P~kx5nthjN_3%{d&{cL2Nh?8f%(Tjjb4nB`oRHK>pj-=$VAs0P%^ zLz$0)-0QJV4r_9hLbN3Ro{7}hPY;{=Iz`|_3$xi+y{!2tDk64%;Jq=*$xUuxutzq8 zCH&&2e~WV$F5$J;-@r4^9TLHhYcw$$F~H~`x{3+c3ZMC^#=o?N*>Et6FFR9VDUXkj z9>Y(5^ka01ll-6m=#TM`?A()we}fZ8Kg9XTOIViO?Up!4`(J(mU;D<3xGb7y{PHdA zOLQV5&N(ArQQH}!8Zuf}*4{l)I^P72Iou)x8w$s!b6>Gt{VZ@rOS_@FKTS#YTQYeo zF8s7z%mGG5HYrB{D{+k(Rk2X4P}{7qhKU$De#THRiTJs^r4^rb6|$RGE{Ucp;x`}E zHF{Vo6dR=%^zk0wzZctg3}f5&L2Mq_Wcl}~Ny~`2&@o==GsCP8NTI#8+A+Y)_$~bQ$Ps+_{`)xh#TUxWK>S-L`?hwb zkQdW7U>g-VMy*;l^Fz|Rz|1GzvI>tEkDx2tp{;T@B{GPlyD>I3hc8Z@#1AX~8_Oc- zhhBPF1TdxdQ*Q`ib9~7MY6W$+CM4Hfe=Sg+)sDN~SnK$HLiS#?*lL>A9akelVpe?k ztGDpepZu+ICj8kqp2q;$ML#}*t8e}zCQqGF%-FO%=DA#eZ@%&hMxT8Ki?YC`uUy9i znKXL4vRJH?)PGTbAc*TSU&@nvp@>9VX4NTFje+ zQ(A}K-igVIN1F9J1a#I-QIGDj>?XkvYq+>pwGgeC>5!eIFp8Gw%*b)OFtlYzO%wwj zbrWQ?k4w=px>m6avkJDf5FeU}EGT5ujlxF1jebT^e&^Mw(8;RZ+~1D@Z9I^Li}6J) z^@RLT2Qq*$si8mem`i~3MTn|DQRe^>25UpH-5l!cp3->L;QF_ZFUT}<{)Hqy?D ze;Dl(%@yMExzF)`{_=l{nY@B;{lRM*swbV6PC{ss?^+M!=R|ygaoxDw`|Xr7xSu{4 zbph29D($U0q1C?cLx|ip-6^7Bt>JStaQM7nbk;xr;C=kfU;PDUZeGXkc!)24^g~Q7 z$nN|3MU>B7K~Eq%uq?1S`TXGXPvfcAUq?zzhO_T~imI4JgIjiJQ!+O1pc!Qnu_<|w zD`Mxb$PQgXiW-C_8Y>{>IB`utiH&WsSHwX?8aS}l`9T9@dD}CqTfyQJjkvM~n*@*D z))~ky`kL0ztU799ibY7ypMtA^RSPp}>R)ulr@l;)+tba@_j>0s6|yWQG$jd<25?p9 zK5VY5uwtF_sHp>r$+;EO$~KkO=hE(aax0~UIlTAFpW~gM{a7@98AAgdNJW=rGZGV7 z1UoH$S5dCN5|>RN8Bw-cnvn_Ss;V_xW>mNAMxo*g6LivahY+(;O!h>F+)K4n&RG!? z@jQO?*Z)h)!k_)dOPXg>GS#}_mQx?Lb!YYw*>2L?K_j@rJ0HQ&imh93xO4go-3N%a zi^^Va_}4@&;mGfgA3u)2{>#6>nUkL(lZ@f;@!#UyQW1lt5CdX`Y?7H@5wmD~WlmAm zFMQ`a+M6_#-E#cwd5nmC{LtWLWM-y;rCCIZONiG>3J;QP2xYO)>teH0$JA|iIE`1) zDWzW&F{R6^2TB_=w95O&Cs{3VeK#Y3ZMV`mj>*&La|qz&jMlh9%YUJX=xRlyTmCb> z9T4nUEEe=yvyB6srDWVetBFPXTsVJGIoY}4jqcti4{=Gf-vT;QaRs50m|L|Aj}?kA zieDC%tNM9%hER@)z;t6biDRQs;S?4D@cnb?CQuMpX*`46oI97x3Y$QM~r0O5X7pe_eY1+6pzFaN5>r}=DU*u4} za_t)WhljNX>@p)g@=$6O(LkckOPLH7#mt(J+1hvTX*_Z8AU2Ebe*O9+s^e4Glj%ct zc?ompPGRZ#MFja-#H%apB8qfWCS1&bx|lOD+3o5<0`;h&uc~NCu$VAGT!Y)|v2*+L z*ZRAwxw_ZkTOsZlHad;BVLq>BJ@~^%w6ubI&3S9aUjrD&zK&*#m@y_TwfE8YzmGlQ*v=Og#gQCC{>CkgeQ_RhW7Fcp z6mfHL7TJ*jJoW0gv1Ruz-HnTrQ>ctjVs>Q;hd(=l#V<}E6n`jFT?AcXnsc;F@_B+9 z=jB0FW!DlDfuK)zqlW47R$|=@uW21tosEXp3&rF2^nLd#dwx#qXEr*9KU_nCc1CEC z+d%`=TvI)*8$&>@@u~u739rg__n{=3UUnkcfD+2P9TNeX$&2YHmmph}qQT4ZtUHP9 zh^BQjBi62F=>c46I)#Xr$h9!RAcvego9jVJQ4tYzcja(>d=|g?=p(%J@+0xFy6S9h{JIfyU+VOpsQ}Zmmq?xYUQAl%Z-D_BaiZ* z{rR6GE$?@VrYY4+m@h4h)+k|iY#diU`y3zs!#`r>%qi@7_9<+8@-bw(d(>YjPtRiU z@)gXVxsF_Q4yn96fMP|fF%?P2VzMZA&p9lM043wZoXO)jaNcKcEZ$p z%!n<+-%vPLhTt)C*Ym^SG_l?Cgu1JievyHb^TkPK_(qsR@9 zVB4MtvEz})ap25JY~C`gf1@G5BDk6HG0aVlBbb{KQ$hq%gd@*|$B-{kyU94JnK)Kx zf)tACU+}mzFLb#uv0ABVB&)9Z)%G;(YNoY&cK0%z0Qu$fzF@S2Bxyu8ZRd*CpojnS z%jb6ovqYN8@MD59?AkE8cc1vHpJHr!4!yZ7GKn~D&B!J;$L{eN?AiAyw(i=Ek=;8r zOnvIa30(Nyr@(Rn+XlK(W^!9KTBtR1B~7pb9q|k@Vk&G&jNsCZYnY##!=|Avnq;0@ zn9-y#*=t!=GGxhZSVqBDqnx2N8t1sO?!;{JiMm_M88(WfIY@~!v;0YJhf`sr;e0I9 zysLRkX5p*4Xh=y_!3vYy;#3yvCig-B;?^ghMDN27As}i|9R8v>lG#cfQxoG_f6`6R zVj_kmu=Pp>^Gx({L9?T`yq4vGjmd*vm|sLDy9usJS-aQOZL}%anA_UTqx-jypuZo9 zYCmw}n{;=Ah+pfo{=ZuV%Kfcwfu$zDWi}Y5#uQ^0PvYy(9#j&`kN@d?Ow7=Pt0+og z&+dot$}8W+V~;bK^qFs{Nf@K^*B0vvI-vU zOy$tmw+Z87Sug<|k7qUHUo3@i+H*U&9pTXv#?Ty|*m`&%uS)sC6m&M{k$ z<17c?LRfFO&-kpgP9v@NeT(}xI6Ch*5gVGP@YvY4Ud0j_r8j zYmZ@6ga}~@OY%$?^Lh03c3}r0LE^7oIr&=@%LSxkhK;CNuWB@ONuFUuoTh=U%`*QY zC?X(z{R5a;EZ~;-wwp(GD1k_EX%VT;jGmu1rCuM)KEmkjVQi;y?lk)1Mr*Fcf4Cb7 zqHiLsmIu1m;hT}}Tn!TguK#CXNGc)*A54-!=I@Byt%zoU+R0?kiQ)3qYxv^oWn2># zKP1A{vuzi)$OC(D`wn!n>>$;&w+n$!wpmymb?6XWZUTX(PYqwzD^KU>bchQe;BhfhlYwa3h`V#8b~bkEfn_ z*7`MuR3u*}^H33GqBq2}Td9<_u4vOhzieLOr5lh3X zhKY#0bxUIQWmXDU5WihvB1F&>i_I=kyJ#g<@i-n&df;^VM3IVlY6*)EnTbjewt5=kSlE7Pj zY*~EZY=1Wvr)RX}Jkimmm9r%gip7;8a+?M)vABYCt{eTs+t9UX5RX3j48HTdHw;*o zR!co>^tZil{ekX>6MHY`zc1&2ZKx3%6RUv@AT&ie)oP}rT#&%t2Oh+p(LLy3JrARI zTA>N0u2sYi0N=Qx)2TK8p<#y>j4*ME=C=&PRNjgQ|Hik5F$EK{@I zsO4SLh^!VWiaOnq(R!cjW8*k?_MCRJGu>Gt+7x-YSV32>2+GVgOiVAzCYVB*IFV#V z%)bDu|NOsc&S}%&2qN*M<#aIqGAzXCUyTM@Z&>6=V>sA)1h#XjsGxW< zs^%Q)U}y)Y7$_iLbr5Y-UB*J?BhfB5jxQ%_U)suEG*499QyXWQkQ08k8d@j%tKEZs zFSN|sBk+EPE$=u!9|xmte#XIllovuwW0qfQ-BWo5QZpl!xqjiYMqu~se*~kCJZ8#IM6-n?PO+$X-RuH$?)%yw z=&Ky}dj7V)ug}GZ6G4aE@5qm!MRA11GZfBZE=4=j*^Ze`((;#tk`vaHPnxG<%9ek> zO?VnX8G{V1Gs{{}Xva3ydaLff_vapeAAF#VHQ=g$ZG6{R1NLamPXwk~md}R8a^+G5 zanbmhR93ap;`}1I5@JTzM8LYT$aN<1>FINbr@CwEa zM;_2fWA~)2)pG_e9gUr0Po zza~;46xx6j*}9P=g!Ws}pt*lSO+7|_qNp%B#9AFKPhP)E-@T6CcOPiA(J-T(eT}B* zIG@Rdz@v6UtCj0W!~<*_*@owzJ%p1Vyn~6cNp$7XxHfSaWwxozbm33_^uOY%uN}g# zfBr6hck(!5wKNVrdH`?y;E$DH(GWyJqjHAg(VUBabM(Zwfl2+JcXhM(@ZDA(xBGQm zH(GNi?znnvr*%Su46a+`vtj2ngy#wNJ1SST#5bOfYp3qOT4O9@Fg4qTxl^Gv3Ij0{ zu5gry<3Y1YLOr%2WQVqW-*^GH;tJQw-K_Q9jfM{*z88&kS2?McQ#J3gshNTn9o-PD zz#zd(qCJx76hfK!a%lxQ@n63Ey&s^EU&fiwj*IUjN5~CgU}Oj{zWieIe>qBlQ zhY+=eRjuE>pSd9anEo|4VMo@kHt#}P3^FQLGhytAYwMv~Ufl{9j9R{~9tQO>van+FFGNhHmK$;L4H z@BuWr`OUdF<0%Vki`yuzmf`nVB;q-|fyJJ9-}4U@*u=D%2fMiH1|kx+k>y|Qd9?2I z_rp(I?YOO*;##9Msp~(>cCKxGC{bfZ&9PgrJz^-gh~;yLdj@F;j@~x98-rW7YH%TD z8;`m3X_>Y|tge9uX@ocIJ&=36+z1@m2jgl$R@+J1*+u*|C~NQVYY&J1ZEaK1y3p@- zxa0U_`TjZYWT$PNqt&ootButb=4!vMciz>s^1aqdwVubHZ+|me?;PvBcPE=~t6AEv zCgc0AWs3u{^7)o*BWc$ZtaT0@Ld9V}H#&#gfZe<_z@)CJRx1Rf-3i!eayK<5)d< zKjpgI-Rth^W8hlhDec(o{ynsQwp{^g9j#>i8=c?(9)}OyyUN+!zQwTC zwYM`rt7$;DnYLT+)LPl>Tm#o7y>-6Y>3`+l%WamCFEDG}ptHNzn*e`;-2-Ty)H_w< zt>xYKB1FD6^R;EWlee0Ab0-U9BdxU&Sku=4z8~Zk$h{QP`J>hBZnweOY8!9sb>C?e zu+^n#XMwjO`rW^8Gu6>t4|k&|d_S=PCQT-jjSo1}#=Ym*>DN1fKk3d6ZSBpo(T)2T z>B^Md0=ZX2w%djLUA5IjS#P*|ao=+VfUP^_TBFtU@;8=t=4dt3&p#ID+Z7Dn?Qjc< zToJ8{ZY}NNU!VV3{`5D}cFg$JjnaSi8x>T#@40JNB1F%X@Pjb^T>BfB-yvkJdvunX z+pvOixg5GToejyCTOjQUfIoRocz83uiE^g`;EvU7wsiNy)f+jp$L&z<-k<*&w^;os zSUbaC@V+hWo38B)U*LVS>t4(__l#CEbM9tmb_=!Dw_R`e^W#42Hd6QOHoAVtCe>P- u=6oX8bGOx}^ik;RorBNa&?6`Gc>f;=&=2ZB)r4070000jWGRAsfg z)m@*Iot2rf+ zot>p-v&r9;Iakle3-`u7qbTAr)oL|2#>K+)^fZrWv7mFPR4Tki_^ji>yNvaSFT>m(H#&`w>1{OUxy$;4SH#bN1dfj~oXt&$$c@$j($Ki$X;Mrkb zxNhFs_@MLD^=P$PyhhklW%p4xz`4W2!)~p0Jh+GM^`h%59$-1|e{p<7_PJEv7>XWB zk>s$D`T6H$IcVPXv)909Q2Z=W?R9^j>njoismsivX#MosS)}yGR)%nOTaU7g!9Q2W zf%$~4?tWq3Rf-U&@PcMwm~=PlS|oz?f-F+z zEgT4dzq$0jS*o9RuYRD+#>ZypCJL9?v{|v;zlKlDdVw!Kb|ZTFeIAtg9c%7ySbZM8 zw2}utXZ5AOvTNic9{_(t8o_5(5f%ek5!_cX7qfS=oFC)#iR@xw9%ADrD)akd1r`H3 zm{KSoe1!8U7(h2M01tE_6iGJ+C~a9$T6HKLJMNDc5MCelQXp?06p6zA9I^;q=Gxh7 z_+og`{FHm?wRC*|Wj1FS$pX&`&&=NoxTi0&=3QUawk#tktIjE5@z+T?w$3vTiU_mL z(O)lIU+-0hfhl*^XMl5XJ$*JlLGslm#mlU!nT2^+2E@?Kft%oBY6#0BZC01=PkOwf1W=lUAunP zCp))==+%0T5-Hz4<6pnb9`g6iLM6o_iLTqYvPRIN@pZHN=yOp-$M1@dFd`~9S0a)( z-g$^UGBU!HO)sEaPjBo~5FgQfVxXHZJ9zy&54t_bUOHFN;${E#2~6I3{c!Y!=#c(r zADO#JMP<%k2=a6TB`|r2P$WwGMyhV&eVMgUdx}3^UuP~lU*Eg!nKElsBvJT?sn^VU zfAY@nwZ6J;D&6>MEj|Ou@mtp8)NM`XAvW9;Kx~}6a^*_C5Zoy^Sw(T5%VZ5yDpF** zi2tz5LiW6cAf0bP@5V*)?pbC`y`adzmmO0XLQrNrWxWQyBrD~VMb}UfGVga^EX~>x z%FNYQ4g7I-ra1hr7r&d=T0IomZ-P&s} z&wE1f(E+*jX1?Br@BPK~MO%I0p@Xvc;6LPr=r<}k_*TRs&@p9=Oj$Le7nFJE{Terv zxMZavf81pOYvM~uMUa(%{Q2rLFCtt;s*38fS%3dRHa$R}xjs`}qq1HJU0;BXrynA! z0DF@nx8BoV`?7v|;7Qg}uh;a~P}dE(g;%NPoMfKT&Ye4HY;26hAs{jWG9aFhkB{@s ze9^#1799`6KtblvBC0z(4Z#Z-WnaXd-ra7{PD->l~-QjoB7nnSMIYM$e+YQ#4w+D_>`(FV)=*- z0HMlSGJ8SZ^^5LbR@Bdma{690KA$^ek1dPb-H|- zMMZwdfUk{f#z|_-iK2?VU;ZNc0T;@ZL`A4l8%7E8#@p-mIlmYDTu3zHcFgnQ%@Kq= z9zBmAbX>r319IckP~B6R`%3_~k*+2Dkf|}fQ?W5-eE{flHBt# zw;&8;EFkQ0+gXEk-eJKW3S^P^UAZ(qW9=)|N-5)H@A(n$Bc4+zbCi9l_a+&C0r-*w z_5tRJ@rAtCLs4g;ZyTakF|QRXR?xZUp3AR4|Fb_!$3xu--8_yxb!3vcbYw2}`Okfh z9)0vtp6H%EdzdTBhU^UW)P(@@=>~DL%-pk(Tly#X*RdDFrpwzHUB#%R`&hbyhdA8; zNLeiI<{6*7>vuUUC^(-A?j08)jw1v;7Q_;lc_L>?(KBIU?Co;<@;1IXR`LgNaEW6==vuCIhA@z5~IBNbf+*pHRJV0>l9 zQZ)a5pJ6XGW=X&@F(=7sVh?EyL))mxBh+X%=sVx}4sG1HiB_*!JwKQyi`Yr4P5<@3 z{1^KBul_yjHV_SlhlWI?F(N{{mAbpcCXp#3^Ue>85IZhf*L(;HwocLS1rS>U zQqJY`H(rrM!7Mlb{M>86@RdPqU*9fzK84oB0#M^!-W3XU>^vx1-vZ-dr{rSS$1~Q+ z&x_xHi8aOr)>h-CcY3 z>}FH?!Gj0+bG=b_@;oE4*+hZi+@T#54=8tDMaGk`U|;0ZJLW2ViDHEsT)%V!i?sOb zJHuD+v-6E-%6WVIPQ=D5e*-&r9HkpNANo^gf*e0`zw2M-3VHVzy4i`qP7E)(KKbi! zxHK3iTl3Q_IdT2As9u+l(uTo9+^!N;*ae-1uGw9aM<)%-AEZI^Iuai-9D9OJ-?)(` zCMMWoSFy3Y(5Kth57#m`jT_>c$`vL1HBJ?9%zky`g#=I>i|d!+$hq?`<`_F1dh6l%vj5uCLwuy}d0y2k5#J)j1&^G+D z6y@tTx!kIlnu_l=$KBO0$5zp*2e7-VkDT>F!ccJkBI8(Gpu-20fB#tgIqq2Jne*2* zSCUVtmE%q-f-;1&XbIL%Ghl+K0jF)ez#DuQvY2i2 zEezg~4K!*P9U6>v&FVGu_kaKQ97_Tz2#5?04O4lIaE4vJt--sWZ`?-RMwP#8%|aQg_^Ju0F>`w9&Cqnl>^%>j0IIIjVBx z$POC%0ItEY-a%EYdPPYFI&rwtAQi$QXejPLbwG$m+`sYUWQTk|Z-LjLz-oM=0}umJ zXK39+f%Q52dF1(tE(Pv9D$tQL9;1%*X4Eqns}ly%x`3lQUnmA`yyLK9Jhp@ydSGG(~UkRP^d~20FaA>? zvbWe6#$qO=*=4Z=Pl3s4yn(8!7#o;n8&PIT3<8@Xii|HCAO?|~xp&fu;92O&u>(p) z82>kj#cX;HWP%XK6H1&D9lmZPf{%=jxCD7uB#-swd>wo5-n}$FHbz56w*X?N*6=jN z@OUPPoam76?9wB8L)fQ8R3Paea|rAJ+FseNfk81kRc%$!xX)OE;#l%fFGQBRrG_)u zspjS+gVOA4c$%6sEw+LOwx*yGA%JERa>W)BgidTEn&aA~jA#A?x_qbQlGq^O847UY zxw$$Ar>|TwPK`#BUfB9Pz542_T!lqT(rQR((&I)D>#w=y8rrhuObRQJrC3I{Zix#a zP?_pv1Us#MIF^W-7I}T5?0pD=`SQLhUuE2p`SULTgrH*9F_F}Tj(Irno~hq=L`wpNDu)fgyD?qd7IzYtXxIAcI>2o z{QB4Fp@$wa3%QSD%|{FerXa2L#QM4wNuUdXAH!#kYyHpv`9*fCf#dVUlE4-RSXhM5 z8xb60WI&Mx4_&KQa^ZXP9qbT5R(K&ecm|SHTf%+8tp?Eh%C04=P0hCaZ3rAatujFM**UuV zuAk8D-@Ki+ZF`C5j2s9lk`Ou(g9T%|w{j)zB;WW36y#rZ5i+s&NSs=~egj>0`Q`N6 z@BMAM>0R%lM*RT0f(OlWn4X%J^+s)jIN|3~#osoAGPKv^aRl=TxWasntz08X^_|rB z?nmYL3Hb@@E(5gzI&|P5ee)l`LErt(ztFzD`)JgNB%YHbf8#l31fbH zuoy5X96Eg1X0lXV)fBgAy=HL|L9f~A=BR{bP0V^W=IXpYwOW;}q#%me3}eGXGz6<_ z7%;IsIz2->cf3Zk=J%?3K7)h9G(0pyVVuuCfHi@d0|^FFkXCX9q7DrW z($T{c^z4(5(^JnpLoXZAbK=M(O{0#TEwzJZv}*Ml+O%;Koqg6>bjgJm(UvpL5aKX5 zMPU_Xh}s++0Yc5(jW=0ZpX+!-ZcRG&GsR5gri=>s^Pm5m9)09d&VoXOmaBfkoJ*LJ zFc)E3JiEBv6R}H&%&T%^_0E(zN)0y@Gr9NPd+6+Q&!+!$?tkXzf*g&dTHo$gaqqp` zJXE(PD;mePfFTyrCMYPR8<4n#J9Ra`|s z4kx9w&((>tv5qG+4N`-P0-5*i-$&zP_Vz=bw8nU3}pMbi?)6(-m*JoMRAXn`-S5eZ5|vWs#oM zC`1od=Z7%9UQoucg%D?`g}Zj|rWap&NnEYSfiRK@-Wyud*M^!V&J||G>^RTPP>|$e zLrB%4#hfl74sHlB)_|OFX(;eTU zAO7%%^uh}-(4qbNsclr6$RH^6>Q)0{dXw!G$OvK%)e^VM_LsKND=$1xPd@SxJ^AP_ z=^bysk>2r}@20gIH@k=^RLnuXFC-}~5P2d4OMa*eV32p)wryrV?&Y#xur1WhejG4T zO%zAMp}{aLbHe@;3p9*V=C@u3+8|%Y$DU>bb9y+185*HE)!6&M8LTVRP_j~Mt9cBX z@)ZH=S?c2s)z>WxI%^vZtXQ#<|HkHkS%1!KteV*n5RV#0w4*p=rwnucKnX+4x(JY8 zOB(~qmJB|XV03hp5qrmu9rUf+@1XD9c_$s3nBYJLY>FsE#Gl!$TIsSfAgOOa z0>p+~AdT&+8Q7pF5GYY&Qii1ZwWhl&v+8*hYjy7h3A?JI-W=Qf0TpLzW|}1lWqABk zAWb=z0v3$eT31=ca0ynIy5DoNbG(>bZN)5bm0Oia4>0I#gTsT=o{8mm8v(?wGEh#W zfJUL~u;6!E$QF+~nIUUo=J%xYJ4iv#JpBxP<;!2DUp(*tO&UEK#x86aATgqs5RR+% z3PU~FsDq2Mj!8(+7jc@C`71D%%^6+%5Z!a{{WM)~(XF@MN>^NYMH&VP)rc+S)K^;O zLgwEc@-175WfY2B9D8AVVGRvRN^;e<)8&_q#|X5XFs{*R=Zqv@6lac|#GT5x7wiT} zfQyxc;$1?%#ZjYgbNehaZZrfK8W=2Gg(6ruVyj+)!9o{_p zM;N%8XV6vB;tL4}u1Ii6NVNeY`W>F2jhi-c`6VoP#fFW7lC4^`ijEvP;`wIV9ktco z=#Vu6&a2;@IYv7|z#xN&zI}W5(s#c7ZTj~+zsD6cK;4_HlL=c0B4TmV>>lP&Ndh7X z*H~aZ4dI&XWo> zMu5o1S+w1=(%yC8#$aafNyDpv&kcjL8cr?E22vXm40@3b&#oE-(SuDF8FSKR~eSTJq% z@IFCmw&C?)BSf6z<~qKF6A2CJ5@#`CWkAWzPU7N=c07%z%E)h%eCKTlmqT7 zVyp>l%GvDPEM2(nBD(3On`n#KEbT2$l`dnO_ME9 z!JQuh+lt40JvcbPIv5b`?w{UGdv@>PTwQQb_B>Ri%1n&NGsB(35CKC*y)lSepFPUu zaygsUFfhY_jgoGT4~LCDK4jEyM6k^mghf!$kU0<6NVwh|#PNIYy^k)s=px#3<`y0v z40I@Wt9yXm#!2jA#Do4KQj2V3rJ+L{4*WkQ4m*fN5`u?j)#}xB?s?~n=-#%$Avuut z*9vVMcPde`{lXgS_Uzuxk(UzBZ3~95yI1|_X(}`=F=1RZVuyiP5S_E1WMHfxHzhSQ z39a$Q6Fm{ZgxL=pu@aS6W({XZtc!vJ-v<(RA8muG#x#v`dn1ESoP31VcP5HK+L%G+ zKg>1f?l(I13(r4K9O(!Dw5_ax@Ltv-%{c=V1ezQ)l2MD$wB_{81GH+zAPo-z8DpBB zZPMO-lXUR#BvopLctTn=LQt(Tf*4w)4Uw@R377`hm4pwbITE+|exMCLrl4vE6 zwpi*itk$Y-Ebg_$`+9NxNv$tW^#p%_z6kCjKvfqbFPB6wr^H42U1eE9_tUH_IV z>8dL(pffhFF-SgS)^Cn>?A%8$y!0wP`ot^r$m4tH=d7bR;fEiln{T;=gFnRIn>O{+&`b@1Ys2ViQWh znXwVLvA1pRt>?rX^ltSyYcSJ(VA=%mWC&dGAEXjSEoPzBX0RUEa4?R+V*Bi~&vL*8 zKy3|i(@IAXq5=@?FiQsQ=xx^w&<8&79=iJKi)r;r7-LY$@~AnpMVmIPr>n2rM3-K2 zF0ESi5Z(Wam+0W+K`?7hoFFS!^O{3cHRD1?6uM6Q&U@cS!zdB}VjD{kv_xyE?Iq!o zxhEPZgAqa*@;uc5EPJdXZYr+x7ul4_9(&AM*46bF5ZM&bn4|n`I*Al3bOuK09LrJP zQK+E=Vvp(&#}gO0)h{e6K*gsn`dKTbXy%cM>Mj!{30&n-<-B}c%j#*dMC(*gWySX2 z&bqnEH2pi#!RH2nbw8yQYY2h#Qq#)(38W1M15P>ol|k(3=_%&Qya|y=(@t3ThJ*t< z1T3#NUVjFC^42Tp^2^Sq(UCd@?Sn?|MMV)}`Bqz)D|s zU?Ps8(89q(hn%&xZJqszje3HsKq{`ZNNYT)Qy-tjmlv`Nz;8_ExY`>Wu>pxv<^)J> zWg4rFgqCt+?I0dwU3cz$jb46v8;6osqbj>Z!U~i-LrBf0oSU68NIgp%H?5&}-E<{g zbJb?^{j8x3Q)Vsa%(Z4n)W$Z=HBr)Pjs^yY>D)8N3?aCXUfX$y9)D_=xyAs;BbdAM zGl9#IRiwEY+O=~hhpb+F=_NKmNsyld0nGeE001BWNkl-JeBmPef$&z6!j zc17%73qwQ>!B`(=N54=yP!U`_uh9U?KtpwE9;Tte z8M^SI0rRTSi`$wsIThNJLz|u(h#L}{a@vUb`wt!9U=DW4SbGVNJ&;PE>}E>*@S4{j zxR?RBsNHwS^nwHkm8Q`WUot{tVdsIASP3H9`RWd8*PG(^hU?Xq_38yqij0%_Ws=PN zYle!#qj2=dq^sHj5no+wQgdHwomFh-9QJHLqSdOVUI7yTB!Wt031|uE$+3IQOZ}x9 z+NTzBjp@GSmRnrfrC;(@bz_K(D_5@M4kJD%#{FV{(UMNdz<+-uL%w|=A&Ev515Oke z>83tKM_ACS;9`~rhZ8#QyfIq44xx#Y1|cWS20v^NT(aY6 z)+}DVM$v$glBj7o_aw!&Ia;%3J)M2dFpZA~Mj|kq+Ki&f1t-NlgEiN(SCdDN(v0EW z!=t0DF2q)OwQ6L_iRd_@b|TUt$9%VhQ6S)kYt>^fYJLNWYYr;S-krN?;=n;+SmpsV zCyqo)Ji@=5Xp)ETx;J(Sn~dd&To*ts_GVp1h*vME2=tQd6~6c zcs_Qht}b28?S?ti zaPyfts*MiNrVVG%$iOyg)msz}8ZJ^%F9kw=L+9cGQN|014d^E723@{?JweleL%0AF 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 literal 0 HcmV?d00001 diff --git a/smart_home_client/picture/light.png b/smart_home_client/picture/light.png new file mode 100755 index 0000000000000000000000000000000000000000..3d8cadbf5b0955bbc9397e47256c23100d9eeade GIT binary patch literal 10859 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 BZR`L5 literal 0 HcmV?d00001 diff --git a/smart_home_client/picture/lightOFF.png b/smart_home_client/picture/lightOFF.png new file mode 100755 index 0000000000000000000000000000000000000000..1d5e2dc366bb647923809bb8fae4c0ef2dba0e97 GIT binary patch literal 15012 zcmV;VI$OnwP) zb<8Da*@vg)#oeXI7PnHY6o*1_Em}%TTU^=zK|>($AAdmtBv=W>-Cc@Pw76Swm*Nil z?KRo!vIAvz(>>%)PDfpa1-)?}xtW>mUF4 zM?W6><-d7AKl!S^GoG`Z?QG3snKwSh^RIvXtN(10Hk$gjef!v8 zk+acd00bq`R3wXtdEi1zFt)|wNH}8z;D27n{gr6Oh??<=2(NRzd}nc2Ss&V^JrU36 zI>spiPe$^7+nib-=QBe(4bk~3Kx1&bgUSWUg&c!=FZVgFRw?0iEvs<%>yd7X&GFp_X> zhyK-fzB9HnpZUzY*b7xhav#@8L_^HreG*s_M;ca%WNjWLh}S!xY-b*bpOmJyJ%u~l zcHC{|Un9)ZH!Uz^(4<%vxhyOb1v$L@&b1)bacI5s``OQa_8G#5tn*xS`r%%YpTyzs z7{4MoRlr~V@|XTImUZgxoJ;n#Dx)n6Yeo7hFog76AQxFgRPNzgu2IUc@VcTP3xx2# z!$s}gOFn~Or4!el^PK1G&ULPHb>}|!xw~_m;~cX-Bo^AVE$_jdQcAnbW z6R;(aK80|Qqz|7Qldg{($+f@w)vvnme)qfGx4-@E?$lFH?SAy5A9bglc3SuMzyG~| z$+2=X_k%nUdA{?Vue<0)FWOz=5|`*-m%Z#|yQ^H~D%~Y7dC4B}Tly?}gG$25 z|NRXF!~N$!|M|O%T;w9%6|Z>3?nXDdQFs08U%%ULzx`(SNkm)^vXwwJST!{7%@*_f z>{yiTt5~K2B2OKf3)(!8oeQAIlsnSUl*?J%-~ayi-A6zA(eCYUe|z`UuYR>h@}K_n zryj|S1E3wQ=eN4B)e5GcwD!}-*NBt|un~|3SG(HPy4&35Hr=gmb*paw{rB(NQPguS z$WP;waUqGSH_)<9NvyPsDrzN~yspR1RzkXBQclq#PLBE9=RViH@|Cab5&pBE{jB@* zpZ`1))7~Rj$%R9n!I0~duGBp4)Nu5=^Pcy--GwiF;qH3ZyIyzHQAc$LAAE366ltkT zG$K9S*`cuv!RZd^slOGEBHAd{d*1V&?!_;DargPpf4=+O?|wHk#4^rce>DiA6uW?h$d-%k!$nMge`w4#095Cl zi<1Uo_EBR8z>qO`-RoYr=lnwsIi$Pz#V8XG9lmGCCKg3;p|U(fo}cm((i7)RH> zP#vV(#=Up|*S_|(yZhbme%&4Kc*lN>w5tSDN>oOuff$*``6bd@Jp+lNZ*xb3E1QmV zs_&~f&8QlaVS#zquLY4HkKX`%WB$XvLTA7J^{?;UE?g`?mq>9-drW};GaCm|aj_7y zSlV#er7m@;9s&C9E;NwRLGjI8e)-E^c0c&R54xZJ^r!upaR0vdz3+8D|M|~nhGLDv z0V&NS4vf5;-~8s?UGI9=?#4I1aeqI^XAUBjxl2@zEj3gSWa&Z-%+$VRx?QL)CUhsk!^llfwvk>~#sR}Y6!!`KN*SN+tx*Oi` zhP_zjyF{WW&FGs8;rP-kNLwHcI*^3n`1P-Uz5CRsKGnY<3dSaaG(gQb0*p_OMmPqo1dy$qrc zJM6GNK*IObSI$EYOM=dcS4a`>ciYM;9Iw*{$Ce>Z@Yc7!wR`{j-{1Z4hd-S4A;Bi` z>XKgTTG#3k57(zxKtKGixUMmNz%^>s=QZZP&u@SG+wCnBGe#8rhhbzeq=GSS#j%rQ zp)l6I{N*pttYjtxH*gQ4-GxRRg6!Mf?sh%0iH@aDP5YK2!SRkKjj!~Z6NWg)erb~h zPF-z#THRcWA&7_ZzW2Sa```yZ*dyNvT_#>sb&T=ym%n^>?6Jr8FUD(ss@pW+BmxaS z*QOGR7-0H*) zZG!0g+~+>MzP{iEFW6tBR8ib&;H0~Qq_DsAuQSS5b$bSPBqkQvF($#N&J6R?A2EJB zjyJ#g&Aq#cBuE6(H}jOM3FTtlKm6ej@1-Se(vIt3f2s$6cg_-Lt0C7TUGcsOIALBI z4B1IFke>03XLK)n*~@xE$m`^o^o1{Xxy$tn0@BgpifpdcGR~Sa7A@1OsZLT?XLvOc zDDqQma=l2OS_Av!9s)=hd(87AANj~Gwv6-Tvw@&{-}~O()1LOUo~Y&IM82P0Pt&+5 zw#OjX<4jL@!V{jh7>b7*G_6@fpBXKqQ}p-qpa1+`{N*IF@Pb9d*m?4kpWGw-Jm)!2 zzd*Qk8PaqykTM!^xL7Bicw+DNu`s9wMdwgq!;q1epB0T`jFEA6+ebw~v{$|ARr@hw ztfo~DqE&hP_N{Mys~-O0}k=v(4_Y|np)kSiOVx2`{ z@K7>h9T6zUg1n4E;b#-cI_8*TdLMgM*R}H++Myr&qYW&6!n1FB)0=ur+Q=Qg?4uw3 z=w>i) zT_Z@BjY*=H_{;>}@P;>ZKl#Z|W(gUC4ynH%^O(nU2OV_KjO!6=ECk_N+C@ha8-K+s zUeUe!)vxZp_O-9gLbO>wXPYcK>CU^{y4+I-Rx%l>tYwX*i5oykSP7} zRiUZ|IbM4PFfhYd5Zh0B(v$jp020v58(@G6CV?m*SW>m?gtZ{uNoL^#*68z|_q^U` zH7R0dNrc|%PIu~#JMOqX9BK57cJysA*0>g`#{eYwK@dcVqD2nZ5V!%!a5q*nT%xs~ z?pNw{$J|moJ_Z?4%e+E{Q|Sw28Z#$sOi%{t#oQziT{!^N#oQqh)ZV&aqeZW^aD$5m z@|ZA*6GE&OAMl#^q~*!5sp!l872L3IN&8Oc}eer;o=#NHF^gT-QWf{=A`>7(6>MPq{Z8!4(^np}j4VcTzU;gshI*EL~BjK=# z(D7vJRAHuX4QfpV*m6u84r(e(GX}a8227X$7Ai&w03uAI(lJIGRyw(6bL;7vF z>c)K`4T^!1_bV1bI2JC%gAcBcZZHP5fM_I;fd~iqPlIkK*Q^hhUg}ifB}aJ)8LheAqWiO0}ni~cR!6n$}r+^tp7y(M&*RDMVJQ+%%~BFq8!;O zm(<}*5OIcR*VmSdlmcA;!WX`eX=Jvs;E^yZ`BIEz z4Oo3m{jWYTy~yAlh*crH?tb^X_hHowUFbr)ASQ!4i1Syy>Q#LZN5hW)uX)XD_7*St zo9q-sV{t{Qh7^5C;g#Cwz3Mf|najR16fH3s8C1G~K$wBVQsyi~DxW|7=}&j>c*i?t zW!M_AnX?#rNnkT3s}w!-n))Bg1JSq`gc)6QEm+?1!3nM6rWk(B4UbF&e;yZxuqEKw zC@X%%BOcLP=SUQF8JunmJ`J_>jq~>*+ock{pX-*UvH4HEa`AI~=~eI>WnD)ed1QC{ z+uwdx|EEgeh2&$6$lvSMT75Luf2ygTh-`QaS`0Z#l+j04fT*JZ5Xwa0R*?pzwF(vE zx?l^WjzXM0>|qb$*J4NAc<|mpvn}CAsz#S+%X)g?oKgDR1Axq-_cjP z8T!d&mk8nzC$}O5K#UW(fnXpO+sr^lb+i1>^rRe>Vy;TDigerZJL5LBxeR1nfRM2T zq8TU1@ql>j7Hpfe1DFeIjc3G~a$U7S=Jl`V(<8n5szabVmR6V(R@d3B0TV^S|9sg7EOZH4l(}jc!xeo5e0Hoerw~XHrafcs%cyFbf z3a$Ftu}x9=*nd;;iB&UjL;a+Ek#<8O{|Z;QLT|%Z76yo1LfsGpqJGg6rusfxZ%7fM zd%*8-DEcS$mfUvfOJBM>^w2|RyE}m_BA}i3zW2Sol(6IoK!1aDLY4NJhLzH(62Ml5 zT${R9X=JIxsT9JE!w#y_2Puo~^R9QjYtly_f+nOZj5T4z#xLO zvh~N|awzl@pZG+dKtazbO&}1&I+3bWC%JI>d2c{?!jO8ZZlMy(0jVg=Q$$_)>!3C1hA1&b+sSsTduv;Aw)5OLGhiV$_W14Ng9|NGycg%dT-_@9_K zy4x*8-El-cn_`}IdKRj^V>tlPyKDH!_e64_;VvAkfB&4AoX=h0NdamY6Fp)i$Jq7 zkefBEu(+*x^M8X4WR2KF=%BOom=}YDU@}fl84>EhjR4hM+LL0w5?A)wLU>9_eSVWr z#2?&{L1fXisd;kSB|Hm5z(g5a;C~p0oV%hQ$n|rK>E$#zc?M=u>_A~g*ZPKb>R$$r z#g5Bihn~n}bcsRY*K5#Vv>_Sb@?6LaUDm};1Z)Pk4~27E`_&-Tu5s5Xu?f}!0+5@N z!Z54)8mOF7pxoi<#7_@McOLEn zVvejKW!x|iFHXrKG6^H)hELTWl9P4H{er$DG042x*O1W&%shqGK_|CERRjmr6S`@< z5Yvcjz?gN0PYE9)+HDU#Wd%&e&U27^JJg69z;{ZajK^c#66hlCA$NK$>x)N&+T`8e zB?#0k($lPEEz+pa%;_2Q$9OWGIxo$>l)StnnMVi~I8kZYo)^ zPOS;E8pL4G=>h4v2JW##DpCzhFiJ7a+*w;TW9D&VG7jrR+BFMAH1-hjsNAectghN@ zJQ^8eHDcTZHCgZgMdfiE>K_m&()rz!pu7&zP9zUdjFVtNPjO9FcLM2qPC?CBX*dDZ zxETtT)RHQza11=PHT=ZPpX6B`IZr2yKIO;uxl`vwb`w?lBjVW5so2eRIC{ zn>gsbhk9Uc=63zg3+lw^f|{@}6CvJ%1&+A#ymL=~G^m4{fhy>phvBmZ3b$5fv z?X4W21Y>)iPBC_W{+D{x@2nAvn!nfgDTKS09w`nmHaHzok8#X3a4h1THAWhUc=~}k zEDBXUN=RIfEA2^NsUFh{>ZLLlCsow4BEL)J=p7nW#AIWHU!hv5FRMNA%i(epHe8Q7 zkaDF?C!&Z-E}cSJjt7Fv^WR&cMgtX>c?iIwNOunTumOP25I%O0NEh)WQ(z$1k2Qe^ zSmWFurwWxYwGRw^>rP9|J<^9FHb6C`+OT z)8wRt7Npl&GsiW>>3MxhxFKU`2-#DJ&njDuVzX&TIaHkg19CfCzEb4^d3aJLz|`yF zre32>)~h|O=DJwvHf6<%!Gl~d8}lJ?Kpy5pTM!Gc47|YQs0@vqp&cn>A=rwv)a$AD z*5UFw?jZu2YCrw%`k+DP57PPFm^;!G+bM~^+8`M_Q5xm>ymEYU`Jl@-kD8Mp^v@F+ zX{F~z#LV*|u9!@6kvhLFUP_r-H8b?8i#rs49Qtp}2&=?4kHcGEBA^CVJUc$srK+&@ z13=6kvXDDtxmVk4-r9+ijVeCsq`fJ1!jMEzhuT@S38cboD=D%@k-*08)j%R zTXp6Tv~qbaZY7kVwil5ewvp=2lQfK`z)z+K-A)P-pEJ*a$^NUs)GFTX)AvP@Q*~jsT}6BA_#`4N zZ{1PWlDGx&i!2R8`r*3+RvfubAQNLckzJ)hRoQhdoAT*$vWMCky~_A6;3*SY&e@si zK~7kzk+Ve+vkXk>+}#c4)9K65DeDK9lOap{1yx8A$~84#J4t9Zi7yQM82+uIz=iK+0{s?zWLq+t;C|;;{i#E zWw@N=3W$^e2-ak(IXxb9IaM+>8KupITBuL00Fu%A?=6E)F;3W!V1ha(DT*u_NUz6i zq#KfLI;hP+dW)aGOq;F1dgLJk_~N8dId(0pg{Vik^PTTJ3u7y;`41^ddb(Qd{BJTQ z18ox5(&F6{k0@RwnNKH*EgL6o%Al$kONo%BQ^wqD=4##08a&xuAmL|Fi+XkHh+jk|s`^;*?X zzuHqqPM%rDXWT9Hhv0T5{zqg{@09_ZOpoSn)1f?eF2ay&G!LqaQej=3UIRb14q={= zs9z2zQVR!{W5^l*AW(I;yWOp?3QkMkvBUWkqq4R#l0F!w0H8!>y zX~Srv_%V+bfq`y*^PBglOJIF-P44A`d$E;}93drWr z1)^~H=oE%>Od8v|L>TjTH;ncVMHU!;B2qhxcf2Xe$UP3mHBmZykL$c4)l4l$QY)X? zk%5)T!M{+L2M5s+7CZ+IPzuB(y=NYX9M7Q1>XH_ydRgK#G(2T2ir7?VNr*KCJg<$h z|6DslsBkoo=R!v#&e_9f9iBA{+@rWAEsd>2Ih0b>al+-SGp@A8qHCJZsLL^Kv=~b^ zkSRYB0-PtqnKABBSN|~qwj%RCE=Y!K#}>T?dy?bE##gzy#-M?g{?mA@eYc4CF)+FY zz#vFL5C!PB`!q^`K0WglWK%4e;Z@Isr5zYh?<&{8Ym=CF&Sm(ht*VneHY5!c4iJFb zQ;gU!d#=#!7T}LTUGUVct$NrwRD)~^8F}wKJE2uIOxX!F`j{d&12Oq@D?Xz_-T9J< z8SX)sQ%Vi!?<-j|W}oxex9Y)p6EZ?%kcRKL8Ei{-*M%Je`0N}aM3@mO9$S>Oa_1qT zWx?}vHN;wornZ^wwHT3Opj!)6&&9lkg_G)P?!jtDRr>53@8=$ZIc#-ux3AWIy1dCu zGhDV>*ZPh*VE!Xrio4*1GIxu6o!~%ig4<^ zH4N>&S%aXfrY^>SLxrYj*Jx&E5LwHtSjze5I_x63Td1@~-qQc0ID+G-4c2790BYnU zNskW&j6LhFWZ_<=$a#xhA^)EzEn4r--&!O?3(~Xyw2LYiW{DJQgtSCOl7&l~g6lK@ z3FbHsIlI;aER}GXw+Q}zk9*vsFOKlH)H~#gapAN){a?#82YE&X5mw8l*wW3BYgqF@ zo?eNYM&%JAJ}YusU@fZ+w{r}b+|C3%5t0F7$@^#zPpES6i)>vwJ%bEjWRu7n2RUKD zRWXfQwr$(CnP^{h{hE_C-7tVP#HtFeLuT1LHSlp`$hcCs1%eJ=Q45_EDB5V9v;pJ5514Yeck@ z1A+4>bAZoyO)yzL#Agv$NT*jf$d?8Pemf$Ez)dZ@Cw9!UP(26MIQ~?K_KX0mPd+i4 z^fX-VlO;2DPTrjJ_VCY#cG0%L!bs1wsNX$D1s4Kt=b)jq`1R|_zH!cq&t`Fp&lz2( zyN;|eYr_K*aMfg}WD4x3JKW(8yX;$Ez7yh$000_aNklmp`^)>Z!;nmx@%SC<7i=syiUaMo%ZwE-hlD$;Qa*gr!sX1lA z$G)o~JSU~AMw*Xjs8X{fV&z(&-3B##fS|5jat%;7O3r%?6=4h!!J@E^wHfMP4oAH~ z2rvhQ6BxRjjIGpDgrf?nVW7~0T!(=!8Kb5Dl%gB0p~NxZUZ3%8T9W}1O=6$5ryM$Y z3^^#83EcIrcb#RHq#`0XIXA$2U=WcaxSb=w9b{&KC?bH{@!`2IpOWk=PpKM% z)M;KnRVy|{OjRGQ0urF&)ish)ka!rl6iJA@EGmV|G2XD)H_9277o+lKmyJ}&C{gKv|+Ilw84Tk>EHsjWZ~wyZHvsS5>I{}B9Ni`D-qQ6-C5&!A2Xf6p6F9osHmP4lWuz|aCG<&%(sY7zGd8X+WP zh}5C`HBgdxRvlZ5v{)8YBN?Iw65)Uz3`CB#j#$rgcLc3hBa;AhHniDbjf1%j2h_+tG1`a91^=b|<6=&mAQG=Kls{ta*F&t6$wGpL9)? z21pB%RYxCvbpP)8yX#Ip?{-cH477km_Q8=0&NEf~533#BPHM3RSGFSL_=dJ$Ws<`n z3{f}Y6Z-90G)bPE$BnXA!1*in)(LCZ>D5{k3?d+|a6_1wRw-a96%`{a3fwNNW74g0 z@m2c(D)EDGL(dp*B&ISu2B7k&d86LYScak4bxXRniTC=xi?z5@H(UKm$uzrP+=^qk zkryJ3-5iL&8_cJ&n zwh-?YSxmhuf@}YayoRjs*0liKoob;Y`3C%QlUj;@AFv0)LA-Hwk(%M^p(x)FQd?ge zNhR~3MH=LSiNG0U?F_`Efy4h)c2Y>eI|h!F4v=+1%qu1EE%S%VabL06^Nf5GMDDAfH-{wjp>bD8n_%D8JZ$U#^E&sMED+>{ zc&Dyz=U`@SFlj1o%(0J2mCP?Er?#r3F}2XLKG~<^XDrmZVZ05EmyHVK$$1ZC>>}dF zf-+U2jX__tfN4u0#6i zsXBNWt*cUJ9_0NSCN@?9kjO4ejSm}7k?13&v24>)1))$rzol=>eQbqd(el)!A;U#P z=c0Ko`XV`JuglMtf{h(Cl#)W?X55JPTx^LE$+iFf`_GQ?cJ5PS^E218ZbRxA8c^eTE&7pMMZA&5vp`JQE$_afdwdY)`N&p&P*)6i=j^R1P)xSJ5INVgy6 zY4xw_aLUtIH>@?EUXfizW<@y2gwlOf=Pm==nSAl#e?vOFbwPH=!p-YLJuSfkX=^Y~ ziQF}qvb@(l{X|5UG}S zUXz;-7_U#QstG9OimFQ2HUHmTu!}dfJ3AT^#W`81pI5pzzO#66&QK}zW*b2Bpb|La z&7)D1Ffiou8S~ZM+YH$B6Mib9tf<2_8nnsl;dGBK0rIg~7;{s{f2HMfun9Dx`mj>mscM;nKABf zwTvsWv*M zYwEoibNT$%q)Zl3k(m=8LpuLu;lmg=RHSEBZx&^Y&ELa~Q@mGjFQ3Ry{oVpOx3n2r zVHS~tLhD1=7X^`~uMG^jBpK22yGYMaY%Pt#Z9~MTZdbAloifQgV^NeYvLMOXw#oX8 z9W>-UAkm7QN+dZZ#*J?Gs5QBM3hakwoq05Ou=k8K6l5 zaS=tTZR9J*pM)^4zp=RhNpy=;=y*nMa=J)OLvBbvPl2|R$(jslPvI}6*T%dG)S%yyF?QeX1fClv`v!JZB8@AHf;CtpLhix^840gG^Ap0iU8+J3PIB9C6Ps6kgb zyygBG(wll}gyg!)g&C5}!TOGPuT`=Bk0`4VF8lL)wwK&FR2M%q?rf*3i)?2Ia0$&S9hazso>fsPs?g4W?SzAe~nh<-6E!VHRpBbQT^0dAjtX zaqS@vYUQFNFp*!4*rCms)gY~q2+RAkk1?XG#JEv8ZWTz1cd@FNul@Lc24|9hwBB*q zlIt>ZH^hyV09!d}NQ&h5Auu;Slt7v1rsg^BQ|;$<`F#;dkt%0n9mviGle=2D#cO=9 zZnmkdfc5S}XO#q5<37_>k;pK4V;{>PJ&n57MRgq31|%2fvs!AuQ!qx1Ep0e1uHW2( z>p39h`=qC8Q0e2^`0CtcCV5tlPXn*>tlP*I;89}uw{^Lwk=O_P9ud{IW`Z7 zM0NR)#qH<1A#ffHS;oHmnlhA>Lg`)#X<#PO=k>q4VM`!gK)kEh6XED{PLt%ssnn6F z)2l&~8~mp@edxbLikma1?sq(#K4JNDMkeza>dOX?)&W}r>2f75o573pwc(zVPCBW7 zG|wCv|@ z?Z3{y5>e~IRz%y5N2zfjGN)vEohj{>_J<;Jj;~dH&6shK3{p#jisY3_+VY$H# zZqOe|;zG^yoyYv>Rp*mjJLSU<5td>+cd@XQiHGlSd{}w}sIHc6O*PUv6sKruqqjST zvSCAuF!g^mUW7$NE25oewW1fXfT@DbvZ<;2^Lx5%iyBH*7f)?H%JwTEYM?^UoEf+O z{`=3)k<(Uj%XZ7S66x7*YaF7#Z-+ayebv-zV_d;K|oMG zOfT=9x?i#5NsC$WV#aK2Qi<#ooh?$L&NJ^9ai0Fz(trIflFb%U0p#IMx^GiuQit!T2!dlY)m1%1uPR9YNvAHya9ROJrjg@n2_6oR6=)i!+Ctj`-$q{f`TP@GVE5C6em{0$QYLuFppPxGW4=v5Wf1 zK7vw2^Q;p}pPgK5fumehvsx{SQVlY{n<^c<*FMs<;&(#GSniyG>v+-zGD54K zi{NcGpO##4OXCJk#{Au}!6-frV{#}ykK_ba4Wmv;nq@5f1QD5M;pshK>u?epy5> zuM4&W((|N9-7F2d)PwV2RY|q#f_r~@8d<8HE@a)L&|>JW8@2?}^N9}?(%Kz^RS>t1 z2wt|6haIMymB#ImMZUXX=CW;Ck0YS|OK}I}Z&R=*RY2`~NdM+%iJ&F$v^!u+Abn^9 zzZUa4O0!py`%D}s zvdB)8G6;->~SuT(i>>3cH)q+yzCoo?M! zLTX4AZwT;(Nol%>LDkyF44YKpw`Z1o}wioH6#gJV;G6&jdg_p zMKsBSA*4?kQaSL`6QThVEWnUY-;xaSS`n9#%9h-M?es{`M_(-q77668le!muD&gW7 zcsEqJw~KWl^>;q3U}%%Z5V#H*#jC1x3h9~G-|&gYt1PZL=REN-|I7DzAh(-iK0P2? zV2wSq-ec3W-nHgi!F%$|nU>tdE?$)nvR@T^>d-u6qXn{pR023XAm180>jngoHDySr z#PpeViS&AOTZM{)4Le^2>{x25?X?(WY1AxQ+qTuAx@k2q(^4;x43Obn|7&5cnVML3 zBL9QE7ygIzGa&pA>1ROrAJWf&@IR!V0pWj0KLf&+L3+ApLs_N030lU#r{>j1A+^|_bp+_)!m#R|8keR zT>o5`p@c-n>9+#pMoAz=Jr5+}KmsHeFqCfIY{K0VNY8D~ib2k1VW+1Y?^fSDiqqfr zG^m0U<9To)``E5^t!w?i%^a!U&ybuBq=wC8s7-*p?)kTpN_%Js~0sTTay>o&$V!?yx$ z=xWuYIa|aRlVCwWF39Fw7K}Oeb>IE&ckh1w^PhL$|Ni%P*%XmGL^h+?BI^ZQNM6j@ z?|BjjI{cpZyk~dVVTbjhZHCgT%(pcIl+1b)+eit#-O@~8&-3yA}T%TmRBNu z5q-t=AREKy0vEWz?7kz9JhETR=RNOv{ei%FL@2OX8vsQp9Bd_w-$lBQ+~RTB4|u=> zx`#gWp|ffk$0^Zfo!eA#s>qd~JR-e59b)YMtf$-Xh{{#;N{#po4Pp#2OvvZDxu7lx zI{nyVkL`)!#1l{KzWUX#_8a_jv2s6nYoCiiM%gmbCQ*A>6Jxl-6|T@7bIdW_5l0*` zJK#8rPxBOtRt`^u&0E`+GU%B)+A*N*i=5#)Z&03do+Uu7q8AaFPj8fx`Ru7na1jW9 z?Q37#z2hD4=#LULat9>Q<|3^Fa>1CFlF_j-*8TR|ueyc)*2`nRFeP*jFqD7*nq}XSNNZvkF(6|UNF_4}*J^j(C#n(-PXgHz+uFt`0AQ{qp z^PAt?J^krV@5Q~RP$l739kvc|ja)pdSV1o5y*}=7kLw=%;0N!LCy+n{k)9m8$bLPq z0pSqT(9=8|v}cMhm-5V40Jet37(QAf=V2=t&|$IoX^z8rF6(^eRRT#sa^R`uW-0vp-D zs*92nNk4Q7GQ(DNou3VQ@Q(dJpSVT*cESlKbf=zrYQMPkj5Y~n5y55>@yGWOLxL?3 z8}6BeSx=5~9$W{(E`#*E4hFG5+i#s)KgQ9kw+P5Nb@LyG41$Ck-tdO~dFn*%e)-E^ z_5|poI@PT$gq@N_!qNiwv`3yianL~r^$6q`Q=j{uPia_1YHkMX6-dvMpp6AU?Swjg zpgoIEoZk4oT(@Y%F2$(gJr5-2JH!OwUe35@r#P=COs(n}?GD&$kgf`Vt5`@+o`MUt z?h&0VK7kPa$DPxFSwsZ-UBuBRdRu$J$e~{QGRmuP$y*^=S%rbWlTLtzSq+6Vzug=1&*ZH6CTG1XMo(CAU?hN(%8dOoGq>H5C znw;-=Yjkic!Ine%yo7=x6w#eluZ4#EuVH5b1fg7;EIG+|F2oK zmWZ7HFH1Z%QL~X0x-1L@2*ml`q!H!)Lm|wZkZqXS%v$*tnCGsg3zq%pMGWN^ z>KfEnUgKO^p4OBSEA5S{j>hIEY@`pmEVx)&uyp~ZL|pp9DVAH^pKLpm5Xo(=kh(p^ u`qU92Ex{G9%g-&jj~stZXf1*}=ktFERB&jvRoeUj0000+aiml_3~Zwxpi- znfI5Oy~Ov�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 literal 0 HcmV?d00001 diff --git a/smart_home_client/picture/temperatureSymbol.png b/smart_home_client/picture/temperatureSymbol.png new file mode 100755 index 0000000000000000000000000000000000000000..fc72ccc205f7732d3929e87c5a8cbaed5ef1cf19 GIT binary patch literal 36532 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�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 literal 0 HcmV?d00001 diff --git a/smart_home_client/picture/traycon.png b/smart_home_client/picture/traycon.png new file mode 100755 index 0000000000000000000000000000000000000000..36a763287c2e64394d7dec7011002cd7176a219f GIT binary patch literal 34244 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 literal 0 HcmV?d00001 diff --git a/smart_home_client/setsecurevalue.cpp b/smart_home_client/setsecurevalue.cpp new file mode 100755 index 0000000..2cb5b52 --- /dev/null +++ b/smart_home_client/setsecurevalue.cpp @@ -0,0 +1,85 @@ +#include "setsecurevalue.h" +#include "ui_setsecurevalue.h" + +#include +#include + +setSecureValue::setSecureValue(QWidget *parent) : + QWidget(parent), + ui(new Ui::setSecureValue) +{ + ui->setupUi(this); + + //设置窗口标题 + this->setWindowTitle("设置安全阈值"); + + //创建套接字,和A9服务器取得连接 + setValueSocket = new QTcpSocket(this); + setValueSocket->connectToHost("192.168.200.105", 7777); + connect(setValueSocket,SIGNAL(readyRead()),this,SLOT(recvServerDataSlot())); +} + +setSecureValue::~setSecureValue() +{ + delete ui; + setValueSocket->close(); + setValueSocket = NULL; +} + +void setSecureValue::on_setSecureValueReturnBtn_clicked() +{ + emit setSecureValueToWidgetSignal(); +} + +void setSecureValue::on_setSecureValueSubmitBtn_clicked() +{ + QString cmd = "//"; + QString MessageBuf = "SetSecureValue:"; + MessageBuf.append(ui->temMinComboBox->currentText()); + MessageBuf.append(cmd); + MessageBuf.append(ui->temMaxComboBox->currentText()); + MessageBuf.append(cmd); + MessageBuf.append(ui->humMinComboBox->currentText()); + MessageBuf.append(cmd); + MessageBuf.append(ui->humMaxComboBox->currentText()); + MessageBuf.append(cmd); + MessageBuf.append(ui->lightIntensityMinComboBox->currentText()); + MessageBuf.append(cmd); + MessageBuf.append(ui->lightIntensityMaxComboBox->currentText()); + MessageBuf.append(cmd); + MessageBuf.append(ui->smokeconcentrationMinComboBox->currentText()); + MessageBuf.append(cmd); + MessageBuf.append(ui->smokeconcentrationMaxComboBox->currentText()); + + QByteArray arr, recv; + arr.append(MessageBuf); + qDebug() << arr; + if(this->setValueSocket->write(arr) == -1) + { + int ret = QMessageBox::question(this, "提交失败", "你提交的数据并没有上传到服务器!!!", QMessageBox::Yes); + if(ret == QMessageBox::Yes) + { + emit setSecureValueToWidgetSignal(); + } + } + else + { + int ret = QMessageBox::question(this, "提交成功", "恭喜你成功提交数据到服务器!!!", QMessageBox::Yes); + if(ret == QMessageBox::Yes) + { + emit setSecureValueToWidgetSignal(); + } + } +} + +//接收来自服务器的信息 +void setSecureValue::recvServerDataSlot() +{ + int i = 0; + QByteArray arr = setValueSocket->readAll(); + for(i = 0; i < 11; i++) + { + qDebug() << "arr[i] = " << (int)arr[i]; + } + //qDebug() << "setvalue recv = " << arr; +} diff --git a/smart_home_client/setsecurevalue.h b/smart_home_client/setsecurevalue.h new file mode 100755 index 0000000..75301d4 --- /dev/null +++ b/smart_home_client/setsecurevalue.h @@ -0,0 +1,33 @@ +#ifndef SETSECUREVALUE_H +#define SETSECUREVALUE_H + +#include +#include + +namespace Ui { +class setSecureValue; +} + +class setSecureValue : public QWidget +{ + Q_OBJECT + +public: + explicit setSecureValue(QWidget *parent = 0); + ~setSecureValue(); + +signals: + void setSecureValueToWidgetSignal(); + +private slots: + void on_setSecureValueReturnBtn_clicked(); + + void on_setSecureValueSubmitBtn_clicked(); + void recvServerDataSlot(); + +private: + Ui::setSecureValue *ui; + QTcpSocket * setValueSocket; +}; + +#endif // SETSECUREVALUE_H diff --git a/smart_home_client/setsecurevalue.ui b/smart_home_client/setsecurevalue.ui new file mode 100755 index 0000000..f69a7da --- /dev/null +++ b/smart_home_client/setsecurevalue.ui @@ -0,0 +1,1285 @@ + + + setSecureValue + + + + 0 + 0 + 670 + 478 + + + + Form + + + + + 230 + 20 + 211 + 41 + + + + + 华文行楷 + 20 + + + + 设置安全阈值 + + + Qt::AlignCenter + + + + + + 30 + 80 + 51 + 31 + + + + + 华文行楷 + 16 + + + + color: rgb(255, 0, 0); + + + 温度 + + + + + + 170 + 120 + 87 + 22 + + + + + 18 + + + + + 19 + + + + + 20 + + + + + 21 + + + + + 22 + + + + + 23 + + + + + 24 + + + + + 25 + + + + + 26 + + + + + 27 + + + + + 28 + + + + + 29 + + + + + 30 + + + + + 31 + + + + + 32 + + + + + 33 + + + + + 34 + + + + + 35 + + + + + 36 + + + + + 37 + + + + + 38 + + + + + 39 + + + + + 40 + + + + + + + 90 + 120 + 72 + 21 + + + + 最小值: + + + + + + 90 + 170 + 72 + 15 + + + + 最大值: + + + + + + 170 + 170 + 87 + 22 + + + + + 18 + + + + + 19 + + + + + 20 + + + + + 21 + + + + + 22 + + + + + 23 + + + + + 24 + + + + + 25 + + + + + 26 + + + + + 27 + + + + + 28 + + + + + 29 + + + + + 30 + + + + + 31 + + + + + 32 + + + + + 33 + + + + + 34 + + + + + 35 + + + + + 36 + + + + + 37 + + + + + 38 + + + + + 39 + + + + + 40 + + + + + + + 440 + 170 + 72 + 15 + + + + 最大值: + + + + + + 440 + 120 + 72 + 21 + + + + 最小值: + + + + + + 380 + 80 + 51 + 31 + + + + + 华文行楷 + 16 + + + + color: rgb(255, 0, 0); + + + 湿度 + + + + + + 520 + 120 + 87 + 22 + + + + + 18 + + + + + 19 + + + + + 20 + + + + + 21 + + + + + 22 + + + + + 23 + + + + + 24 + + + + + 25 + + + + + 26 + + + + + 27 + + + + + 28 + + + + + 29 + + + + + 30 + + + + + 31 + + + + + 32 + + + + + 33 + + + + + 34 + + + + + 35 + + + + + 36 + + + + + 37 + + + + + 38 + + + + + 39 + + + + + 40 + + + + + + + 520 + 170 + 87 + 22 + + + + + 18 + + + + + 19 + + + + + 20 + + + + + 21 + + + + + 22 + + + + + 23 + + + + + 24 + + + + + 25 + + + + + 26 + + + + + 27 + + + + + 28 + + + + + 29 + + + + + 30 + + + + + 31 + + + + + 32 + + + + + 33 + + + + + 34 + + + + + 35 + + + + + 36 + + + + + 37 + + + + + 38 + + + + + 39 + + + + + 40 + + + + + + + 10 + 210 + 651 + 20 + + + + Qt::Horizontal + + + + + + 320 + 80 + 16 + 301 + + + + Qt::Vertical + + + + + + 90 + 340 + 72 + 15 + + + + 最大值: + + + + + + 90 + 290 + 72 + 21 + + + + 最小值: + + + + + + 30 + 250 + 121 + 31 + + + + + 华文行楷 + 16 + + + + color: rgb(255, 0, 0); + + + 光照强度 + + + + + + 170 + 290 + 87 + 22 + + + + + 18 + + + + + 19 + + + + + 20 + + + + + 21 + + + + + 22 + + + + + 23 + + + + + 24 + + + + + 25 + + + + + 26 + + + + + 27 + + + + + 28 + + + + + 29 + + + + + 30 + + + + + 31 + + + + + 32 + + + + + 33 + + + + + 34 + + + + + 35 + + + + + 36 + + + + + 37 + + + + + 38 + + + + + 39 + + + + + 40 + + + + + + + 170 + 340 + 87 + 22 + + + + + 18 + + + + + 19 + + + + + 20 + + + + + 21 + + + + + 22 + + + + + 23 + + + + + 24 + + + + + 25 + + + + + 26 + + + + + 27 + + + + + 28 + + + + + 29 + + + + + 30 + + + + + 31 + + + + + 32 + + + + + 33 + + + + + 34 + + + + + 35 + + + + + 36 + + + + + 37 + + + + + 38 + + + + + 39 + + + + + 40 + + + + + + + 420 + 340 + 72 + 15 + + + + 最大值: + + + + + + 360 + 250 + 121 + 31 + + + + + 华文行楷 + 16 + + + + color: rgb(255, 0, 0); + + + 烟雾浓度 + + + + + + 420 + 290 + 72 + 21 + + + + 最小值: + + + + + + 500 + 340 + 87 + 22 + + + + + 18 + + + + + 19 + + + + + 20 + + + + + 21 + + + + + 22 + + + + + 23 + + + + + 24 + + + + + 25 + + + + + 26 + + + + + 27 + + + + + 28 + + + + + 29 + + + + + 30 + + + + + 31 + + + + + 32 + + + + + 33 + + + + + 34 + + + + + 35 + + + + + 36 + + + + + 37 + + + + + 38 + + + + + 39 + + + + + 40 + + + + + + + 500 + 290 + 87 + 22 + + + + + 18 + + + + + 19 + + + + + 20 + + + + + 21 + + + + + 22 + + + + + 23 + + + + + 24 + + + + + 25 + + + + + 26 + + + + + 27 + + + + + 28 + + + + + 29 + + + + + 30 + + + + + 31 + + + + + 32 + + + + + 33 + + + + + 34 + + + + + 35 + + + + + 36 + + + + + 37 + + + + + 38 + + + + + 39 + + + + + 40 + + + + + + + 210 + 420 + 93 + 41 + + + + 提交 + + + + + + 350 + 420 + 93 + 41 + + + + 返回 + + + + + + diff --git a/smart_home_client/smart_home.pro b/smart_home_client/smart_home.pro new file mode 100755 index 0000000..e25fd75 --- /dev/null +++ b/smart_home_client/smart_home.pro @@ -0,0 +1,44 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2018-08-27T13:31:18 +# +#------------------------------------------------- + +QT += core gui charts +QT += core gui network + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = smart_home +TEMPLATE = app + +# The following define makes your compiler emit warnings if you use +# any feature of Qt which has been marked as deprecated (the exact warnings +# depend on your compiler). Please consult the documentation of the +# deprecated API in order to know how to port your code away from it. +DEFINES += QT_DEPRECATED_WARNINGS + +# You can also make your code fail to compile if you use deprecated APIs. +# In order to do so, uncomment the following line. +# You can also select to disable deprecated APIs only up to a certain version of Qt. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + + +SOURCES += \ + main.cpp \ + widget.cpp \ + historydata.cpp \ + setsecurevalue.cpp + +HEADERS += \ + widget.h \ + historydata.h \ + setsecurevalue.h + +FORMS += \ + widget.ui \ + historydata.ui \ + setsecurevalue.ui + +RESOURCES += \ + picture.qrc diff --git a/smart_home_client/smart_home.pro.user b/smart_home_client/smart_home.pro.user new file mode 100755 index 0000000..95fdc00 --- /dev/null +++ b/smart_home_client/smart_home.pro.user @@ -0,0 +1,318 @@ + + + + + + EnvironmentId + {2bdcebe0-b828-44ab-aa41-e9b54419a45b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + true + false + 0 + true + true + 0 + 8 + true + 1 + true + true + true + false + + + + ProjectExplorer.Project.PluginSettings + + + + ProjectExplorer.Project.Target.0 + + Desktop Qt 5.10.1 MinGW 32bit + Desktop Qt 5.10.1 MinGW 32bit + qt.qt5.5101.win32_mingw53_kit + 0 + 0 + 0 + + C:/Users/Administrator/Desktop/build-smart_home-Desktop_Qt_5_10_1_MinGW_32bit-Debug + + + true + qmake + + QtProjectManager.QMakeBuildStep + true + + false + false + false + + + true + Make + + Qt4ProjectManager.MakeStep + + false + + + + 2 + 构建 + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + true + clean + + + 1 + 清理 + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Debug + + Qt4ProjectManager.Qt4BuildConfiguration + 2 + true + + + C:/Users/Administrator/Desktop/build-smart_home-Desktop_Qt_5_10_1_MinGW_32bit-Release + + + true + qmake + + QtProjectManager.QMakeBuildStep + false + + false + false + false + + + true + Make + + Qt4ProjectManager.MakeStep + + false + + + + 2 + 构建 + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + true + clean + + + 1 + 清理 + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Release + + Qt4ProjectManager.Qt4BuildConfiguration + 0 + true + + + C:/Users/Administrator/Desktop/build-smart_home-Desktop_Qt_5_10_1_MinGW_32bit-Profile + + + true + qmake + + QtProjectManager.QMakeBuildStep + true + + false + true + false + + + true + Make + + Qt4ProjectManager.MakeStep + + false + + + + 2 + 构建 + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + true + clean + + + 1 + 清理 + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Profile + + Qt4ProjectManager.Qt4BuildConfiguration + 0 + true + + 3 + + + 0 + 部署 + + ProjectExplorer.BuildSteps.Deploy + + 1 + 在本地部署 + + ProjectExplorer.DefaultDeployConfiguration + + 1 + + + false + false + 1000 + + true + + false + false + false + false + true + 0.01 + 10 + true + 1 + 25 + + 1 + true + false + true + valgrind + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + 2 + + smart_home + smart_home2 + Qt4ProjectManager.Qt4RunConfiguration:C:/Users/Administrator/Desktop/smart_home/smart_home.pro + true + + smart_home.pro + false + + C:/Users/Administrator/Desktop/build-smart_home-Desktop_Qt_5_10_1_MinGW_32bit-Debug + 3768 + false + true + false + false + true + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 18 + + + Version + 18 + + diff --git a/smart_home_client/smart_home.pro.user.2bdcebe b/smart_home_client/smart_home.pro.user.2bdcebe new file mode 100755 index 0000000..70e393e --- /dev/null +++ b/smart_home_client/smart_home.pro.user.2bdcebe @@ -0,0 +1,318 @@ + + + + + + EnvironmentId + {2bdcebe0-b828-44ab-aa41-e9b54419a45b} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + true + false + 0 + true + true + 0 + 8 + true + 1 + true + true + true + false + + + + ProjectExplorer.Project.PluginSettings + + + + ProjectExplorer.Project.Target.0 + + Desktop Qt 5.10.1 MinGW 32bit + Desktop Qt 5.10.1 MinGW 32bit + qt.qt5.5101.win32_mingw53_kit + 0 + 0 + 0 + + C:/Users/Administrator/Desktop/build-smart_home-Desktop_Qt_5_10_1_MinGW_32bit-Debug + + + true + qmake + + QtProjectManager.QMakeBuildStep + true + + false + false + false + + + true + Make + + Qt4ProjectManager.MakeStep + + false + + + + 2 + 构建 + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + true + clean + + + 1 + 清理 + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Debug + + Qt4ProjectManager.Qt4BuildConfiguration + 2 + true + + + C:/Users/Administrator/Desktop/build-smart_home-Desktop_Qt_5_10_1_MinGW_32bit-Release + + + true + qmake + + QtProjectManager.QMakeBuildStep + false + + false + false + false + + + true + Make + + Qt4ProjectManager.MakeStep + + false + + + + 2 + 构建 + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + true + clean + + + 1 + 清理 + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Release + + Qt4ProjectManager.Qt4BuildConfiguration + 0 + true + + + C:/Users/Administrator/Desktop/build-smart_home-Desktop_Qt_5_10_1_MinGW_32bit-Profile + + + true + qmake + + QtProjectManager.QMakeBuildStep + true + + false + true + false + + + true + Make + + Qt4ProjectManager.MakeStep + + false + + + + 2 + 构建 + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + true + clean + + + 1 + 清理 + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Profile + + Qt4ProjectManager.Qt4BuildConfiguration + 0 + true + + 3 + + + 0 + 部署 + + ProjectExplorer.BuildSteps.Deploy + + 1 + 在本地部署 + + ProjectExplorer.DefaultDeployConfiguration + + 1 + + + false + false + 1000 + + true + + false + false + false + false + true + 0.01 + 10 + true + 1 + 25 + + 1 + true + false + true + valgrind + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + 2 + + smart_home + + Qt4ProjectManager.Qt4RunConfiguration:C:/Users/Administrator/Desktop/1/smart_home.pro + true + + smart_home.pro + false + + C:/Users/Administrator/Desktop/build-smart_home-Desktop_Qt_5_10_1_MinGW_32bit-Debug + 3768 + false + true + false + false + true + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 18 + + + Version + 18 + + diff --git a/smart_home_client/smart_home.pro.user.2fa79d3 b/smart_home_client/smart_home.pro.user.2fa79d3 new file mode 100755 index 0000000..76c0871 --- /dev/null +++ b/smart_home_client/smart_home.pro.user.2fa79d3 @@ -0,0 +1,318 @@ + + + + + + EnvironmentId + {2fa79d37-8b3a-405c-bcf3-08028e95e509} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + true + false + 0 + true + true + 0 + 8 + true + 1 + true + true + true + false + + + + ProjectExplorer.Project.PluginSettings + + + + ProjectExplorer.Project.Target.0 + + Desktop Qt 5.11.1 MinGW 32bit + Desktop Qt 5.11.1 MinGW 32bit + qt.qt5.5111.win32_mingw53_kit + 0 + 0 + 0 + + D:/ubuntuTest/courseDesign/build-smart_home-Desktop_Qt_5_11_1_MinGW_32bit-Debug + + + true + qmake + + QtProjectManager.QMakeBuildStep + true + + false + false + false + + + true + Make + + Qt4ProjectManager.MakeStep + + false + + + + 2 + Build + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + true + clean + + + 1 + Clean + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Debug + Debug + Qt4ProjectManager.Qt4BuildConfiguration + 2 + true + + + D:/ubuntuTest/courseDesign/build-smart_home-Desktop_Qt_5_11_1_MinGW_32bit-Release + + + true + qmake + + QtProjectManager.QMakeBuildStep + false + + false + false + true + + + true + Make + + Qt4ProjectManager.MakeStep + + false + + + + 2 + Build + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + true + clean + + + 1 + Clean + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Release + Release + Qt4ProjectManager.Qt4BuildConfiguration + 0 + true + + + D:/ubuntuTest/courseDesign/build-smart_home-Desktop_Qt_5_11_1_MinGW_32bit-Profile + + + true + qmake + + QtProjectManager.QMakeBuildStep + true + + false + true + true + + + true + Make + + Qt4ProjectManager.MakeStep + + false + + + + 2 + Build + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + true + clean + + + 1 + Clean + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Profile + Profile + Qt4ProjectManager.Qt4BuildConfiguration + 0 + true + + 3 + + + 0 + 部署 + + ProjectExplorer.BuildSteps.Deploy + + 1 + 部署设置 + + ProjectExplorer.DefaultDeployConfiguration + + 1 + + + false + false + 1000 + + true + + false + false + false + false + true + 0.01 + 10 + true + 1 + 25 + + 1 + true + false + true + valgrind + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + 2 + + smart_home + + Qt4ProjectManager.Qt4RunConfiguration:D:/ubuntuTest/courseDesign/smart_home/smart_home.pro + true + + smart_home.pro + false + + D:/ubuntuTest/courseDesign/build-smart_home-Desktop_Qt_5_11_1_MinGW_32bit-Debug + 3768 + false + true + false + false + true + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 18 + + + Version + 18 + + diff --git a/smart_home_client/widget.cpp b/smart_home_client/widget.cpp new file mode 100755 index 0000000..36c7aeb --- /dev/null +++ b/smart_home_client/widget.cpp @@ -0,0 +1,480 @@ +#include "widget.h" +#include "ui_widget.h" + +#include +#include +#include +#include + +Widget::Widget(QWidget *parent) : + QWidget(parent), + ui(new Ui::Widget) +{ + ui->setupUi(this); + + //窗口名字 + this->setWindowTitle("智能家居控制平台"); + + //开关窗口背景 + + + //设置托盘 + setWindowIcon(QIcon(":/picture/traycon.png")); + trayIcon = new QSystemTrayIcon(QIcon(":/picture/traycon.png"), this); + + //设置系统托盘图标 + trayIcon->setToolTip("智能家居控制平台"); + QMenu * menu = new QMenu; + menu->addAction(tr("退出"), qApp, SLOT(quit())); + trayIcon->setContextMenu(menu); + + //创建套接字,和A9服务器取得连接 + parentSocket = new QTcpSocket(this); + parentSocket->connectToHost("192.168.200.105", 7777); + + + QByteArray ThisIsWidget; + ThisIsWidget.append("ThisIsWidget"); + qDebug() << "ThisIsWidget " << ThisIsWidget; + this->parentSocket->write(ThisIsWidget); + + //电灯图标 + lightPix.load(":/picture/light.png"); + ui->lightPictureLabel->setPixmap(lightPix); + ui->lightPictureLabel->setScaledContents(true); + + //空调图标 + airconditionPix.load(":/picture/airconditioner.png"); + ui->airconditionPicyureLabel->setPixmap(airconditionPix); + ui->airconditionPicyureLabel->setScaledContents(true); + + //摄像头图标 + cameraPix = new QPixmap(); + cameraPix->load(":/picture/camera.png"); + ui->cameraPictureLabel->setPixmap(*cameraPix); + ui->cameraPictureLabel->setScaledContents(true); + + //温度符号图标 + temperatureSymbol.load(":/picture/temperatureSymbol.png"); + ui->temperationSymbolLabel->setPixmap(temperatureSymbol); + ui->temperationSymbolLabel->setScaledContents(true); + + + //湿度符号图标 + humiditySymbol.load(":/picture/humiditySymbol.png"); + ui->humiditySymbolLabel->setPixmap(humiditySymbol); + ui->humiditySymbolLabel->setScaledContents(true); + + //设置电灯打开图标 + lightONPix.load(":/picture/lightON.png"); + + //设置电灯关闭图标 + lightOFFPix.load(":/picture/lightOFF.png"); + + //设置空调打开图标 + airconditionONPix.load(":/picture/airconditionerON.png"); + + //设置空调关闭图标 + airconditionOFFPix.load(":/picture/airconditionerOFF.png"); + + //摄像头配置 + cameraPix = new QPixmap(); + this->childSocket = NULL; + ui->cameraStartBtn->setEnabled(true);//开启视频按钮的初值给true + ui->cameraStopBtn->setEnabled(false);//关闭视频按钮的初值给false + ui->cameraPage->setMinimumSize(640,480); + ui->cameraPage->setMaximumSize(640,480); + ui->cameraShowPageLabel->setMinimumSize(480,320); + ui->cameraShowPageLabel->setMaximumSize(480,320); + + //接收到设置安全阈值页面发来的信号,并把页面从安全阈值设置页面切换成主页面 + connect(&setValue, SIGNAL(setSecureValueToWidgetSignal()), this, SLOT(setSecureValueTurnWidgetSlot())); + + //接收到历史数据页面发来的信号,并把页面从历史数据页面切换成主页面 + connect(&historyData, SIGNAL(historyDataToWidgetSignal()), this, SLOT(historyDataTurnWidgetSlot())); + + //接收来自服务器的信息 + connect(parentSocket, SIGNAL(readyRead()), this, SLOT(recvServerDataSlot())); + +} + +Widget::~Widget() +{ + delete ui; + parentSocket->close(); + parentSocket = NULL; +} + +void Widget::on_livingLightONOFFBtn_clicked() +{ + if(ui->livingLightONOFFBtn->text() == "客厅灯 ON") + { + //显示电灯打开的图标 + ui->livingLightONOFFPictureLabel->setPixmap(lightONPix); + ui->livingLightONOFFPictureLabel->setScaledContents(true); + + //改变电灯开关上的文本 + ui->livingLightONOFFBtn->setText("客厅灯 OFF"); + + //发送命令给A9服务器,打开客厅灯 + QByteArray openlivingroomLight; + openlivingroomLight.append("Livingroom:ON"); + qDebug() << "openlivingroomLight " << openlivingroomLight; + this->parentSocket->write(openlivingroomLight); + } + else if(ui->livingLightONOFFBtn->text() == "客厅灯 OFF") + { + //显示电灯关闭图标 + ui->livingLightONOFFPictureLabel->setPixmap(lightOFFPix); + ui->livingLightONOFFPictureLabel->setScaledContents(true); + + //改变电灯开关上的文本 + ui->livingLightONOFFBtn->setText("客厅灯 ON"); + + //发送命令给A9服务器,关闭客厅灯 + QByteArray closelivingroomLight; + closelivingroomLight.append("Livingroom:OFF"); + qDebug() << "closelivingroomLight " << closelivingroomLight; + this->parentSocket->write(closelivingroomLight); + } +} + +void Widget::on_bedroomLightONOFFBtn_clicked() +{ + if(ui->bedroomLightONOFFBtn->text() == "卧室灯 ON") + { + //显示电灯打开的图标 + ui->bedroomLightONOFFPictureLabel->setPixmap(lightONPix); + ui->bedroomLightONOFFPictureLabel->setScaledContents(true); + + //改变电灯开关上的文本 + ui->bedroomLightONOFFBtn->setText("卧室灯 OFF"); + + //发送命令给A9服务器,打开卧室灯 + QByteArray openBedroomLight; + openBedroomLight.append("Bedroom:ON"); + qDebug() << "openBedroomLight " << openBedroomLight; + this->parentSocket->write(openBedroomLight); + } + else if(ui->bedroomLightONOFFBtn->text() == "卧室灯 OFF") + { + //显示电灯关闭图标 + ui->bedroomLightONOFFPictureLabel->setPixmap(lightOFFPix); + ui->bedroomLightONOFFPictureLabel->setScaledContents(true); + + //改变电灯开关上的文本 + ui->bedroomLightONOFFBtn->setText("卧室灯 ON"); + + //发送命令给A9服务器,关闭卧室灯 + QByteArray closeBedroomLight; + closeBedroomLight.append("Bedroom:OFF"); + qDebug() << "closeBedroomLight " << closeBedroomLight; + this->parentSocket->write(closeBedroomLight); + } +} + +void Widget::on_lightBtn_clicked() +{ + ui->stackedWidget->setCurrentWidget(ui->lightPage); + + //按下灯光按钮后让灯光按钮变成不可选状态,空调和摄像头按钮变为可选状态 + ui->lightBtn->setEnabled(false); + ui->airconditionBtn->setEnabled(true); + ui->cameraBtn->setEnabled(true); +} + +void Widget::on_airconditionBtn_clicked() +{ + ui->stackedWidget->setCurrentWidget(ui->airconditionPage); + + //按下空调按钮后让空调按钮变成不可选状态,灯光按钮和摄像头按钮变为可选状态 + ui->airconditionBtn->setEnabled(false); + ui->lightBtn->setEnabled(true); + ui->cameraBtn->setEnabled(true); +} + +void Widget::on_cameraBtn_clicked() +{ + ui->stackedWidget->setCurrentWidget(ui->cameraPage); + + //按下摄像头按钮后摄像头按钮变为不可选状态,灯光和空调按钮变为可选状态 + ui->cameraBtn->setEnabled(false); + ui->lightBtn->setEnabled(true); + ui->airconditionBtn->setEnabled(true); +} + +void Widget::on_airconditionONOFFBtn_clicked() +{ + if(ui->airconditionONOFFBtn->text() == "空调 ON") + { + //显示空调开的图标 + ui->airconditionONOFFPictureLabel->setPixmap(airconditionONPix); + ui->airconditionONOFFPictureLabel->setScaledContents(true); + + //改变按钮上的文本为空调关闭 + ui->airconditionONOFFBtn->setText("空调 OFF"); + + //发送命令给A9服务器,打开空调 + QByteArray openAirconditionLight; + openAirconditionLight.append("Aircondition:ON"); + qDebug() << "openAirconditionLight " << openAirconditionLight; + this->parentSocket->write(openAirconditionLight); + } + else if(ui->airconditionONOFFBtn->text() == "空调 OFF") + { + //显示空调关闭的图标 + ui->airconditionONOFFPictureLabel->setPixmap(airconditionOFFPix); + ui->airconditionONOFFPictureLabel->setScaledContents(true); + + //改变按钮上的字 + ui->airconditionONOFFBtn->setText("空调 ON"); + + //发送命令给A9服务器,打开空调 + QByteArray closeAirconditionLight; + closeAirconditionLight.append("Aircondition:OFF"); + qDebug() << "closeAirconditionLight " << closeAirconditionLight; + this->parentSocket->write(closeAirconditionLight); + } +} + +//摄像头页面开始按钮 +void Widget::on_cameraStartBtn_clicked() +{ + if(NULL == this->childSocket) + { + this->childSocket = new QTcpSocket(); + this->childSocket->connectToHost("192.168.200.105",8888); + //发送信号者为socket这个实例,发送的信号是connected(),接收者为Form,槽函数为msconnected() + connect(this->childSocket,SIGNAL(connected()),this,SLOT(msconnected())); + connect(this->childSocket,SIGNAL(disconnected()),this,SLOT(msdisconnected())); + ui->cameraStartBtn->setEnabled(false);//开启视频后让此按钮不可选择 + ui->cameraStopBtn->setEnabled(true);//已经开启视频后让关闭视频按钮可选择(true) + } + else + { + ui->cameraStartBtn->setEnabled(false); + ui->cameraStopBtn->setEnabled(true); + timer->start(100); + } +} + + +void Widget::msconnected() +{ + qDebug() << "connected"; + timer = new QTimer(this); + connect(timer,SIGNAL(timeout()),this,SLOT(updatepic())); + timer->start(100); +} + +//发送不连接请求 +void Widget::msdisconnected() +{ + if(timer->isActive()) + timer->stop(); + ui->cameraStartBtn->setEnabled(true);//按下关闭视频按钮后让开启视频按钮可选择(true) + ui->cameraStopBtn->setEnabled(false);//按下关闭视频按钮后让关闭按钮不可选择(false) + this->childSocket->close(); + this->childSocket = NULL; +} + +//连续读取视频信息 +void Widget::updatepic() +{ + unsigned int ret; + const char *request = "pic"; //请求命令 + char response[20]; //服务器发给QT的回复 + char *len; // + unsigned int piclen; //图片长度 + char picbuf[1024 * 1024]; //存放图片 + + ret = this->childSocket->write(request, strlen(request)); //发送请求图片命令 + if (ret != strlen(request)) { + qDebug() << "send request failed"; + timer->stop(); + this->childSocket->close(); + } + + this->childSocket->flush(); //刷新socket + this->childSocket->waitForReadyRead(30000); + + memset(response, 0, sizeof(response)); + ret = this->childSocket->read(response, sizeof(response)); + if (ret != sizeof(response)) { + qDebug() << "recv response failed"; + timer->stop(); + this->childSocket->close(); + this->childSocket = NULL; + } + + len = strstr(response, "len"); + if (len == NULL) { + qDebug() << "response header is error"; + timer->stop(); + this->childSocket->close(); + this->childSocket = NULL; + } + + *len = '\0'; + //从response中读取图片长度 + piclen = atoi(response); + unsigned int total = 0; + //循环读取pic信息 + while (total < piclen) { + ret = this->childSocket->read(picbuf+total, piclen-total); + if (ret < 0) { + qDebug() << "recv pic failed" << ret; + timer->stop(); + this->childSocket->close(); + this->childSocket = NULL; + return; + } else if (ret == 0) { + this->childSocket->waitForReadyRead(30000); + continue; + } else + total += ret; + } + cameraPix->loadFromData((const uchar *)picbuf,piclen,"JPEG"); + ui->cameraShowPageLabel->setPixmap(*cameraPix); +} + +//暂停显示图像 +void Widget::on_cameraStopBtn_clicked() +{ + qDebug() << "total:----11--------------- "; + if(timer->isActive()) + timer->stop(); + qDebug() << "total:------------------- "; + ui->cameraStartBtn->setEnabled(true);//按下关闭视频按钮后让开启视频按钮变黑(true) + ui->cameraStopBtn->setEnabled(false);//按下关闭视频按钮后让关闭按钮变灰(false) +} + +//接收到设置安全阈值页面发来的信号,并把页面从安全阈值设置页面切换成主页面 +void Widget::setSecureValueTurnWidgetSlot() +{ + //隐藏设置安全阈值界面,显示主页面 + this->show(); + setValue.hide(); +} + +//设置安全阈值按钮,切换界面到设置安全阈值界面 +void Widget::on_setSecureValueBtn_clicked() +{ + //隐藏主页面,显示设置安全阈值界面 + this->hide(); + setValue.show(); +} + +//历史数据按钮,切换界面到历史数据界面 +void Widget::on_historyDataBtn_clicked() +{ + //隐藏主界面,显示历史数据界面 + this->hide(); + historyData.show(); +} + +//接收到历史数据页面发来的信号,并把页面从历史数据页面切换成主页面 +void Widget::historyDataTurnWidgetSlot() +{ + //隐藏历史数据页面,显示主页面 + this->show(); + historyData.hide(); +} + +//接收来自服务器的信息 +void Widget::recvServerDataSlot() +{ + int i = 0; + QByteArray arr = parentSocket->readAll(); + qDebug() << "widget recv = " << arr; + for(i = 0; i < 11; i++) + { + if(i == 0) + { + if((int)arr[i] == 1) + { + //显示电灯打开的图标 + ui->livingLightONOFFPictureLabel->setPixmap(lightONPix); + ui->livingLightONOFFPictureLabel->setScaledContents(true); + + //改变电灯开关上的文本 + ui->livingLightONOFFBtn->setText("客厅灯 OFF"); + } + else if((int)arr[i] == 0) + { + //显示电灯关闭图标 + ui->livingLightONOFFPictureLabel->setPixmap(lightOFFPix); + ui->livingLightONOFFPictureLabel->setScaledContents(true); + + //改变电灯开关上的文本 + ui->livingLightONOFFBtn->setText("客厅灯 ON"); + } + } + else if(i == 1) + { + if((int)arr[i] == 1) + { + //显示电灯打开的图标 + ui->bedroomLightONOFFPictureLabel->setPixmap(lightONPix); + ui->bedroomLightONOFFPictureLabel->setScaledContents(true); + + //改变电灯开关上的文本 + ui->bedroomLightONOFFBtn->setText("卧室灯 OFF"); + } + else if((int)arr[i] == 0) + { + //显示电灯关闭图标 + ui->bedroomLightONOFFPictureLabel->setPixmap(lightOFFPix); + ui->bedroomLightONOFFPictureLabel->setScaledContents(true); + + //改变电灯开关上的文本 + ui->bedroomLightONOFFBtn->setText("卧室灯 ON"); + } + } + else if(i == 2) + { + if((int)arr[i] == 1) + { + //显示空调开的图标 + ui->airconditionONOFFPictureLabel->setPixmap(airconditionONPix); + ui->airconditionONOFFPictureLabel->setScaledContents(true); + + //改变按钮上的文本为空调关闭 + ui->airconditionONOFFBtn->setText("空调 OFF"); + } + else if((int)arr[i] == 0) + { + //显示空调关闭的图标 + ui->airconditionONOFFPictureLabel->setPixmap(airconditionOFFPix); + ui->airconditionONOFFPictureLabel->setScaledContents(true); + + //改变按钮上的字 + ui->airconditionONOFFBtn->setText("空调 ON"); + } + } + else if(i == 3) + { + ui->TemDisplayLabel->setText(tr("%1").arg((float)(((int)arr[i] * 10 + (int)arr[i + 1]) / 10))); + } + else if(i == 5) + { + ui->humidityDisplayLabel->setText(tr("%1").arg((float)(((int)arr[i] * 10 + (int)arr[i + 1]) / 10))); + + } + else if(i == 7) + { + ui->lightIntensityDisplayLabel->setText(tr("%1").arg((int)(((int)arr[i + 3] << 24) + ((int)arr[i + 2]) << 16) + ((int)arr[i + 1] << 8) + (int)arr[i])); + } + } + +} + + +/*void Widget::on_realtimeDataBtn_clicked() +{ + //给服务器发命令,显示告诉这是主页面,然后显示实时数据 + QByteArray ThisIsWidget; + ThisIsWidget.append("ThisIsWidget"); + qDebug() << "ThisIsWidget " << ThisIsWidget; + this->parentSocket->write(ThisIsWidget); +}*/ diff --git a/smart_home_client/widget.h b/smart_home_client/widget.h new file mode 100755 index 0000000..f1b21a8 --- /dev/null +++ b/smart_home_client/widget.h @@ -0,0 +1,82 @@ +#ifndef WIDGET_H +#define WIDGET_H + +#include +#include +#include +#include +#include +#include "setsecurevalue.h" +#include "historydata.h" + +namespace Ui { +class Widget; +} + +class Widget : public QWidget +{ + Q_OBJECT + +public: + explicit Widget(QWidget *parent = 0); + ~Widget(); + + +private slots: + + void on_livingLightONOFFBtn_clicked(); + + void on_bedroomLightONOFFBtn_clicked(); + + void on_lightBtn_clicked(); + + void on_airconditionBtn_clicked(); + + void on_cameraBtn_clicked(); + + void on_airconditionONOFFBtn_clicked(); + + void msconnected(); + + void msdisconnected(); + + void updatepic(); + + void on_cameraStartBtn_clicked(); + + void on_cameraStopBtn_clicked(); + + //接收到设置安全阈值页面发来的信号,并把页面从安全阈值设置页面切换成主页面 + void setSecureValueTurnWidgetSlot(); + + void on_setSecureValueBtn_clicked(); + + void on_historyDataBtn_clicked(); + + //接收到历史数据页面发来的信号,并把页面从历史数据页面切换成主页面 + void historyDataTurnWidgetSlot(); + + //接收来自服务器的信息 + void recvServerDataSlot(); + //void on_realtimeDataBtn_clicked(); + +private: + Ui::Widget *ui; + QPixmap lightPix; + QPixmap airconditionPix; + QPixmap *cameraPix; + QTcpSocket * parentSocket; + QTcpSocket * childSocket; + QTimer *timer; + QPixmap temperatureSymbol; + QPixmap humiditySymbol; + QSystemTrayIcon *trayIcon; + QPixmap lightONPix; + QPixmap lightOFFPix; + QPixmap airconditionONPix; + QPixmap airconditionOFFPix; + setSecureValue setValue; + historyData historyData; +}; + +#endif // WIDGET_H diff --git a/smart_home_client/widget.ui b/smart_home_client/widget.ui new file mode 100755 index 0000000..31e72dc --- /dev/null +++ b/smart_home_client/widget.ui @@ -0,0 +1,614 @@ + + + Widget + + + + 0 + 0 + 721 + 622 + + + + Widget + + + + + 10 + 90 + 701 + 461 + + + + background-color: rgba(255, 255, 255, 20); + + + + + + + 30 + 110 + 91 + 81 + + + + + + + + + + + + + 30 + 210 + 93 + 41 + + + + + + + 灯光 + + + + + + 140 + 110 + 91 + 81 + + + + + + + + + + 140 + 210 + 93 + 41 + + + + + + + 空调 + + + + + + 250 + 210 + 93 + 41 + + + + + + + 摄像头 + + + + + + 250 + 110 + 91 + 81 + + + + + + + + + + 20 + 100 + 331 + 161 + + + + + + + + + + 350 + 100 + 20 + 441 + + + + Qt::Vertical + + + + + + 20 + 260 + 321 + 16 + + + + Qt::Horizontal + + + + + + 170 + 330 + 101 + 31 + + + + + 华文行楷 + + + + + + + + + + 160 + 390 + 101 + 31 + + + + + 华文行楷 + + + + + + + + + + 280 + 280 + 61 + 31 + + + + + + + + + + 280 + 330 + 61 + 31 + + + + + + + + + + 280 + 390 + 61 + 31 + + + + + 10 + 75 + true + + + + Lux/lx + + + + + + 20 + 450 + 331 + 16 + + + + Qt::Horizontal + + + + + + 40 + 470 + 121 + 61 + + + + 历史数据 + + + + + + 220 + 470 + 121 + 61 + + + + 设置安全阈值 + + + + + + 370 + 100 + 331 + 441 + + + + 2 + + + + + + 190 + 150 + 101 + 61 + + + + + + + + + + 30 + 150 + 121 + 71 + + + + 客厅灯 ON + + + + + + 190 + 350 + 101 + 61 + + + + + + + + + + 30 + 350 + 121 + 61 + + + + 卧室灯 ON + + + + + + 131 + 10 + 71 + 41 + + + + + 华文行楷 + 16 + + + + color: rgb(0, 85, 255); + + + 灯光 + + + Qt::AlignCenter + + + + + + + + 130 + 10 + 72 + 31 + + + + + 华文行楷 + 16 + + + + color: rgb(0, 85, 255); + + + 空调 + + + Qt::AlignCenter + + + + + + 100 + 310 + 131 + 61 + + + + 空调 ON + + + + + + 100 + 170 + 131 + 81 + + + + + + + + + + + + 130 + 10 + 72 + 31 + + + + + 华文行楷 + 16 + + + + color: rgb(0, 85, 255); + + + 摄像头 + + + Qt::AlignCenter + + + + + + 0 + 40 + 331 + 401 + + + + + + + + + + 30 + 380 + 93 + 31 + + + + 开始 + + + + + + 220 + 380 + 93 + 31 + + + + 暂停 + + + + + + + + 220 + 20 + 281 + 31 + + + + + 华文行楷 + 20 + + + + color: rgb(255, 0, 0); + + + 智能家居控制平台 + + + Qt::AlignCenter + + + + + + 30 + 280 + 121 + 31 + + + + + 华文行楷 + 14 + + + + 温 度: + + + + + + 30 + 330 + 121 + 31 + + + + + 华文行楷 + 14 + + + + 湿 度: + + + + + + 30 + 390 + 121 + 31 + + + + + 华文行楷 + 14 + + + + 光照强度: + + + + + + 170 + 280 + 101 + 31 + + + + + + + switchPictureLabel + listView + lightPictureLabel + lightBtn + airconditionPicyureLabel + airconditionBtn + cameraBtn + cameraPictureLabel + line + line_2 + humidityDisplayLabel + lightIntensityDisplayLabel + temperationSymbolLabel + humiditySymbolLabel + lightIntensitySymbolLabel + line_3 + historyDataBtn + setSecureValueBtn + stackedWidget + label_2 + temperationLabel + humidityLabel + lightIntensityLabel + TemDisplayLabel + + + + + -- Gitee From 4d924024e497b8b2355ecbc3cae0bebda1e3df00 Mon Sep 17 00:00:00 2001 From: leiju <3074194431@qq.com> Date: Thu, 13 Sep 2018 17:38:14 +0800 Subject: [PATCH 2/2] add smart_home_server --- smart_home_server/include/modul.h | 3 + smart_home_server/include/serial.h | 1 + smart_home_server/include/server.h | 4 +- smart_home_server/main | Bin 799180 -> 801037 bytes smart_home_server/modul.c | 126 +++++----- smart_home_server/serial.c | 369 +++++++++++++++-------------- smart_home_server/server.c | 92 ++++--- smart_home_server/shm.c | 4 +- smart_home_server/sqlite.c | 24 +- 9 files changed, 326 insertions(+), 297 deletions(-) diff --git a/smart_home_server/include/modul.h b/smart_home_server/include/modul.h index ccda4f1..1ac111f 100755 --- a/smart_home_server/include/modul.h +++ b/smart_home_server/include/modul.h @@ -1,9 +1,11 @@ #ifndef __MODUL_H__ #define __MODUL_H__ struct env_char{ + //char smog; char led_one; char led_two; char fan; + //char buzz; char h_tem; char l_tem; char h_hum; @@ -19,6 +21,7 @@ int zigbee_get_dat(int fd); int zigbee_exe_cmd(int fd, unsigned char *p); int zigbee_exit(int fd); void send_cmd_m0(int signo); +//void send_alarm_m0(int signo); diff --git a/smart_home_server/include/serial.h b/smart_home_server/include/serial.h index 8de9064..62023dc 100755 --- a/smart_home_server/include/serial.h +++ b/smart_home_server/include/serial.h @@ -7,6 +7,7 @@ struct env{ float tem; float hum; int light; + //int smog; int x; int y; int z; diff --git a/smart_home_server/include/server.h b/smart_home_server/include/server.h index 1eacb71..12b8dbd 100755 --- a/smart_home_server/include/server.h +++ b/smart_home_server/include/server.h @@ -12,9 +12,10 @@ #include #include -int zgbfd; #define FILEPATH_MAX (80) #define Line_Max 12 +int zgbfd; + int A9_process(); char * getPath(char *dbName); @@ -28,6 +29,5 @@ int sqlSelected(char * tabname,struct sqlite3 *pdb); void if_tabExit(char* tabname,struct sqlite3 *pdb); void sqlDelete(char * tabname,struct sqlite3 *pdb,int templine); int sqlGetData(char * tabname,struct sqlite3 *pdb); -void show(); #endif diff --git a/smart_home_server/main b/smart_home_server/main index 641a8a9e81d019578c82bd1a0c146f65314bd13c..6ee9fc0e4befd98e55b34dc80370e81f41768b84 100755 GIT binary patch delta 87806 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%0A}DH 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 #include #include -#include -#include -#include -#include -#include - -#include -#include -#include #include "./include/serial.h" #include "./include/server.h" -#define REQ_DATA_SIZE 32 -#define HDR_DATA_SIZE 128 #define ZGB_DATA_SIZE 36 extern int zgbfd; -extern pthread_mutex_t env_mutex; extern char *p_shm; -extern char cmd_buf[5]; +extern char cmd_buf[1]; +extern float value[8]; +//m0的环境变量 struct env_char{ + //char smog; char led_one; char led_two; char fan; + //char buzz; char h_tem; char l_tem; char h_hum; @@ -36,29 +28,36 @@ struct env_char{ char forth_light; }; struct env_char env_char_data; + +//读取共享内存数据 void read_cmd() { - read_shm(p_shm+11,cmd_buf,3); - printf("p_shm[11] = %d\r\n",p_shm[11]); - printf("p_shm[12] = %d\r\n",p_shm[12]); - printf("p_shm[13] = %d\r\n",p_shm[13]); + read_shm(p_shm+11,cmd_buf,1); printf("cmd_buf[0] = %d\r\n",cmd_buf[0]); - printf("cmd_buf[1] = %d\r\n",cmd_buf[1]); - printf("cmd_buf[2] = %d\r\n",cmd_buf[2]); } -int zigbee_init( char *devpath, int baudrate) + +/*void read_secure() +{ + read_shm(p_shm+12,value,sizeof(value)/sizeof(value[0])); + printf("p_shm = %.2f\r\n",p_shm[12]); +}*/ + +//zigbee初始化 +int zigbee_init(char *devpath, int baudrate) { return serial_init(devpath); } +//zigbee采集数据 int zigbee_get_dat(int fd) { + int i = 0; ssize_t ret; unsigned char buf[ZGB_DATA_SIZE]; memset(buf, 0, sizeof(buf)); - fprintf(stdout,"hi\n"); + //fprintf(stdout,"hi\n"); ret = serial_recv_exact_nbytes(fd, buf, sizeof(buf)); - fprintf(stdout,"hi1\n"); + //fprintf(stdout,"hi1\n"); if (ret == sizeof(buf)) { if (buf[0] == 0xBB) @@ -67,12 +66,16 @@ int zigbee_get_dat(int fd) data.id = (int)buf[1]; data.tem = (float)((buf[5]*10 + buf[4])/10) ; data.hum = (float)((buf[7]*10 + buf[6])/10) ; + //data.smog = (int)buf[16]; data.light = (int)((buf[23] << 24) + (buf[22] << 16) + (buf[21] << 8) + buf[20]); + //printf("smog = %d\r\n",data.smog); env_char_data.l_tem = buf[4]; env_char_data.h_tem = buf[5]; env_char_data.l_hum = buf[6]; env_char_data.h_hum = buf[7]; + //env_char_data.smog = buf[16]; //烟雾浓度 + //printf("smog = %d\r\n",(int)buf[16]); env_char_data.first_light = buf[20]; env_char_data.second_light = buf[21]; env_char_data.third_light = buf[22]; @@ -80,17 +83,20 @@ int zigbee_get_dat(int fd) data.led = buf[24]; data.fan = buf[25]; - data.buzz = buf[26]; + //data.buzz = buf[26]; + env_char_data.led_one = buf[24]; env_char_data.fan = buf[25]; + //env_char_data.buzz = buf[26]; env_char_data.led_two = buf[27]; } } return ret; } -int zigbee_exe_cmd(int fd, unsigned char *p) +//zigbee发送命令 +int zigbee_exe_cmd(int fd, unsigned char *p) { unsigned char buf[ZGB_DATA_SIZE] = {0xdd, 0x06, 0x24, 0x00, 0x00}; if (strstr(p, "LIGHT_ON") != NULL){ @@ -110,63 +116,65 @@ int zigbee_exe_cmd(int fd, unsigned char *p) } else if (strstr(p, "SHU_OFF") != NULL){ buf[4] = 0x0a; } - int ret = serial_send_exact_nbytes(fd, buf, sizeof(buf)); - return ret; } - -void ctrl_led_one() +//AP发送给m0命令 +void send_cmd_m0(int signum) { - if(cmd_buf[0]) + read_cmd(); + if(cmd_buf[0] == 1) { - printf("cmd_buf[0] now = %d\r\n",cmd_buf[0]); + printf("Living now:ON = %d\r\n",cmd_buf[0]); zigbee_exe_cmd(zgbfd,"LIGHT_ON"); //led1 - } - - else + } + + else if(cmd_buf[0] == 2) { - printf("cmd_buf[0] now = %d\r\n",cmd_buf[0]); - zigbee_exe_cmd(zgbfd,"LIGHT_OFF"); + printf("Living now:OFF = %d\r\n",cmd_buf[0]); + zigbee_exe_cmd(zgbfd,"LIGHT_OFF"); //led1 } -} - -void ctrl_led_two() -{ - if( cmd_buf[1]) + + else if(cmd_buf[0] == 3) { - printf("cmd_buf[1] now = %d\r\n",cmd_buf[1]); + printf("Bedroom now:ON = %d\r\n",cmd_buf[0]); zigbee_exe_cmd(zgbfd,"SHU_ON"); //led2 } - else + + else if(cmd_buf[0] == 4) { - printf("cmd_buf[1] now = %d\r\n",cmd_buf[1]); - zigbee_exe_cmd(zgbfd,"SHU_OFF"); + printf("Bedroom now:OFF = %d\r\n",cmd_buf[0]); + zigbee_exe_cmd(zgbfd,"SHU_OFF"); //led2 } -} - -void ctrl_fan() -{ - if( cmd_buf[2]) + + else if(cmd_buf[0] == 5) { - printf("cmd_buf[2] now = %d\r\n",cmd_buf[2]); + printf("Aircondition now:ON = %d\r\n",cmd_buf[0]); zigbee_exe_cmd(zgbfd,"FAN_ON"); //fan } - else + + else if(cmd_buf[0] == 6) { - printf("cmd_buf[2] now = %d\r\n",cmd_buf[2]); - zigbee_exe_cmd(zgbfd,"FAN_OFF"); + printf("Aircondition now:OFF%d\r\n",cmd_buf[0]); + zigbee_exe_cmd(zgbfd,"FAN_OFF"); //fan + printf("Aircondition now:OFF%d\r\n",cmd_buf[0]); } } -void send_cmd_m0(int signum) + +/*void send_alarm_m0(int signo) { - read_cmd(); - ctrl_fan(); - ctrl_led_one(); - ctrl_led_two(); -} + read_secure(); + printf("data_tem = %f\r\n",data.tem); + printf("value[1] = %.2f\r\n",value[1]); + printf("value[0] = %.2f\r\n",value[0]); + if(data.tem < value[0] || data.tem > value[1] || data.hum < value[2] || data.hum > value[3] || data.light < value[4] || data.light > value[5]) + zigbee_exe_cmd(zgbfd,"BUZZ_ON"); + else + zigbee_exe_cmd(zgbfd,"BUZZ_OFF"); +}*/ +//zigbee退出 int zigbee_exit(int fd) { return serial_exit(fd); diff --git a/smart_home_server/serial.c b/smart_home_server/serial.c index 6b0c882..2bc7972 100755 --- a/smart_home_server/serial.c +++ b/smart_home_server/serial.c @@ -12,7 +12,6 @@ #include #include - #define FALSE -1 #define TRUE 0 @@ -20,196 +19,215 @@ int serial_open(char *devpath) { /*分别为com1,com2, com3对应 ttyUSB0 ttyUSB1 ttyUSB2 */ - int fd = open( devpath, O_RDWR|O_NOCTTY|O_NDELAY); - if (FALSE == fd){ - perror("Can't Open Serial Port"); - return(FALSE); - } - //恢复串口为阻塞状态 - if(fcntl(fd, F_SETFL, 0) < 0){ - printf("fcntl failed!\n"); - return(FALSE); - } else{ - printf("fcntl=%d\n",fcntl(fd, F_SETFL,0)); - } - //测试是否为终端设备 - if(0 == isatty(fd)){ - printf("standard input is not a terminal device\n"); - return(FALSE); - } else{ - printf("isatty success!\n"); - } - printf("fd->open=%d\n",fd); - return fd; + int fd = open( devpath, O_RDWR|O_NOCTTY|O_NDELAY); + if (FALSE == fd){ + perror("Can't Open Serial Port"); + return(FALSE); + } + //恢复串口为阻塞状态 + if(fcntl(fd, F_SETFL, 0) < 0) + { + printf("fcntl failed!\n"); + return(FALSE); + } + else + { + printf("fcntl=%d\n",fcntl(fd, F_SETFL,0)); + } + //测试是否为终端设备 + if(0 == isatty(fd)) + { + printf("standard input is not a terminal device\n"); + return(FALSE); + } + else + { + printf("isatty success!\n"); + } + printf("fd->open=%d\n",fd); + return fd; } //fd串口号;speed传输波特率;databits数据位;flow_ctrl数据流;parity奇偶校验;stopbits停止位 int serial_Set(int fd,int speed,int flow_ctrl,int databits,int stopbits,int parity) { - - int i; - int speed_arr[] = { B115200, B19200, B9600, B4800, B2400, B1200, B300}; - int name_arr[] = {115200, 19200, 9600, 4800, 2400, 1200, 300}; - - struct termios options; - - /*tcgetattr(fd,&options)得到与fd指向对象的相关参数,并将它们保存于options,该函数还可以测试配置是否正确,该串口是否可用等。若调用成功,函数返回值为0,若调用失败,函数返回值为1. - */ - if ( tcgetattr( fd,&options) != 0) { - perror("SetupSerial 1"); - return(FALSE); - } - - //设置串口输入波特率和输出波特率 - for ( i= 0; i < sizeof(speed_arr) / sizeof(int); i++) { - if (speed == name_arr[i]) { - cfsetispeed(&options, speed_arr[i]); - cfsetospeed(&options, speed_arr[i]); - } - } - - //修改控制模式,保证程序不会占用串口 - options.c_cflag |= CLOCAL; - //修改控制模式,使得能够从串口中读取输入数据 - options.c_cflag |= CREAD; - options.c_oflag &= ~(ONLCR | OCRNL); - options.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON); - options.c_iflag &= ~(ICRNL | INLCR); - options.c_iflag &= ~(IXON | IXOFF | IXANY); - - //设置数据流控制 - switch(flow_ctrl) { - - case 0 ://不使用流控制 - options.c_cflag &= ~CRTSCTS; - break; - case 1 ://使用硬件流控制 - options.c_cflag |= CRTSCTS; - break; - case 2 ://使用软件流控制 - options.c_cflag |= IXON | IXOFF | IXANY; - break; - } - //设置数据位 - //屏蔽其他标志位 - options.c_cflag &= ~CSIZE; - switch (databits) { - case 5 : - options.c_cflag |= CS5; - break; - case 6 : - options.c_cflag |= CS6; - break; - case 7 : - options.c_cflag |= CS7; - break; - case 8: - options.c_cflag |= CS8; - break; - default: - fprintf(stderr,"Unsupported data size\n"); - return (FALSE); - } - //设置校验位 - switch (parity) { - case 'n': - case 'N': //无奇偶校验位。 - options.c_cflag &= ~PARENB; - options.c_iflag &= ~INPCK; - break; - case 'o': - case 'O'://设置为奇校验 - options.c_cflag |= (PARODD | PARENB); - options.c_iflag |= INPCK; - break; - case 'e': - case 'E'://设置为偶校验 - options.c_cflag |= PARENB; - options.c_cflag &= ~PARODD; - options.c_iflag |= INPCK; - break; - case 's': - case 'S': //设置为空格 - options.c_cflag &= ~PARENB; - options.c_cflag &= ~CSTOPB; - break; - default: - fprintf(stderr,"Unsupported parity\n"); - return (FALSE); - } - // 设置停止位 - switch (stopbits) { - case 1: - options.c_cflag &= ~CSTOPB; - break; - case 2: - options.c_cflag |= CSTOPB; - break; - default: - fprintf(stderr,"Unsupported stop bits\n"); - return (FALSE); - } - - //修改输出模式,原始数据输出 - options.c_oflag &= ~OPOST; - options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);//我加的 + + int i; + int speed_arr[] = { B115200, B19200, B9600, B4800, B2400, B1200, B300}; + int name_arr[] = {115200, 19200, 9600, 4800, 2400, 1200, 300}; + struct termios options; + + /*tcgetattr(fd,&options)得到与fd指向对象的相关参数,并将它们保存于options,该函数还可以测试配置是否正确,该串口是否可用等。若调用成功,函数返回值为0,若调用失败,函数返回值为1. + */ + if ( tcgetattr( fd,&options) != 0) + { + perror("SetupSerial 1"); + return(FALSE); + } + + //设置串口输入波特率和输出波特率 + for ( i= 0; i < sizeof(speed_arr) / sizeof(int); i++) + { + if (speed == name_arr[i]) + { + cfsetispeed(&options, speed_arr[i]); + cfsetospeed(&options, speed_arr[i]); + } + } + + //修改控制模式,保证程序不会占用串口 + options.c_cflag |= CLOCAL; + //修改控制模式,使得能够从串口中读取输入数据 + options.c_cflag |= CREAD; + options.c_oflag &= ~(ONLCR | OCRNL); + options.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON); + options.c_iflag &= ~(ICRNL | INLCR); + options.c_iflag &= ~(IXON | IXOFF | IXANY); + + //设置数据流控制 + switch(flow_ctrl) + { + + case 0 ://不使用流控制 + options.c_cflag &= ~CRTSCTS; + break; + case 1 ://使用硬件流控制 + options.c_cflag |= CRTSCTS; + break; + case 2 ://使用软件流控制 + options.c_cflag |= IXON | IXOFF | IXANY; + break; + } + //设置数据位 + //屏蔽其他标志位 + options.c_cflag &= ~CSIZE; + switch (databits) + { + case 5 : + options.c_cflag |= CS5; + break; + case 6 : + options.c_cflag |= CS6; + break; + case 7 : + options.c_cflag |= CS7; + break; + case 8: + options.c_cflag |= CS8; + break; + default: + fprintf(stderr,"Unsupported data size\n"); + return (FALSE); + } + //设置校验位 + switch (parity) + { + case 'n': + case 'N': //无奇偶校验位。 + options.c_cflag &= ~PARENB; + options.c_iflag &= ~INPCK; + break; + case 'o': + case 'O'://设置为奇校验 + options.c_cflag |= (PARODD | PARENB); + options.c_iflag |= INPCK; + break; + case 'e': + case 'E'://设置为偶校验 + options.c_cflag |= PARENB; + options.c_cflag &= ~PARODD; + options.c_iflag |= INPCK; + break; + case 's': + case 'S': //设置为空格 + options.c_cflag &= ~PARENB; + options.c_cflag &= ~CSTOPB; + break; + default: + fprintf(stderr,"Unsupported parity\n"); + return (FALSE); + } + // 设置停止位 + switch (stopbits) + { + case 1: + options.c_cflag &= ~CSTOPB; + break; + case 2: + options.c_cflag |= CSTOPB; + break; + default: + fprintf(stderr,"Unsupported stop bits\n"); + return (FALSE); + } + + //修改输出模式,原始数据输出 + options.c_oflag &= ~OPOST; + options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);//我加的 //options.c_lflag &= ~(ISIG | ICANON); - - //设置等待时间和最小接收字符 - options.c_cc[VTIME] = 1; /* 读取一个字符等待0*(0/10)s */ - options.c_cc[VMIN] = 1; /* 读取字符的最少个数为0 */ - - //如果发生数据溢出,接收数据,但是不再读取 刷新收到的数据但是不读 - tcflush(fd,TCIFLUSH); - - //激活配置 (将修改后的termios数据设置到串口中) - if (tcsetattr(fd,TCSANOW,&options) != 0) { - perror("com set error!\n"); - return (FALSE); - } + + //设置等待时间和最小接收字符 + options.c_cc[VTIME] = 1; /* 读取一个字符等待0*(0/10)s */ + options.c_cc[VMIN] = 1; /* 读取字符的最少个数为0 */ + + //如果发生数据溢出,接收数据,但是不再读取 刷新收到的数据但是不读 + tcflush(fd,TCIFLUSH); + + //激活配置 (将修改后的termios数据设置到串口中) + if (tcsetattr(fd,TCSANOW,&options) != 0) + { + perror("com set error!\n"); + return (FALSE); + } printf("serial set success\n"); - return (TRUE); + return (TRUE); } int serial_init(char *devpath) { - int fd_comport = FALSE; + int fd_comport = FALSE; //打开串口 - if((fd_comport=serial_open(devpath))<0){ + if((fd_comport=serial_open(devpath))<0) + { perror("serial_Open"); return FALSE; } - //设置串口数据帧格式 - if (serial_Set(fd_comport,115200,0,8,1,'N')<0) { + //设置串口数据帧格式 + if (serial_Set(fd_comport,115200,0,8,1,'N')<0) + { perror("serial_Set"); - return FALSE; - } - return fd_comport; + return FALSE; + } + return fd_comport; } ssize_t serial_recv_exact_nbytes(int fd, void *buf, size_t count) { ssize_t ret; ssize_t total = 0; - unsigned char * buf1 = (unsigned char *)buf; + unsigned char * buf1 = (unsigned char *)buf; assert(buf != NULL); - + while (total != count) { - fprintf(stdout,"%d\n",fd); - fprintf(stdout,"hi..\n"); - ret = read(fd, buf + total, count - total); - int i = 0; - for (i = 0; i < 36; i++){ - printf("%.2x ", buf1[i]); - } - fprintf(stdout,"hi2\n"); - if (ret == -1) { + fprintf(stdout,"%d\n",fd); + fprintf(stdout,"hi..\n"); + ret = read(fd, buf + total, count - total); + /*int i = 0; + for (i = 0; i < 36; i++){ + printf("%.2x ", buf1[i]); + }*/ + fprintf(stdout,"hi2\n"); + if (ret == -1) + { perror("serial->recv"); break; - } else if (ret == 0) { + } + else if (ret == 0) + { fprintf(stdout, "serial->recv: timeout or end-of-file\n"); break; - } else + } + else total += ret; } @@ -222,27 +240,30 @@ ssize_t serial_send_exact_nbytes(int fd, unsigned char *buf, size_t count) ssize_t total = 0; assert(buf != NULL); - int i = 0; - for (i = 0; i < 36; i++){ - printf("%.2x ", buf[i]); - } - printf("\n"); - while (total != count) { + //int i = 0; + /*for (i = 0; i < 36; i++){ + printf("%.2x ", buf[i]); + } + printf("\n");*/ + while (total != count) + { ret = write(fd, buf + total, count - total); - fprintf(stdout,"%d\n",ret); - if (ret == -1) { + fprintf(stdout,"%d\n",ret); + if (ret == -1) + { perror("serial->send"); break; - } else + } + else total += ret; } - return total; } int serial_exit(int fd) { - if (close(fd)) { + if (close(fd)) + { perror("serial->exit"); return -1; } diff --git a/smart_home_server/server.c b/smart_home_server/server.c index 14a7786..d8e9f03 100755 --- a/smart_home_server/server.c +++ b/smart_home_server/server.c @@ -25,10 +25,13 @@ #define SPORT 7777 #define LISNUM 1024 #define BUFFER_SIZE 128 -char env_buf[128]; +char env_buf[12]; char cmd_buf[5]; char *p_shm = NULL; - +extern char databuf[72][25]; +char get_history_data[72][25]; +//客户端阈值存放 +float value[8] = {0}; void read_env(int signo) { read_shm(p_shm,env_buf,sizeof(env_char_data)); @@ -49,14 +52,12 @@ int A9_process() char cmd[BUFFER_SIZE] = {0}; pid_t pid,pid_zigbee; int signo = 0; - //客户端阈值存放 - float value[8] = {0}; char *pPath = NULL; struct sqlite3 *pdb = NULL; char dbName[] = "/mysqlite"; - char tabname1[] = "data"; - char tabname2[] = "param"; + char tabname1[] = "rt_data"; + char tabname2[] = "max_data"; //获取pPath pPath = getPath(dbName); //open or create db @@ -88,6 +89,7 @@ int A9_process() p_shm = create_shm(); while(1) { + //send_alarm_m0(signo); send_cmd_m0(signo); ret = zigbee_get_dat(zgbfd); if(ret < 0) @@ -167,22 +169,19 @@ int A9_process() if(0 == strncmp(cmd,"SearchHistoryData",17)) { //p_shm = create_shm(); - //write_shm(p_shm,str,sizeof(str)); - printf("cmd = %s\r\n",cmd); - send(connfd,cmd,sizeof(cmd),0); + //read_env(signo); + //send(connfd,env_buf,sizeof(env_buf),0); + printf("cmd = %s\r\n",cmd); + for(i = 0; i < 11; i++) + { + printf("buf = %d\r\n",env_buf[i]); + } } //设置安全阈值 else if(0 == strncmp(cmd,"SetSecureValue:",15)) { - p_shm = create_shm(); - read_env(signo); - - for(i = 0; i < 5; i++) - { - printf("buf = %d\r\n",env_buf[i]); - } - memset(value,0,sizeof(value) / sizeof(value[0])); + //p_shm = create_shm(); buf_ope = strtok(cmd+15,s); while(buf_ope != NULL) { @@ -191,44 +190,36 @@ int A9_process() i++; buf_ope = strtok(NULL,s); } + /*write_shm(p_shm,value,sizeof(value)/sizeof(value[0])); + signal(SIGUSR1,send_alarm_m0); + printf("value[1] = %.2f\r\n",value[1]); + printf("p_shm[1] = %.2f\r\n",p_shm[1]);*/ //将阈值插入到数据库 SqlInsert1(pdb,tabname2,*value,*(value+1),*(value+2),*(value+3),*(value+4),*(value+5),*(value+6),*(value+7)); - sqlSelected(tabname2,pdb); - if(recv_len > 0) - { - memset(cmd,0,sizeof(cmd)); - strncpy(cmd,"SetSecureValue:succeed",23); - send(connfd,cmd,sizeof(cmd),0); - } + //sqlSelected(tabname2,pdb); } - + //解析到是主界面 - /*else if(strncmp(cmd,"ThisIsWidget",12)) + else if(strncmp(cmd,"ThisIsWidget",12)) { p_shm = create_shm(); read_env(signo); - - for(i = 0; i < 5; i++) - { - printf("buf = %d\r\n",env_buf[i]); - } + send(connfd,env_buf,sizeof(env_buf),0); printf("cmd = %s\r\n",cmd); - memset(cmd,0,sizeof(cmd)); - strncpy(cmd,"Main_Theme",10); - send(connfd,cmd,sizeof(cmd),0); - printf("widget\n"); - }*/ + for(i = 0; i < 11; i++) + printf("buf = %d\r\n",env_buf[i]); + } //解析客厅灯 else if(0 == strncmp(cmd,"Livingroom:ON",13)) { - p_shm = create_shm(); printf("cmd = %s\r\n",cmd); memset(cmd,0,sizeof(cmd)); strncpy(cmd,"Livingroom:open",15); send(connfd,cmd,sizeof(cmd),0); led1 = 1; write_shm(p_shm+11,&led1,1); + printf("p_shm = %d\r\n",p_shm[11]); signal(SIGUSR1,send_cmd_m0); } @@ -240,9 +231,9 @@ int A9_process() memset(cmd,0,sizeof(cmd)); strncpy(cmd,"Livingroom:close",16); send(connfd,cmd,sizeof(cmd),0); - led1 = 0; + led1 = 2; write_shm(p_shm+11,&led1,1); - //printf("p_shm+11 = %d\r\n",p_shm[11]); + printf("p_shm = %d\r\n",p_shm[11]); signal(SIGUSR1,send_cmd_m0); } @@ -252,11 +243,11 @@ int A9_process() p_shm = create_shm(); printf("cmd = %s\r\n",cmd); memset(cmd,0,sizeof(cmd)); - strncpy(cmd,"Bedroom:ON",10); + strncpy(cmd,"Bedroom:open",10); send(connfd,cmd,sizeof(cmd),0); - led2 = 1; - write_shm(p_shm+12,&led2,1); - //printf("p_shm+12 = %d\r\n",p_shm[12]); + led2 = 3; + write_shm(p_shm+11,&led2,1); + printf("p_shm = %d\r\n",p_shm[11]); signal(SIGUSR1,send_cmd_m0); } @@ -267,8 +258,9 @@ int A9_process() memset(cmd,0,sizeof(cmd)); strncpy(cmd,"Bedroom:close",13); send(connfd,cmd,sizeof(cmd),0); - led2 = 0; - write_shm(p_shm+12,&led2,1); + led2 = 4; + write_shm(p_shm+11,&led2,1); + printf("p_shm = %d\r\n",p_shm[11]); signal(SIGUSR1,send_cmd_m0); } @@ -280,8 +272,9 @@ int A9_process() memset(cmd,0,sizeof(cmd)); strncpy(cmd,"Aircondition:open",17); send(connfd,cmd,sizeof(cmd),0); - fan = 1; - write_shm(p_shm+13,&fan,1); + fan = 5; + write_shm(p_shm+11,&fan,1); + printf("p_shm = %d\r\n",p_shm[11]); signal(SIGUSR1,send_cmd_m0); } @@ -292,8 +285,9 @@ int A9_process() memset(cmd,0,sizeof(cmd)); strncpy(cmd,"Aircondition:close",18); send(connfd,cmd,sizeof(cmd),0); - fan = 0; - write_shm(p_shm+13,&fan,1); + fan = 6; + write_shm(p_shm+11,&fan,1); + printf("p_shm = %d\r\n",p_shm[11]); signal(SIGUSR1,send_cmd_m0); } recv_len = recv(connfd,cmd,BUFFER_SIZE,0); diff --git a/smart_home_server/shm.c b/smart_home_server/shm.c index a866300..5ed78db 100755 --- a/smart_home_server/shm.c +++ b/smart_home_server/shm.c @@ -5,7 +5,7 @@ key_t key = 0; char *create_shm() { key = ftok(PATH, 123); - printf("key = %p\r\n",key); + //printf("key = %p\r\n",key); if (key < 0) { perror("ftok error"); @@ -18,7 +18,7 @@ char *create_shm() } //映射 char *p_shm = shmat(shmid, NULL, 0); - printf("shm = %p\r\n",p_shm); + //printf("shm = %p\r\n",p_shm); if (NULL == p_shm) { perror("shmat error"); diff --git a/smart_home_server/sqlite.c b/smart_home_server/sqlite.c index 1961311..ad1af02 100755 --- a/smart_home_server/sqlite.c +++ b/smart_home_server/sqlite.c @@ -2,8 +2,11 @@ char databuf[72][25]; char *pErrMsg = NULL; int dataline = 0; +int dataline1 = 0; + #define FILEPATH_MAX (80) #define Line_Max 12 + void sqlDelete(char * tabname,struct sqlite3 *pdb,int templine); char * getPath(char *dbName) { @@ -64,9 +67,16 @@ tabname//表名 void SqlInsert1(struct sqlite3 *pdb,char *tabname,float tempMax,float tempMin,float humMax,float humMin,float luxMax, float luxMin,float ppmMax,float ppmMin ) { //insert table - //int templine = 0; - // templine = dataline; + int templine = 0; + templine = dataline1; char sqlInsert1[1024] = {0}; + templine %= 1; + //删除对应行 + if(dataline1 >= 1) + { + //删除哪张表的哪一行 + sqlDelete(tabname,pdb,templine); + } //UPDATE tabneme SET ADDRESS = 'Texas' WHERE ID = 6; sprintf(sqlInsert1, "insert into %s (TempMax,TempMin,HumMax,HumMin,LuxMax,LuxMin,PpmMax,PpmMin) values (%5f,%5f,%5f,%5f,%5f,%5f,%5f,%5f)",tabname,tempMax,tempMin,humMax,humMin,luxMax,luxMin,ppmMax,ppmMin); @@ -77,7 +87,7 @@ void SqlInsert1(struct sqlite3 *pdb,char *tabname,float tempMax,float tempMin,fl //sqlite3_free(pErrMsg); } sqlite3_free(pErrMsg); - + dataline1++; } /* @@ -267,11 +277,3 @@ int sqlGetData(char * tabname,struct sqlite3 *pdb) return count; } -void show() -{ - int i = 0; - for(i= 0;i< 72; i++) - { - printf("%s \n",databuf[i]); - } -} -- Gitee