#include "mainmenu.h"
#include "ui_mainmenu.h"
#include "util.h"
#include "preinstall.h"
#include <windows.h>
#include <QDebug>
#include "channel.h"
MainMenu::MainMenu(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainMenu)
{
ui->setupUi(this);
QTimer *timer = new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(timerUpdate()));
timer->start(1000*1);
init();
}
MainMenu::~MainMenu()
{
delete ui;
delete channel_;
}
// 初始化
void MainMenu::init()
{
channel_ = Channel::getInstance();
// xml读取
ReadXML("config.xml", channel_);
//定时线程
windows_ = new Thread(timing_windows);
windows_->start();
bathroom_ = new Thread(timing_bathroom);
bathroom_->start();
curtain_ = new Thread(timing_curtain);
curtain_->start();
QString portName_ = channel_->getportName();
int baudRates_ = channel_->getbaudRates();
int dataBits_ = channel_->getdataBits();
int stopBits_ = channel_->getstopBits();
if(baudRates_ != 38400)
channel_->setbaudRates(38400);
if(dataBits_ != 8)
channel_->setdataBits(8);
if(stopBits_ != 1)
channel_->setstopBits(1);
QDateTime& time = channel_->getSystemtime();
QString str = time.toString("yyyy-MM-dd hh:mm");
ui->time->setText(str);
//初始化串口
serial.InitPort(portName_, baudRates_, dataBits_, stopBits_);
if(serial.OpenPort())
connect(serial.GetQSerialPortPointer(), SIGNAL(readyRead()), this, SLOT(reactor()));
//打不开串口会有提示信息
}
//如果声音达到或超过阈值,发送关窗指令
void MainMenu::CheckVoice(int db)
{
QString voice = channel_->getvoice();//获取用户阈值
if(voice.toInt() > db){
serial.SendData("j"); //发送关窗指令
}
else{
serial.SendData("i"); //发送开窗指令
}
}
// 灯光自动控制
void MainMenu::lightAutoController(int light)
{
QString data = channel_->getLight();//获取用户阈值
if(data.toInt() >= light){
serial.SendData("e");
}else{
serial.SendData("f");
}
}
//环境阈值报警
void MainMenu::AlarmHandle(int somke,int kitchen){
if(somke>=SMOG||kitchen >= WLEVEL)
Alarm(2);
}
void MainMenu::mainDisplay()
{
ui->temp->display( Analysis::Data["Temperature"]);
ui->humi->display( Analysis::Data["Humidity"]);
ui->light_2->display( Analysis::Data["Light"]);
ui->light_3->display( Analysis::Data["Light"]);
}
void MainMenu::process(QString &str)
{
// 窗帘自动控制(系统时间与设定时间对比, 全局变量) yes
//curtain();
autocurtain();
// 窗户自动控制(噪声强度 传感器数据)
windowAutoController();
// CheckVoice(db); //没有噪声获取
// 床头灯自动控制(系统时间与设定时间对比 全局变量)
//TimeLightControl();
// 环境检测(传感器数据 阈值对比)
//灯光自动控制
// lightAutoController(light); // 传感器数据缺失
// 温湿度光照数值
mainDisplay();
//室内温度自动控制
AutoAirControl();
}
//---------调用的QDatetime成员----------
//#include <qdatetime.h>
//公有成员
//QDateTime ()
//静态公有成员
//QDateTime currentDateTime ()
//返回为QDateTime类型,通过toString转换为QString类型
//bool operator== ( const QDateTime & dt ) const
//如果这个日期等于d,返回真,否则返回假。
void MainMenu::TimeLightControl()
{
//接受时间的全局变量
QString opentime = channel_->getLampStart().toString("yyyy-MM-dd hh:mm:ss");
QString closetime = channel_->getLampEnd().toString("yyyy-MM-dd hh:mm:ss");
//opentime += ":00";//控制到秒,只发送一次
//closetime += ":00";
QDateTime datetime = QDateTime::currentDateTime();
if(datetime.toString("yyyy-MM-dd hh:mm:ss") == opentime)
//if(getSystemTime() == opentime)
{
serial.SendData("0x01");//发送床头灯开启指令
//qDebug()<<"open";
}
if(datetime.toString("yyyy-MM-dd hh:mm:ss") == closetime)
//if(getSystemTime() == closetime)
{
serial.SendData("0x00");//发送床头灯关闭指令
//qDebug()<<"close";
}
}
//支持室内温度自动控制
void MainMenu::AutoAirControl()
{
int min = channel_->getFrontTemperature().toInt();
int max = channel_->getEndTemperature().toInt();
if(min >= max)
{
return;
}
if(Analysis::Data["Temperature"] >= max)
{
//开空调指令
serial.SendData("h");
//关窗户指令(要关两个窗户)
serial.SendData("e");
serial.SendData("f");
}
else if(Analysis::Data["Temperature"] <= min)
{
//开空调指令
serial.SendData("h");
//关窗户指令(要关两个窗户)
serial.SendData("e");
serial.SendData("f");
}
}
/*
* 函数名:autocurtain()
* 描述:窗帘自动控制
*/
void MainMenu::autocurtain()
{
QDateTime Mstart = channel_->getMcurtainStart(); //客厅窗帘开启/关闭时间
QDateTime Mend = channel_->getMcurtainEnd();
QDateTime Bstart = channel_->getBcurtainStart(); //卧室窗帘开启/关闭时间
QDateTime Bend = channel_->getBcurtainEnd();
int illumination = Analysis::Data["Light"]; //获取实时光照强度
int threshold = channel_->getLight().toInt(); //光照阈值
if((Mstart <= channel_->getSystemtime()) && (channel_->getSystemtime() <= Mend)){//客厅窗帘
if(illumination >= threshold) { //光强 >= 阈值,窗帘开启
serial.SendData("p");//发送电机开启指令
} else { //光强 < 阈值,窗帘关闭
serial.SendData("q");//发送电机关闭指令
}
}
if(Bstart <= channel_->getSystemtime() && channel_->getSystemtime() <= Bend){//卧室窗帘
if(illumination >= threshold) { //光强 >= 阈值,窗帘开启
serial.SendData("x");//发送电机开启指令
} else { //光强 < 阈值,窗帘关闭
serial.SendData("y");//发送电机关闭指令
}
}
}
/*
* 函数名:windowAutoController()
* 描述:窗户自动控制
*/
void MainMenu::windowAutoController()
{
QDateTime kStartTime = channel_->getBWindowOpen();//客厅窗户开启时间
QDateTime kEndTime = channel_->getBWindowClose();//客厅窗户关闭时间
QDateTime wStartTime = channel_->getMWindowOpen();//卧室窗户开启时间
QDateTime wEndTime = channel_->getMWindowClose();//卧室窗户关闭时间
QDateTime sysTime = channel_->getSystemtime();//系统时间
//客厅窗户控制
//判断是否在当前时间段
if((kStartTime <= sysTime) && (sysTime <= kEndTime))
{
int userValue = channel_->getHumidityFront().toInt();
int getData = Analysis::Data["Humidity"];
//对比湿度数据和用户设定的阈值
if(userValue <= getData)
{
serial.SendData("i");
}else
{
serial.SendData("j");
}
}
//卧室窗户控制
//判断是否在当前时间段
if((wStartTime <= sysTime) && (sysTime <= wEndTime))
{
int userValue = channel_->getHumidityFront().toInt();
int getData = Analysis::Data["Humidity"];
//对比湿度数据和用户设定的阈值
if(userValue <= getData)
{
serial.SendData("e");
}else
{
serial.SendData("f");
}
}
}
//void MainMenu::curtain()
//{
// //开启、关闭时间格式转换
// QString Bstart = channel_->getBcurtainStart().toString("yyyy-MM-dd hh:mm:ss dddd");
//
没有合适的资源?快使用搜索试试~ 我知道了~
毕设&课程作业_易家智能家居系统.zip
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共62个文件
h:23个
png:14个
cpp:13个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 5 浏览量
2024-02-21
09:55:47
上传
评论
收藏 122KB ZIP 举报
温馨提示
计算机类毕业设计、课程作业,系统源码!!!
资源推荐
资源详情
资源评论
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![vsdx](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![csv](https://img-home.csdnimg.cn/images/20210720083646.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 62 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/2241f086a97c494bbe8bb61a420ea8a8_qq_34717531.jpg!1)
学术菜鸟小晨
- 粉丝: 1w+
- 资源: 5001
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)