[發(fā)明專利]基于虛擬設(shè)備的數(shù)據(jù)集中器開(kāi)發(fā)方法、裝置及存儲(chǔ)介質(zhì)有效
| 申請(qǐng)?zhí)枺?/td> | 201810852409.4 | 申請(qǐng)日: | 2018-07-27 |
| 公開(kāi)(公告)號(hào): | CN109144516B | 公開(kāi)(公告)日: | 2023-01-17 |
| 發(fā)明(設(shè)計(jì))人: | 黎智成;黃俊淇;周浩成;王國(guó)華 | 申請(qǐng)(專利權(quán))人: | 廣州城市理工學(xué)院 |
| 主分類號(hào): | G06F8/41 | 分類號(hào): | G06F8/41;G06F9/455 |
| 代理公司: | 北京惠科金知識(shí)產(chǎn)權(quán)代理有限公司 11981 | 代理人: | 袁曉哲 |
| 地址: | 510000 *** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 虛擬 設(shè)備 數(shù)據(jù) 集中器 開(kāi)發(fā) 方法 裝置 存儲(chǔ) 介質(zhì) | ||
1.一種基于虛擬設(shè)備的數(shù)據(jù)集中器開(kāi)發(fā)方法,適于在計(jì)算設(shè)備中執(zhí)行,其特征在于,包括:
將Lua開(kāi)發(fā)包編譯至數(shù)據(jù)集中器的操作系統(tǒng)中,并在所述數(shù)據(jù)集中器應(yīng)用程序的框架上建立Lua腳本的框架;所述在所述數(shù)據(jù)集中器應(yīng)用程序的框架上建立Lua腳本的框架,具體為:在所述數(shù)據(jù)集中器上搭建注冊(cè)Lua虛擬機(jī);根據(jù)所述數(shù)據(jù)集中器的資源分配調(diào)用接口;根據(jù)所述數(shù)據(jù)集中器的所述調(diào)用接口對(duì)所述Lua腳本的函數(shù)進(jìn)行封裝;
在所述數(shù)據(jù)集中器與上位機(jī)之間建立統(tǒng)一的通信協(xié)議;
啟動(dòng)所述數(shù)據(jù)集中器,并加載Lua虛擬機(jī),當(dāng)上層消息傳入時(shí),通過(guò)C++語(yǔ)言和Lua腳本對(duì)相關(guān)數(shù)據(jù)進(jìn)行解析,得到解析數(shù)據(jù),并把所述解析數(shù)據(jù)分發(fā)到終端設(shè)備;
接收所述終端設(shè)備根據(jù)所述解析數(shù)據(jù)回傳的數(shù)據(jù),并通過(guò)Lua腳本將所述數(shù)據(jù)封裝成虛擬設(shè)備數(shù)據(jù),再通過(guò)C++語(yǔ)言將所述虛擬設(shè)備數(shù)據(jù)返回給上層;
所述通過(guò)C++語(yǔ)言和Lua腳本對(duì)相關(guān)數(shù)據(jù)進(jìn)行解析,為使用C++編譯的應(yīng)用程序?qū)ua腳本接口的調(diào)用;
所述通過(guò)Lua腳本將所述數(shù)據(jù)封裝成虛擬設(shè)備數(shù)據(jù),指通過(guò)Lua腳本對(duì)使用C++編譯的應(yīng)用程序接口的回調(diào);
采用線程方式對(duì)Lua腳本進(jìn)行讀取,C++代碼與Lua腳本之間統(tǒng)一定義doRead函數(shù)作為數(shù)據(jù)獲取函數(shù),doWrite函數(shù)作為數(shù)據(jù)更新函數(shù),方便以后Lua腳本的修改不影響C++代碼的運(yùn)行,程序的具體步驟如下:
首先對(duì)請(qǐng)求的設(shè)備進(jìn)行判斷,若設(shè)備為普通的終端設(shè)備則對(duì)該設(shè)備進(jìn)行通常的讀寫操作;若設(shè)備為虛擬設(shè)備,則開(kāi)啟新線程對(duì)請(qǐng)求命令進(jìn)行解析并執(zhí)行;
根據(jù)請(qǐng)求的不同將請(qǐng)求命令分為數(shù)據(jù)讀取和更新兩種;
對(duì)于讀取操作,首先調(diào)用lua_getglobal函數(shù)獲取Lua腳本中相對(duì)應(yīng)的執(zhí)行函數(shù)名,采用doRead作為讀取函數(shù),對(duì)于具有多個(gè)數(shù)據(jù)項(xiàng)需要讀取的虛擬設(shè)備,使用doRead_0,doRead_1分開(kāi)讀取;然后通過(guò)lua_pushinteger函數(shù)為L(zhǎng)ua腳本定義傳入?yún)?shù),并使用lua_pcall函數(shù)指定參數(shù)個(gè)數(shù)以及返回值個(gè)數(shù);最后調(diào)用lua_tonumber函數(shù)獲取腳本返回值;
對(duì)于寫入操作,首先調(diào)用lua_getglobal函數(shù)獲取Lua腳本中相對(duì)應(yīng)的執(zhí)行函數(shù)名,采用doWrite作為寫入函數(shù),對(duì)于具有多個(gè)數(shù)據(jù)項(xiàng)需要寫入的虛擬設(shè)備,使用doWrite_0,doWrite_1分開(kāi)寫入;然后通過(guò)lua_pushinteger函數(shù)為L(zhǎng)ua腳本定義傳入?yún)?shù),并使用lua_pcall函數(shù)指定參數(shù)個(gè)數(shù)以及返回值個(gè)數(shù);最后調(diào)用lua_toboolean函數(shù)獲取腳本返回值,返回調(diào)用成功或失敗;
程序根據(jù)讀取或?qū)懭氩僮鞯姆祷刂祱?zhí)行后續(xù)操作。
2.根據(jù)權(quán)利要求1所述的基于虛擬設(shè)備的數(shù)據(jù)集中器開(kāi)發(fā)方法,其特征在于,所述通信協(xié)議包括:
讀命令協(xié)議;該命令由40至6136位二進(jìn)制數(shù)據(jù)組成,前8位固定格式0x01代表讀命令,9至16位代表需要讀取的點(diǎn)數(shù),其最大可容納數(shù)為28-1,即255個(gè)點(diǎn),從第17位開(kāi)始,每24位二進(jìn)制數(shù)代表一個(gè)點(diǎn)的標(biāo)識(shí),直到標(biāo)識(shí)數(shù)與描述的點(diǎn)數(shù)相符合;
讀返回命令協(xié)議;該命令由72至14296位二進(jìn)制數(shù)據(jù)組成,前8位固定格式0x11代表讀返回命令,9至16位代表讀取返回的點(diǎn)數(shù),其最大可容納數(shù)為28-1,即255個(gè)點(diǎn),從第17位開(kāi)始,每56位二進(jìn)制數(shù)代表一個(gè)點(diǎn)的鍵值對(duì),其中前24位為該點(diǎn)的標(biāo)識(shí),后32位為該點(diǎn)的數(shù)值,直到該鍵值對(duì)數(shù)目與描述的點(diǎn)數(shù)相符合;
寫命令協(xié)議;該命令由72至14296位二進(jìn)制數(shù)據(jù)組成,前8位固定格式0x02代表寫命令,9至16位代表要寫入的點(diǎn)數(shù),其最大可容納數(shù)為28-1,即255個(gè)點(diǎn),從第17位開(kāi)始,每56位二進(jìn)制數(shù)代表一個(gè)點(diǎn)的鍵值對(duì),其中前24位為該點(diǎn)的標(biāo)識(shí),后32位為該點(diǎn)的數(shù)值,直到該鍵值對(duì)數(shù)目與描述的點(diǎn)數(shù)相符合;
寫返回命令協(xié)議;該命令由24位二進(jìn)制數(shù)據(jù)組成,前8位固定格式0x12代表寫返回命令,9至16位代表要寫入的點(diǎn)數(shù),其最大可容納數(shù)為28-1,即255個(gè)點(diǎn),17至24位代表寫入結(jié)果,其中0x01表示更新成功,0x02表示更新失敗;其中,
點(diǎn)的標(biāo)識(shí)以0x640000作為分界分成2種設(shè)備,其中,0x0至0x63FFFF描述為終端設(shè)備,0x640000至0xFFFFFF描述為虛擬設(shè)備。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于廣州城市理工學(xué)院,未經(jīng)廣州城市理工學(xué)院許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810852409.4/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 確定吸收制品功效
- 一種虛擬機(jī)的安全訪問(wèn)方法及虛擬機(jī)系統(tǒng)
- 一種虛擬桌面的解鎖方法及裝置
- 一種實(shí)時(shí)處理虛擬交換機(jī)網(wǎng)絡(luò)流量的虛擬化平臺(tái)
- 虛擬智能家居實(shí)訓(xùn)系統(tǒng)及其虛擬實(shí)訓(xùn)方法
- 虛擬機(jī)的磁盤資源的管理方法和裝置
- 一種基于KVM的虛擬網(wǎng)卡管理方法
- 虛擬資源數(shù)據(jù)處理方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 基于虛擬環(huán)境的道具使用方法、裝置、設(shè)備及介質(zhì)
- 虛擬道具的獲取方法、裝置、設(shè)備及介質(zhì)
- 傳感設(shè)備、檢索設(shè)備和中繼設(shè)備
- 簽名設(shè)備、檢驗(yàn)設(shè)備、驗(yàn)證設(shè)備、加密設(shè)備及解密設(shè)備
- 色彩調(diào)整設(shè)備、顯示設(shè)備、打印設(shè)備、圖像處理設(shè)備
- 驅(qū)動(dòng)設(shè)備、定影設(shè)備和成像設(shè)備
- 發(fā)送設(shè)備、中繼設(shè)備和接收設(shè)備
- 定點(diǎn)設(shè)備、接口設(shè)備和顯示設(shè)備
- 傳輸設(shè)備、DP源設(shè)備、接收設(shè)備以及DP接受設(shè)備
- 設(shè)備綁定方法、設(shè)備、終端設(shè)備以及網(wǎng)絡(luò)側(cè)設(shè)備
- 設(shè)備、主設(shè)備及從設(shè)備
- 設(shè)備向設(shè)備轉(zhuǎn)發(fā)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置





