利用openTCS实现车辆调度系统(六)openTCS订单的使用
运输订单
由类的实例表示,描述了由车辆执行的进程。 通常,此过程是货物从一个地点到另一个地点的实际运输。 然而,A也可以只描述车辆到目的地位置的运动以及要执行的可选车辆操作。TransportOrderTransportOrder
以下所有内容都是 openTCS 中“运输订单”的示例,即使实际上没有传输任何内容:
- 将货物从某个地方运输到其他地方的经典订单:
a) 移动到位置“A”并在那里执行“装载货物”操作。
b) 移动到位置“B”并在那里执行“卸载货物”操作。 - 操纵运输或固定货物:
a) 移动到位置“A”并在那里执行“钻取”操作。
b) 移动到位置“B”并在那里执行“锤子”操作。 - 将车辆移至停车位置的命令:
a) 移动到点“Park 01”(不执行任何特定操作)。 - 为车辆电池充电的命令:
a) 移动到位置“充电站”并在那里执行“充电电池”操作。
订单的生命周期
→ RAW:初始化状态
→ACTIVE:被激活
→DISPATCHABLE / UNROUTABLE:如果可以到达,状态更改为等待派发,如果目的地无法到达,状态更改为不可路由。
→BEING_PROCESSED:正在执行状态。
→WITHDRAWN:如果废弃了更改为废弃状态,
→FAILED:订单运行过程中失败,置为失败。
→FINISHED:订单结束。

订单组成结构
一个订单包含多个driverOrder,一个driverOrder包含一个目的地和对应的操作,对应0或者1个路由。如果车辆在原地做动作,路由为0,如果去到目的地做动作,路由为1。一个路由有多个step组成,小车适配器获取step执行。


创建订单
web API创建订单:
rmi创建订单:
// 目的地列表,一个目的地对应一个driverOrder
List<DestinationCreationTO> destinations= List.of(new DestinationCreationTO("Some location", "Some operation"));
// 订单
TransportOrderCreationTO orderTO= new TransportOrderCreationTO("MyTransportOrder", destinations);
// 指定订单运行车辆,以及结束时间,可选。如果不指定运行车辆,内核会自动选择
orderTO = orderTO.withIntendedVehicleName("Some vehicle").withDeadline(Instant.now().plus(1, ChronoUnit.HOURS));// 创建订单
TransportOrderService transportOrderService = getATransportOrderService();
transportOrderService.createTransportOrder(orderTO);
撤销订单
// 根据订单名撤销
DispatcherService dispatcherService = getADispatcherService();
dispatcherService.withdrawByTransportOrder(someOrder.getReference(), true);// 根据车辆撤销
DispatcherService dispatcherService = getADispatcherService();
dispatcherService.withdrawByVehicle(curVehicle.getReference(), true);
查看订单
web API:

