Class1.cs 5.0 KB
using CodeLibrary;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;


[Serializable]
public class RemoteLoad
{
    /// <summary>
    /// 动作
    /// </summary>
    public string Action;
    public long Seq;
    /// <summary>
    /// 设备名称
    /// </summary>
    public string GroupName;
    /// <summary>
    /// 载荷信息
    /// </summary>
    public RequestLoadInfo RequestLoadInfo;
}
[Serializable]
public class RequestLoadInfo
{
    /// <summary>
    /// 目的地设备名称
    /// </summary>
    public string DeviceGroupName;
    /// <summary>
    /// 托盘类型
    /// </summary>
    public string TrayType;
    /// <summary>
    /// 是否空托盘
    /// </summary>
    public bool IsEmpty;
    /// <summary>
    /// 料盘数据
    /// </summary>
    public ReelParam LoadParam;
    //public DoorStatusE DoorStatus;

    [Newtonsoft.Json.JsonIgnore]
    public TrayTypeE GetTrayType
    {
        get
        {
            try
            {
                return (TrayTypeE)Enum.Parse(typeof(TrayTypeE), TrayType);
            }
            catch
            {
                return TrayTypeE.None;
            }
        }
    }
}
public enum RobotStatusE
{
    INROBOT, BOXDOOR, FINISHED
}
/// <summary>
/// 治具类型
/// </summary>
public enum TrayTypeE
{
    None,
    /// <summary>
    /// 流水线料盘托盘
    /// </summary>
    MTP1,    //流水线料盘托盘
    /// <summary>
    /// 流水线治具托盘
    /// </summary>
    MTP2,    //流水线治具托盘
    /// <summary>
    /// 料串
    /// </summary>
    S007,    //料串
    /// <summary>
    /// Tray料格
    /// </summary>
    M03,    //Tray料格
    /// <summary>
    /// PCB料格
    /// </summary>
    M02,    //PCB料格
    /// <summary>
    /// PizzaBOX料格
    /// </summary>
    M01,    //PizzaBOX料格
    /// <summary>
    /// ShoeBOX料格
    /// </summary>
    M04,    //ShoeBOX料格

}
[Serializable]
public class ReelParam
{
    /// <summary>
    /// 创建新出入库信息
    /// </summary>
    /// <param name="wareNo">二维码内容</param>
    /// <param name="platew">宽度</param>
    /// <param name="plateh">高度</param>
    /// <param name="IsNg">是否是入库NG料</param>
    /// <param name="ngMsg">NG消息</param>
    public ReelParam(string wareNo = "", int platew = 0, int plateh = 0, bool _IsNg = false, string ngMsg = "")
    {
        WareCode = wareNo;
        PlateW = platew;
        PlateH = plateh;
        IsNg = _IsNg;
        NgMsg = ngMsg;
    }
    /// <summary>
    /// 物品二维码信息
    /// </summary>
    public string WareCode { get; set; }
    /// <summary>
    /// 库位号
    /// </summary>
    public string PosID { get; set; }
    public string bitmapfilename = "";
    public List<CodeInfo> codeInfos { get; set; }
    /// <summary>
    /// 料盘高度
    /// </summary>
    public int PlateH { get; set; }
    /// <summary>
    /// 料盘宽度
    /// </summary>
    public int PlateW { get; set; }
    /// <summary>
    /// 是否是入料NG料
    /// </summary>
    public bool IsNg = false;
    /// <summary>
    /// 入料NG消息
    /// </summary>
    public string NgMsg = "";
    /// <summary>
    /// 物料编码
    /// </summary>
    public string PN { get; set; }
    /// <summary>
    /// 数量
    /// </summary>
    public int QTY { get; set; } = 0;
    /// <summary>
    /// 厂家代码
    /// </summary>
    public string FC { get; set; }
    /// <summary>
    /// 唯一序列号
    /// </summary>
    public string RI { get; set; }
    /// <summary>
    /// 批次号
    /// </summary>
    public string Batch { get; set; }
    public string cid { get; set; }
    public bool ReelOnFixture { get; set; } = false;

    public int HeightPos = 0;
    public string RFID = "";

    public ReelParam clone()
    {
        ReelParam dstobject;
        using (MemoryStream mStream = new MemoryStream())
        {
            BinaryFormatter bf = new BinaryFormatter();
            bf.Serialize(mStream, this);
            mStream.Seek(0, SeekOrigin.Begin);//指定当前流的位置为流的开头。
            dstobject = (ReelParam)bf.Deserialize(mStream);
            mStream.Close();
        }
        return dstobject;
    }

    public string ToStr()
    {
        if (IsNg)
        {
            return $":{NgMsg}[{WareCode}][{RFID}][{PlateW}x{PlateH}]";
        }
        else
        {

            return $":[{PosID}][{WareCode}][{RFID}][{PlateW}x{PlateH}]";
        }
    }

}
public enum DoorStatusE {
    Busy,
    Free,
    CanInStore,
    CanOutStore,
    CanInOut,
}

public enum RemoteResult
{
    None,
    Timeout,
    False,
    True
}


[Serializable]
public class MTP
{
    /// <summary>
    /// 料盘托盘
    /// </summary>
    public static readonly string MTP1 = "MTP1";

    /// <summary>
    /// 治具托盘
    /// </summary>
    public static readonly string MTP2 = "MTP2";
}