Skip to content

新手上路(单车控制)

因很多朋友反馈直接使用文档还是上手相对困难,为方便大家能更快更好的了解autoxing robot-js-sdk,提取下面新手上路操作。您可以直接复制代码,直接运行即可;也可摘取某些代码片段,直接运行即可。

js-sdk单车控制所有的操作的前提必须先连接上车,步骤:

  • step1:首先想要使用sdk必须先创建 AXRobot 实例 new AXRobot
  • step2:创建好实例后,sdk初始化 init
  • step3:连接车 connectRobot

连接车成功后,就可以开始控制车,可以对车的行为进行控制,最常用的操作如:获取机器人状态、订阅机器人状态、地图展示、发起简单点位任务、发起复杂任务等。

下方示例提供了一个完整的示例,可以参考。

Step1->Step2->Step3 Step...
实例 -> 初始化 -> 连接车 -> 获取机器人状态
-> 地图展示
-> 订阅机器人状态
-> 获取机器人所有点位数据
-> 获取机器人某个点位 -> 发起简单点位任务

(后期根据客户反馈会继续增加常用示例)

TypeScript
import { AXRobot, AppMode } from "@autoxing/robot-js-sdk";

// 创建 AXRobot 实例
const axRobot = new AXRobot("<appId>", "<appSecret>", AppMode.WAN_APP, "<serverUrl>", "<websocketUrl>");

try {
    // init
    const successed = await axRobot.init();
    if (successed) {
        // 连接指定机器人
    const res = await axRobot.connectRobot({
        robotId: "<robotId>"
    });
    console.log("connect success: " + res.robotId);

    // 获取机器人状态
    const stateObj = await axRobot.getState()
    console.log("robotState", stateObj)

    // 地图展示
    if (stateObj.areaId) {
        // 获取机器人区域id
        const areaId = stateObj.areaId
        console.log("areaId", areaId)
        // 创建地图
        const axMap = await axRobot.createMap("map"); // map 为 HTML 容器标签的 id
        // 设置地图显示的区域
        axMap.setAreaMap(areaId);  // areaId 为地图区域标识
    }

    // 订阅机器人状态
    axRobot.subscribeRealState({
        onStateChanged: state => {
        console.log("订阅机器人状态更新onStateChanged", state)
        }
    })

    // 获取机器人所有点位数据
    const result = await axRobot.getPoiList({
        robotId: "<robotId>"
    });
    const poiList = result.list
    console.log("poiList", poiList)

    // 获取机器人某个点位
    if (poiList.length > 0) {
        const poi = poiList[0]
        // 发起简单点位任务,让车动起来
        const isOk = await axRobot.addTaskSimple(poi)
        if (isOk) {
        console.log("任务发起成功")
        }
    }
        // do something with robot

    } else {
        console.log("初始化失败")
    }
} catch(err) {
    console.log(err.errText ? err.errText : err)
}