本技術涉及終端投屏,尤其涉及數(shù)據(jù)處理方法及相關裝置。
背景技術:
1、隨著會議終端的發(fā)展,miracast、airplay等標準投屏系統(tǒng)可以實現(xiàn)投屏反控系統(tǒng),當前許多終端也已經(jīng)能夠支持私有的無線投屏和反控功能,使得會議終端在使用過程中能夠解決用戶被線纜長度束縛的問題,而反控功能則可以將用戶從個人電腦前解放出來。
2、在一些場景中,當用戶將電腦的畫面投屏到平板上后,用戶可能會有通過平板去反控電腦的需求。但是,目前平板設備在投屏過程中作為電腦的副屏并不能反控電腦,這無疑給用戶帶來了不便。
3、因此,如何在投屏過程中使平板設備具備反控電腦的能力,是亟待解決的問題。
技術實現(xiàn)思路
1、本技術的目的在于提供一種數(shù)據(jù)處理方法及相關裝置,該方法可以借助平板上層無線顯示器模塊所攜帶的支持uibc?hid形式封裝能力的數(shù)據(jù)封裝模塊以及底層芯片所提供的拓展功能,改變平板對反控數(shù)據(jù)默認的數(shù)據(jù)封裝形式,使平板可以借助上層無線顯示器模塊所攜帶封裝能力對反控數(shù)據(jù)進行uibc?hid形式的封裝,以便于平板可以通過上層無線顯示模塊對反控數(shù)據(jù)進行uibc?hid形式的封裝,再將反控數(shù)據(jù)發(fā)送給電腦。這樣,電腦就可以成功解析和識別以uibc?hid形式封裝的反控數(shù)據(jù),并對這些反控數(shù)據(jù)做出相應的反應,以實現(xiàn)用戶通過平板反控電腦的目的
2、上述目標和其他目標將通過獨立權利要求中的特征來達成。進一步的實現(xiàn)方式在從屬權利要求、說明書和附圖中體現(xiàn)。
3、第一方面,本技術提供了一種數(shù)據(jù)處理方法,所述方法應用于第一終端,所述第一終端包括數(shù)據(jù)封裝模塊以及芯片,所述芯片包含無線投屏管理模塊以及端口復用模塊,所述方法包括:所述端口復用模塊獲取第一反控端口對應反控通路的句柄,所述第一反控端口為所述第一終端和第二終端在投屏過程中由所述無線投屏管理模塊與所述第二終端協(xié)商的用于傳輸反控數(shù)據(jù)的端口,在所述投屏過程中所述第一終端為接收端,所述第二終端為發(fā)送端;所述數(shù)據(jù)封裝模塊對所述第一終端獲取的反控數(shù)據(jù)進行uibc?hid形式的封裝之后,將所述反控數(shù)據(jù)發(fā)送至所述端口復用模塊;所述端口復用模塊通過所述第一反控端口將所述反控數(shù)據(jù)發(fā)送至所述第二終端。
4、在本方法中,所述數(shù)據(jù)封裝模塊可以用于對反控數(shù)據(jù)進行uibc?hid形式的封裝,所述芯片并不具備對數(shù)據(jù)進行對反控數(shù)據(jù)進行uibc?hid形式的封裝能力,且第二終端是無法對以uibc?generic形式封裝的反控數(shù)據(jù)進行解析的終端。
5、此外,所述數(shù)據(jù)封裝模塊(包括所述數(shù)據(jù)封裝模塊所屬的模塊)與所述芯片可以由不同電子的廠商生產(chǎn)的。在現(xiàn)有技術中,按照所述芯片中所設計的邏輯電路而言,在所述芯片與所述第二終端建立反控通路之后,所述芯片會默認對反控數(shù)據(jù)進行generic形式的封裝,并將封裝好的反控數(shù)據(jù)通過所述第一反控端口發(fā)送給所述第二終端來對所述第二終端進行反控。但是對于無法對以uibc?generic形式封裝的反控數(shù)據(jù)進行解析的第二終端而言,由于無法對以uibc?generic形式封裝的反控數(shù)據(jù)進行正確的識別和解析,所述第二終端也就不能按照用戶在第一終端上的反控操作進行做出反應,通過所述第一終端反控所述第一終端的目的也就無法實現(xiàn)。
6、而在本技術中,為了改變所述第一終端對反控數(shù)據(jù)默認的封裝方式,所述第一終端可以通過所述芯片中的所述端口復用模塊獲取所述芯片占用的反控通路,即所述第一反控端口對應的反控通路。在獲取到所述反控通路之后,并將其開放給與無線投屏管理模塊處于同一進程中的所述端口復用模塊。相應的,在后續(xù)過程中,未封裝的反控數(shù)據(jù)也會被輸送到所述數(shù)據(jù)封裝模塊中,由所述數(shù)據(jù)封裝模塊對所述反控數(shù)據(jù)進行uibc?hid形式的封裝。之后,所述無線顯示器模塊可以調(diào)用所述端口復用模塊的接口,將封裝好的反控數(shù)據(jù)發(fā)送到端口復用模塊,由所述端口復用模塊調(diào)用相應的接口經(jīng)上述反控通路將封裝好的反控數(shù)據(jù)發(fā)送給所述第二終端。所述第二終端即可對該接收到的反控數(shù)據(jù)進行解析,并成功對此做出反應,用戶通過所述第一終端反控第二終端的目的即可實現(xiàn)。
7、結合第一方面,在一種可能的實施方式中,所述數(shù)據(jù)封裝模塊包含與無線顯示器模塊,在所述端口復用模塊獲取第一反控端口對應反控通路的句柄之前,所述方法還包括:所述無線顯示器模塊向所述無線投屏管理模塊發(fā)送用于關閉所述第一反控端口的指令;所述端口復用模塊獲取第一反控端口對應反控通路的句柄包括:在所述無線投屏管理模塊未關閉所述第一反控端口的情況下,所述端口復用模塊獲取所述第一反控端口對應反控通路的句柄。
8、在本技術實施例中,所述第一終端所含的所述無線顯示器模塊擁有自主與所述第二終端建立反控通路的能力,且所述無線顯示器模還包含有能對反控數(shù)據(jù)進行uibc?hid形式封裝的數(shù)據(jù)封裝模塊。也就是說,除了通過端口復用技術利用所述芯片占用的反控通路對以uibc?hid形式封裝的反控數(shù)據(jù)發(fā)送到所述第二終端之外,若第一終端可以釋放底層芯片對反控端口的占用,則所述第一終端即可通過所述無線顯示器模塊與所述第二終端重新協(xié)商用于輸送反控數(shù)據(jù)的端口,并且可以直接利用數(shù)據(jù)封裝模塊對反控數(shù)據(jù)進行uibc?hid形式的封裝之后,再直接通過無線顯示器模塊占用的反控通路發(fā)送至所述第二終端。
9、因此,在本技術實施例中,在本實施方式中,在所述端口復用模塊獲取第一反控端口對應反控通路的句柄之前,所述無線顯示器模塊可以先向所述無線投屏管理模塊發(fā)送用于關閉所述第一反控端口的指令,若所述無線投屏管理模塊可以成功關閉所述第一反控端口,則所述無線顯示器模塊可以通過自建反控通路將封裝的數(shù)據(jù)傳輸至所述第二終端,可以有效減少鏈路長度,節(jié)約系統(tǒng)資源。當然,若所述無線投屏管理模塊不能成功關閉所述第一反控端口,則所述端口復用模塊可以獲取所述第一反控端口對應反控通路的句柄,通過復用芯片占用的反控通路對封裝好的數(shù)據(jù)進行傳輸,其也可以達到通過所述第一終端成功反控所述第二終端的目的。
10、結合第一方面,在一種可能的實施方式中,所述端口復用模塊獲取第一反控端口對應通路的句柄之前,所述方法還包括:在所述無線投屏管理模塊未關閉所述第一反控端口的情況下,所述無線投屏管理模塊向所述無線顯示器模塊發(fā)送第一指令,所述第一指令用于通知所述無線顯示器模塊所述第一反控端口未關閉,并用于控制所述無線顯示器模塊向所述端口復用模塊發(fā)送復用指令,所述復用指令用于控制所述端口復用模塊獲取所述第一反控端口對應反控通路的句柄。
11、在本實施方式中,在上述反控端口未被成功關閉的情況下,所述無線投屏管理模塊可以向無線顯示器模塊發(fā)送所述第一指令,所述第一指令可以用于通知無線顯示器模塊反控端口未能關閉(或者說底層芯片所含的無線投屏管理模塊當前依舊占用了所述第一終端和所述第二終端之間的反控通路),并用于控制無線顯示器模塊向所述端口復用模塊發(fā)送用于獲取反控通路的指令。端口復用模塊在獲取到反控通路后,則表示端口復用模塊已經(jīng)獲取到了上述反控通路的使用權限,則端口復用模塊在后續(xù)過程中可以通過復用無線投屏管理模塊所占用的反控通路將以uibc?hid形式封裝的反控數(shù)據(jù)發(fā)送給電腦。
12、結合第一方面,在一種可能的實施方式中,所述端口復用模塊與所述無線投屏管理模塊為同一進程中的模塊,所述端口復用模塊獲取所述第一反控端口對應通路的句柄包括:所述端口復用模塊根據(jù)所述端口復用模塊所屬進程的進程編號查詢所述進程中處于開啟狀態(tài)的socket句柄;所述端口復用模塊將所述處于開啟狀態(tài)的socket句柄中對應端口號為tcp端口號且為反控端口號的句柄確定為所述第一反控端口對應通路的句柄。
13、在本實施方式中,所述端口復用模塊與所述投屏管理模塊屬于同一進程。
14、為了獲取到上述第一反控端口對應通路的句柄,在本實施方式中,所述端口復用模塊可以根據(jù)端口復用模塊所屬進程的進程id在所述第一終端的內(nèi)核中獲取到上述進程的所有處于打開狀態(tài)的socket句柄,并將這些處于打開狀態(tài)的socket句柄發(fā)送給端口復用模塊。
15、由于此時平板和電腦之間處于正常投屏的狀態(tài),且電腦和平板之間已經(jīng)創(chuàng)建了反控通用,因此前述所有處于打開狀態(tài)的句柄包括投屏通路的句柄以及反控通路的句柄,也可能包含其他句柄??梢岳斫獾?,scoket就是ip地址與端口號的組合。對于tcp/ip協(xié)議中的服務端口而言,端口號可以用于標識示一臺計算機中的特定進程所提供的服務。因此,在獲取到內(nèi)核發(fā)送過來的socket句柄之后,端口復用模塊可以判斷每個socket句柄所含的端口號是否為tcp端口,在該端口號為tcp端口的情況下進一步判斷該端口號是否為反控端口。若存在一個socket句柄,端口復用模塊確定該句柄對應的端口為tcp端口且為反控端口,則端口復用模塊可以保存該句柄。在保存該句柄之后,則表示端口復用模塊已經(jīng)獲取到無線投屏管理模塊占用的反控通路,也即端口復用模塊已經(jīng)獲取到所述第一反控端口對應通路的使用權限。
16、結合第一方面,在一種可能的實施方式中,所述無線顯示器模塊向所述無線投屏管理模塊發(fā)送用于關閉第一反控端口的指令之前,所述方法還包括:所述無線投屏管理模塊確定所述芯片是否具有對所述反控數(shù)據(jù)進行uibc?hid形式封裝的能力;所述無線顯示器模塊向所述無線投屏管理模塊發(fā)送用于關閉第一反控端口的指令之前,所述方法包括:在所述無線投屏管理模塊確定所述芯片是否不具有對所述反控數(shù)據(jù)進行uibc?hid形式封裝的能力的情況下,所述無線顯示器模塊向所述無線投屏管理模塊發(fā)送用于關閉第一反控端口的指令。
17、在一些實施例中,所述第一終端所含的芯片中可以包含對反控數(shù)據(jù)進行uibc?hid形式封裝能力的子模塊。在這種情況下,當所述芯片中的所述無線投屏管理模塊與電腦之間協(xié)商好反控端口號并建立反控通路之后,所述第一終端可以直接采用所述芯片(所含的子模塊)對反控數(shù)據(jù)進行uibc?hid形式的封裝,并通過所述芯片占用的反控通路發(fā)送給電腦,則所述無線投屏管理模塊可以無需關閉其已經(jīng)與電腦協(xié)商好的反控端口號。因此,在本實施方式中,在所述無線投屏管理器模塊接收到無線顯示器模塊發(fā)送的用于關閉反控端口的指令之后,所述無線投屏管理模塊可以先判斷芯片是否具備對數(shù)據(jù)進行uibc?hid形式封裝的能力。若在所述芯片不具備對反控數(shù)據(jù)進行uibc?hid形式封裝的能力的情況下,所述無線投屏管理模塊才會響應于所述用于關閉第一反控端口的指令,嘗試關閉其占用的反控端口。這樣,可以避免所述第一終端執(zhí)行無意義的操作,進一步節(jié)約所述第一終端的系統(tǒng)資源。
18、結合第一方面,在一種可能的實施方式中,所述第一終端為平板,所述第二終端為電腦。
19、第二方面,本技術提供了一種數(shù)據(jù)處理方法,所述方法應用于第一終端,所述第一終端包括無線顯示器模塊以及芯片,所述無線顯示器模塊包含數(shù)據(jù)封裝模塊,所述芯片包含無線投屏管理模塊,所述方法包括:所述無線顯示器模塊向所述無線投屏管理模塊發(fā)送用于關閉第一反控端口的指令,所述第一反控端口為所述第一終端和第二終端在投屏過程中由所述無線投屏管理模塊與所述第二終端協(xié)商的用于傳輸反控數(shù)據(jù)的端口,在所述投屏過程中所述第一終端為接收端,所述第二終端為發(fā)送端;在所述無線投屏管理模塊關閉所述第一反控端口的情況下,所述無線顯示器模塊向所述第二終端發(fā)送重連請求指令,所述重連請求指令用于請求所述第二終端與所述無線顯示器模塊重新協(xié)商第二反控端口;所述無線顯示器模塊對所述第一終端獲取的反控數(shù)據(jù)進行uibc?hid形式的封裝之后,所述無線顯示器模塊通過所述第二反控端口將所述反控數(shù)據(jù)發(fā)送至所述第二終端。
20、在本方法中,所述數(shù)據(jù)封裝模塊可以用于對反控數(shù)據(jù)進行uibc?hid形式的封裝,所述芯片并不具備對數(shù)據(jù)進行對反控數(shù)據(jù)進行uibc?hid形式的封裝能力,且第二終端是無法對以uibc?generic形式封裝的反控數(shù)據(jù)進行解析的終端。
21、在本方法中,所述第一終端所含的所述無線顯示器模塊擁有自主與所述第二終端建立反控通路的能力,且所述無線顯示器模還包含有能對反控數(shù)據(jù)進行uibc?hid形式封裝的數(shù)據(jù)封裝模塊。也就是說,若第一終端可以釋放底層芯片對反控端口的占用,則所述第一終端即可通過所述無線顯示器模塊與所述第二終端重新協(xié)商用于輸送反控數(shù)據(jù)的端口,并且可以直接利用數(shù)據(jù)封裝模塊對反控數(shù)據(jù)進行uibc?hid形式的封裝之后,再直接通過無線顯示器模塊占用的反控通路發(fā)送至所述第二終端。可以理解的,在本方法中,所述第二終端接收的反控數(shù)據(jù)也是以uibc?hid形式封裝的,因此所述第二終端可對該接收到的反控數(shù)據(jù)進行解析,并成功對此做出反應,用戶通過所述第一終端反控第二終端的目的即可實現(xiàn)。
22、結合第二方面,在一種可能的實施方式中,所述無線顯示器模塊向所述第二終端發(fā)送重連請求指令之前,所述方法還包括:在所述無線投屏管理模塊關閉所述第一反控端口的情況下,所述無線投屏管理模塊向所述無線顯示器模塊發(fā)送第二指令,所述第二指令用于通知所述無線顯示器模塊所述第一反控端口已關閉,并用于控制所述無線顯示器模塊與向所述第二終端發(fā)送所述重連請求指令。
23、在本實施方式中,在所述第一反控端口被成功關閉的情況下,所述無線投屏管理模塊向無線顯示器模塊發(fā)送所述第二指令,所述第二指令用于通知所述無線顯示器模塊反控端口已經(jīng)成功關閉(或者說底層芯片所含的所述無線投屏管理模塊當前已經(jīng)釋放了對所述第一終端和所述第二終端之間的反控通路的占用),還用于控制所述無線顯示器模塊后續(xù)自主與電腦之間協(xié)商所述第二反控端口號并建立反控通路。
24、在所述無線顯示器模塊接收到上述第二指令、并基于第二指令確定當前芯片已經(jīng)關閉無線投屏管理模塊之前與電腦協(xié)商的反控端口后,無線顯示器模塊即可嘗試自主建立與電腦之間的反控通路。因此,在本實施方式中,所述無線顯示器模塊向可以向電腦發(fā)送上述重連請求指令,請求電腦與其重新進行rtsp會話,會話內(nèi)容即包括第二反控端口號??梢岳斫獾模龅诙丝谔枌姆纯赝肥潜粺o線顯示器模塊直接占用的,因此無線顯示器模塊可以對反控數(shù)據(jù)以uibc?hid形式封裝,并將封裝好的反控數(shù)據(jù)通過其占用的反控通路直接發(fā)送給電腦。
25、結合第二方面,在一種可能的實施方式中,所述第一終端為平板,所述第二終端為電腦。
26、第三方面,本技術實施例提供一種電子設備,所述電子設備包括:一個或多個處理器和存儲器;所述存儲器與所述一個或多個處理器耦合,所述存儲器用于存儲計算機程序代碼,所述計算機程序代碼包括計算機指令,所述一個或多個處理器調(diào)用所述計算機指令以使得所述電子設備執(zhí)行第一方面或第一方面任一可能的實現(xiàn)方式中的方法,以及第二方面或第二方面任一可能的實現(xiàn)方式中的方法。
27、第四方面,提供一種芯片系統(tǒng),所述芯片系統(tǒng)應用于電子設備,所述芯片系統(tǒng)包括一個或多個處理器,所述處理器用于調(diào)用計算機指令以使得所述電子設備執(zhí)行如第一方面或第一方面的任一可能的實現(xiàn)方式中的方法,以及第二方面或第二方面任一可能的實現(xiàn)方式中的方法。
28、第五方面,一種包含指令的計算機程序產(chǎn)品,當上述計算機程序產(chǎn)品在電子設備上運行時,使得上述電子設備執(zhí)行如第一方面或第一方面任一可能的實現(xiàn)方式中的方法,以及第二方面或第二方面任一可能的實現(xiàn)方式中的方法。
29、第六方面,提供一種計算機可讀存儲介質(zhì),包括指令,當上述指令在電子設備上運行時,使得上述電子設備執(zhí)行如第一方面或第一方面的任一可能的實現(xiàn)方式中的方法,以及第二方面或第二方面任一可能的實現(xiàn)方式中的方法。