FactSheet_Jbt.cs 2.76 KB
using System.Text.Json.Serialization;
using Rcs.Domain.Attributes;
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; }
}