XGRIDS文档
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Polski
  • Nederlands
  • 灵视 P1

    • 产品概述
    • 设备基本操作
    • 使用 LCC Scan App
    • 维护及保养
    • 常见问题
  • 灵光 K 系列

    • 灵光 K1

      • 产品概述
      • 设备基本操作
      • 设备激活与连接
      • 设备采集
      • 获取绝对坐标点云数据
      • 地图融合
      • 典型场景路线规划建议
      • 注意事项
      • 常见问题
    • 灵光 K2

      • 产品概述
      • 设备基本操作
      • 设备激活与连接
      • 设备采集
      • 获取绝对坐标点云数据
      • 地图融合
      • 典型场景路线规划建议
      • 注意事项
      • 常见问题
  • 灵光 L 系列

    • 灵光 L2 Pro

      • 产品概述
      • 设备基本操作
      • 设备激活与连接
      • 设备采集
      • 获取绝对坐标点云数据
      • 实时测量功能
      • 附录
      • 常见问题
    • 灵光 L3

      • 产品概述
      • 设备基本功能
      • 设备激活与连接
      • 设备采集
      • 获取绝对坐标点云数据操作流程
      • 附录
  • 配件

    • 补光灯

      • 安装指导
      • 基本操作
      • 常见问题
  • Lixel Studio

    • 版权
    • 安装与激活
    • 界面说明
    • 文件
    • 工程处理
    • 工具
    • 平面绘制
    • 行业应用
    • 设置
    • 设备感知
    • 常见问题 / FAQ
  • Lixel CyberColor

    • LCC Studio

      • 入门
      • 版本与更新
      • 下载与安装
      • 界面概览与导航
      • 重建前工作
      • 模型重建
      • 单模型重建
      • 地图融合
      • 空地融合
      • 航拍重建
      • 我的模型
      • 其他功能
      • 设置与账号
      • 转换工具
      • 视频重建
      • 常见问题 / FAQ
    • LCC Scene Editor

      • 版本与更新
      • 账号与登录
      • 产品概览与主页
      • 编辑器界面介绍
      • 三种场景漫游快捷操作
      • 文件
      • 设置
      • 编辑操作
      • 窗口
      • 视图工具栏
      • 资产与属性
      • 左侧工具栏
      • 视点
      • 跳转点
      • 天空盒
      • 标注
      • 测量
      • 场景漫游
      • 场景报告
      • 智能户型图(3D Layout)
      • 小地图
      • 预览模式(Viewer)
      • 帮助
      • 常见问题 / FAQ
      • 出生点
    • LCC Model Editor

      • 版本与更新
      • 新手指引
      • 概览与界面
      • 文件操作
      • 选择器
      • 编辑操作
      • 测量
      • 调色
      • 资产管理
      • 设置与帮助
      • 常见问题 / FAQ
    • 采集指南

      • 概述
      • 采集设备总览
      • 通用采集原则
      • 室内场景采集
      • 室外场景采集
      • 大场景采集(地图融合)
      • 空地融合采集
      • 物体采集
      • 人物采集
      • 视频重建采集
      • 高清补拍
      • 控制点(灵视 P1)
      • 常见问题与排查
    • LCC Studio Linux

      • 产品概要说明
      • 基本架构说明书
      • 安装部署说明书
      • 容器启动参数说明书
      • CodeMeter离线授权部署说明书
      • API指令集说明书
      • 附录-开发者数据说明书
      • 附录-错误码列表
      • 单机多卡集群部署QuickStart
    • 使用技巧

      • 多个大型 3DGS 模型融合工作流
    • 历史版本
  • Plugin & SDK

    • Unreal

      • 介绍
      • 快速入门 - Windows
      • 快速入门 - Linux
      • 快速入门 - Quest3
      • 版本与授权
      • 渲染
      • Tiled 光栅化(实验性)
      • 画面调节
      • 法线与光照
      • 场景编辑
      • 性能参数说明
      • 性能优化指南
      • 第三方与引擎插件集成
      • 代理网格
      • 加载动画
      • 碰撞
      • 寻路系统支持
      • 单层水支持
      • 本地化
      • 常见问题
      • 故障排查
      • 日志与诊断
      • 联系我们
      • 最佳实践

        • 用 LixelStudio 网格为 3DGS 重打光
      • API 参考

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • SOG / SPZ / PLY Actors
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enums
        • Structs
      • 更新日志

        • v3.4.0
        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1
    • X-Brain

      • 产品概述
      • 硬件接口
      • 快速开始
      • 核心概念
      • 集成指南
      • API 参考
      • 数据类型
      • ROS2 桥接
      • 示例程序
      • 部署与网络
      • 排障与 FAQ
      • 版本与发布
    • Web

      • 介绍
      • 渲染性能优化指南
      • 显卡配置
      • 常见开发问题
      • API参考

        • LCCRender::clearIndexDB
        • LCCRender::dispose
        • LCCRender::load
        • LCCRender::setCamera
        • LCCRender::unload
        • LCCRender::update
        • LCCObject::checkRenderNextFrame
        • LCCObject::clearRenderNextFrame
        • LCCObject::ecef2Prj
        • LCCObject::getBounds
        • LCCObject::getEnvInstancedMesh
        • LCCObject::getInstancedMesh
        • LCCObject::getLodInfos
        • LCCObject::getOriginPosition
        • LCCObject::getProjectionCoordinateSystemInfos
        • LCCObject::hasCollision
        • LCCObject::hasEnvironment
        • LCCObject::hasShcoef
        • LCCObject::intersectsCapsule
        • LCCObject::intersectsRayExt
        • LCCObject::intersectsRayFromOriginExt
        • LCCObject::intersectsSphere
        • LCCObject::lowerToBottom
        • LCCObject::prj2Ecef
        • LCCObject::raiseToTop
        • LCCObject::raycast
        • LCCObject::raycastFromOrigin
        • LCCObject::setAlpha
        • LCCObject::setClipBox
        • LCCObject::setClipPlane
        • LCCObject::setEndLod
        • LCCObject::setLodAutoLevelUp
        • LCCObject::setMaxDistance
        • LCCObject::setMaxNodeSplats
        • LCCObject::setMaxSplats
        • LCCObject::setOriginPosition
        • LCCObject::setPointsColor
        • LCCObject::setRenderState
        • LCCObject::setRotation
        • LCCObject::setScale
        • LCCObject::setSemantic
        • LCCObject::setSemanticColor
        • LCCObject::setSmooth
        • LCCObject::setStartLod
        • LCCObject::setTranslation
        • LCCObject::setVisible
        • LCCObject::togglePointsDisplayMode
        • LCCObject::useEnvironment
        • LCCObject::useShcoef
      • 更新日志

        • v0.6.3
        • v0.6.2
        • v0.6.1
        • v0.6.0
        • v0.5.5
        • v0.5.4
        • v0.5.3
        • v0.5.2
        • v0.5.1
        • v0.5.0
        • v0.4.1
        • v0.4.0
        • v0.3.1
        • v0.3.0
        • v0.2.0
    • Lixel OpenAPI

      • 概述
      • 连接与鉴权
      • 消息模型与编解码
      • 接口清单
      • 实时数据
      • 项目文件访问
      • 错误码
      • Python

        • 快速开始
        • 客户端封装与工具
        • 常见问题
      • C++

        • 快速开始
        • 客户端与示例
        • 常见问题

