目 錄
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é)果。
- 緩存數(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)的整體方案