新闻中心

EEPW首页 > 电源与新能源 > 设计应用 > 基于电力线传输媒介的通信终端设计

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

作者: 时间:2010-11-05 来源:网络 收藏

  首先使用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 下一页

关键词: 电力 通信

评论


技术专区

关闭