基于电力线传输媒介的通信终端设计[4]

动力与环境 责任编辑:kobe521 2010-11-19

摘要:首先使用Qt的工具QtDesigner设计界面。然后进入具体的客户端编程阶段,构造一个窗体类为TcpClient类,具体的软件编写如下:TcpClient::TcpClient(QWidget*parent):QWidget(parent){ui.setupUi(this);adsocket=newQTcpSocket(this);//用以传输A/D数据的TCP通道tempsocket=newQTcpSocket(this);//用以传输

  首先使用Qt 的工具Qt Designer 设计界面。然后进入具体的客户端编程阶段,构造一个窗体类为TcpClient 类,具体的软件编写如下:

  TcpClient::TcpClient(QWidget *parent)
  : QWidget(parent)
  {
  ui.setupUi(this);
  adsocket= new QTcpSocket(this); //用以传输A/D数据的TCP通道
  tempsocket= new QTcpSocket(this); //用以传输温度数据的TCP通道
  applincesocket= new QTcpSocket(this); //用以控制家用电器的TCP通道
  securitysocket = new QTcpSocket(this); //用以安防系统报警的TCP通道
  QTimer *temptimer = new QTimer(this); //2S的定时器
  connect(temptimer,SIGNAL(timeout()),this,SLOT(temp_update()));
  temptimer->start(2000);
  connect( adsocket,SIGNAL( connected() ),this, SLOT( ad_request() ) );
  connect( adsocket,SIGNAL( readyRead() ), this, SLOT( ad_readresult() ) );
  connect( tempsocket,SIGNAL( connected() ),this,SLOT( lm_request() ) );
  connect( tempsocket,SIGNAL( readyRead() ),this,SLOT( lm_readresult() ) );
  connect(appliancesocket,SIGNAL( connected() ), this,SLOT( appliance_request() ) );
  connect(securitysocket,SIGNAL( readyRead() ),this,SLOT( security_readresult() ) );
  }

  动态分配四个QTcpSocket(Qt 内部对于TCP 协议的封装类)对象,分别用该类的对象指针adsocket、tempsocket、appliancesocket、securitysocket 来指向这四个对象。然后定义一个QTimer对象,用来实现2 秒的定时。接着对一些信号和槽进行连接,从而完成各个组件之间的通讯,其中: QTimer 对象的timeout 信号和temp_update()槽连接、adsocket 对象的connected 信号和ad_request()连接,adsocket 对象的readyRead 信号和ad_readresult()槽。同理连接其他的几个QTckSocket 对象的信号和槽。

  以下,具体描述如何实现温度检测和空调自动控制的功能(其他功能的实现类似,就不赘述):(1)定时器每隔2S 触发一次,客户端使用tempsocket 连接服务器端后发送测温请求。(2)接收到服务器的温度数据后在界面上显示,并且根据要求决定是否需要启动空调。(3)利用appliancesocket 发送开启或者关闭空调的命令。并根据服务器端的执行结果修改空调开关状态栏显示。

  五、结论

  在实际的测试中,服务器端运行在实验室,连接有日光灯、电饭煲和空调。客户端运行在寝室中。本应用在实现所有功能的基础上,电力线终端作为服务器连续开机一周,并进行高流量的负荷测试,能够稳定运行,所有功能均表现正常,没有发生故障。从而验证了本终端的稳定性和该智能家居应用的可行性。

[1]  [2]  [3]  [4]  

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

通信工程师备考资料免费领取

去领取

距离2025 通信工程师考试

还有
  • 0
  • 4
  • 2
专注在线职业教育24年

信息系统项目管理师

信息系统项目管理师

!
咨询在线老师!