package com.cmvr.edge.client.service;

import cmvr.api.AgvCommand;
import com.cmvr.edge.client.model.EdgeCommonVO;

/**
 * 边缘系统AGV服务
 *
 * @author cmvr-iot
 * @since 2026-06-11
 */
public interface EdgeAgvService {

    /**
     * 获取AGV状态信息
     *
     * @param edgeCommonVO 边缘通用参数
     * @return AGV状态信息
     */
    AgvCommand.AgvStatusInfo getStatusInfo(EdgeCommonVO edgeCommonVO);


    /**
     * 获取机器人位置
     *
     * @param edgeCommonVO 边缘通用参数
     * @return 机器人位置
     */
    AgvCommand.AgvRobotLocation getRobotLocation(EdgeCommonVO edgeCommonVO);

    /**
     * 获取地图状态（地图列表）
     *
     * @param edgeCommonVO 边缘通用参数
     * @return 地图状态
     */
    AgvCommand.AgvMapStatus getMapStatus(EdgeCommonVO edgeCommonVO);

    /**
     * 下载地图（从机器人下载地图到服务器）
     *
     * @param edgeCommonVO 边缘通用参数
     * @param mapName 地图名称
     * @return 下载结果（包含地图内容）
     */
    AgvCommand.AgvDownloadMapResult robotConfigDownloadMap(EdgeCommonVO edgeCommonVO, String mapName);


    /**
     * 获取电池状态
     *
     * @param edgeCommonVO 边缘通用参数
     * @return 电池状态
     */
    AgvCommand.AgvBatteryStatus getBatteryStatus(EdgeCommonVO edgeCommonVO);
}