接口清单

本篇按功能分组列出全部接口。所有 Topic 前缀均为 lixel/application/,表格中省略前缀。方向标记 REQ=请求、RSP=响应、RPT=上报(见 消息模型与编解码)。

状态监控

接口方向topic(省略前缀)消息类型说明
设备心跳RPTreport/heartbeat(JSON)设备广播心跳,用于发现
设备状态RPTreport/device_statusDeviceStatusReport1Hz 上报建图 / 系统 / RTK 状态
实时位姿RPTreport/lio_poseLioPoseReport扫描中的实时 LIO 位姿
实时点云RPTreport/lio_pclMqttCompressMsg压缩封装的实时点云
系统错误RPTreport/system_errorSystemErrorReport系统错误码上报

OpenAPI 公开的接口中,只有心跳采用 JSON 文本,用于发现设备、读取协议版本:

{"DeviceSN":"A256A60000","Timestamp":1697703246.5,"ProtocolVersion":"3.0.0"}
  • DeviceSN:设备序列号。
  • Timestamp:设备当前时间。
  • ProtocolVersion:协议版本号,用于兼容性设计。

设备状态上报每秒一次,承载建图状态、系统资源、RTK 状态:

message DeviceStatusReport {
    message DeviceStatus {
        sint32 app_sessions = 1; // APP 会话数
    }
    Header header = 1;
    uint32 modeling_state = 2; // 统一状态码
    string device_sn = 3;      // 设备序列号
    string project_id = 4;     // 工程名
    string time_zone = 5;      // 当前时区
    bool init_ready = 6;       // 0:未初始化,1:已初始化
    SystemStatus system_status = 7;
    RtkStatus rtk_status = 8;
    DeviceStatus device_status = 9;
}

实时点云、实时位姿的解码细节见 实时数据。

设备管理

