最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

ipod通讯协议简要说明

IT圈 admin 30浏览 0评论

2024年4月15日发(作者:鲜于泰和)

Ipod 通讯协议

1.通讯格式说明:

field

Header

Length

Mode

Command

Parameter

Checksum

size value

2

1

1

2

0..n

1

0xff 0x55

Size of mode+command+parameter

the mode the command is referring to

the two byte command

optional parameter, depending on the command

0x100 - ( (sum of all length/mode/command/parameter bytes) & 0xFF)

2.具体通讯命令说明:

命令

0x

ff 0x55 0x03 0x00 0x01 0x04 0xf8

通讯命令 说明

说明

打开ipod串口连接,并进入高级控制模式

? 0xFF 0x55+length+0x04 0x00 0x00+Result(1) think that the result 0x04 means that the command wasn´t

+Command(2)+

校验位

(1)

返回: 0xFF 0x55+length+0x04 0x00 0x01+Result(1)

+Command(2)+

校验位

(1)

0xFF 0x55 0x03 0x04 0x00 0x02 0xf7

understood

返回信息result: 0.表示成功 2.表示失败 4表示超出范围

Command:表示之前发送的指令的command

发送简单的ping指令,返回:FF 55 0B 04 00 03 FF FF FF

FF 00 00 00 00 F2,表示连接成功

返回: 0xFF 0x55 0x0B 0x04 0x00 0x03 0xFF 0xFF 表示成功连接

0xFF 0xFF 0x00 0x00 0x00 0x00 0xF2,

? 0xff 0x55 0x03 0x04 0x00 0x09 0xf0

? returns flag set with 0x00 0x0b, don´t know, what this

means (perhaps an indicator for track-change - if you set

this flag to 0x01 it turns to 0x00 again after changing the

track)

? 返回: 0xFF 0x55 0x04 0x04 0x00 0x0A +byte(1)

+ 校验位(1)

? 0xFF 0x55 0x04 0x04 0x00 0x0B +byte(1)

+ 校验位(1)

Byte=0x00 or 0x01

parameter 0x00 & 0x01 result in a success-answere

(copare 0x00 0x01), don´t know what happens - seems to

be a flag which can be read with 0x00 0x09

? 0xFF 0x55 0x04 0x04 0x00 0x0C +byte(7)

+ 校验位(1)

??? results in a answer 0x0d

? 0xFF 0x55 0x04 0x04 0x00 0x0D + byte(7)or

byte(1)+ 校验位(1)

tried some parameters - result seems to dependent on

current playlist

parameters 0x00 0x00 0x00 0x00 0x00 0x00 0x00 give (on

my Ipod) 11 bytes(0x00 0x00 0x00 0x00 0x00 0x00 0x02

0xf0 0xdb 0x00 0x00 in main-Playlist - *not* the

playlist-number and *not* the count of tracks in this

playlist)

This command can also inform the accessory when there is

a track change (one song ends and another begins). So it is

a "subscription" - some previous query caused the ipod to

send this every time the track changes. Probably the

parameter bytes are a kind of track ID, maybe based on

some filesystem attribute, such as actual position on the

hard disk.

0xFF 0x55 0x03 0x04 0x00 0x12 0xe7 获取ipod型号指令

返回: 0xFF 0x55 0x05 0x04 0x00 0x13 0x01 0x0D 0xD6 返回ipod型号

0xFF 0x55 0x03 0x04 0x00 0x14 0xe5

返回: 0xFF 0x55 + length + 0x04 0x00 0x15

+ipod name+

校验位

(1)

0xFF 0x55 0x03 0x04 0x00 0x16 0xe3 发送指令,使控制命令0x00 0x17有效

获取ipod name

返回的ipod name数据

返回: 0xFF 0x55 0x06 0x04 0x00 0x01 0x00 0x00 0x16 表示已经激活了0x00 0x17的控制命令

0xDF

0xFF 0x55 0x08 0x04 0x00 0x17 + type(1) 切换到指定的type(1)(0x01表示进入 播放列表,0x02表

+number(4)+

校验位

(1) 示进入 表演者,0x03 表示进入 专辑,0x04表示进入 风格,

0x05 表示进入 歌曲,0x06 表示进入 作曲家)

Number(4)(进入type的第几个项,从零开始)

返回: 0xFF 0x55 0x06 0x04 0x00 0x01 0x00 0x00 0x17 返回0x17的命令是否成功切换

0xDE

0xFF 0x55 0x04 0x04 0x00 0x18 +type(1)+

校验

(1)

获取ipod type(1)(0x01表示 播放列表,0x02表示 表演

者,0x03表示 专辑,0x04表示 风格, 0x05表示 歌曲,

0x06表示 作曲家)的总数

返回: 0xFF 0x55 0x07 0x04 0x00 0x19 +number(4)+

校验位

(1)

获取各种类型返回的总数number(4)

0xff 0x55 +length +0x04 +0x00 0x1a

+type(1)

+number(4)(从0开始索引)

+Number(4)(从1开始索引)+校验位(1)

获取相应type(1)和第一个number(4)表示要获取的类型

的开始位置,第二个number(4)表示要返回的类型的数量,

注:当type=0x01时第一个number=0时,返回的第一项是

ipod name。

返回: 0xff 0x55 +length +0x04 +0x00 0x1B +

number(4) + string(N)+校验位(1)

0xFF 0x55 0x03 0x04 0x00 0x1c 0xdd

返回多项相应的项目名称

获取现在的播放的歌曲总时间和已播放的时间还有播放状态

返回: 0xFF 0x55 0x0C 0x04 0x00 0x1D +length(4)+ 获取正在播放的曲目总时间和当前时间(以毫秒为单位),

