# 工具 API
这里封装了一些常用的工具 API
# API 文档
# Cast 类型转换
该方法沿用 Scratch-VM (opens new window) 主要用于积木块的数值的类型转换
import { CommonUtility } from "@ubtech/ucode-extension-common-sdk";
const { Cast } = CommonUtility;
Cast.toString(1); // return '1'
Cast.toNumber("1"); // return 1
Cast.toRgbColorList("#FFF000"); // return [255, 240, 0]
详细的可以参照 Cast
# Repl 模式数据解释器
该功能主要对 micropython 通用 repl 模式快捷键操作、ready 状态查询、设置 ready 状态和错误信息输出的方法封装。
import { CommonUtility } from "@ubtech/ucode-extension-common-sdk";
const { Repl } = CommonUtility;
const { ReplModelHandler, replModel } = Repl;
// ---- 初始化handler ----
const device = self.UCode.extensions.getDevice(util.targetId); // 协议对象
let replModelHandler = new ReplModelHandler(device.sendMsg); // 初始化实例且设置发送方法
device.onData((data) => replModelHandler.onData(data)); // 设置响应监听
// ---- 可用的方法 ----
// 进入REPL某个模式,如发送Ctr-C: interrupt a running program
replModelHandler.enterReplMode(replModel.CANCEL);
// 查询ready状态 return Promise<boolean>
replModelHandler.isReady();
// 设置ready状态, return Promise<boolean>
replModelHandler.setReady();
// respData设备回应数据,抛出错误信息
replModelHandler.handleReplError(respData);
typescript:
// 引入模块
import { CommonUtility } from "@ubtech/ucode-extension-common-sdk";
// 引入类型
import type { CommonUtility as CommonUtilityTypes } from "@ubtech/ucode-extension-common-sdk";
// 解构 repl 处理模块
const { ReplModelHandler } = CommonUtility.Repl;
// 获取当前用于通信的对象
const device = self.UCode.extensions.getDevice(util.targetId);
// 声明 repl handler 变量
let replModelHandler: CommonUtilityTypes.Repl.ReplModelHandler;
// 实例化 repl handler 变量
replModelHandler = new ReplModelHandler(device.sendMsg.bind(device));
device.onData((data) => replModelHandler.onData(data)); // 设置响应监听
Repl commands:
快捷键 | replModel | 用途 |
---|---|---|
CTRL-A | replModel.NO_DISPLAY | 进入 raw REPL 模式 |
CTRL-B | replModel.DISPLAY | 进入 normal REPL 模式 |
CTRL-C | replModel.CANCEL | 中断运行中的程序 |
CTRL-D | replModel.RESTART | 软重启 |
CTRL-E | replModel.PASTE | 进入代码片段粘贴模式。 |
Enter | replModel.ENTER | 按回车进入下一个空白行 |
CTRL-E 需要配合其他快捷键如:CTRL-C 取消粘贴,CTRL-D 执行已粘贴的程序