Class1.cs 3.8 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
{
    public string Action;
    public int Seq;
    public string GroupName;
    public RequestLoadInfo RequestLoadInfo;
}
[Serializable]
public class RequestLoadInfo
{
    public string DeviceGroupName;
    public string TrayType;
    public bool IsEmpty;
    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
}
public enum TrayTypeE
{
    None,
    MTP1,    //流水线治具托盘
    MTP2,    //流水线料盘托盘
    S007,    //料串
    M03,    //Tray料格
    M02,    //PCB料格
    M01,    //PizzaBOX料格
    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}]";
        }
        else
        {

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

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

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