蓝牙OTSOTP简介

    xiaoxiao2021-08-14  204

    一、 OTS/OTP简介

    OTS——Object Transfer Service

    OTP——Object Transfer Profile

    OTS提供管理和控制传输大块数据——通过一个单独L2CAP connection oriented channel——的功能。这些功能包括让Client运行OTSServer上创建删除写入读取Object以及运行一个Object(PC上的鼠标双击操作一样)OTP定义了让Client可以Server上执行这些功能需要的基本要求。

    OTS和OTP都依赖于Generic Attribute Profile(GATT)OTS运行的Object Server是GATT ServerObject ClientGATT Client但是OTS/OTP并不要求Transport必须是LE Transport,它们也可以承载在BR/EDR Transport;然而从OTS/OTP多数的应用场景来看Server经常都是单模BLE设备只支持LE Transport

    OTS/OTP使用L2CAP connection oriented channel作为Object contenttransfer channel这种L2CAP channel适合用于传输大块数据Core spec 4.0定义承载BR/EDR Transport上的该channelCore spec 4.1定义了承载在LE Transport的该种channel

    Object除了content之外还有一些属性,比如名字、类型、大小、创建时间等,Object Server是通过GATT Characteristics来把这些属性暴露Object Client的OTS模型如下图所示:

    二、 应用场景

    A. GPS运动手表与手机APP之间同步数据。

    a) 手机APP把规划好的路线(route)传输到运动手表上。

    b) 手机APP把运动手表上保存的运动轨迹(track)读取到手机上。

    B. 两只运动手表之间(无需手机APP做中介)共享运动路线(route or track)。

    C. 用手机APP来更新手环的firmware。一些手环没有合适的人机界面来执行更新firmware操作,我们可以通过手机APP把新的firmware传输到手环上然后在手环上执行update firmware

    D. 从公共健身房的跑步机上获得自己的运动数据然后数据跑步机上删除。

    三、 Role/Service关系模型

    总结上面的应用场景,可以得到role/Service关系模型,如下图所示。

    一般OTS是作为Server上的Secondary Service存在,比如一只GPS运动手表作为Server role,在上面运行的Primary ServiceLocation Service,该Service使用OTS来把保存下来的track传输给手机。需要注意的是,OTS也可以作为Primary Service

    四、 OTS支持的Characteristics和操作

    OTS支持Object Characteristics包括Name、TypeSizeFirst-CreatedLast-ModifiedIDProperties。这些Characteristics被统称为Object Metadata Characteristics,它们并不是所有的都必须实现,其中有些Characteristics的现实是可选的。其中Object Properties Characteristic比较特别,它用于告诉Client哪些操作可以在Current Object上执行,比如是否允许删除操作

    OTS还支持Client通过写Object Action Control Point(OACP)来Object进行操作比如CreateDeleteReadWriteExecute,但是其中部分操作实现是可选的。

    如果Server上有不止一个Object,那么Client还可以通过Object List Control Point(OLCP)来进行List操作,比如FirstLastPreviousNextGo ToOrder等。此外OTS可以支持Object List Filter Characteristic只让符合特定条件的Objects出现在Object ListList相关features的实现也是可选的,或者在特定条件下需要被支持。

    如果OTS支持Object Changed Characteristic话,当Objectcontent或者metadata发生了改变——这种改变可能来自Server其他ClientsServer会通知Client。需要注意的是,只有当ClientServer是连接状态,Client才能收到这个通知。

    大家注意到,上面提到的一些OST features实现是可选的,一个Server上的stack可能不支持部分OTS features。那么Client怎么知道Server支持哪些可选的featuresOTS Feature Characteristic就Server实现了哪些可选features暴露给了ClientCharacteristic包含fieldsOACP Features和OLCP Features前者指明了Server支持哪些Object操作,而后者指明了Server支持哪些List操作。

    五、 OTS/OTP实现现状

    OTS/OTP发布于201511。这一个很新的BT spec,其中Object Type甚至还没有分配正式UUID,所以目前还没有公开的Embedded DeviceMobile BT stack支持OTS/OTP。芯片厂商在BBS上的回复均表示没有sample code可以提供,甚至当前没有手机支持L2CAP CoC。OTP被设计用于其它更高层的Profiles来传输Object,所以在Android现实一个OTP是很有价值这个OTP可以被多个更高层的Profiles复用。

    转载请注明原文地址: https://ju.6miu.com/read-676313.html

    最新回复(0)