vda5050_types/
lib.rs

1//!
2//! This crate provides data-types defined by the [VDA5050](https://github.com/VDA5050/VDA5050)
3//! standard. VDA5050 is an open standard for communication between AGV fleets and a central master control.
4//!
5//! # Crate Features
6//!
7//! Enable or disable features according to your needs and in order to optimize for compile time and space.
8//!
9//! | Feature   | Default  | Description                                                                                                            |
10//! | --------- |:--------:| ---------------------------------------------------------------------------------------------------------------------- |
11//! | fmt       | ✔ | When enabled, certain types will provide an implementation for [`core::fmt::Debug`] and [`core::fmt::Display`] traits. |
12//! | serde     | ✗ | When enabled, certain types will provide an implementation for [`serde::Serialize`] and [`serde::Deserialize`] traits. |
13//! | v2_0      | ✗ | When enabled, VDA5050 version 2 types are available.                                                                   |
14//!
15//! <sup>&#x2714; enabled, &#x2717; disabled</sup>
16//!
17#![cfg_attr(not(test), no_std)]
18#![cfg_attr(docsrs, feature(doc_cfg))]
19
20extern crate alloc;
21
22mod action;
23mod common;
24mod connection;
25mod factsheet;
26mod instant_actions;
27mod order;
28mod state;
29mod visualization;
30
31#[cfg(any(feature = "v2_0", doc))]
32#[cfg_attr(docsrs, doc(cfg(feature = "v2_0")))]
33pub mod v2_0 {
34
35    pub mod common {
36        pub use crate::action::Action as Action;
37        pub use crate::action::ActionParameter as ActionParameter;
38        pub use crate::action::BlockingType as BlockingType;
39
40        pub use crate::common::AgvPosition as AgvPosition;
41        pub use crate::common::BoundingBoxReference as BoundingBoxReference;
42        pub use crate::common::ControlPoint as ControlPoint;
43        pub use crate::common::HeaderId as HeaderId;
44        pub use crate::common::LoadDimensions as LoadDimensions;
45        pub use crate::common::NodePosition as NodePosition;
46        pub use crate::common::Timestamp as Timestamp;
47        pub use crate::common::Trajectory as Trajectory;
48        pub use crate::common::Velocity as Velocity;
49    }
50
51    pub mod connection {
52        pub use crate::connection::Connection as Connection;
53        pub use crate::connection::ConnectionState as ConnectionState;
54    }
55
56    pub mod factsheet {
57        pub use crate::factsheet::ActionParameter as ActionParameter;
58        pub use crate::factsheet::ActionScope as ActionScope;
59        pub use crate::factsheet::AgvAction as AgvAction;
60        pub use crate::factsheet::AgvClass as AgvClass;
61        pub use crate::factsheet::AgvGeometry as AgvGeometry;
62        pub use crate::factsheet::AgvKinematic as AgvKinematic;
63        pub use crate::factsheet::Data as Data;
64        pub use crate::factsheet::Envelopes2d as Envelopes2d;
65        pub use crate::factsheet::Envelopes3d as Envelopes3d;
66        pub use crate::factsheet::Factsheet as Factsheet;
67        pub use crate::factsheet::LoadSet as LoadSet;
68        pub use crate::factsheet::LoadSpecification as LoadSpecification;
69        pub use crate::factsheet::LocalizationType as LocalizationType;
70        pub use crate::factsheet::MaxArrayLens as MaxArrayLens;
71        pub use crate::factsheet::MaxStringLens as MaxStringLens;
72        pub use crate::factsheet::NavigationType as NavigationType;
73        pub use crate::factsheet::OptionalParameter as OptionalParameter;
74        pub use crate::factsheet::PhysicalParameters as PhysicalParameters;
75        pub use crate::factsheet::PolygonPoint as PolygonPoint;
76        pub use crate::factsheet::Position as Position;
77        pub use crate::factsheet::ProtocolFeatures as ProtocolFeatures;
78        pub use crate::factsheet::ProtocolLimits as ProtocolLimits;
79        pub use crate::factsheet::Support as Support;
80        pub use crate::factsheet::Timing as Timing;
81        pub use crate::factsheet::TypeSpecification as TypeSpecification;
82        pub use crate::factsheet::ValueDataType as ValueDataType;
83        pub use crate::factsheet::WheelDefinition as WheelDefinition;
84        pub use crate::factsheet::WheelType as WheelType;
85    }
86
87    pub mod instant_actions {
88        pub use crate::instant_actions::InstantActions as InstantActions;
89    }
90
91    pub mod order {
92        pub use crate::order::Edge as Edge;
93        pub use crate::order::Node as Node;
94        pub use crate::order::Order as Order;
95        pub use crate::order::OrientationType as OrientationType;
96    }
97
98    pub mod state {
99        pub use crate::state::ActionState as ActionState;
100        pub use crate::state::BatteryState as BatteryState;
101        pub use crate::state::EdgeState as EdgeState;
102        pub use crate::state::Error as Error;
103        pub use crate::state::ErrorReference as ErrorReference;
104        pub use crate::state::ErrorLevel as ErrorLevel;
105        pub use crate::state::EStop as EStop;
106        pub use crate::state::Information as Information;
107        pub use crate::state::InfoReference as InfoReference;
108        pub use crate::state::InfoLevel as InfoLevel;
109        pub use crate::state::Load as Load;
110        pub use crate::state::NodeState as NodeState;
111        pub use crate::state::OperatingMode as OperatingMode;
112        pub use crate::state::SafetyState as SafetyState;
113        pub use crate::state::State as State;
114    }
115
116    pub mod visualization {
117        pub use crate::visualization::Visualization;
118    }
119}