
(2 )并發(fā)模式: 只有網(wǎng)絡(luò)通訊時(shí)可以使用這種控制模式。并發(fā)通訊模式是集中發(fā)送所有設(shè)備的請(qǐng)求指令,框架是采用循環(huán)同步方式發(fā)送請(qǐng)求命令。還有進(jìn)一步提高的機(jī)會(huì),采用并行異步方式集中發(fā)送請(qǐng)求命令。硬件設(shè)備接收到指令后進(jìn)行校驗(yàn),校驗(yàn)成功后返回對(duì)應(yīng)指令的數(shù)據(jù),通訊平臺(tái)異步監(jiān)聽(tīng)到數(shù)據(jù)信息后,進(jìn)行接收操作,然后再進(jìn)行數(shù)據(jù)的分發(fā)、處理等。如下圖:

(3 )自控模式: 只有網(wǎng)絡(luò)通訊時(shí)可以使用這種控制模式。自控通訊模式與并發(fā)通訊模式類(lèi)似,區(qū)別在于發(fā)送指令操作交給設(shè)備驅(qū)動(dòng)本身進(jìn)行控制,或者說(shuō)交給二次開(kāi)發(fā)者,二次開(kāi)發(fā)者可以通過(guò)時(shí)鐘定時(shí)用事件驅(qū)動(dòng)的方式發(fā)送指令數(shù)據(jù)。硬件設(shè)備接收到指令后進(jìn)行校驗(yàn),校驗(yàn)成功后返回對(duì)應(yīng)指令的數(shù)據(jù),通訊平臺(tái)異步監(jiān)聽(tīng)到數(shù)據(jù)信息后,進(jìn)行接收操作,然后再進(jìn)行數(shù)據(jù)的分發(fā)、處理等。
自控通訊模式可以為二次開(kāi)發(fā)者提供精確的定時(shí)請(qǐng)求實(shí)時(shí)數(shù)據(jù)機(jī)制,使通訊機(jī)制更靈活、自主,如果多個(gè)設(shè)備驅(qū)動(dòng)使用同一個(gè)IO通道的話(huà),時(shí)間控制會(huì)有偏差。如下圖:

(4 )單例模式: 只有網(wǎng)絡(luò)通訊時(shí)可以使用這種控制模式。在一個(gè)服務(wù)實(shí)例內(nèi)只能有一個(gè)設(shè)備驅(qū)動(dòng),相當(dāng)于一個(gè)設(shè)備驅(qū)動(dòng)對(duì)應(yīng)著N多個(gè)硬件設(shè)備終端。更適合通訊的數(shù)據(jù)協(xié)議有固定的標(biāo)準(zhǔn),以命令關(guān)鍵字處理不同的數(shù)據(jù)。適用于高并發(fā)的硬件終端設(shè)備主動(dòng)上傳數(shù)據(jù),服務(wù)器端根據(jù)數(shù)據(jù)信息進(jìn)行處理和返回相應(yīng)的數(shù)據(jù)。如下圖:

五.跨平臺(tái)Windows和Linux
(1 )Windows 運(yùn)行效果

(2)Linux運(yùn)行效果

開(kāi)源地址: https://github.com/wxzz/ServerSuperIO
百度網(wǎng)盤(pán): http://pan.baidu.com/s/1eRy0inK