MTP协议中文翻译第五章

2024-05-14 17:36

本文主要是介绍MTP协议中文翻译第五章,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

5 设备模型

​ MTP是一种协议,旨在表示设备的抽象视图,可以通过以下标准松散的定义:

  • 它有存储空间

  • 它能与自身的存储进行交互。 It interacts with its own storage.

  • 它在非MTP会话期间实现了其主要目的。

  • 它频繁地使用MTP连接到其他设备,以便交换和更新内容。

5.1 设备表示

​ 在MTP中,设备在协议中与其内容具有同等重要的地位。了解设备的功能和属性可以实现除简单数据传输之外的许多重要场景。

启用场景示例包括:

  • 丰富用户界面的连接设备表示。Rich UI representation of a connected device.

  • 将内容与设备能力相匹配

  • 对象元功能,例如DRM

  • 设备命令和控制

  • 等等

这些场景是通过标准设备描述数据集(DeviceInfo数据集)的组合来实现的,以提供基本的设备功能,这些功能始终存在并且隐含在MTP功能中;并且灵活且可扩展的设备属性。下面将对两者进行更详细的讨论。

5.1.1 DeviceInfo数据集

​ DeviceInfo 数据集用于提供设备的描述。可以使用GetDeviceInfo操作获取此数据集,而无需先启动会话,并且大多数情况下是静态的。如果在会话处于活动状态时更改此数据集中的任何值,则应向每个连接的 Initiator 发出DeviceInfoChanged事件,并且每个 Initiator 必须重新获取 DeviceInfo 数据集以确定更新的值。

​ DeviceInfo 数据集可能在会话内更改的情况示例是对设备功能模式更改的反应。设备可能会进入 “睡眠”状态,其中它具有有限 (但足够)的启用的 MTP 操作和功能集。当进入这种状态时,会向每个活动会话发出DeviceInfoChanged事件,以提醒它们设备的功能已更改。

5.1.1.1 标准版

​ 以百分位数标识此设备可以支持的 PTP 版本。对于按照此规范实现的 MTP 设备,此值应包含 100 (代表 1.00)。

5.1.1.2 MTP 供应商扩展 ID

​ 标识此设备正在使用的 PTP 供应商扩展版本。对于根据本规范实现的 MTP 设备,此值应包含 0xFFFFFFFF。

5.1.1.3 MTP 版本

​ 这标识了该设备支持的 MTP 标准的版本。它以百分之几表示。本规范的最终版本将确定放置在此字段中的正确值。

5.1.1.4 MTP 扩展

​ 该字符串用于识别应用于 MTP 的任何扩展集,并将在本规范的后面详细讨论

5.1.1.5 功能模式

​ 模式允许设备以不同的能力表达不同的状态。如果设备仅支持一种模式,则此字段应包含值 0x00000000。

ValueDescription
0x0000Standard mode
0x0001Sleep state
All other values with bit 15 set to 0Reserved
0xC001Non-responsive playback播放无响应
0xC002Responsive playback响应式播放
All other values with bit 15 set to 1 and bit 14 set to 0MTP vendor extension
All other values with bit 15 set to 1 and bit 14 set to 1MTP-defined

​ 当前功能模式也包含在设备属性中。为了更改设备的功能模式,必须打开会话并更新相应的设备属性 (如果允许)。有关 设备属性的更多信息将在本文档后面提供。

5.1.1.6 支持的操作

​ 该字段通过数据代码标识该设备在当前功能模式下支持的所有操作。

5.1.1.7 支持的事件

​ 该字段通过数据代码标识该设备在当前功能模式下可以生成的所有事件。

5.1.1.8 支持的设备属性

​ 该字段通过数据代码标识该设备在当前功能模式下支持的所有设备属性。

5.1.1.9 捕获格式

​ 该字段通过数据代码来标识本设备可以独立生成的每种格式的对象格式代码 (即,不需要将内容放置在设备上)。

5.1.1.10 播放格式

​ 此字段通过数据代码标识此设备放置到设备上后能够理解和解析的每种格式的对象格式代码。

​ 如果设备可以携带未识别的二进制对象而不理解它们,则应通过在其播放格式中包含未定义对象 (0x3000)代码来指 示这一点。

5.1.1.11 制造商

​ 此可选字符串是人类可读的字符串,用于标识此设备的制造商。

5.1.1.12 型号

​ 此可选字符串是人类可读的字符串,用于标识该设备的型号。

5.1.1.13 设备版本

​ 此可选字符串以供应商特定的格式标识此设备的软件或固件版本。

5.1.1.14 序列号

​ 此字符串是必需的,包含 MTP 功能的序列号。序列号必须在所有共享相同型号和设备版本字段的 MTP 功能中保持唯 一 (此字段在 PTP 规范中是可选的,但在 MTP 中是必需的)。序列号应为设备的唯一序列号,例如通常打印在设备上的序列号。

​ 出于与旧版本的兼容性考虑,序列号应为 32 个字符的十六进制字符串。此字符串必须正好为 32 个字符 (包括任何 前导 0),并且不需要任何前缀来将其标识为十六进制 (例如“0x”)。

5.1.2 设备属性

​ 本节介绍设备属性。设备属性支持是 PTP 的强制性部分,除了附加的、添加的设备属性外,在 MTP 中保持不变。

​ 设备属性标识设备的设置或状态条件,并且不链接到设备上的任何数据对象。设备上的对象使用对象属性进行描述,这将 在第 5.3.2 节对象属性中进一步讨论。

​ 设备属性可能是只读或读写的,并且根据使用环境的不同,具有不同的功能。单个设备只能有一组设备属性,并且它们在所有会话和连接中必须相同。