接口方向topic(省略前缀)消息类型
查询设备信息REQ / RSPrequest·response/device_infoDeviceInfoRequest / DeviceInfoResponse
设备参数配置REQ / RSPrequest·response/device_configDeviceConfigRequest / DeviceConfigResponse(公开 proto 的注释提到 report/device_config,但没有定义 DeviceConfigReport 消息,设备端也没有这个 topic,不要订阅)
设备控制REQ / RSPrequest·response/device_controlDeviceControlRequest / DeviceControlResponse

设备控制支持的 ActionCmd:AC_USB_MASS、AC_USB_ETHER、AC_DISK_FORMAT、AC_POWER_OFF、AC_SYSTEM_REBOOT,以及文件共享的开关 AC_START_FS / AC_STOP_FS(见 文件访问,开启后使用固定的默认口令)。AC_DISK_FORMAT、AC_POWER_OFF、AC_SYSTEM_REBOOT 会清除数据或使设备关机、重启,调用前请确认。

message DeviceControlRequest {
    Header header = 1;
    Application.ActionCmd action = 2;
}

message DeviceControlResponse {
    Header header = 1;
    Application.ActionCmd action = 2;
    Error error = 15;
}

设备参数配置支持设置时间与主存储类型:

message DeviceConfigRequest {
    message TimeConfig {
        sint64 time_secs = 1; // 时间戳(秒精度)
        string time_zone = 2; // 时区(如 "Asia/Shanghai")
    }
    message MainStorageConfig {
        sint32 storage_type = 1; // 0:内部存储,1:TF 卡,2:USB 盘
    }
    Header header = 1;
    optional TimeConfig time_config = 4;
    optional MainStorageConfig main_storage_config = 8;
}

扫描建图

接口方向topic(省略前缀)消息类型
扫描控制REQ / RSP / RPTrequest·response·report/modelingModelingRequest / ModelingResponse / ModelingReport
当前工程文件地址查询REQ / RSPrequest·response/modeling_statusModelingStatusRequest / ModelingStatusResponse

扫描 action 支持 AC_START / AC_STOP。AC_START 的响应只表示设备收到了请求,设备随后依次经过待机、开始扫描中、扫描中(实测 14 到 15 秒才进入扫描中),进入扫描中之前发出的 AC_STOP 实测会被推迟。请订阅 report/device_status 读取 modeling_state,不要用固定时间等待,见快速开始(Python / C++)。

modeling_status 返回当前工程的 project_id、project_name,以及位姿、控制点、测量点文件的地址,不返回扫描状态;扫描状态用 report/device_status 的 modeling_state。设备没有当前工程数据时直接返回、不发布响应;待机时实测没有响应(2 次超时),request() 会抛出 TimeoutError。

关键字段:

message ModelingRequest {
    Header header = 1;
    Application.ActionCmd action = 2;    // 支持 AC_START / AC_STOP
    string project_name = 3;             // 自定义工程名
    Modeling.RecordMode record_mode = 4; // RM_CALC / RM_RECORD / RM_RECORD_CALC
    Modeling.ScanMode scan_mode = 5;     // SM_PCL / SM_LCC / SM_PORTRAIT
    Modeling.MountType mount_type = 6;   // MT_HAND / MT_CAR / MT_UAV / MT_BACKPACK
    string pre_project_id = 7;           // 前序工程 ID(后续版本的续扫功能)
    Modeling.AssistMode assist_mode = 8; // 扫描辅助模式 AM_GUIDED / AM_VISUAL
}

扫描状态上报(report/modeling)包含行进距离、速度、扫描时长,以及扫描结束后的数据处理进度:

message ModelingReport {
    message ScanStatus {
        float move_distance = 1; // 行进距离
        float move_speed = 2;    // 移动速度
        sint64 scan_time = 3;    // 扫描时长(秒)
    }
    Header header = 1;
    sint32 pgo_progress = 2; // 扫描结束后数据处理进度(0~100)
    ScanStatus scan_status = 3;
}

点位管理

接口方向topic(省略前缀)消息类型
控制点操作REQ / RSP / RPTrequest·response·report/control_pointControlPointRequest / ControlPointResponse / ControlPointReport
测量点操作REQ / RSPrequest·response/measure_pointMeasurePointRequest / MeasurePointResponse

控制点 action 支持 AC_ADD / AC_REMOVE。proto 中定义了 AC_UPDATE,设备目前不处理,会返回 EC_ProtoError(desc 为 invalid action)。测量点 action 仅支持 AC_ADD / AC_REMOVE。下面 proto 代码块里的注释沿用设备端原文,写的是支持 AC_UPDATE,以这里的说明为准。

待机时设备不回复控制点请求;其他状态下会回复(本次只实测了扫描中),没有当前工程数据时返回 EC_RequestError(desc 为 no project data)。AC_ADD 实测忽略请求里的 id,响应里的 id 由设备分配,删除时使用这个值;AC_ADD 成功时 error.desc 是该点的位姿(x y z qw qx qy qz 共 7 个浮点数,空格分隔),不是文字描述。

