快速开始

本指南将帮助你在 5 分钟内创建一个可以控制激光扫地机的基础项目。

环境搭建

确保你已经完成了涂鸦小程序的基础环境搭建,包括:

  • 安装 Node.js(推荐 v14+)
  • 安装 Ray 开发工具
  • 完成涂鸦开发者账号注册

项目创建

使用项目模板快速创建项目:

项目模板

项目模板是为了降低开发者搭建项目的难度,将常见的品类和常见能力进行了整理并对外提供了相应的项目源码。

获取模板:

简单编码示例

以下是一个最基础的地图展示示例:

import React, { useState } from 'react';
import { RobotMap, RoomProperty } from '@ray-js/robot-map';
import { useP2PDataStream } from '@ray-js/robot-data-stream';
import { useDevice } from '@ray-js/ray';

const RobotVacuumPanel = () => {
  const { devId } = useDevice(device => device.devInfo);

  // 地图和路径数据状态(通常来自 P2P 通道)
  const [mapData, setMapData] = useState<string>('');
  const [pathData, setPathData] = useState<string>('');

  // 房间属性数据(通常来自 MQTT 通道,结构化协议)
  const [roomProperties, setRoomProperties] = useState<RoomProperty[]>([]);

  // P2P 数据流处理
  const onMapData = (mapDataStr: string) => {
    // 处理地图数据
    setMapData(mapDataStr);
  };

  const onPathData = (pathDataStr: string) => {
    // 处理路径数据
    setPathData(pathDataStr);
  };

  // 使用 P2P 数据流获取地图和路径数据
  useP2PDataStream(devId, onMapData, onPathData);

  // 示例:房间属性数据结构(实际使用时从 MQTT 通道获取)
  // const roomProperties: RoomProperty[] = [
  //   {
  //     id: 1,
  //     name: '客厅',
  //     cleanTimes: 2,
  //     order: 1,
  //     floorType: 0,
  //     yMop: 1,
  //     suction: 0,
  //     cistern: 0,
  //     cleanMode: 0,
  //   },
  // ];

  // 地图准备就绪回调
  const handleMapReady = (mapApi) => {
    console.log('地图已准备就绪', mapApi);
  };

  return (
    <RobotMap
      map={mapData}
      path={pathData}
      roomProperties={roomProperties}
      onMapReady={handleMapReady}
    />
  );
};

运行效果

完成上述步骤后,你将能够:

  • 看到设备的地图数据
  • 控制设备开始/暂停清扫
  • 查看设备的实时路径

下一步

  • 了解 核心概念,深入理解平台的关键术语和设计理念
  • 查看 能力集,了解完整的 API 和功能模块