package cn.iocoder.yudao.module.system.service.path;

import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapItemRespVO;
import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapItemSaveReqVO;
import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapLineSaveReqVO;
import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapSaveReqVO;

public interface PathPlanningService {
    void synchronousPoint(PositionMapSaveReqVO positionMapSaveReqVO);

    void synchronousAllItem(PositionMapSaveReqVO positionMapSaveReqVO);

    void synchronousLineAdd(PositionMapLineSaveReqVO data);

    void synchronousLineDelete(PositionMapLineSaveReqVO data);

    void synchronousLineUpdate(PositionMapLineSaveReqVO data);

    void synchronousAllItemAdd(PositionMapItemSaveReqVO positionMapItemSaveReqVO);

    void synchronousItemDelete(PositionMapItemSaveReqVO positionMapItemSaveReqVO);

    void synchronousItemUpdate(PositionMapItemSaveReqVO positionMapItemSaveReqVO);

    void robotDimensions();

    /**
     * 发送路径给车机
     * @param message
     */
    void sendPosedsToRobot(String message);

    /**
     * 同步PP任务状态
     * @param orderId
     * @param robotNo
     * @param s
     * @param type
     */
    void updateBehavior(String orderId, String robotNo, String s, String type);

    /**
     * 车辆即将走的点位
     * @param message
     */
    void pathPlanningMovePose(String message);

    /**
     * 仿真点位信息
     */
    void simulationRobotPoseRequest();

    /**
     * 路网匹配实时数据
     * @param message
     */
    void graphMatchData(String message);

    /**
     * 开始同步
     */
    void synchronousStart();

    /**
     * 发送区域变更点绑定信息
     */
    void sendPositionChangePointBinding();
}