5.1.2.1 设备属性描述数据集

​ 设备属性由其DevicePropDesc数据集定义,可以使用GetDevicePropDesc操作检索该数据集。DevicePropDesc数据集包括设备属性值、属性的读/写设置、默认值以及(如果相关)允许值的任何限制。使用核心数据集后面的附加字段来传达对设备属性允许值的限制。附加表格的格式由第六字段中的标志确定,

该字段列举了允许的表格。

Field nameField orderSize(bytes)DatatypeDescription
Device Property Code12UINT16A specific device property code.
Datatype22UINT16Identifies the data type code of the property, as defined in section 3.2 Simple Types.
Get/Set31UINT8Indicates whether the property is read-only(Get), or read-write(Get/Set). 0x00 Get 0x01 Get/Set
Factory Default Value4DTSDTSIdentifies the value of the factory default for the property
Current Value5DTSDTSIdentifies the current value of this properyt
Form Flag61UINT8Indicates the format of the netx field. 0x00 None. This is for properties like DataTime. In this case the FORM field is not present. 0x01 Range-Form 0x02 Enumeration-Form
FORMN/A-This dataset depends on the Form Flag, and is absent if Form Flag = 0x00.
5.1.2.1.1 范围形式
Field nameField orderSize(bytes)DatatypeDescription
Minimum Value7DTSDTSMinimum value supported by this property
Maximum Value8DTSDTSMaximum value supported by this property
Step Size9DTSDTSA particular vendor’s device shall support all values of a property defined by Minimum Value + N x Step Size, which is less than or equal to Maximum Value where N = 0 to a vendor-defined maximum.
5.1.2.1.2 枚举形式
Field nameField orderSize(bytes)DatatypeDescription
Number Of Values72UINT16This field indicates the number of values of size DTS of the particular property supported by the device.
Supported Value 18DTSDTSA particular vendor’s device shall support this value of the property
Supported Value 29DTSDTSA particular vendor’s device shall support this value of the property.
Supported Value 310DTSDTSA particular vendor’s device shall support this value of the property.
Supported Value MM+7DTSDTSA particular vendor’s device shall support this value of the property.
5.1.2.2 检索设备属性

​ 可以通过以下两种方法之一检索设备属性: 它们可以作为GetDeviceP

这篇关于MTP协议中文翻译第五章的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/989398

相关文章

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

Modbus-RTU协议

一、协议概述 Modbus-RTU(Remote Terminal Unit)是一种基于主从架构的通信协议,采用二进制数据表示,消息中的每个8位字节含有两个4位十六进制字符。它主要通过RS-485、RS-232、RS-422等物理接口实现数据的传输,传输距离远、抗干扰能力强、通信效率高。 二、报文结构 一个标准的Modbus-RTU报文通常包含以下部分: 地址域:单个字节,表示从站设备

网络原理之TCP协议(万字详解!!!)

目录 前言 TCP协议段格式 TCP协议相关特性 1.确认应答 2.超时重传 3.连接管理(三次握手、四次挥手) 三次握手(建立TCP连接) 四次挥手(断开连接)  4.滑动窗口 5.流量控制 6.拥塞控制 7.延迟应答 8.捎带应答  9.基于字节流 10.异常情况的处理 小结  前言 在前面,我们已经讲解了有关UDP协议的相关知识,但是在传输层,还有

DNS协议基础笔记

1.定义 DNS(Domain Name System,域名系统)是互联网的一项核心服务,它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。 2.域名解析过程 当用户在浏览器中输入一个域名,浏览器首先会检查自己的缓存中是否有该域名对应的 IP 地址。本地 DNS 服务器收到查询请求后,首先会检查自己的缓存中是否有该域名对应的 IP 地址。根域名服务器收到查询请

4G模块、WIFI模块、NBIOT模块通过AT指令连接华为云物联网服务器(MQTT协议)

MQTT协议概述 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,它被设计用来提供一对多的消息分发和应用之间的通讯,尤其适用于远程位置的设备和高延迟或低带宽的网络。MQTT协议基于客户端-服务器架构,客户端可以订阅任意数量的主题,并可以发布消息到这些主题。服务器(通常称为MQTT Broker)则负责接受来自客户端的连接请求,并转发消

React第五章(swc)

swc 什么是swc? SWC 既可用于编译,也可用于打包。对于编译,它使用现代 JavaScript 功能获取 JavaScript / TypeScript 文件并输出所有主流浏览器支持的有效代码。 SWC在单线程上比 Babel 快 20 倍,在四核上快 70 倍。 简单点来说swc实现了和babel一样的功能,但是它比babel快。 FAQ为什么快? 编译型 Rust 是

HTTP协议 HTTPS协议 MQTT协议介绍

目录 一.HTTP协议 1. HTTP 协议介绍 基本介绍: 协议:  注意: 2. HTTP 协议的工作过程 基础术语: 客户端: 主动发起网络请求的一端 服务器: 被动接收网络请求的一端 请求: 客户端给服务器发送的数据 响应: 服务器给客户端返回的数据 HTTP 协议的重要特点: 一发一收,一问一答 注意: 网络编程中,除了一发一收之外,还有其它的模式 二.HTT

CAMediaTiming协议

今天看下下CALayer这个类,里面的属性是实现CAMediaTiming这个协议的,这里简单介绍一下CAMediaTiming协议里面的属性。官网链接 如下 beginTime:开始时间(和父类相关) timeOffset:动态的本地时间t,tp是父类事件。t = (tp - begin) * speed + offset.用于暂停一个layer。  fillMode:layer完成后的