first commit -push

This commit is contained in:
dungtt
2025-10-15 15:15:53 +07:00
parent 674ae395be
commit a9577c5756
885 changed files with 74595 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
using System.ComponentModel.DataAnnotations;
namespace RobotNet.RobotShares.VDA5050.Factsheet;
#nullable disable
public enum ValueDataType
{
BOOL,
NUMBER,
INTEGER,
FLOAT,
STRING,
OBJECT,
ARRAY,
}
public class ActionParameters
{
[Required]
public string Key { get; set; }
[Required]
public string ValueDataType { get; set; }
public string Description { get; set; }
public bool IsOptional { get; set; }
}

View File

@@ -0,0 +1,23 @@
using System.ComponentModel.DataAnnotations;
namespace RobotNet.RobotShares.VDA5050.Factsheet;
#nullable disable
public enum ActionScopes
{
INSTANT,
NODE,
EDGE,
}
public class AgvActions
{
[Required]
public string ActionType { get; set; }
public string ActionDescription { get; set; }
[Required]
public string[] ActionScopes { get; set; }
public ActionParameters[] ActionParameters { get; set; }
public string ResultDescription { get; set; }
public string[] BlockingTypes { get; set; }
}

View File

@@ -0,0 +1,12 @@
using System.ComponentModel.DataAnnotations;
namespace RobotNet.RobotShares.VDA5050.Factsheet;
#nullable disable
public class AgvGeometry
{
public WheelDefinitions[] WheelDefinitions { get; set; }
public Envelopes2d[] Envelopes2d { get; set; }
public Envelopes3d[] Envelopes3d { get; set; }
}

View File

@@ -0,0 +1,15 @@
using System.ComponentModel.DataAnnotations;
namespace RobotNet.RobotShares.VDA5050.Factsheet;
public class BoundingBoxReference
{
[Required]
public double X { get; set; }
[Required]
public double Y { get; set; }
[Required]
public double Z { get; set; }
public double Theta { get; set; }
}

View File

@@ -0,0 +1,21 @@
using System.ComponentModel.DataAnnotations;
namespace RobotNet.RobotShares.VDA5050.Factsheet;
#nullable disable
public class PolygonPoints
{
[Required]
public double X { get; set; }
[Required]
public double Y { get; set; }
}
public class Envelopes2d
{
[Required]
public string Set { get; set; }
[Required]
public PolygonPoints[] PolygonPoints { get; set; }
public string Description { get; set; }
}

View File

@@ -0,0 +1,16 @@
using System.ComponentModel.DataAnnotations;
namespace RobotNet.RobotShares.VDA5050.Factsheet;
#nullable disable
public class Envelopes3d
{
[Required]
public string Set { get; set; }
[Required]
public string Format { get; set; }
public object Data { get; set; }
public string Url { get; set; }
public string Description { get; set; }
}

View File

@@ -0,0 +1,30 @@
using System.ComponentModel.DataAnnotations;
namespace RobotNet.RobotShares.VDA5050.Factsheet;
#nullable disable
public class FactSheetMsg
{
public uint HeaderId { get; set; }
public string Timestamp { get; set; }
[Required]
public string Version { get; set; }
[Required]
public string Manufacturer { get; set; }
[Required]
public string SerialNumber { get; set; }
[Required]
public TypeSpecification TypeSpecification { get; set; }
[Required]
public PhysicalParameters PhysicalParameters { get; set; }
[Required]
public ProtocolLimits ProtocolLimits { get; set; }
[Required]
public ProtocolFeatures ProtocolFeatures { get; set; }
[Required]
public AgvGeometry AgvGeometry { get; set; }
[Required]
public LoadSpecification LoadSpecification { get; set; }
//public LocalizationParameter LocalizationParameters { get; set; }
}

View File

@@ -0,0 +1,13 @@
using System.ComponentModel.DataAnnotations;
namespace RobotNet.RobotShares.VDA5050.Factsheet;
public class LoadDimensions
{
[Required]
public double Length { get; set; }
[Required]
public double Width { get; set; }
public double Height { get; set; }
}

View File

@@ -0,0 +1,26 @@
namespace RobotNet.RobotShares.VDA5050.Factsheet;
#nullable disable
public class LoadSets
{
public string SetName { get; set; }
public string LoadType { get; set; }
public string[] LoadPositions { get; set; }
public BoundingBoxReference BoundingBoxReference { get; set; }
public LoadDimensions LoadDimensions { get; set; }
public double MaxWeigth { get; set; }
public double MinLoadhandlingHeight { get; set; }
public double MaxLoadhandlingHeight { get; set; }
public double MinLoadhandlingDepth { get; set; }
public double MaxLoadhandlingDepth { get; set; }
public double MinLoadhandlingTilt { get; set; }
public double MaxLoadhandlingTilt { get; set; }
public double AgvSpeedLimit { get; set; }
public double AgvAccelerationLimit { get; set; }
public double AgvDecelerationLimit { get; set; }
public double PickTime { get; set; }
public double DropTime { get; set; }
public string Description { get; set; }
}

View File

@@ -0,0 +1,9 @@
namespace RobotNet.RobotShares.VDA5050.Factsheet;
#nullable disable
public class LoadSpecification
{
public string[] LoadPositions { get; set; }
public LoadSets[] LoadSets { get; set; }
}

View File

