FactSheet_Jbt.cs 3.03 KB
using System.Text.Json.Serialization;
using Rcs.Domain.Extensions;

namespace Rcs.Domain.Models.VDA5050.Jbt
{
    /// <summary>
    /// AGV״̬��Ϣ��Jbt����Э����չ��
    /// </summary>
    [ProtocolInfo("Jbt", "2.0.0", nameof(FactSheet))]
    public class FactSheet_Jbt : FactSheet
    {
        #region �����ֶ�
        /// <summary>
        /// ���͹淶��AGV����������
        /// </summary>
        [JsonPropertyName("typeSpecification")]
        public Jbt_TypeSpecification JbtTypeSpecification { get; set; } = new();
        /// <summary>
        /// ��������������������ԣ�
        /// </summary>
        [JsonPropertyName("physicalParameters")]
        public Jbt_PhysicalParameters JbtPhysicalParameters { get; set; } = new();
        #endregion

        #region ɾ���ֶ�
        [JsonIgnore]
        public new TypeSpecification TypeSpecification { get; set; } = new();
        [JsonIgnore]
        public new PhysicalParameters PhysicalParameters { get; set; } = new();
        /// <summary>
        /// Э�����ƣ�MQTTͨ�����ƣ�
        /// </summary>
        [JsonIgnore]
        public new ProtocolLimits ProtocolLimits { get; set; } = new();

        /// <summary>
        /// Э�����ԣ�֧�ֵ�VDA5050���ԣ�
        /// </summary>
        [JsonIgnore]
        public new ProtocolFeatures ProtocolFeatures { get; set; } = new();

        /// <summary>
        /// AGV���νṹ�������ͳ��ֶ��壩
        /// </summary>
        [JsonIgnore]
        public new  AgvGeometry AgvGeometry { get; set; } = new ();

        /// <summary>
        /// ���ع淶�����ش���������
        /// </summary>
        [JsonIgnore]
        public new LoadSpecification LoadSpecification { get; set; } = new();

        /// <summary>
        /// �������ã���Ӳ���汾��������Ϣ��
        /// </summary>
        [JsonIgnore]
        public new VehicleConfig? VehicleConfig { get; set; }
        #endregion

    }
    public class Jbt_TypeSpecification : TypeSpecification {
        /// <summary>
        /// 
        /// </summary>
        [JsonPropertyName("agvGroup")]
        public string AgvGroup { get; set; }
    }
    public class Jbt_PhysicalParameters : PhysicalParameters {
        /// <summary>
        /// ���ػ����������߶�[m]
        /// </summary>
        [JsonPropertyName("maxLiftHeight")]
        public double MaxLiftHeight { get; set; }
        /// <summary>
        /// ��ȡʽ AGV �IJ�߳���[m]
        /// </summary>
        [JsonPropertyName("forkLength")]
        public double ForkLength { get; set; }
        /// <summary>
        /// ��ߺͳ�ͷ����Թ�ϵ
        /// 0-��ߺͳ�ͷͬ��
        /// 1-��ߺͳ�ͷ����
        /// </summary>
        [JsonPropertyName("forkHeading")]
        public double ForkHeading { get; set; }
    }
}