2024年4月15日发(作者:鲜于泰和)

Ipod 通讯协议

1.通讯格式说明:

field

Header

Length

Mode

Command

Parameter

Checksum

size value

2

1

1

2

0..n

1

0xff 0x55

Size of mode+command+parameter

the mode the command is referring to

the two byte command

optional parameter, depending on the command

0x100 - ( (sum of all length/mode/command/parameter bytes) & 0xFF)

2.具体通讯命令说明:

命令

0x

ff 0x55 0x03 0x00 0x01 0x04 0xf8

通讯命令 说明

说明

打开ipod串口连接,并进入高级控制模式

? 0xFF 0x55+length+0x04 0x00 0x00+Result(1) think that the result 0x04 means that the command wasn´t

+Command(2)+

校验位

(1)

返回: 0xFF 0x55+length+0x04 0x00 0x01+Result(1)

+Command(2)+

校验位

(1)

0xFF 0x55 0x03 0x04 0x00 0x02 0xf7

understood

返回信息result: 0.表示成功 2.表示失败 4表示超出范围

Command:表示之前发送的指令的command

发送简单的ping指令,返回:FF 55 0B 04 00 03 FF FF FF

FF 00 00 00 00 F2,表示连接成功

返回: 0xFF 0x55 0x0B 0x04 0x00 0x03 0xFF 0xFF 表示成功连接

0xFF 0xFF 0x00 0x00 0x00 0x00 0xF2,

? 0xff 0x55 0x03 0x04 0x00 0x09 0xf0

? returns flag set with 0x00 0x0b, don´t know, what this

means (perhaps an indicator for track-change - if you set

this flag to 0x01 it turns to 0x00 again after changing the

track)

? 返回: 0xFF 0x55 0x04 0x04 0x00 0x0A +byte(1)

+ 校验位(1)

? 0xFF 0x55 0x04 0x04 0x00 0x0B +byte(1)

+ 校验位(1)

Byte=0x00 or 0x01

parameter 0x00 & 0x01 result in a success-answere

(copare 0x00 0x01), don´t know what happens - seems to

be a flag which can be read with 0x00 0x09

? 0xFF 0x55 0x04 0x04 0x00 0x0C +byte(7)

+ 校验位(1)

??? results in a answer 0x0d

? 0xFF 0x55 0x04 0x04 0x00 0x0D + byte(7)or

byte(1)+ 校验位(1)

tried some parameters - result seems to dependent on

current playlist

parameters 0x00 0x00 0x00 0x00 0x00 0x00 0x00 give (on

my Ipod) 11 bytes(0x00 0x00 0x00 0x00 0x00 0x00 0x02

0xf0 0xdb 0x00 0x00 in main-Playlist - *not* the

playlist-number and *not* the count of tracks in this

playlist)

This command can also inform the accessory when there is

a track change (one song ends and another begins). So it is

a "subscription" - some previous query caused the ipod to

send this every time the track changes. Probably the

parameter bytes are a kind of track ID, maybe based on

some filesystem attribute, such as actual position on the

hard disk.

0xFF 0x55 0x03 0x04 0x00 0x12 0xe7 获取ipod型号指令

返回: 0xFF 0x55 0x05 0x04 0x00 0x13 0x01 0x0D 0xD6 返回ipod型号

0xFF 0x55 0x03 0x04 0x00 0x14 0xe5

返回: 0xFF 0x55 + length + 0x04 0x00 0x15

+ipod name+

校验位

(1)

0xFF 0x55 0x03 0x04 0x00 0x16 0xe3 发送指令,使控制命令0x00 0x17有效

获取ipod name

返回的ipod name数据

返回: 0xFF 0x55 0x06 0x04 0x00 0x01 0x00 0x00 0x16 表示已经激活了0x00 0x17的控制命令

0xDF

0xFF 0x55 0x08 0x04 0x00 0x17 + type(1) 切换到指定的type(1)(0x01表示进入 播放列表,0x02表

+number(4)+

校验位

(1) 示进入 表演者,0x03 表示进入 专辑,0x04表示进入 风格,

0x05 表示进入 歌曲,0x06 表示进入 作曲家)

Number(4)(进入type的第几个项,从零开始)

返回: 0xFF 0x55 0x06 0x04 0x00 0x01 0x00 0x00 0x17 返回0x17的命令是否成功切换

0xDE

0xFF 0x55 0x04 0x04 0x00 0x18 +type(1)+

校验

(1)

获取ipod type(1)(0x01表示 播放列表,0x02表示 表演

者,0x03表示 专辑,0x04表示 风格, 0x05表示 歌曲,

0x06表示 作曲家)的总数

返回: 0xFF 0x55 0x07 0x04 0x00 0x19 +number(4)+

校验位

(1)

获取各种类型返回的总数number(4)

0xff 0x55 +length +0x04 +0x00 0x1a

+type(1)

+number(4)(从0开始索引)

+Number(4)(从1开始索引)+校验位(1)

获取相应type(1)和第一个number(4)表示要获取的类型

的开始位置,第二个number(4)表示要返回的类型的数量,

注:当type=0x01时第一个number=0时,返回的第一项是

ipod name。

返回: 0xff 0x55 +length +0x04 +0x00 0x1B +

number(4) + string(N)+校验位(1)

0xFF 0x55 0x03 0x04 0x00 0x1c 0xdd

返回多项相应的项目名称

获取现在的播放的歌曲总时间和已播放的时间还有播放状态

返回: 0xFF 0x55 0x0C 0x04 0x00 0x1D +length(4)+ 获取正在播放的曲目总时间和当前时间(以毫秒为单位),

发布评论

评论列表 (0)

  1. 暂无评论