<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于電力線傳輸媒介的通信終端設(shè)計(jì)

          基于電力線傳輸媒介的通信終端設(shè)計(jì)

          作者: 時(shí)間:2010-11-05 來源:網(wǎng)絡(luò) 收藏

            首先使用Qt 的工具Qt Designer 設(shè)計(jì)界面。然后進(jìn)入具體的客戶端編程階段,構(gòu)造一個(gè)窗體類為TcpClient 類,具體的軟件編寫如下:

            TcpClient::TcpClient(QWidget *parent)

           ?。?QWidget(parent)

            {

            ui.setupUi(this);

            adsocket= new QTcpSocket(this); //用以傳輸A/D數(shù)據(jù)的TCP通道

            tempsocket= new QTcpSocket(this); //用以傳輸溫度數(shù)據(jù)的TCP通道

            applincesocket= new QTcpSocket(this); //用以控制家用電器的TCP通道

            securitysocket = new QTcpSocket(this); //用以安防系統(tǒng)報(bào)警的TCP通道

            QTimer *temptimer = new QTimer(this); //2S的定時(shí)器

            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() ) );

            }

            動態(tài)分配四個(gè)QTcpSocket(Qt 內(nèi)部對于TCP 協(xié)議的封裝類)對象,分別用該類的對象指針adsocket、tempsocket、appliancesocket、securitysocket 來指向這四個(gè)對象。然后定義一個(gè)QTimer對象,用來實(shí)現(xiàn)2 秒的定時(shí)。接著對一些信號和槽進(jìn)行連接,從而完成各個(gè)組件之間的通訊,其中: QTimer 對象的timeout 信號和temp_update()槽連接、adsocket 對象的connected 信號和ad_request()連接,adsocket 對象的readyRead 信號和ad_readresult()槽。同理連接其他的幾個(gè)QTckSocket 對象的信號和槽。

            以下,具體描述如何實(shí)現(xiàn)溫度檢測和空調(diào)自動控制的功能(其他功能的實(shí)現(xiàn)類似,就不贅述):(1)定時(shí)器每隔2S 觸發(fā)一次,客戶端使用tempsocket 連接服務(wù)器端后發(fā)送測溫請求。(2)接收到服務(wù)器的溫度數(shù)據(jù)后在界面上顯示,并且根據(jù)要求決定是否需要啟動空調(diào)。(3)利用appliancesocket 發(fā)送開啟或者關(guān)閉空調(diào)的命令。并根據(jù)服務(wù)器端的執(zhí)行結(jié)果修改空調(diào)開關(guān)狀態(tài)欄顯示。

            五、結(jié)論

            在實(shí)際的測試中,服務(wù)器端運(yùn)行在實(shí)驗(yàn)室,連接有日光燈、電飯煲和空調(diào)。客戶端運(yùn)行在寢室中。本應(yīng)用在實(shí)現(xiàn)所有功能的基礎(chǔ)上,線終端作為服務(wù)器連續(xù)開機(jī)一周,并進(jìn)行高流量的負(fù)荷測試,能夠穩(wěn)定運(yùn)行,所有功能均表現(xiàn)正常,沒有發(fā)生故障。從而驗(yàn)證了本終端的穩(wěn)定性和該智能家居應(yīng)用的可行性。



          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 電力 通信

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();