第1课发送的命令15- 0-1-0-129-158-4-97-98-99-0-4-0-0-0-128-63,是利用了乐高的direct command,也就是直接发送蓝牙数据控制ev3,相关源码在git上的c_com.h文件中,但是初学者看起来也头晕。首先命令是16进制的,ai2中发送的是10进制的,所以中间有个转换。
第1位15是变化的,可以看做list长度-2,表示数据长度,涉及到对齐方式等,初学者可忽略,记住长度-2即可。
第2-6位可以看作是mailbox的固定格式,129,158转换为16进制就是官方文档16进制的81,9E。
第7位4是mailbox标题名的长度,如abc加上0(表示终止),长度为4,如果标题是a,则长度为2。
第8-10位表示abc的asiic码,可以查表,http://wenku.baidu.com/link?url= ... Yft-2uYSZyMtpvuVwJK
第11位0表示终止
第12位表示传送的数据长度,发送数字固定为4,如果是字符串,则为字符加1。如发送abc,则为4,如是逻辑长度为1。
第13位0表示终止
第14-17位 数字为对应的float值,四个位置,换算起来比较复杂,常见的如下表。如是逻辑,真为1,假为0。如是字符串,也是ascii码表,最后接0。
上面一些深入理解比较复杂,主要还是记住哪些是变动,便于日后封装。 如发送字符串ab到mialbox(abc),则为14 0 1 0 129 158 4 97 98 99 0 3 0 97 98 0
|