rmi接口:
Set<org.opentcs.data.order.TransportOrder> transportOrders = kernelServicePortal.getTransportOrderService().fetchObjects(org.opentcs.data.order.TransportOrder.class, new TransportOrderFilter());// 过滤器
public class TransportOrderFilter implements Predicate<TransportOrder>, Serializable {@Overridepublic boolean test(TransportOrder transportOrder) {return true;}
}
上一篇:利用openTCS实现车辆调度系统(五)openTCS WEB接口及扩展
下一篇:路径规划二次开发
相关文章:
利用openTCS实现车辆调度系统(六)openTCS订单的使用
运输订单 由类的实例表示,描述了由车辆执行的进程。 通常,此过程是货物从一个地点到另一个地点的实际运输。 然而,A也可以只描述车辆到目的地位置的运动以及要执行的可选车辆操作。TransportOrderTransportOrder 以下所有内容都是 openTCS …...
第一天 什么是CSRF ?
✅作者简介:大家好,我是Cisyam,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Cisyam-Shark的博客 💞当前专栏: 每天一个知识点 ✨特色专…...
知识图谱推荐系统研究综述
基于协同过滤的推荐是当前应用最为广泛的推荐方法,但也存在着新用户或新项目的冷启动以及数据稀疏等问题。针对上述两种方法出现的问题,研究者进一步提出了混合推荐系统。混合推荐系统结合上述两种方法的优点,可以有效缓解其中的不足,增加推荐的准确性。但是,混合推荐系统…...
基于Centos7的Nginx源码安装
目录 1、准备安装环境 2、获取tar包: 3、解压创建软链接 4、创建用户和组 5、执行安装 6、创建服务脚本 7、开启nginx:编辑编辑 1、准备安装环境 yum insatall -y make gcc gcc-c pcre-devel #pcre-devel -- pcre库 #安装openssl-devel yum …...
Ubuntu 20.04 安装 Stable Diffusionn
步骤 1:安装 wget、git、Python3 和 Python3虚拟环境(如果已安装可忽略这步骤) sudo apt install wget git python3 python3-venv步骤 2:克隆 SD 项目到本地 git clone https://github.com/AUTOMATIC1111/stable-diffusion-webu…...
vue name命名错误 Do not use built-in or reserved HTML elements as component
描述: Do not use built-in or reserved HTML elements as component id: header 这里指的是components的名称命名不正确。 在项目中我使用的是header 作为组件名称,但是在前端html中这个是内置组件来的,名称已被占用不能再使用这些名称了。…...
知识付费系统开发:构建高效智能的付费内容平台
随着数字化时代的来临,知识付费正迅速崭露头角,为知识创作者和求知者带来了全新的商机。在这个背景下,开发一款高效智能的知识付费系统成为了一项重要的任务。本文将深入探讨如何基于Python编程语言和相关技术构建一个智能的知识付费内容平台…...
数据结构----结构--线性结构--递归
数据结构----结构–线性结构–递归 1.递归的概念 递归:将一个问题拆解成解决方案完全相同的子问题,并且有一个明确的终点 看如下递归代码理解一下递归 void fun(int n){if(n4){printf("%d",n);return;}fun(n1);printf("%d",n); …...
在Windows批处理程序中实现延时功能
方法1:使用PowerShell echo off:: 使用 PowerShell 的 Start-Sleep 命令来实现精确延时 powershell -command "Start-Sleep -Milliseconds 3000"echo Delay complete. 不过,通常Win7专业版和旗舰版中都会默认安装了PowerShell,但是标准版和家…...
Java基础入门篇——Java变量类型的转换和运算符(七)
目录 一、变量类型 1.1自动类型转换(隐式转换) 1.2 强制类型转换(显式转换) 1.3类型转换的其他情况 二、运算符 2.1算术运算符 2.2比较运算符 2.3逻辑运算符 2.4位运算符 三、总结 在Java中,变量类型的转换…...
20230807通过ffmpeg将DTS编码的AUDIO音频转换为AAC编码
20230807通过ffmpeg将DTS编码的AUDIO音频转换为AAC编码 2023/8/7 20:04 ffmpeg dts 转AAC 缘起:由于网上找的电影没有中文字幕,有内置的英文字幕,但是还是通过剪映/RP2023识别一份英文字幕备用! I:\Downloads\2005[红眼航班]Red E…...
一生一芯1——windows与Ubuntu双系统安装
UltraISO下载 下载链接:https://pan.baidu.com/s/18ukDs6yL64qU6thYyZEo-Q?pwdo8he 提取码:o8he 一路傻瓜安装,安装后点击继续试用 Ubuntu系统下载 这里我使用的是官网的22.04版本,由于大于4G,无法上传至百度网盘…...
Linux下的CGI服务器
一、概述 使用进程池,半同步/半异步并发模式。 同步进程:工作子进程负责进行具体的连接以及具体的I/O,顺序执行 异步进程:主进程监听连接事件,将连接任务分发给子线程 二、设计逻辑 1.设计进程池的创建逻辑 2.父…...
后端开发3.Fastdfs的搭建
使用Docker安装 拉取镜像 docker pull registry.cn-beijing.aliyuncs.com/tianzuo/fastdfs 启动容器(修改ip)【fastdfs/自启动】(22122/23000/8888) docker run -d --restart=always --privileged=true --net=host --name=fastdfs -e IP=你的ip地址 -e WEB_PORT=8888 -v …...
目标检测与跟踪 (3)- TensorRTYOLO V8性能优化与部署测试
系列文章目录 目标检测与跟踪 (1)- 机器人视觉与YOLO V8_Techblog of HaoWANG的博客-CSDN博客 目标检测与跟踪 (2)- YOLO V8配置与测试_Techblog of HaoWANG的博客-CSDN博客 目录 系列文章目录 前言 YOLO v8 TensorRT 一、…...
SAS-数据集SQL垂直(纵向)合并
一、SQL垂直合并的基本语法 一个selectt对应一个表,select之间用set-operator连接,set-operator包括:except(期望)、intersect(相交)、union(合并),outer un…...
SpringBoot3 整合Prometheus + Grafana
通过Prometheus Grafana对线上应用进行观测、监控、预警… 健康状况【组件状态、存活状态】Health运行指标【cpu、内存、垃圾回收、吞吐量、响应成功率…】Metrics… 1. SpringBoot Actuator 1. 基本使用 1. 场景引入 <dependency><groupId>org.springframew…...
Python实现GA遗传算法优化LightGBM回归模型(LGBMRegressor算法)项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 遗传算法(Genetic Algorithm,GA)最早是由美国的 John holland于20世…...
【基于IDEA + Spark 3.4.1 + sbt 1.9.3 + Spark MLlib 构建逻辑回归鸢尾花分类预测模型】
逻辑回归进行鸢尾花分类的案例 背景说明: 基于IDEA Spark 3.4.1 sbt 1.9.3 Spark MLlib 构建逻辑回归鸢尾花分类预测模型,这是一个分类模型案例,通过该案例,可以快速了解Spark MLlib分类预测模型的使用方法。 依赖 ThisBui…...
资深测试老鸟整理,性能测试-常见调优详细,卷起来...
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 常见的一些性能缺…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
