编辑“︁
数据提取
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
==== 分析协议 ==== 找到数据后,需要确定数据格式。如何查找资料可以参考 <code>信息搜集技术</code> 一节,此处不再赘述。总之由 <code>ev3</code> 这个关键词出发,我们最终知道这种通信方式传输的内容被称之为 [http://ev3directcommands.blogspot.com/2016/01/no-title-specified-page-table-border_94.html Direct Command],所使用的是乐高自定义的一种[https://le-www-live-s.legocdn.com/sc/media/files/ev3-developer-kit/lego%20mindstorms%20ev3%20communication%20developer%20kit-f691e7ad1e0c28a4cfb0835993d76ae3.pdf?la=en-us 简单应用层协议],`Command` 本身格式由乐高的手册 [http://www.lego.com/en-gb/mindstorms/downloads EV3 Firmware Developer Kit] 定义。''(查找过程并不像此处简单而直观,也是本题的关键点之一。)'' 在乐高的协议中,发送和回复遵从不同格式。在 <code>ev3 basic</code> 中,所有回复流量都相同,通过手册可知内容代表 <code>ok</code> ,没有实际含义,而发送的每个数据包都包含了一条指令。由协议格式解析出指令的 <code>Opcode</code> 均为 <code>0x84</code> ,代表 <code>UI_DRAW</code> 函数,且 <code>CMD</code> 是 <code>0x05</code> ,代表 <code>TEXT</code> 。之后是四个参数,<code>Color</code>, <code>X0</code>, <code>Y0</code>, <code>STRING</code> 。此处需要注意乐高的单个参数字节数并不固定,即便手册上标明了数据类型是 <code>DATA16</code> ,仍然可能使用一个字节长度的参数,需要参照手册中 <code>Parameter encoding</code> 一节及[http://ev3directcommands.blogspot.com/2016/01/ev3-direct-commands-lesson-02-pre.html 相关文章]。 尝试分析几个命令,发现每个指令都会在屏幕特定位置打印一个字符,这与提供的图片相符。
摘要:
请注意,所有对gamedev的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Gamedev:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
不转换
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息