Initial commit
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
using RobotNet.VDA5050.Type;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
|
||||
public class ActionParameter
|
||||
{
|
||||
[Required]
|
||||
[JsonPropertyName("key")]
|
||||
public string Key { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("valueDataType")]
|
||||
[JsonConverter(typeof(JsonStringEnumConverter))]
|
||||
public ValueDataType ValueDataType { get; set; }
|
||||
|
||||
[JsonPropertyName("description")]
|
||||
public string Description { get; set; } = string.Empty;
|
||||
|
||||
[JsonPropertyName("isOptional")]
|
||||
public bool IsOptional { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
using RobotNet.VDA5050.Type;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
public class AgvAction
|
||||
{
|
||||
[Required]
|
||||
[JsonPropertyName("actionType")]
|
||||
public string ActionType { get; set; } = string.Empty;
|
||||
|
||||
[JsonPropertyName("actionDescription")]
|
||||
public string ActionDescription { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("actionScopes")]
|
||||
[JsonConverter(typeof(JsonStringEnumConverter))]
|
||||
public ActionScope[] ActionScopes { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("actionParameters")]
|
||||
public ActionParameter[] ActionParameters { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("resultDescription")]
|
||||
public string ResultDescription { get; set; } = string.Empty;
|
||||
|
||||
[JsonPropertyName("blockingTypes")]
|
||||
[JsonConverter(typeof(JsonStringEnumConverter))]
|
||||
public BlockingType[] BlockingTypes { get; set; } = [];
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
|
||||
public class AgvGeometry
|
||||
{
|
||||
[JsonPropertyName("wheelDefinitions")]
|
||||
public WheelDefinition[] WheelDefinitions { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("envelopes2d")]
|
||||
public Envelopes2d[] Envelopes2d { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("envelopes3d")]
|
||||
public Envelopes3d[] Envelopes3d { get; set; } = [];
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
public class BoundingBoxReference
|
||||
{
|
||||
[Required]
|
||||
[JsonPropertyName("x")]
|
||||
public double X { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("y")]
|
||||
public double Y { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("z")]
|
||||
public double Z { get; set; }
|
||||
|
||||
[JsonPropertyName("theta")]
|
||||
public double Theta { get; set; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
public class PolygonPoint
|
||||
{
|
||||
[Required]
|
||||
[JsonPropertyName("x")]
|
||||
public double X { get; set; }
|
||||
|
||||
[JsonPropertyName("y")]
|
||||
[Required]
|
||||
public double Y { get; set; }
|
||||
}
|
||||
|
||||
public class Envelopes2d
|
||||
{
|
||||
[JsonPropertyName("set")]
|
||||
[Required]
|
||||
public string Set { get; set; } = string.Empty;
|
||||
|
||||
[JsonPropertyName("polygonPoints")]
|
||||
[Required]
|
||||
public PolygonPoint[] PolygonPoints { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("description")]
|
||||
public string Description { get; set; } = string.Empty;
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
public class Envelopes3d
|
||||
{
|
||||
[Required]
|
||||
[JsonPropertyName("set")]
|
||||
public string Set { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("format")]
|
||||
public string Format { get; set; } = string.Empty;
|
||||
|
||||
[JsonPropertyName("data")]
|
||||
public object? Data { get; set; }
|
||||
|
||||
[JsonPropertyName("url")]
|
||||
public string Url { get; set; } = string.Empty;
|
||||
|
||||
[JsonPropertyName("description")]
|
||||
public string Description { get; set; } = string.Empty;
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
|
||||
public class FactSheetMsg
|
||||
{
|
||||
[JsonPropertyName("headerId")]
|
||||
public uint HeaderId { get; set; }
|
||||
|
||||
[JsonPropertyName("timestamp")]
|
||||
[JsonConverter(typeof(DateTimeConverter))]
|
||||
public DateTime Timestamp { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("version")]
|
||||
public string Version { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("manufacturer")]
|
||||
public string Manufacturer { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("serialNumber")]
|
||||
public string SerialNumber { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("typeSpecification")]
|
||||
public TypeSpecification TypeSpecification { get; set; } = new();
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("physicalParameters")]
|
||||
public PhysicalParameter PhysicalParameters { get; set; } = new();
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("protocolLimits")]
|
||||
public ProtocolLimits ProtocolLimits { get; set; } = new();
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("protocolFeatures")]
|
||||
public ProtocolFeatures ProtocolFeatures { get; set; } = new();
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("agvGeometry")]
|
||||
public AgvGeometry AgvGeometry { get; set; } = new();
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("loadSpecification")]
|
||||
public LoadSpecification LoadSpecification { get; set; } = new();
|
||||
|
||||
[JsonPropertyName("vehicleConfig")]
|
||||
public VehicleConfig VehicleConfig { get; set; } = new();
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
public class LoadDimensions
|
||||
{
|
||||
[Required]
|
||||
[JsonPropertyName("length")]
|
||||
public double Length { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("width")]
|
||||
public double Width { get; set; }
|
||||
|
||||
[JsonPropertyName("height")]
|
||||
public double Height { get; set; }
|
||||
|
||||
}
|
||||
61
srcs/RobotNet10/Shared/RobotNet.VDA5050/Factsheet/LoadSet.cs
Normal file
61
srcs/RobotNet10/Shared/RobotNet.VDA5050/Factsheet/LoadSet.cs
Normal file
@@ -0,0 +1,61 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
public class LoadSet
|
||||
{
|
||||
[JsonPropertyName("setName")]
|
||||
public string SetName { get; set; } = string.Empty;
|
||||
|
||||
[JsonPropertyName("loadType")]
|
||||
public string LoadType { get; set; } = string.Empty;
|
||||
|
||||
[JsonPropertyName("loadPositions")]
|
||||
public string[] LoadPositions { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("boundingBoxReference")]
|
||||
public BoundingBoxReference BoundingBoxReference { get; set; } = new();
|
||||
|
||||
[JsonPropertyName("loadDimensions")]
|
||||
public LoadDimensions LoadDimensions { get; set; } = new();
|
||||
|
||||
[JsonPropertyName("maxWeight")]
|
||||
public double MaxWeigth { get; set; }
|
||||
|
||||
[JsonPropertyName("minLoadhandlingHeight")]
|
||||
public double MinLoadhandlingHeight { get; set; }
|
||||
|
||||
[JsonPropertyName("maxLoadhandlingHeight")]
|
||||
public double MaxLoadhandlingHeight { get; set; }
|
||||
|
||||
[JsonPropertyName("minLoadhandlingDepth")]
|
||||
public double MinLoadhandlingDepth { get; set; }
|
||||
|
||||
[JsonPropertyName("maxLoadhandlingDepth")]
|
||||
public double MaxLoadhandlingDepth { get; set; }
|
||||
|
||||
[JsonPropertyName("minLoadhandlingTilt")]
|
||||
public double MinLoadhandlingTilt { get; set; }
|
||||
|
||||
[JsonPropertyName("maxLoadhandlingTilt")]
|
||||
public double MaxLoadhandlingTilt { get; set; }
|
||||
|
||||
[JsonPropertyName("agvSpeedLimit")]
|
||||
public double AgvSpeedLimit { get; set; }
|
||||
|
||||
[JsonPropertyName("agvAccelerationLimit")]
|
||||
public double AgvAccelerationLimit { get; set; }
|
||||
|
||||
[JsonPropertyName("agvDecelerationLimit")]
|
||||
public double AgvDecelerationLimit { get; set; }
|
||||
|
||||
[JsonPropertyName("pickTime")]
|
||||
public double PickTime { get; set; }
|
||||
|
||||
[JsonPropertyName("dropTime")]
|
||||
public double DropTime { get; set; }
|
||||
|
||||
[JsonPropertyName("description")]
|
||||
public string Description { get; set; } = string.Empty;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
|
||||
public class LoadSpecification
|
||||
{
|
||||
[JsonPropertyName("loadPositions")]
|
||||
public string[] LoadPositions { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("loadSets")]
|
||||
public LoadSet[] LoadSets { get; set; } = [];
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
public class OrderMaxArrayLens
|
||||
{
|
||||
[JsonPropertyName("nodes")]
|
||||
public int Nodes { get; set; }
|
||||
|
||||
[JsonPropertyName("edges")]
|
||||
public int Edges { get; set; }
|
||||
}
|
||||
public class NodeMaxArrayLens
|
||||
{
|
||||
[JsonPropertyName("actions")]
|
||||
public int Actions { get; set; }
|
||||
}
|
||||
|
||||
public class EdgeMaxArrayLens
|
||||
{
|
||||
[JsonPropertyName("actions")]
|
||||
public int Actions { get; set; }
|
||||
}
|
||||
|
||||
public class ActionMaxArrayLens
|
||||
{
|
||||
[JsonPropertyName("actionsParameters")]
|
||||
public int ActionsParameters { get; set; }
|
||||
}
|
||||
|
||||
public class TrajectoryMaxArrayLens
|
||||
{
|
||||
[JsonPropertyName("knotVector")]
|
||||
public int KnotVector { get; set; }
|
||||
|
||||
[JsonPropertyName("controlPoints")]
|
||||
public int ControlPoints { get; set; }
|
||||
}
|
||||
|
||||
public class StateMaxArrayLens
|
||||
{
|
||||
[JsonPropertyName("nodeStates")]
|
||||
public int NodeStates { get; set; }
|
||||
|
||||
[JsonPropertyName("edgeStates")]
|
||||
public int EdgeStates { get; set; }
|
||||
|
||||
[JsonPropertyName("loads")]
|
||||
public int Loads { get; set; }
|
||||
|
||||
[JsonPropertyName("actionStates")]
|
||||
public int ActionStates { get; set; }
|
||||
|
||||
[JsonPropertyName("errors")]
|
||||
public int Errors { get; set; }
|
||||
|
||||
[JsonPropertyName("information")]
|
||||
public int Information { get; set; }
|
||||
|
||||
[JsonPropertyName("errorReferences")]
|
||||
public int ErrorReferences { get; set; }
|
||||
}
|
||||
|
||||
public class InformationMaxArrayLens
|
||||
{
|
||||
[JsonPropertyName("infoReferences")]
|
||||
public int InfoReferences { get; set; }
|
||||
}
|
||||
|
||||
public class MaxArrayLens
|
||||
{
|
||||
[JsonPropertyName("order")]
|
||||
public OrderMaxArrayLens Order { get; set; } = new();
|
||||
|
||||
[JsonPropertyName("node")]
|
||||
public NodeMaxArrayLens Node { get; set; } = new();
|
||||
|
||||
[JsonPropertyName("edge")]
|
||||
public EdgeMaxArrayLens Edge { get; set; } = new();
|
||||
|
||||
[JsonPropertyName("action")]
|
||||
public ActionMaxArrayLens Action { get; set; } = new();
|
||||
|
||||
[JsonPropertyName("instantActions")]
|
||||
public int InstantActions { get; set; }
|
||||
|
||||
[JsonPropertyName("trajectory")]
|
||||
public TrajectoryMaxArrayLens Trajectory { get; set; } = new();
|
||||
|
||||
[JsonPropertyName("state")]
|
||||
public StateMaxArrayLens State { get; set; } = new();
|
||||
|
||||
[JsonPropertyName("information")]
|
||||
public InformationMaxArrayLens Information { get; set; } = new();
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
public class MaxStringLens
|
||||
{
|
||||
[JsonPropertyName("msgLen")]
|
||||
public int MsgLen { get; set; }
|
||||
|
||||
[JsonPropertyName("topicSerialLen")]
|
||||
public int TopicSerialLen { get; set; }
|
||||
|
||||
[JsonPropertyName("topicElemLen")]
|
||||
public int TopicElemLen { get; set; }
|
||||
|
||||
[JsonPropertyName("idLen")]
|
||||
public int IdLen { get; set; }
|
||||
|
||||
[JsonPropertyName("idNumericalOnly")]
|
||||
public bool IdNumericalOnly { get; set; }
|
||||
|
||||
[JsonPropertyName("enumLen")]
|
||||
public int EnumLen { get; set; }
|
||||
|
||||
[JsonPropertyName("loadIdLen")]
|
||||
public int LoadIdLen { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
using RobotNet.VDA5050.Type;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
|
||||
public class OptionalParameter
|
||||
{
|
||||
[Required]
|
||||
[JsonPropertyName("parameter")]
|
||||
public string Parameter { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("support")]
|
||||
[JsonConverter(typeof(JsonStringEnumConverter))]
|
||||
public Support Support { get; set; }
|
||||
|
||||
[JsonPropertyName("description")]
|
||||
public string Description { get; set; } = string.Empty;
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
public class PhysicalParameter
|
||||
{
|
||||
[Required]
|
||||
[JsonPropertyName("speedMin")]
|
||||
public double SpeedMin { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("speedMax")]
|
||||
public double SpeedMax { get; set; }
|
||||
|
||||
[JsonPropertyName("angularSpeedMin")]
|
||||
public double AngularSpeedMin { get; set; }
|
||||
|
||||
[JsonPropertyName("angularSpeedMax")]
|
||||
public double AngularSpeedMax { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("accelerationMax")]
|
||||
public double AccelerationMax { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("decelerationMax")]
|
||||
public double DecelerationMax { get; set; }
|
||||
|
||||
[JsonPropertyName("heightMin")]
|
||||
public double HeightMin { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("heightMax")]
|
||||
public double HeightMax { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("width")]
|
||||
public double Width { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("length")]
|
||||
public double Length { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
|
||||
public class ProtocolFeatures
|
||||
{
|
||||
[Required]
|
||||
[JsonPropertyName("optionalParameters")]
|
||||
public OptionalParameter[] OptionalParameters { get; set; } = [];
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("agvActions")]
|
||||
public AgvAction[] AgvActions { get; set; } = [];
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
public class ProtocolLimits
|
||||
{
|
||||
[Required]
|
||||
[JsonPropertyName("maxStringLens")]
|
||||
public MaxStringLens MaxStringLens { get; set; } = new();
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("maxArrayLens")]
|
||||
public MaxArrayLens MaxArrayLens { get; set; } = new();
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("timing")]
|
||||
public Timing Timing { get; set; } = new();
|
||||
}
|
||||
21
srcs/RobotNet10/Shared/RobotNet.VDA5050/Factsheet/Timing.cs
Normal file
21
srcs/RobotNet10/Shared/RobotNet.VDA5050/Factsheet/Timing.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
public class Timing
|
||||
{
|
||||
[Required]
|
||||
[JsonPropertyName("minOrderInterval")]
|
||||
public double MinOrderInterval { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("minStateInterval")]
|
||||
public double MinStateInterval { get; set; }
|
||||
|
||||
[JsonPropertyName("defaultStateInterval")]
|
||||
public double DefaultStateInterval { get; set; }
|
||||
|
||||
[JsonPropertyName("visualizationInterval")]
|
||||
public double VisualizationInterval { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
using RobotNet.VDA5050.Type;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
public class TypeSpecification
|
||||
{
|
||||
[Required]
|
||||
[JsonPropertyName("seriesName")]
|
||||
public string SeriesName { get; set; } = string.Empty;
|
||||
|
||||
[JsonPropertyName("seriesDescription")]
|
||||
public string SeriesDescription { get; set; } = string.Empty;
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("agvKinematic")]
|
||||
[JsonConverter(typeof(JsonStringEnumConverter))]
|
||||
public AgvKinematic AgvKinematic { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("agvClass")]
|
||||
[JsonConverter(typeof(JsonStringEnumConverter))]
|
||||
public AgvClass AgvClass { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("maxLoadMass")]
|
||||
public double MaxLoadMass { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("localizationTypes")]
|
||||
[JsonConverter(typeof(JsonStringEnumConverter))]
|
||||
public LocalizationType[] LocalizationTypes { get; set; } = [];
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("navigationTypes")]
|
||||
[JsonConverter(typeof(JsonStringEnumConverter))]
|
||||
public NavigationType[] NavigationTypes { get; set; } = [];
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
public class Version
|
||||
{
|
||||
[JsonPropertyName("key")]
|
||||
public string Key { get; set; } = string.Empty;
|
||||
|
||||
[JsonPropertyName("value")]
|
||||
public string Value { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
public class Network
|
||||
{
|
||||
[JsonPropertyName("dnsServers")]
|
||||
public string[] DnsServers { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("ntpServers")]
|
||||
public string[] NtpServers { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("localIpAddress")]
|
||||
public string LocalIpAddress { get; set; } = string.Empty;
|
||||
|
||||
[JsonPropertyName("netmask")]
|
||||
public string Netmask { get; set; } = string.Empty;
|
||||
|
||||
[JsonPropertyName("defaultGateway")]
|
||||
public string DefaultGateway { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
public class VehicleConfig
|
||||
{
|
||||
[JsonPropertyName("versions")]
|
||||
public Version[] Versions { get; set; } = [];
|
||||
|
||||
[JsonPropertyName("network")]
|
||||
public Network Network { get; set; } = new();
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
using RobotNet.VDA5050.Type;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace RobotNet.VDA5050.Factsheet;
|
||||
|
||||
public class WheelDefinitionsPosition
|
||||
{
|
||||
[Required]
|
||||
[JsonPropertyName("x")]
|
||||
public double X { get; set; }
|
||||
|
||||
[JsonPropertyName("y")]
|
||||
[Required]
|
||||
public double Y { get; set; }
|
||||
|
||||
[JsonPropertyName("theta")]
|
||||
public double Theta { get; set; }
|
||||
}
|
||||
|
||||
public class WheelDefinition
|
||||
{
|
||||
[Required]
|
||||
[JsonPropertyName("type")]
|
||||
[JsonConverter(typeof(JsonStringEnumConverter))]
|
||||
public WheelDefinitionsType Type { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("isActiveDriven")]
|
||||
public bool IsActiveDriven { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("isActiveSteered")]
|
||||
public bool IsActiveSteered { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("position")]
|
||||
public WheelDefinitionsPosition Position { get; set; } = new();
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("diameter")]
|
||||
public double Diameter { get; set; }
|
||||
|
||||
[Required]
|
||||
[JsonPropertyName("width")]
|
||||
public double Width { get; set; }
|
||||
|
||||
[JsonPropertyName("centerDisplacement")]
|
||||
public double CenterDisplacement { get; set; }
|
||||
|
||||
[JsonPropertyName("constraints")]
|
||||
public string Constraints { get; set; } = string.Empty;
|
||||
}
|
||||
Reference in New Issue
Block a user