注:测量点功能仅部分设备支持,使用前请确认目标设备是否具备该能力。

message ControlPointRequest {
    Header header = 1;
    Application.ActionCmd action = 2; // 仅支持 AC_ADD / AC_REMOVE / AC_UPDATE
    sint32 id = 3;                    // 控制点 ID
    sint32 type = 4;                  // 类型(0:设备,1:对中杆,100:旧版)
    string label = 5;                 // 控制点标签
    sint32 height = 6;                // 基点高度(单位:mm)
}

工程管理

接口方向topic(省略前缀)消息类型
工程列表操作REQ / RSPrequest·response/project_listProjectListRequest / ProjectListResponse

action 支持:

  • AC_LIST_ALL_PROJECTS:列出全部工程。
  • AC_MODIFY_PROJECT_LABELS:修改标签(需 id + tag_name)。
  • AC_DELETE_PROJECTS:删除工程(需 id_list)。

修改标签和删除工程在设备开始扫描中、扫描中、停止扫描中时会被拒绝,需要在待机时进行。AC_LIST_ALL_PROJECTS 返回的 poses_url、xbin_url 等是 HTTP 地址,主机的取值见 文件访问。

message ProjectListRequest {
    Header header = 1;
    // 仅支持 AC_LIST_ALL_PROJECTS / AC_MODIFY_PROJECT_LABELS / AC_DELETE_PROJECTS
    Application.ActionCmd action = 2;
    optional string id = 3;
    optional string tag_name = 4;
    repeated string id_list = 5; // 批量删除多个工程
}

RTK / Ntrip

接口方向topic(省略前缀)消息类型
获取 Ntrip 配置REQ / RSPrequest·response/get_ntrip_profileGetNtripProfileRequest / GetNtripProfileResponse
设置 Ntrip 配置REQ / RSPrequest·response/set_ntrip_profileSetNtripProfileRequest / SetNtripProfileResponse
获取 RTK 高级配置REQ / RSPrequest·response/get_rtk_advanceGetRtkAdvanceRequest / GetRtkAdvanceResponse
设置 RTK 高级配置REQ / RSPrequest·response/set_rtk_advanceSetRtkAdvanceRequest / SetRtkAdvanceResponse
  • 设置 Ntrip action 支持 AC_LOGIN / AC_LOGOUT。
  • CORS 类型:CUSTOM / QIANXUN / ZHONGYI。
  • 坐标系:UNKNOWN / ITRF2008 / WGS84 / CGCS2000。
  • RTK 卫星系统:GPS / BDS / GLO / GAL / QZSS / IRNSS。

注:RTK 硬件未连接(RtkStatus.state 为 HwDisconnected)或没有 RTK 设备时,设置 Ntrip 的请求会被拒绝,设备返回 EC_RequestError(desc 为 operation forbidden)。另有记录称,设备 Wi-Fi 处于 AP 模式时(Ntrip 数据通过 WebSocket 转发),响应会返回未知错误码,可忽略,设备的 Ntrip 连接不受影响;这一点在设备端源码中没有找到对应处理,未经验证。

数据处理

接口方向topic(省略前缀)消息类型
数据解包REQ / RSP / RPTrequest·response·report/data_unpackDataUnpackRequest / DataUnpackResponse / DataUnpackReport

data_source 目前支持 XBIN_DATA;不指定 data_topics 则解包全部数据;report/data_unpack 上报解包进度(0~100)。设备不在待机时,该请求返回 EC_RequestError。

message DataUnpackRequest {
    enum DataSource {
        XBIN_DATA = 0; // xbin 数据
    }
    Header header = 1;
    string project_name = 2;           // 工程名
    DataSource data_source = 3;        // 数据源
    repeated string data_topics = 4;   // 数据话题(不指定则默认解包全部)
    optional string data_ouputdir = 5; // 输出目录名(相对工程目录)
}

注:数据解包功能仅特定型号、特定固件版本的设备支持。使用前请通过心跳的 ProtocolVersion 或设备信息查询设备固件版本,并向 XGRIDS 确认目标型号 / 固件是否支持。不支持的设备上该请求不会生效。

错误码约定

请求-响应消息用 Error error = 15 字段承载结果。常见:EC_RequestSuccess、EC_RequestError、EC_ProtoError;Ntrip 相关:EC_NtripLoginSuccess、EC_NtripLogoutSuccess、EC_NtripLogoutFailed、EC_NtripDisConnected、EC_NtripNetworkError、EC_NtripAuthError。完整清单见 错误码。