1 使用一个micropython设备使用UART 通过外接设备一个micropython设备 实现repl,
读取命令到变量command上 ,按下enter后将命令通过UART发送给MPY设备,UART读取返回信息,打印。
文档编辑:将文件通过UART获取到本地,然后打开,对其修改,然后上传到设备。
那么如何通过获取文件呢?因为本设备和MPY设备有一个UART通道用于命令交互,那么如何获取文件呢?
PLAN FOR AI
- 发代码时一次性把脚本贴进去;
- 远端在 raw-REPL 里执行完后把 stdout+stderr 统一回传;
- 文件内容用 uzlib + base64 流式打包,避免内存炸,也兼容二进制。
2 本地一块MIcropython设备,使用 os.dupterm() FBConsole来实现,其中命令行交互 无问题,Ctrl+c +x 之类 使用发送字符 ,
问题一:文件文本编辑需要 行字符串编辑 ,内存先全部读取,然后显示,一行,一行编辑,体验不好。
附加16进制控制符
| 十六进制 | 十进制 | 缩写 | 名称 | 十六进制 | 十进制 | 缩写 | 名称 |
|---|---|---|---|---|---|---|---|
| 0x00 | 0 | NUL | 空字符 | 0x10 | 16 | DLE | 数据链路转义 |
| 0x01 | 1 | SOH | 标题开始 | 0x11 | 17 | DC1 | 设备控制1 |
| 0x02 | 2 | STX | 正文开始 | 0x12 | 18 | DC2 | 设备控制2 |
| 0x03 | 3 | ETX | 正文结束 Ctrl+C | 0x13 | 19 | DC3 | 设备控制3 |
| 0x04 | 4 | EOT | 传输结束 Ctrl+D | 0x14 | 20 | DC4 | 设备控制4 |
| 0x05 | 5 | ENQ | 询问 | 0x15 | 21 | NAK | 拒绝接收 |
| 0x06 | 6 | ACK | 收到通知 | 0x16 | 22 | SYN | 同步空闲 |
| 0x07 | 7 | BEL | 铃 | 0x17 | 23 | ETB | 传输块结束 |
| 0x08 | 8 | BS | 退格 | 0x18 | 24 | CAN | 取消 Ctrl+X |
| 0x09 | 9 | HT | 水平制表符 | 0x19 | 25 | EM | 介质中断 |
| 0x0A | 10 | LF | 换行键 | 0x1A | 26 | SUB | 替换 |
| 0x0B | 11 | VT | 垂直制表符 | 0x1B | 27 | ESC | 换码符 |
| 0x0C | 12 | FF | 换页键 | 0x1C | 28 | FS | 文件分隔符 |
| 0x0D | 13 | CR | 回车键 | 0x1D | 29 | GS | 组分隔符 |
| 0x0E | 14 | SO | 移出 | 0x1E | 30 | RS | 记录分离符 |
| 0x0F | 15 | SI | 移入 | 0x1F | 31 | US | 单元分隔符 |
| 组合键 | 十六进制 | 十进制 | 组合键 | 十六进制 | 十进制 | 组合键 | 十六进制 | 十进制 |
|---|---|---|---|---|---|---|---|---|
| Ctrl+A | 0x01 | 1 | Ctrl+J | 0x0A | 10 | Ctrl+S | 0x13 | 19 |
| Ctrl+B | 0x02 | 2 | Ctrl+K | 0x0B | 11 | Ctrl+T | 0x14 | 20 |
| Ctrl+C | 0x03 | 3 | Ctrl+L | 0x0C | 12 | Ctrl+U | 0x15 | 21 |
| Ctrl+D | 0x04 | 4 | Ctrl+M | 0x0D | 13 | Ctrl+V | 0x16 | 22 |
| Ctrl+E | 0x05 | 5 | Ctrl+N | 0x0E | 14 | Ctrl+W | 0x17 | 23 |
| Ctrl+F | 0x06 | 6 | Ctrl+O | 0x0F | 15 | Ctrl+X | 0x18 | 24 |
| Ctrl+G | 0x07 | 7 | Ctrl+P | 0x10 | 16 | Ctrl+Y | 0x19 | 25 |
| Ctrl+H | 0x08 | 8 | Ctrl+Q | 0x11 | 17 | Ctrl+Z | 0x1A | 26 |
| Ctrl+I | 0x09 | 9 | Ctrl+R | 0x12 | 18 | Ctrl+[ | 0x1B | 27 |