


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、"纟爾濾z理2 4课程设计课程名称: 嵌入式设计设计题目:智能家居监控系统班 级: 20122111学 号: 2012211127姓 名:指导教师: 完成时间: 2015/12/9哈尔滨工程大学教务处制嵌入式设计报告智能家居监控系统班 级 :教师评语:教师签名:2015年12月课程设计题目智能家居监控系统目的和背景智能家居又称智能住宅,正朝着具备无线远程控制、多媒体 控制、高速数据传输等功能 的方向发展,其关键技术为兼容性强 的家庭控制器和满足信息传输需要的家庭网络。目前,传输网络多采用综合布线技术,限制了系统应用场所,而且费用较高,采 用无线方式构建灵活便捷的智能家居安全监控系统,
2、成为当前的 主流趋势。目前,应用于智能家居的无线通信技术主要包括 Ir-DA红外 线技术、监牙技术和Zigbee技术等,Ir-DA属于短距离、点对 点的半双工通信方式,使用不便且失误率高,不适用于家 庭的组 网方式;蓝牙技术则因为网络容量有限,成本较高,不适于节点 较多的家庭网络应用。本项目通过采用传输范围适中、安全可靠、网络容量大的 Zigbee技术,设计智能豕居 远程监控系统。主要内容1)信息显示。2)照明控制。3)家电控制。4)入侵监测。5)烟感监测。6)温度、湿度监测。7)远程监控,数据透传。8)选项设置。采用的工具方法硬件环境1 : NEUEBD-ARMF发套件 硬件环境2 : CC
3、2530开发套件软件环境:1. UCOS2.5.1,提供UCOS内核构建2. ADS1.2、IAR7.51,提供集成开发环境进度安排1-2天:完成项目要求书、模块计划书、系统设计书、RTM3-4天:完成模块概要设计、模块概要设计书、模块接口定义书、 模块间EVENT流和数据流系统图5-7天:完成模块详细设计模块详细设计书8-13天:完成模块代码 模块代码14-16天:完成项目报告参考资料1目的和背景智能家居又称智能住宅,正朝着具备无线远程控制、多媒体控制、高速数据传输等 功能的方向发展,其关键技术为兼容性强的家庭控制器和满足信息传输需要的家庭网 络。目前,传输网络多采用综合布线技术,限制了系统
4、应用场所,而且费用较高,采 用无线方式构建灵 活便捷的智能家居安全监控系统,成为当前的主流趋势。目前,应用于智能家居的无线通信技术主要包括Ir-DA 红外线技术、蓝牙技术和Zigbee技术等,Ir-DA属于短距离、点对点的半双工通信方式,使用不便且失误率高, 不适用于家 庭的组网方式;蓝牙技术则因为网络容量有限,成本较高,不适于节点较 多的家庭网络应用。本项目通过采用传输范围适中、安全可靠、网络容量大的Zigbee技术,设计智能家居远程监控系统。2功能描述和模块设计图1:智能家居监控平台示意图1)LCD主菜单显示显示当前时间日期,电器开关状态,是否闹钟开启。显示用户操作菜单。显示设置 菜单。2
5、)照明控制使用LED、AD( 1个)硬件资源。使用LED可模仿家中主要房间的照明。通过照明控制子菜单控制灯亮灭。如果开启了自动光控功能,通过AD采集的光照参数可实现照明的自动开关。另外可通过小键盘模拟电灯开关。3)家电控制使用LED硬件资源。通过家电控制子菜单对家中电器进行开关控制。相应家电开关 信息以及闹钟是否开启都在LCD主菜单中有显示。通过设置菜单传递的信息可定时 开关电器以及实现闹钟功能。定时时间到 LCD屏会自动弹出提示框并且家电状态发 生改变。4)入侵报警控制使用红外传感器硬件资源。使用红外传感器或接近开关采集数据,判断有无人员进 入室内。报警参数有默认值,也可由用户设置,可通过设
6、置功能完成。如遇报警,报警信息在屏幕上显示,同时发出触发蜂鸣器报警。5)温湿度控制使用温湿度传感器硬件资源。使用温湿度传感器采集温湿度数据,将监测数据显示 在LCD上。报警参数有默认值,也可由用户设置,可通过设置功能完成。如遇报警,触发蜂鸣器动作,同时开启空调。6)远程监控。终端系统将发生的事件数据定期通过 Zigbee传输到服务器,服务器可根据实际情 况进行家电设备的远端控制。7)设置功能完成以下内容的设置:哪些房间采用自动控制功能。3系统结构温度湿度”采绘嘆块E虹夕卜 感頭奠块揑制1灯克1摧制1Zigbee无线传感网络协谀器-串口诵倍控制系统SmartHome控制系统图2系统结构图1
7、77;册SAPATS4WLME-5AF图3通信协议框架睦用层建辑圧集功层图4设计参考框架4代码实现4.1模块的实现4.1.1账户登录模块函数名称函数类型概要说明lineEditTextChanged(QString s)模块内部函数判断文本是否发生改变的槽函数zeroClicked() nin eClicked()模块内部函数09的数字输入键盘logi nBtn Clicked()模块外部函数登陆按键,进入主页面forgrtPasswordClicked()模块外部函数忘记密码按键,进入密码修改页面4.1.2 主界面模块函数名称函数类型概要说明mai nWidget2smartHomeAppl
8、ia nces()模块外部函数点击按钮进入智能家电模块。mai nWidget2securityWidget()模块外部函数点击按钮进入安防系统模块。mai nWidget2toolWidget()模块外部函数点击按钮进入工具娱乐模块。Back_clicked模块外部函数返回登陆界面。4.1.3智能家电模块函数名称函数类型概要说明smartHomeApplia nces2lightWidget()模块外部函数点击按钮进入灯控界面。smartHomeApplia nces2waterHeaterWidget()模块外部函数点击按钮进入热水器控制界面。smartHomeApplia nces2te
9、mperatureWidget()模块外部函数点击按钮进入空调控制界面。smartHomeApplia nces2humidityWidget()模块外部函数点击按钮进入加湿器控制界面。smartHomeApplia nces2curta in Widget()模块外部函数点击按钮进入窗帘控制界面。smartHomeApplia nces2televisi on Widget()模块外部函数点击按钮进入电视控制界面Back_clicked模块外部函数返回上一界面4.1.3.1 灯控模块函数名称函数类型概要说明lightTurn 0n()模块外部函数点击按钮打开灯。lightTurnOff()模
10、块外部函数点击按钮关闭灯Back_clicked模块外部函数返回上一界面4.1.3.2 温度模块函数名称函数类型概要说明cha ngeSwitch(i nt a)模块内部函数显示空调的开光状态。addTemClicked()模块内部函数显示空调的温度。addTemClicked()模块外部函数点击按钮发送温度加信息。subT emClicked();模块外部函数点击按钮发送温度减信息。Back_clicked模块外部函数返回上一界面4.133湿度模块函数名称函数类型概要说明showRh(i nt rh)模块内部函数显示当前湿度。cha ngeSwitch(i nt a)模块内部函数显示当前开关
11、状态。changeOn Clicked()模块外部函数点击按钮发送开状态。cha ngeOfClicked()模块外部函数点击按钮发送关状态。addBt nClicked();模块外部函数点击按钮发送湿度加状态。subBt nClicked();模块外部函数点击按钮发送湿度减状态。Back_clicked模块外部函数返回上一界面4.134热水器模块函数名称函数类型概要说明showTem(i nt tem);模块内部函数显示当前温度。cha ngeSwitch(i nt a)模块内部函数显示开关状态。changeOn Clicked()模块外部函数点击按钮发送开状态。cha ngeOfClick
12、ed()模块外部函数点击按钮发送关状态。addBt nClicked();模块外部函数点击按钮发送升咼水温状态。subBt nClicked();模块外部函数点击按钮发送降低水温状态。Back_clicked模块外部函数返回上一界面4.1.3.5窗帘模块函数名称函数类型概要说明showSlider( int ti );模块内部函数显示窗帘的位置。sliderValue(i nt a);模块内部函数读取窗帘的当前位置。Back_clicked模块外部函数返回上一界面4.1.3.6电视模块函数名称函数类型概要说明ope nTvClicked();模块外部函数点击按钮发送电视开的信号。closeTv
13、Clicked();模块外部函数点击按钮发送电视关的信号addVmeClicked();模块外部函数点击按钮发送音量+信号subVolumeClicked();模块外部函数点击按钮发送音量减信号addProgramClicked()模块外部函数点击按钮发送节目+信号subProgramClicked();模块外部函数点击按钮发送节目-信号Back_clicked模块外部函数返回上一界面4.1.4 安防模块函数名称函数类型概要说明securityWidget2 in fraredWidget();模块外部函数点击按钮进入红外报警。security2LockWidget();模块外部函数点击按钮进
14、入远程控制门锁security2SmokeWidget();模块外部函数点击按钮进入烟雾报警Back_clicked模块外部函数返回上一界面4.141红外报警模块函数名称函数类型概要说明showLocati on (i nt a);模块内部函数显示触发的位置cha ngeOn Clicked();模块外部函数点击按钮发送红外开启信号cha ngeOfficked();模块外部函数点击按钮发送红外开启信号Back_clicked模块外部函数返回上一界面4.1.4.2 烟雾报警模块函数名称函数类型概要说明cha ngeSmoke(i nt);模块内部函数显示当前烟雾的浓度。Back_clicked
15、模块外部函数返回上一界面4.1.4.3 门锁控制模块函数名称函数类型概要说明cha ngeLockState(i nt );模块内部函数显示当前门的锁的状态cha ngeOn()模块外部函数点击按钮发送门开的状态changeOff ();模块外部函数点击按钮发送门开的状态Back_clicked模块外部函数返回上一界面4.1.5小工具模块函数名称函数类型概要说明toolWidget2calendarWidget();模块外部函数点击按钮进入日历toolWidget2stopwatchWidget()模块外部函数点击按钮进入秒表toolWidget2cWidget()模块外部函数点击按钮进入计算
16、器toolWidget2alarmWidget()模块外部函数点击按钮进入闹钟toolWidget2mia nWin dow()模块外部函数点击按钮进入画板toolWidget2gameWidget()模块外部函数点击按钮进入2048游戏toolWidget2clockWidget()模块外部函数点击按钮进入时钟4.1.5.1日历模块函数名称函数类型概要说明selfi nfowidget()模块内部函数显示医生个人基本信息,显示医生的打卡时间。butt on _schedual_clicked模块外部函数点击按钮进入日程界面Select_cases模块外部函数选择代办事项,并显示代办事项的具体
17、内容Back_clicked模块外部函数返回上一界面4.1.5.2 时钟模块函数名称函数类型概要说明selfi nfowidget()模块内部函数显示医生个人基本信息,显示医生的打卡时间。butt on _schedual_clicked模块外部函数点击按钮进入日程界面Select_cases模块外部函数选择代办事项,并显示代办事项的具体内容Back_clicked模块外部函数返回上一界面4.1.5.3 闹钟模块函数名称函数类型概要说明selfi nfowidget()模块内部函数显示医生个人基本信息,显示医生的打卡时间。butt on _schedual_clicked模块外部函数点击按钮进
18、入日程界面Select_cases模块外部函数选择代办事项,并显示代办事项的具体内容Back_clicked模块外部函数返回上一界面4.1.5.4 秒表模块函数名称函数类型概要说明startStopwatchClicked()模块内部函数秒表开始计时resetStopwatchClicked()模块内部函数秒表重新计时stopStopwatchClicked()模块内部函数秒表停止计时4.1.5.5 画板模块函数名称函数类型概要说明void ope n()模块内部函数打开图片void save()模块内部函数保存图片void pen Color()模块内部函数改变画笔颜色void pen Wi
19、dth()模块内部函数改变画笔宽度void pen Brush()模块内部函数笔刷4.1.5.6 计算器模块函数名称函数类型概要说明selfi nfowidget()模块内部函数显示医生个人基本信息,显示医生的打卡时间。butt on _schedual_clicked模块外部函数点击按钮进入日程界面Select_cases模块外部函数选择代办事项,并显示代办事项的具体内容Back_clicked模块外部函数返回上一界面4.1.5.7 小游戏模块函数名称函数类型概要说明selfi nfowidget()模块内部函数显示医生个人基本信息,显示医生的打卡时间。resizeEvent(QResize
20、Event *)模块内部函数窗口尺寸改变触发的事件on Score In c(i nt)模块内部函数处理分数增加信号的槽函数on GameOver()模块内部函数处理游戏结束信号的槽函数onWin ()模块内部函数处理游戏获胜信号的槽函数Main.c: #include <QApplication>#include <QTextCodec>#include "head.h"#include "openpassword.h"int sfd;void init_network();int main(int argc, char *ar
21、gv)QApplication a(argc, argv);QTextCodec:setCodecForCStrings(QTextCodec:codecForName("utf-8");QTextCodec:setCodecForLocale(QTextCodec:codecForName("utf-8");QTextCodec:setCodecForTr(QTextCodec:codecForName("utf-8");openPassword w;w.show();init_network();return a.exec();v
22、oid init_network()sfd=socket(AF_INET,SOCK_DGRAM,0);if(sfd<0)qDebug("socket()failed!");return;struct sockaddr_in addr;bzero(&addr,sizeof(addr);addr.sin_family = AF_INET;addr.sin_port=htons(9999);addr.sin_addr.s_addr = htonl(INADDR_ANY);int ret;ret=bind(sfd,(struct sockaddr*)&addr
23、,sizeof(addr);if(ret != 0)qDebug("bind() failed!");return;#include "mainwidget.h"#include "ui_mainwidget.h"#include "head.h"#include <QTime>/#include <QTimer>mainWidget:mainWidget(QWidget *parent) :QWidget(parent),ui(new Ui:mainWidget)ui->setupU
24、i(this);ui->dateTimeEdit->setDate(QDate:currentDate();/ ui->dateTimeEdit->setTime(QTime:currentTime();/QTimer *timer=new QTimer(this);timer->start(1000);connect(timer,SIGNAL(timeout(),this,SLOT(timeoutslot();/timeoutslot()sha = new smartHomeAppliances;sw = new securityWidget;tw = new
25、toolWidget;mainWidget.c:mainWidget:mainWidget()delete ui;void mainWidget:show()QWidget:show(); showFullScreen();void mainWidget:mainWidget2smartHomeAppliances()QPalette palette;palette.setBrush(QPalette:Background,QBrush(QImage( ":/new/prefix1/jiaju.png").scaled(size(), Qt:IgnoreAspectRati
26、o,Qt:SmoothTransformation);sha->setPalette(palette);sha->setAutoFillBackground(true);sha->setAutoFillBackground(true);sha->show();/ sha->show();void mainWidget:mainWidget2securityWidget()QPalette palette;palette.setBrush(QPalette:Background,QBrush(QImage( ":/new/prefix1/anfang.pn
27、g").scaled(size(), Qt:IgnoreAspectRatio,Qt:SmoothTransformation);sw->setPalette(palette);sw->setAutoFillBackground(true);/ sw->setAutoFillBackground(true);/ sha->show();sw->show();void mainWidget:mainWidget2toolWidget()/ tw->show();QPalette palette;palette.setBrush(QPalette:Ba
28、ckground,QBrush(QImage( ":/new/prefix1/tool.png").scaled(size(), Qt:IgnoreAspectRatio,Qt:SmoothTransformation);tw->setPalette(palette);tw->setAutoFillBackground(true);tw->setAutoFillBackground(true);tw->show();void mainWidget:timeoutslot()QDate date = ui->dateTimeEdit->da
29、te();QTime time = ui->dateTimeEdit->time();QTime time1(23,59,59);if(time = time1)date = date.addDays(1);time = time.addSecs(1); ui->dateTimeEdit->setDate(date); ui->dateTimeEdit->setTime(time) 冰箱控制:#include "infraredwidget.h"#include "ui_infraredwidget.h"#includ
30、e "head.h"infraredWidget:infraredWidget(QWidget *parent) :QWidget(parent),ui(new Ui:infraredWidget)ui->setupUi(this);infraredWidget:infraredWidget()delete ui;void infraredWidget:show()QWidget:show(); showFullScreen();void infraredWidget:changeOnClicked()struct sockaddr_in peer_addr;bzer
31、o(&peer_addr,sizeof(peer_addr);peer_addr.sin_family = AF_INET;peer_addr.sin_port = htons(INFRARED_PORT);peer_addr.sin_addr.s_addr = inet_addr(INFRARED_IP);int a=1;sendto(sfd,&a,sizeof(a),0,(struct sockaddr*)&peer_addr,sizeof(peer_addr); ui->textBrowser->append("");void in
32、fraredWidget:changeOffClicked()struct sockaddr_in peer_addr;bzero(&peer_addr,sizeof(peer_addr);peer_addr.sin_family = AF_INET;peer_addr.sin_port = htons(INFRARED_PORT);peer_addr.sin_addr.s_addr = inet_addr(INFRARED_IP);int a=0;sendto(sfd,&a,sizeof(a),0,(struct sockaddr*)&peer_addr,sizeof
33、(peer_addr);ui->textBrowser->append("");void infraredWidget:showLocation(int a)if(a=0)ui->textBrowser->append();if(a=1)ui->textBrowser->append(");门锁控制:#include "lockwidget.h"#include "ui_lockwidget.h"#include<QLabel>#include<QAbstractButt
34、on>#include"head.h"lockWidget:lockWidget(QWidget *parent) :QWidget(parent),ui(new Ui:lockWidget)ui->setupUi(this);/ rt = new recvThread;/QObject:connect(rt, SIGNAL( lockStateChange(int),/this, SLOT(changeLockState(int);/ rt->start();lockWidget:lockWidget()delete ui;void lockWidget
35、:show()QWidget:show(); showFullScreen();void lockWidget:changeOn()/ ui->btn1->setChecked(true);ui->lineEdit->setText("The gate is ON!");struct sockaddr_in addr;bzero(&addr, sizeof(addr);addr.sin_family = AF_INET;addr.sin_port = htons(7002); addr.sin_addr.s_addr = inet_addr(
36、"192.168.1.222");/ int kind = 5; / sendto(sfd, &kind, sizeof(kind), 0, (struct sockaddr*)&addr, sizeof(addr);int bool2=1;sendto(sfd, &bool2, sizeof(bool2), 0, (struct sockaddr*)&addr, sizeof(addr);/ ui->label_2->setText("the GA TE is On!");void lockWidget:ch
37、angeOff()ui->lineEdit->setText("The gate is OFF!");/ ui->btn2->setChecked(true);/ ui->label_2->setText("the Gate is OFF!");struct sockaddr_in addr;bzero(&addr, sizeof(addr);addr.sin_family = AF_INET;addr.sin_port = htons(7002); addr.sin_addr.s_addr = inet_ad
38、dr("192.168.1.87");/int kind = 5;/ sendto(sfd, &kind, sizeof(kind), 0, (struct sockaddr*)&addr, sizeof(addr);int bool2=0;sendto(sfd, &bool2, sizeof(bool2), 0, (struct sockaddr*)&addr, sizeof(addr);void lockWidget:changeLockState(int bool1)if(bool1=0)/ui->setupUi(this);/u
39、i->Ui_lockWidget;/close();/show();/update();/repaint();ui->lineEdit->setText("the GATE is OFF!");/ qApp->processEvents();/ this->updateGeometry();/ qDebug("recv1111");else if (bool1=1)/ui->btn1->setCheckable(true);/ui->btn1->setFocus();/ ui->btn2->
40、;setChecked(false);/ ui->btn1->setChecked(true);/ ui->label_2->update();/ui->label_2->setText("the GA TE is On!");/ this->changeOff();/ this->changeOn();/ ui->setupUi(this);/ ui->retranslateUi(lockWidget);/ update();ui->lineEdit->setText("the GATE i
41、s ON!");/ this->updateGeometry();/ qDebug("recv 2222");远程灯控:#include "lockwidget.h"#include "ui_lockwidget.h"#include<QLabel>#include<QAbstractButton>#include"head.h"lockWidget:lockWidget(QWidget *parent) :QWidget(parent),ui(new Ui:lockWidg
42、et)ui->setupUi(this);/ rt = new recvThread;/QObject:connect(rt, SIGNAL( lockStateChange(int),/ this, SLOT(changeLockState(int); / rt->start();lockWidget:lockWidget()delete ui;void lockWidget:show()QWidget:show(); showFullScreen();void lockWidget:changeOn()/ ui->btn1->setChecked(true);ui-
43、>lineEdit->setText("The gate is ON!");struct sockaddr_in addr; bzero(&addr, sizeof(addr);addr.sin_family = AF_INET;addr.sin_port = htons(7002);addr.sin_addr.s_addr = inet_addr("192.168.1.222");/ int kind = 5; / sendto(sfd, &kind, sizeof(kind), 0, (struct sockaddr*)&
44、amp;addr, sizeof(addr); int bool2=1;sendto(sfd, &bool2, sizeof(bool2), 0, (struct sockaddr*)&addr, sizeof(addr);/ ui->label_2->setText("the GATE is On!");void lockWidget:changeOff()ui->lineEdit->setText("The gate is OFF!");/ ui->btn2->setChecked(true);/
45、ui->label_2->setText("the Gate is OFF!");struct sockaddr_in addr;bzero(&addr, sizeof(addr);addr.sin_family = AF_INET;addr.sin_port = htons(7002);addr.sin_addr.s_addr = inet_addr("192.168.1.87");/ int kind = 5; /sendto(sfd, &kind, sizeof(kind), 0, (struct sockaddr*)&
46、amp;addr, sizeof(addr);int bool2=0;sendto(sfd, &bool2, sizeof(bool2), 0, (struct sockaddr*)&addr, sizeof(addr);void lockWidget:changeLockState(int bool1)if(bool1=0)/ui->setupUi(this);/ui->Ui_lockWidget;/close();/show();/update();/repaint();ui->lineEdit->setText("the GATE is
47、OFF!");/ qApp->processEvents();/ this->updateGeometry();/ qDebug("recv1111");else if (bool1=1)/ ui->btn1->setCheckable(true);/ ui->btn1->setFocus();/ ui->btn2->setChecked(false);/ ui->btn1->setChecked(true);/ ui->label_2->update();/ui->label_2-&g
48、t;setText("the GA TE is On!");/ this->changeOff();/ this->changeOn();/ ui->setupUi(this);/ ui->retranslateUi(lockWidget);/ update();ui->lineEdit->setText("the GATE is ON!");/ this->updateGeometry();/ qDebug("recv 2222");湿度检测:#include "humidityw
49、idget.h"#include "ui_humiditywidget.h"#include "head.h"humidityWidget:humidityWidget(QWidget *parent) :QWidget(parent),ui(new Ui:humidityWidget)ui->setupUi(this);humidityWidget:humidityWidget()delete ui;void humidityWidget:show()QWidget:show(); showFullScreen();void humid
50、ityWidget:showRh(int rh) ui->lcdNumber->display(rh);void humidityWidget:changeSwitch(int a)if(a=1)ui->closeButton->setChecked(false); ui->openButton->setChecked(true);else if(a=0)ui->openButton->setChecked(false);ui->closeButton->setChecked(true);void humidityWidget:cha
51、ngeOnClicked()struct sockaddr_in peer_addr;bzero(&peer_addr,sizeof(peer_addr);peer_addr.sin_family = AF_INET;peer_addr.sin_port = htons(HUMIDITY_PORT);peer_addr.sin_addr.s_addr = inet_addr(HUMIDITY_IP);int type=1;sendto(sfd,&type,sizeof(type),0,(struct sockaddr*)&peer_addr,sizeof(peer_ad
52、dr);int a=1;sendto(sfd,&a,sizeof(a),0,(struct sockaddr*)&peer_addr,sizeof(peer_addr);void humidityWidget:changeOffClicked()struct sockaddr_in peer_addr;bzero(&peer_addr,sizeof(peer_addr);peer_addr.sin_family = AF_INET;peer_addr.sin_port = htons(HUMIDITY_PORT);peer_addr.sin_addr.s_addr =
53、inet_addr(HUMIDITY_IP);int type=1;sendto(sfd,&type,sizeof(type),0,(struct sockaddr*)&peer_addr,sizeof(peer_addr);int a=0;sendto(sfd,&a,sizeof(a),0,(struct sockaddr*)&peer_addr,sizeof(peer_addr);void humidityWidget:addBtnClicked()int rh = ui->lcdNumber->intValue();rh +;if(rh>
54、=100)rh=10;ui->lcdNumber->display(rh);struct sockaddr_in peer_addr;bzero(&peer_addr,sizeof(peer_addr);peer_addr.sin_family = AF_INET;peer_addr.sin_port = htons(HUMIDITY_PORT);peer_addr.sin_addr.s_addr = inet_addr(HUMIDITY_IP);int type=2;sendto(sfd,&type,sizeof(type),0,(struct sockaddr*
55、)&peer_addr,sizeof(peer_addr); void humidityWidget:subBtnClicked()int rh = ui->lcdNumber->intValue();rh -;if(rh<=0)rh=0;ui->lcdNumber->display(rh);struct sockaddr_in peer_addr; bzero(&peer_addr,sizeof(peer_addr);peer_addr.sin_family = AF_INET;peer_addr.sin_port = htons(HUMIDIT
56、Y_PORT);peer_addr.sin_addr.s_addr = inet_addr(HUMIDITY_IP);int type=2;sendto(sfd,&type,sizeof(type),0,(struct sockaddr*)&peer_addr,sizeof(peer_addr); sendto(sfd,&rh,sizeof(rh),0,(struct sockaddr*)&peer_addr,sizeof(peer_addr);电视模块:#include "televisionwidget.h"#include "ui_televisionwidget.h"#inclu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阿里巴巴笔试题及答案
- 2025年耗尽关机传感器合作协议书
- 员工合同入股协议书范本
- 中美欠发达地区城市化进程比较
- 关于武汉高端住宅写字楼酒店市场调查综合调研报告
- 2025年GPS高空探测系统项目发展计划
- 查理苏临床医学研究体系
- 影院营运培训
- 牧场奶牛养殖委托管理与供应链整合协议
- 高层管理培训体系构建
- YX51-380-760型金属屋面板专项施工方案(32页)
- sql优化-oracle数据库ppt课件
- 肾癌-诊疗ppt
- 土地模板-市场比较法
- 附5北京理工大学本科毕业生德育答辩论
- 中国疾病预防控制中心健康体检表
- 康复评定——感觉功能评定
- 华为产品测试策略及验证计划模板
- 施工高处作业安全技术规范(jgj80-2016)考试题库单选50道,多选20道,判断30道.doc
- MPOR涂层测厚仪说明书
- 医院管理试题学习资料
评论
0/150
提交评论