@@ -0,0 +1,6 @@
namespace RobotNet.RobotShares.VDA5050.Factsheet;
public class LocalizationParameter
{
public double LocalizationParameters { get; set; }
}

View File

@@ -0,0 +1,21 @@
namespace RobotNet.RobotShares.VDA5050.Factsheet;
public class MaxArrayLens
{
public int OrderNodes { get; set; }
public int OrderEdges { get; set; }
public int NodeActions { get; set; }
public int EdgeActions { get; set; }
public int ActionsActionsParameters { get; set; }
public int InstantActions { get; set; }
public int TrajectoryKnotVector { get; set; }
public int TrajectoryControlPoints { get; set; }
public int StateNodeStates { get; set; }
public int StateEdgeStates { get; set; }
public int StateLoads { get; set; }
public int StateActionStates { get; set; }
public int StateErrors { get; set; }
public int StateInformation { get; set; }
public int ErrorErrorReferences { get; set; }
public int InformationInfoReferences { get; set; }
}

View File

@@ -0,0 +1,12 @@
namespace RobotNet.RobotShares.VDA5050.Factsheet;
public class MaxStringLens
{
public int MsgLen { get; set; }
public int TopicSerialLen { get; set; }
public int TopicElemLen { get; set; }
public int IdLen { get; set; }
public bool IdNumericalOnly { get; set; }
public int EnumLen { get; set; }
public int LoadIdLen { get; set; }
}

View File

@@ -0,0 +1,19 @@
using System.ComponentModel.DataAnnotations;
namespace RobotNet.RobotShares.VDA5050.Factsheet;
#nullable disable
public enum Support
{
SUPPORTED,
REQUIRED,
}
public class OptionalParameters
{
[Required]
public string Parameter { get; set; }
[Required]
public string Support { get; set; }
public string Description { get; set; }
}

View File

@@ -0,0 +1,22 @@
using System.ComponentModel.DataAnnotations;
namespace RobotNet.RobotShares.VDA5050.Factsheet;
public class PhysicalParameters
{
[Required]
public double SpeedMin { get; set; }
[Required]
public double SpeedMax { get; set; }
[Required]
public double AccelerationMax { get; set; }
[Required]
public double DecelerationMax { get; set; }
public double HeightMin { get; set; }
[Required]
public double HeightMax { get; set; }
[Required]
public double Width { get; set; }
[Required]
public double Length { get; set; }
}

View File

@@ -0,0 +1,13 @@
using System.ComponentModel.DataAnnotations;
namespace RobotNet.RobotShares.VDA5050.Factsheet;
#nullable disable
public class ProtocolFeatures
{
[Required]
public OptionalParameters[] OptionalParameters { get; set; }
[Required]
public AgvActions[] AgvActions { get; set; }
}

View File

@@ -0,0 +1,14 @@
using System.ComponentModel.DataAnnotations;
namespace RobotNet.RobotShares.VDA5050.Factsheet;
#nullable disable
public class ProtocolLimits
{
[Required]
public MaxStringLens MaxStringLens { get; set; }
[Required]
public MaxArrayLens MaxArrayLens { get; set; }
[Required]
public Timing Timing { get; set; }
}

View File

@@ -0,0 +1,13 @@
using System.ComponentModel.DataAnnotations;
namespace RobotNet.RobotShares.VDA5050.Factsheet;
public class Timing
{
[Required]
public double MinOrderInterval { get; set; }
[Required]
public double MinStateInterval { get; set; }
public double DefaultStateInterval { get; set; }
public double VisualizationInterval { get; set; }
}

View File

@@ -0,0 +1,50 @@
using System.ComponentModel.DataAnnotations;
namespace RobotNet.RobotShares.VDA5050.Factsheet;
#nullable disable
public enum AgvKinematic
{
DIFF,
OMNI,
THREEWHEEL
}
public enum AgvClass
{
FORKLIFT,
CONVEYOR,
TUGGER,
CARRIER
}
public enum LocalizationTypes
{
NATURAL,
REFLECTOR,
RFID,
DMC,
SPOT,
GRID,
}
public enum NavigationTypes
{
PHYSICAL_LINDE_GUIDED,
VIRTUAL_LINE_GUIDED,
AUTONOMOUS,
}
public class TypeSpecification
{
[Required]
public string SeriesName { get; set; }
public string SeriesDescription { get; set; }
[Required]
public string AgvKinematic { get; set; }
[Required]
public string AgvClass { get; set; }
[Required]
public double MaxLoadMass { get; set; }
[Required]
public string[] LocalizationTypes { get; set; } = [];
[Required]
public string[] NavigationTypes { get; set; } = [];
}

View File

@@ -0,0 +1,39 @@
using System.ComponentModel.DataAnnotations;
namespace RobotNet.RobotShares.VDA5050.Factsheet;
#nullable disable
public enum WheelDefinitionsType
{
DRIVE,
CASTER,
FIXED,
MECANUM,
}
public class WheelDefinitionsPosition
{
[Required]
public double X { get; set; }
[Required]
public double Y { get; set; }
public double Theta { get; set; }
}
public class WheelDefinitions
{
[Required]
public string Type { get; set; }
[Required]
public bool IsActiveDriven { get; set; }
[Required]
public bool IsActiveSteered { get; set; }
[Required]
public WheelDefinitionsPosition Position { get; set; }
[Required]
public double Diameter { get; set; }
[Required]
public double Width { get; set; }
public double CenterDisplacement { get; set; }
public string Constraints { get; set; }
}