本技術(shù)實施例涉及數(shù)據(jù)處理,特別涉及一種人機環(huán)境數(shù)據(jù)處理方法、邊緣計算設(shè)備和系統(tǒng)及存儲介質(zhì)。
背景技術(shù):
1、當前,常見的遠程過程調(diào)用(remote?procedure?call,rpc)機制主要依賴于網(wǎng)絡(luò)通信,例如:超文本傳輸協(xié)議(hypertext?transfer?protocol,http)和/或傳輸控制協(xié)議(transmission?control?protocol,tcp)等。然而,這些方法在同一臺機器上的進程間通信時存在一定的開銷和延遲問題。
2、網(wǎng)絡(luò)調(diào)用不可避免地會引入延遲,尤其是在跨地域或跨網(wǎng)絡(luò)環(huán)境下,這種延遲可能會顯著影響系統(tǒng)的響應(yīng)時間和性能,使得rpc調(diào)用的通信效率較低。另外,網(wǎng)絡(luò)環(huán)境的不穩(wěn)定可能導(dǎo)致請求丟失、延遲或超時等問題,從而rpc調(diào)用需要處理各種網(wǎng)絡(luò)故障,例如:斷網(wǎng)、數(shù)據(jù)包丟失和/或網(wǎng)絡(luò)擁塞等。
技術(shù)實現(xiàn)思路
1、本技術(shù)實施例提供了一種人機環(huán)境數(shù)據(jù)處理方法、邊緣計算設(shè)備和系統(tǒng)及存儲介質(zhì),以在同一臺機器上實現(xiàn)高效的進程間通信,減少通信延遲和資源消耗。
2、第一方面,本技術(shù)實施例提供一種人機環(huán)境數(shù)據(jù)處理方法,包括:第一進程將第一消息寫入第一內(nèi)存;其中,所述第一消息攜帶消息類型和方法標識,所述方法標識包括所述第一進程請求調(diào)用的方法的標識;所述第一內(nèi)存為所述第一進程與第二進程之間的共享內(nèi)存,用于所述第一進程與所述第二進程之間的人機環(huán)境數(shù)據(jù)處理;所述第一進程檢測到所述第一內(nèi)存中被寫入第二消息之后,從所述第一內(nèi)存中讀取所述第二消息,獲得所述第二消息攜帶的消息類型和方法標識;其中,所述第二消息是第二進程執(zhí)行完所述第一消息攜帶的方法標識所指示的方法之后,寫入到所述第一內(nèi)存中的;所述第二進程是在檢測到所述第一內(nèi)存中被寫入第一消息,確定所述第一消息攜帶的消息類型的值為請求,并且所述第二進程有能力執(zhí)行所述第一消息攜帶的方法標識所指示的方法之后,執(zhí)行所述第一消息攜帶的方法標識所指示的方法的;當所述第二消息攜帶的消息類型的值為響應(yīng),所述第二消息攜帶的方法標識與所述第一進程請求調(diào)用的方法的標識匹配時,所述第一進程確定所述第二消息為所述第一消息的響應(yīng)消息;所述第一進程對所述第二消息進行處理。
3、其中一種可能的實現(xiàn)方式中,所述第一進程包括人機環(huán)境同步平臺啟動時創(chuàng)建的進程或者收到人機環(huán)境同步平臺發(fā)送的請求時創(chuàng)建的進程,所述第二進程包括應(yīng)用中心啟動時創(chuàng)建的進程;所述第一消息為權(quán)限獲取請求消息,所述人機環(huán)境同步平臺使用所述權(quán)限獲取請求消息向所述應(yīng)用中心獲取權(quán)限;其中,所述權(quán)限包括應(yīng)用中心訪問權(quán)限和/或人機環(huán)境數(shù)據(jù)處理權(quán)限;或者,
4、所述第一進程包括目標應(yīng)用啟動時創(chuàng)建的進程,所述第二進程包括人機環(huán)境同步平臺啟動時創(chuàng)建的進程或者收到人機環(huán)境同步平臺發(fā)送的請求時創(chuàng)建的進程;所述第一消息中攜帶的方法標識包括指示所述第二進程執(zhí)行人機環(huán)境數(shù)據(jù)采集控制的方法標識,所述采集控制包括以下至少之一:開始采集、停止采集、對采集數(shù)據(jù)進行濾波或降噪預(yù)處理、對采集數(shù)據(jù)進行指定特征提取。
5、其中一種可能的實現(xiàn)方式中,所述人機環(huán)境數(shù)據(jù)包括人體相關(guān)數(shù)據(jù)、機器相關(guān)數(shù)據(jù)、人機交互相關(guān)數(shù)據(jù)、環(huán)境相關(guān)數(shù)據(jù);
6、所述人體相關(guān)數(shù)據(jù)包括以下之一或組合:皮膚皮電皮溫數(shù)據(jù)、脈搏數(shù)據(jù)、血壓數(shù)據(jù)、血氧數(shù)據(jù)、心電數(shù)據(jù)、肌電數(shù)據(jù)、肌氧數(shù)據(jù)、呼吸數(shù)據(jù)、生物力學數(shù)據(jù)、近紅外腦成像數(shù)據(jù)、腦電數(shù)據(jù)、經(jīng)顱刺激數(shù)據(jù)、心率變異性數(shù)據(jù)、心率數(shù)據(jù)、圖像/視頻數(shù)據(jù)、聲音數(shù)據(jù)、眼動數(shù)據(jù)、手勢或動作數(shù)據(jù);
7、所述機器相關(guān)數(shù)據(jù)包括以下之一或組合:機器運行數(shù)據(jù)、故障報警數(shù)據(jù)、機器操控數(shù)據(jù)、機器型號數(shù)據(jù)、機器通信數(shù)據(jù)、機器定位數(shù)據(jù);
8、所述人機交互相關(guān)數(shù)據(jù)包括以下之一或組合:人機語音交互數(shù)據(jù)、人機文本交互數(shù)據(jù)、人機觸控交互數(shù)據(jù)、人機手勢或動作交互數(shù)據(jù)、人機腦電交互數(shù)據(jù)、人機眼動交互數(shù)據(jù)、人機表情交互數(shù)據(jù);
9、所述環(huán)境相關(guān)數(shù)據(jù)包括以下之一或組合:位置數(shù)據(jù)、濕度數(shù)據(jù)、溫度數(shù)據(jù)、色度數(shù)據(jù)、亮度數(shù)據(jù)、天氣數(shù)據(jù)、路況數(shù)據(jù)、交通數(shù)據(jù)、刺激信號數(shù)據(jù)、事件或信號打標數(shù)據(jù)。
10、其中一種可能的實現(xiàn)方式中,所述從所述第一內(nèi)存中讀取所述第二消息之后,還包括:獲得所述第二消息攜帶的所述第二消息的異或值;所述第一進程確定所述第二消息為所述第一消息的響應(yīng)消息之前,還包括:所述第一進程確定所述第二消息的異或值正確。
11、其中一種可能的實現(xiàn)方式中,所述第一進程將第一消息寫入第一內(nèi)存之后,還包括:所述第一進程釋放所述第一進程與所述第二進程之間的互斥鎖;則所述第二進程檢測到所述第一內(nèi)存中被寫入第一消息包括:所述第二進程檢測到所述第一進程與所述第二進程之間的互斥鎖被釋放,確定所述第一內(nèi)存中被寫入第一消息。
12、上述人機環(huán)境數(shù)據(jù)處理方法中,第一進程將第一消息寫入第一內(nèi)存,并檢測到上述第一內(nèi)存中被寫入第二消息之后,從第一內(nèi)存中讀取第二消息,獲得第二消息攜帶的消息類型和方法標識,當?shù)诙y帶的消息類型的值為響應(yīng),上述第二消息攜帶的方法標識與第一進程請求調(diào)用的方法的標識匹配時,第一進程確定第二消息為第一消息的響應(yīng)消息,然后第一進程對上述第二消息進行處理,從而可以實現(xiàn)在同一臺機器上實現(xiàn)高效、可靠的進程間通信,還可以減少通信延遲和資源消耗。
13、其中一種可能的實現(xiàn)方式中,所述第一進程將第一消息寫入第一內(nèi)存之前,還包括:所述第一進程啟動之后,當所述第一進程與所述第二進程之間還未創(chuàng)建共享內(nèi)存時,創(chuàng)建所述第一內(nèi)存。
14、其中一種可能的實現(xiàn)方式中,所述創(chuàng)建所述第一內(nèi)存之后,還包括:所述第一進程在所述第一內(nèi)存中創(chuàng)建兩個緩沖區(qū),并在所述兩個緩沖區(qū)中指定一個緩沖區(qū)為當前使用的緩沖區(qū)。
15、其中一種可能的實現(xiàn)方式中,所述第一進程將第一消息寫入第一內(nèi)存包括:所述第一進程檢查當前使用的緩沖區(qū)是否還有空余的存儲空間;如果當前使用的緩沖區(qū)還有空余的存儲空間,則所述第一進程將第一消息寫入當前使用的緩沖區(qū)。
16、其中一種可能的實現(xiàn)方式中,所述第一進程檢查當前使用的緩沖區(qū)是否還有空余的存儲空間之后,還包括:如果當前使用的緩沖區(qū)已無空余的存儲空間,則將當前使用的緩沖區(qū)標記為已滿,并切換使用備用緩沖區(qū),所述備用緩沖區(qū)為所述兩個緩沖區(qū)中除當前使用的緩沖區(qū)之外的緩沖區(qū)。
17、其中一種可能的實現(xiàn)方式中,所述從所述第一內(nèi)存中讀取所述第二消息包括:檢查當前使用的緩沖區(qū)中是否有所述第二消息;如果有,則從當前使用的緩沖區(qū)中讀取所述第二消息;如果當前使用的緩沖區(qū)中不存在所述第二消息,則從備用緩沖區(qū)中讀取所述第二消息,所述備用緩沖區(qū)為所述兩個緩沖區(qū)中除當前使用的緩沖區(qū)之外的緩沖區(qū)。
18、其中一種可能的實現(xiàn)方式中,所述創(chuàng)建所述第一內(nèi)存之后,還包括:所述第一進程在所述第一內(nèi)存中創(chuàng)建緩沖區(qū)數(shù)組,并初始化讀指針和寫指針;所述讀指針和所述寫指針的初始位置為所述緩沖區(qū)數(shù)組的起始位置。
19、其中一種可能的實現(xiàn)方式中,所述第一進程將第一消息寫入第一內(nèi)存包括:所述第一進程檢查所述寫指針的所指位置;如果所述寫指針所指位置的下一位置不是所述讀指針,則將所述第一消息寫入所述寫指針的所指位置。
20、其中一種可能的實現(xiàn)方式中,所述從所述第一內(nèi)存中讀取所述第二消息包括:所述第一進程檢查所述讀指針的所指位置;如果所述讀指針的所指位置與所述寫指針的所指位置不同,則從所述讀指針的所指位置讀取所述第二消息。
21、其中一種可能的實現(xiàn)方式中,所述第一消息和所述第二消息采用相同的消息格式,所述消息格式包括消息頭和消息體,所述消息頭中包括所述消息類型和所述方法標識,所述消息頭中還包括所述消息的異或值、幀標識和消息內(nèi)容的長度;和/或,所述第二進程為目標程序已經(jīng)運行的進程,所述第一進程為所述目標程序本次啟動創(chuàng)建的進程;所述第一消息的消息體中攜帶所述目標程序本次啟動的啟動參數(shù)。
22、第二方面,本技術(shù)實施例提供一種邊緣計算設(shè)備,包括:一個或多個處理器;存儲器;多個應(yīng)用程序;以及一個或多個計算機程序,其中所述一個或多個計算機程序被存儲在所述存儲器中,所述一個或多個計算機程序包括指令,當所述指令被所述邊緣計算設(shè)備執(zhí)行時,使得所述邊緣計算設(shè)備執(zhí)行第一方面提供的方法。
23、其中一種可能的實現(xiàn)方式中,所述邊緣計算設(shè)備還包括:人機環(huán)境數(shù)據(jù)采集單元,用于采集人機環(huán)境數(shù)據(jù);和/或,人機環(huán)境數(shù)據(jù)采集接口單元,用于連接人機環(huán)境數(shù)據(jù)采集單元以獲取人機環(huán)境數(shù)據(jù)。
24、第三方面,本技術(shù)實施例提供一種邊緣計算系統(tǒng),包括:人機環(huán)境同步平臺和第二方面提供的邊緣計算設(shè)備,所述邊緣計算設(shè)備與所述人機環(huán)境同步平臺通信并將處理結(jié)果發(fā)送給所述人機環(huán)境同步平臺。
25、第四方面,本技術(shù)實施例提供一種計算機可讀存儲介質(zhì),上述計算機可讀存儲介質(zhì)中存儲有計算機程序,當其在計算機上運行時,使得計算機執(zhí)行第一方面提供的方法。
26、第五方面,本技術(shù)實施例提供一種計算機程序,當上述計算機程序被計算機執(zhí)行時,用于執(zhí)行第一方面提供的方法。
27、在一種可能的設(shè)計中,第五方面中的程序可以全部或者部分存儲在與處理器封裝在一起的存儲介質(zhì)上,也可以部分或者全部存儲在不與處理器封裝在一起的存儲器上。