三、广播遥控

第11课 带序号消息

任务场景:带序号消息
任务场景:带序号消息

一、任务目标

理解带序号的 JSON,能说出体验不自动回执。

二、我们要学什么

  • 学习要点:带序号的消息用 JSON 字典,不要只发一个整数
  • 本课过关:能指出体验只打印序号;完整代码会回带 回复 标记的同一条。
  • 示例对齐:体验题对应 「3-3-1 带序号消息」;完整代码对应 「3-3-2 可靠消息发送」。

三、本节要点

体验 3-3-1 没有自动回复。回执是 3-3-2。

1读场景明确真实任务
2对要点JSON 带序号,再谈回执
3载入运行兴趣课程积木/代码

四、解题思路

  • 输入:一号按键短按。
  • 输出:广播数据包;回调串口打印序号;完整代码再回传确认。
  • 生活对照:快递单号:发出去要有编号,签收再回一票。
  • 验证现象:每按一次序号变大;对端打印同一序号。

本课主要用到:无线广播、数据包、一号按键。

  1. 1明确任务「带序号消息」:每条消息带序号,便于核对与回传。
  2. 2准备字典:含「序号」和「消息」两项,再打包成报文发出。
  3. 3一号按键:序号加一后广播;收到后拆包并串口打印序号。
  4. 4完整代码:若对方尚未回复,则补上回复标记再发回。
  5. 5载入后每按一次,对端应打印同一递增序号。

流程示意(可对照左侧文字)

任务:带序号消息准备带序号的数据包按键发送并打印序号完整代码补回复再回传运行后对照现象

五、图形块功能讲解

下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。

图形块分类作用本课用法
创建字典
字典用若干键值对组成字典。mydict={"序号":0,"消息":'light'}。
增改字典项
字典新增或修改键值。载入后可在工具箱对照本课用法。
取字典值
字典按键读取值。载入后可在工具箱对照本课用法。
字典转 JSON
字典序列化为 JSON 字符串。send 前 json.dumps(mydict)。
JSON 转字典
字典解析 JSON 为字典。收到后 json.loads。
取字典值(默认)
字典键不存在时返回默认值。完整代码 dictcmd.get('回复', False)。

六、知识点讲解

带序号的 JSON。整数广播升级成可扩展字典。序号:每按 1号按键 加一,用来认是哪一条。loads/dumps:无线里走字符串,两端都要会编解码。回复:完整代码避免把回执再当新命令处理。

对照与过关:能说出体验不自动回执。先看打印的序号,再看完整代码的 回复。

七、编程练习

点「载入」打开 MixVM(board=mini_design)。默认图形化积木;起步程序与积木均来自 MixGo MINI 兴趣课程/学期3。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。

兴趣课程:3-3-1 带序号消息.mix。载入后运行。

八、课堂练习

先完成两道判断题,再完成选择题;全部选定后点「检查」。

  1. 判断:体验题收到消息后会自动把 回复=True 发回去。

  2. 判断:按 1号按键 会把字典里的序号加一再 dumps 发送。

  3. 体验收到后打印的是?

  4. 完整代码给回执加上的键是?

九、本节小结

本课主题是带序号消息:带序号的消息用字典发出,不要只发一个整数。体验程序打印序号;完整程序会回带回复标记的同一条。