目       錄

12.服務(wù)接口的開發(fā),以及與云端雙向交互... 2

12.1        概述... 2

12.2        設(shè)備鏈接器... 2

12.3        服務(wù)鏈接器... 3

12.4        場景假設(shè)... 3

12.5        設(shè)備驅(qū)動(dòng)開發(fā)及注意事項(xiàng)... 4

12.6        服務(wù)實(shí)例開發(fā)及注意事項(xiàng)... 4

12.7        宿主程序服務(wù)實(shí)例配置注意事項(xiàng)... 8

12.8        運(yùn)行效果... 9

12.服務(wù)接口的開發(fā),以及與云端雙向交互      

12.1     概述

     服務(wù)接口IService是除設(shè)備驅(qū)動(dòng)接口IRunDevice外的特殊應(yīng)用場景,例如:短信報(bào)警、LED輸出、模擬量的采集、OPC服務(wù)端/客戶端、數(shù)據(jù)的級(jí)聯(lián)轉(zhuǎn)發(fā)、以及其他的特殊應(yīng)用。是基于設(shè)備驅(qū)動(dòng)接口IRunDevice的有力擴(kuò)展,讓框架的功能更豐富和強(qiáng)大。

     這篇文章主要介紹數(shù)據(jù)的轉(zhuǎn)發(fā)和控制服務(wù),其他的服務(wù)開發(fā)與此類似。如果基于ServerSuperIO服務(wù)接口的開發(fā)具備數(shù)據(jù)轉(zhuǎn)發(fā)和控制能力,那么在物聯(lián)網(wǎng)建設(shè)中將具備數(shù)據(jù)的無限級(jí)聯(lián)傳遞與控制能力,使用一套框架形成一套解決方案。示意圖如下:

 

12.2     設(shè)備鏈接器

      IRunDevice設(shè)備驅(qū)動(dòng)接口繼承了服務(wù)的IServiceConnectorDevice接口,設(shè)備驅(qū)動(dòng)會(huì)實(shí)現(xiàn)RunServiceConnector接口函數(shù),代表可以接收或運(yùn)行來自服務(wù)實(shí)例傳遞過來的數(shù)據(jù)信息。代碼定義如下:

12.3     服務(wù)鏈接器

     IService接口繼承自IServiceConnector服務(wù)鏈接器,代表服務(wù)具備兩大職能:1、向設(shè)備驅(qū)動(dòng)發(fā)送命令或信息。2、接收設(shè)備驅(qū)動(dòng)處理命令或信息的結(jié)果。代碼如下:

12.4     場景假設(shè)

     設(shè)備驅(qū)動(dòng)實(shí)時(shí)采集傳感器的數(shù)據(jù)信息,然后通過OnDeviceObjectChanged事件接口把數(shù)據(jù)信息傳遞給服務(wù)實(shí)例UpdateDevice接口函數(shù),然后進(jìn)行數(shù)據(jù)的緩存。開啟服務(wù)線程,連接云端服務(wù)并且定時(shí)上傳傳感器的數(shù)據(jù)信息。云端服務(wù)下發(fā)控制指令command:control:1(注:命令控制1號(hào)編碼設(shè)備),然后設(shè)備驅(qū)動(dòng)把命令下發(fā)給傳感器,最終把結(jié)果返回給服務(wù)實(shí)例。

12.5     設(shè)備驅(qū)動(dòng)開發(fā)及注意事項(xiàng)

1.給服務(wù)實(shí)例傳遞數(shù)據(jù)信息,通過OnDeviceObjectChanged事件。代碼如下:

2.接收服務(wù)實(shí)例傳遞的命令和信息。代碼如下:

12.6     服務(wù)實(shí)例開發(fā)及注意事項(xiàng)

     服務(wù)實(shí)例主要的職能是:緩存數(shù)據(jù)、連接云端服務(wù)并定時(shí)發(fā)送數(shù)據(jù)、接收云端命令信息并傳遞給設(shè)備驅(qū)動(dòng)、接收驅(qū)動(dòng)執(zhí)行命令信息的結(jié)果。

  1. 緩存數(shù)據(jù),代碼如下:

     2.連接云端服務(wù)并定時(shí)發(fā)送數(shù)據(jù),代碼如下:

     3.接收云端命令信息并傳遞給設(shè)備驅(qū)動(dòng)

      4.接收驅(qū)動(dòng)執(zhí)行命令信息的結(jié)果

12.7     宿主程序服務(wù)實(shí)例配置注意事項(xiàng)

12.8     運(yùn)行效果

1.圖片

 

2.視頻


 

1.[連載]《C#通訊(串口和網(wǎng)絡(luò))框架的設(shè)計(jì)與實(shí)現(xiàn)》

2.[開源]C#跨平臺(tái)物聯(lián)網(wǎng)通訊框架ServerSuperIO(SSIO)介紹

2.應(yīng)用SuperIO(SIO)和開源跨平臺(tái)物聯(lián)網(wǎng)框架ServerSuperIO(SSIO)構(gòu)建系統(tǒng)的整體方案

3.C#工業(yè)物聯(lián)網(wǎng)和集成系統(tǒng)解決方案的技術(shù)路線(數(shù)據(jù)源、數(shù)據(jù)采集、數(shù)據(jù)上傳與接收、ActiveMQ、Mongodb、WebApi、手機(jī)App)