本帖最后由 beef 于 2010-3-4 15:21 编辑
读取外部蓝牙设备数据 这部分介绍NXT将要向另一个蓝牙设备发送的数据(通讯时NXT作为主机并探寻从机的数据)。
首先,NXT会向从机发送下面的MessageRead指令:
MessageRead Byte 0:0x00或0x80 Byte 1:0x13 Byte 2:远程收件箱号码(0-9) Byte 3:当地收件箱号码(0-9) Byte 4:删除?(布尔;真(非零)值清除远程收件箱中的信息)
Return package: Byte 0:0x02 Byte 1:0x13 Byte 2:状态字节 Byte 3:当地收件箱号码(0-9) Byte 4:消息大小 Byte 5-63:消息数据(填充)
消息数据被看作是字符串;他必须包含空终止。相应的,消息大小要包括空终止字节。此外,返回包有固定大小,因此该消息的数据字段将被填充空字节。
注意,远程收件箱号码可能指定一个0-19的值,而所有其他收件箱号码应仍低于9。这是由于根据主从关系连接NXT的关系。从属设备可能不主动与他们的主机沟通交换数据,所以他们把外发信息存储在多出来的10个邮箱(10-19号)。使用主设备的MessageRead指令来检索这些邮件。
当从从设备中读取远程信息时,发送下列指令: 0x05,0x00,0x00,0x13,0x0A,0x00,0x01=>从从机读取0信箱并清除从机上信息 0x05,0x00,0x00,0x13,0x0B,0x01,0x01=>从从机读取1信箱并清除从机上信息
若从设备上的数据准备好了,则下面的消息会从从设备发给主机NXT:
MessageWrite Byte 0:0x00或0x80 Byte 1:0x09 Byte 2:收件箱号码(0-9) Byte 3:消息大小 Byte 4-N:消息数据,这里N=消息大小+3
消息数据被看作是字符串,他必须包含空终止。相应的,消息大小要包括空终止字节。消息大小要控制在59以下,以使消息包在USB上合法。
Return package: Byte 0:0x02 Byte 1:0x09 Byte 2:状态字节 |