Swagger On 華為云Devcloud
842
2022-05-30
7.應(yīng)用層
此配置文件建立在通用訪問(wèn)配置文件之上。
當(dāng)讀取時(shí)甲方(連接發(fā)起者)相當(dāng)于DevA,而乙方則相當(dāng)于DevB。
7.1?程序概述
7.1.1建立鏈接和建立虛擬串行連接
此過(guò)程是指執(zhí)行在遠(yuǎn)程設(shè)備中建立到模擬串口(或等效端口)的連接所需的步驟。本過(guò)程中的步驟包括:
使用SDP提交一個(gè)查詢,以查找遠(yuǎn)程設(shè)備中所需應(yīng)用程序的RFCOMMServer通道號(hào)。這可能包括一種瀏覽功能,可以讓用戶在對(duì)等設(shè)備中的可用端口(或服務(wù))中進(jìn)行選擇?;蛘撸绻_切地知道要聯(lián)系哪個(gè)服務(wù),那么使用與所需服務(wù)關(guān)聯(lián)的服務(wù)類ID查找必要的參數(shù)就足夠了。
或者,需要對(duì)要執(zhí)行的遠(yuǎn)程設(shè)備進(jìn)行身份驗(yàn)證。另外,也需要打開(kāi)加密功能。
向遠(yuǎn)程RFCOMM實(shí)體請(qǐng)求一個(gè)新的L2CAP通道。
在L2CAP通道上啟動(dòng)一個(gè)RFCOMM會(huì)話。
使用上述的服務(wù)器通道號(hào),在RFCOMM會(huì)話上啟動(dòng)一個(gè)新的數(shù)據(jù)鏈路連接。
在步驟5之后,虛擬串行電纜連接可以用于雙方應(yīng)用程序之間的通信。
注意:如果在設(shè)置新的數(shù)據(jù)鏈路連接時(shí),兩個(gè)設(shè)備之間已經(jīng)存在一個(gè)RFCOMM會(huì)話,則必須在現(xiàn)有的RFCOMM會(huì)話上建立一個(gè)新的連接。(這相當(dāng)于跳過(guò)上面的步驟3和步驟4。)
注意:步驟1和步驟2之間的順序并不重要(可能正好相反)。
7.1.2接受鏈接并建立虛擬串行連接
本程序是指參與以下步驟:
如果遠(yuǎn)程設(shè)備請(qǐng)求,請(qǐng)參與身份驗(yàn)證過(guò)程,并根據(jù)進(jìn)一步請(qǐng)求啟用加密。
接受來(lái)自L2CAP的新通道建立指示
接受該通道上的RFCOMM會(huì)話設(shè)置。
在RFCOMM會(huì)話上接受一個(gè)新的數(shù)據(jù)鏈接連接。如果用戶要求使用要連接到的模擬串行端口(并且尚未執(zhí)行身份驗(yàn)證/加密過(guò)程),這可能會(huì)觸發(fā)對(duì)遠(yuǎn)程設(shè)備進(jìn)行身份驗(yàn)證并打開(kāi)加密的本地請(qǐng)求。
注意:當(dāng)已經(jīng)存在到遠(yuǎn)程設(shè)備的RFCOMM會(huì)話時(shí),步驟1和步驟4可能是隔離事件。
7.1.3在本地SDP數(shù)據(jù)庫(kù)中的3.1.3注冊(cè)服務(wù)記錄
此過(guò)程是指在SDP數(shù)據(jù)庫(kù)中注冊(cè)模擬串口(或等效端口)的服務(wù)記錄。這意味著存在一個(gè)服務(wù)數(shù)據(jù)庫(kù),以及響應(yīng)SDP查詢的能力。
通過(guò)RFCOMM可訪問(wèn)的所有服務(wù)/應(yīng)用程序都需要提供一個(gè)SDP服務(wù)記錄,其中包括訪問(wèn)相應(yīng)服務(wù)/應(yīng)用程序所需的參數(shù)。為了支持在虛擬串行端口上運(yùn)行的遺留應(yīng)用程序,服務(wù)注冊(cè)必須由一些幫助器應(yīng)用程序來(lái)完成,該應(yīng)用程序可以幫助用戶設(shè)置該端口。
7.2?電源模式和鏈路損耗處理
由于在串口配置文件中活動(dòng)的單元的電源需求可能會(huì)有很大的不同,因此不需要使用任何節(jié)電模式。但是,如果可能,使用低功率模式的請(qǐng)求不應(yīng)被拒絕。
如果使用嗅探、停車或保持模式,則不釋放RFCOMMdlc和L2CAP通道。
如果機(jī)組檢測(cè)到鏈路丟失,則應(yīng)認(rèn)為RFCOMM已關(guān)閉。不得執(zhí)行第4節(jié)中所述的斷開(kāi)DLC和關(guān)閉RFCOMM程序。在恢復(fù)更高層上的通信之前,必須執(zhí)行初始化RFCOMM會(huì)話過(guò)程。
如果使用嗅探、停車或保持模式,則不釋放RFCOMMdlc和L2CAP通道。
如果機(jī)組檢測(cè)到鏈路丟失,則應(yīng)認(rèn)為RFCOMM已關(guān)閉。不得執(zhí)行第4節(jié)中所述的斷開(kāi)DLC和關(guān)閉RFCOMM程序。在恢復(fù)更高層上的通信之前,必須執(zhí)行初始化RFCOMM會(huì)話過(guò)程。
8.RFCOMM可互操作性的要求
本節(jié)描述了在符合串口配置文件的單元中對(duì)RFCOMM的要求。
8.1RS232控制信號(hào)
所有的設(shè)備都需要通過(guò)調(diào)制解調(diào)器狀態(tài)命令發(fā)送關(guān)于RS232控制信號(hào)中的所有變化的信息。然而,由于RFCOMM可以與實(shí)現(xiàn)任何類型API的自適應(yīng)層一起使用(不僅僅是虛擬串口),所以使用除了流量控制(TS07.10中的RTR信號(hào))之外的所有RS232控制信號(hào)是可選的。這個(gè)信號(hào)可以被映射到RTS/CTS或XON/XOFF或其他API機(jī)制上,這是一個(gè)實(shí)現(xiàn)問(wèn)題。
注釋:為了提供實(shí)際使用所有RS232控制信號(hào)的設(shè)備和不使用它們的設(shè)備之間的互操作性,前一種實(shí)現(xiàn)必須將api/連接器中適當(dāng)信號(hào)的狀態(tài)取決于適當(dāng)?shù)哪J(rèn)值。該實(shí)現(xiàn)不能依賴于從對(duì)等設(shè)備接收任何RS232控制信息。對(duì)RFCOMMDLC狀態(tài)的依賴可能意味著當(dāng)RFCOMM? DLC建立時(shí),DSR/DTR和DCD被設(shè)置為高電平,如果相應(yīng)的DLC因任何原因關(guān)閉,相同的信號(hào)被設(shè)置為低電平。
8.2遠(yuǎn)程線路狀態(tài)指示
如果本地設(shè)備從物理串行(或等效)中繼信息,需要使用遠(yuǎn)程線路狀態(tài)指示命令通知其他設(shè)備RS232線路狀態(tài)的任何變化。
8.3遠(yuǎn)程端口談判
DevA可以在DLC建立之前直接通過(guò)遠(yuǎn)程端口協(xié)商命令通知DevBRS232端口設(shè)置。如果發(fā)送到RFCOMM自適應(yīng)層的API公開(kāi)了這些設(shè)置(例如,波特率、奇偶校驗(yàn)),則需要這樣做。
允許DevB發(fā)送遠(yuǎn)程端口協(xié)商命令。
信息說(shuō)明:遠(yuǎn)程端口協(xié)商過(guò)程中傳遞的信息預(yù)計(jì)僅在RFCOMM[4]中第1.2節(jié)規(guī)定的II型設(shè)備(具有物理串口端口)中有用,或者如果由于任何原因在模擬串口接口上進(jìn)行數(shù)據(jù)節(jié)奏。RFCOMM因此不會(huì)基于波特率設(shè)置人為地限制吞吐量。
9.L2CAP的互操作性要求
X1:在此配置文件的執(zhí)行過(guò)程中不使用無(wú)連接的通道,但不排除其他配置文件/應(yīng)用程序的并發(fā)使用。
9.1通道類型
在此配置文件中,只能使用面向連接的通道。這意味著在此配置文件中將不會(huì)使用廣播數(shù)據(jù)和單播無(wú)連接數(shù)據(jù)。
在連接請(qǐng)求數(shù)據(jù)包的PSM字段中,必須使用在分配編號(hào)文檔RFCOMM的值。
9.2信號(hào)
只有DevA可以在執(zhí)行此配置文件中發(fā)出L2CAP連接請(qǐng)求。除此之外,串口配置文件對(duì)L2CAP信令沒(méi)有施加任何額外的限制或要求。
9.3配置選項(xiàng)
本節(jié)描述了在串行端口配置文件中的配置選項(xiàng)的使用情況。
9.3.1最大傳輸單元
對(duì)MTU尺寸沒(méi)有任何限制。
9.3.2刷新超時(shí)
串口數(shù)據(jù)通過(guò)一個(gè)可靠的L2CAP通道傳輸。沖洗超時(shí)值應(yīng)設(shè)置為其默認(rèn)值0xffff,除非為承載RFCOMM的L2CAP通道協(xié)商了L2CAP增強(qiáng)重傳模式。如果協(xié)商了L2CAP增強(qiáng)重傳模式,則可以根據(jù)在同一ACL邏輯傳輸上運(yùn)行的其他概要文件來(lái)設(shè)置刷新超時(shí)值。
9.3.3服務(wù)質(zhì)量
關(guān)于服務(wù)質(zhì)量的協(xié)商是可選的。
9.3.4流量和錯(cuò)誤控制
對(duì)于任何將傳輸大型數(shù)據(jù)文件和接收設(shè)備將受到無(wú)線電干擾而導(dǎo)致數(shù)據(jù)包丟失的產(chǎn)品,建議通過(guò)配置通道以使用增強(qiáng)的重傳模式來(lái)利用L2CAP(核心規(guī)范V3.0及更高版本)中的錯(cuò)誤控制功能。
串口數(shù)據(jù)通過(guò)一個(gè)可靠的L2CAP通道傳輸。該通道的可靠性可以通過(guò)在ACL邏輯傳輸上的無(wú)限刷新超時(shí)來(lái)實(shí)現(xiàn)。但是,如果串行端口配置文件與同一物理鏈路上的其他配置文件共存,那么可能不能以這種方式配置ACL邏輯傳輸。因此,對(duì)于期望串口配置文件與物理鏈路上的其他配置文件共存的設(shè)備,應(yīng)該為通道承載RFCOMM協(xié)商L2CAP增強(qiáng)重傳模式(在核心規(guī)范版本3.0中引入)。以這種方式實(shí)現(xiàn)可靠的L2CAP通道,從而允許ACL邏輯傳輸具有適用于其他配置文件的有限刷新超時(shí)。
對(duì)于使用串行端口配置文件的應(yīng)用程序,也可以協(xié)商L2CAP增強(qiáng)重傳模式,這需要比非刷新ACL邏輯傳輸提供的更高的可靠性。
10.SDP的互操作性要求
10.1串口配置文件的SDP服務(wù)記錄
在DevA中沒(méi)有與串口配置文件相關(guān)的SDP服務(wù)記錄。
下表描述了DevB的SDP數(shù)據(jù)庫(kù)中與串行端口相關(guān)的項(xiàng)。允許向此服務(wù)記錄添加其他屬性。
在v1.2之前的串行端口配置文件版本并沒(méi)有強(qiáng)制使用BluetoothProfileDescriptorList屬性。新的DevA設(shè)備應(yīng)假定沒(méi)有此屬性的遠(yuǎn)程DevB不支持串口配置文件版本1.2或更高版本。
10.2SDP程序
為了檢索支持此配置文件的服務(wù)記錄,在DevA中的SDP客戶端實(shí)體通過(guò)SDP和SDAP的SDP上限程序與SDP服務(wù)器實(shí)體連接和交互。根據(jù)SDAP,DevA扮演LocDev的角色,而DevB扮演RemDev的角色。
11.鏈接管理器(LM)互操作性要求
11.1能力概述
除了在鏈路管理器規(guī)范本身中規(guī)定的對(duì)受支持的過(guò)程的要求外,這個(gè)配置文件還需要支持DevA和DevB中的加密。
11.2錯(cuò)誤行為
如果一個(gè)單元試圖使用強(qiáng)制功能,而另一個(gè)單元回答不支持,啟動(dòng)單元應(yīng)發(fā)送一個(gè)具有分離原因的“不支持LMP特性”的LMP_detach。
一個(gè)單元應(yīng)始終能夠處理拒絕對(duì)一個(gè)可選功能的請(qǐng)求。
11.3鏈接策略
在執(zhí)行此配置文件時(shí),沒(méi)有固定的主從角色。
此配置文件不說(shuō)明是否使用了低功耗模式或何時(shí)使用它的任何要求。這是由每個(gè)設(shè)備的鏈接管理器延遲要求的限制范圍內(nèi),適當(dāng)?shù)貨Q定和請(qǐng)求的。
12.鏈路控制(LC)的互操作性要求
12.1查詢
在DevA中使用查詢時(shí),應(yīng)使用一般查詢程序。
只有DevA可以在執(zhí)行此配置文件時(shí)進(jìn)行查詢
12.2查詢掃描
對(duì)于查詢掃描,(至少)應(yīng)根據(jù)GAP[可發(fā)現(xiàn)模式之一,使用GIAC。也就是說(shuō),如果適合駐留在DevB中的應(yīng)用程序,它只允許使用有限的可發(fā)現(xiàn)模式。
在DevB查詢響應(yīng)消息中,“設(shè)備類”字段不會(huì)包含任何提示DevB是否參與串行端口配置文件的執(zhí)行(由于此配置文件提供的遺留應(yīng)用程序的通用串口服務(wù)不適合“設(shè)備類”字段定義中的任何主要服務(wù)類位)。
12.3分頁(yè)
只有DevA才能在此配置文件的執(zhí)行中頁(yè)面。當(dāng)DevA和DevB之間已經(jīng)有一個(gè)基帶連接時(shí),當(dāng)開(kāi)始執(zhí)行此配置文件時(shí),將在DevA中跳過(guò)分頁(yè)步驟。(在這種情況下,連接可能是DevB以前分頁(yè)的結(jié)果。)
12.4錯(cuò)誤行為
由于LC級(jí)別上的大多數(shù)特性必須由LMP程序激活,因此錯(cuò)誤將主要在該層被捕獲。然而,有一些獨(dú)立于LMP層的LC程序;例如,查詢或?qū)ろ?yè)。濫用這些特征是很困難的,有時(shí)甚至不可能被檢測(cè)到。沒(méi)有定義的機(jī)制來(lái)檢測(cè)或防止這種不當(dāng)使用。
嵌入式
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。