LabelParam.cs 4.9 KB
using CodeLibrary;
using OnlineStore;
using OnlineStore.Common;
using OnlineStore.LoadCSVLibrary;
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;

namespace DeviceLibrary
{
    [Serializable]
    public class ReelParam
    {
        public ReelParam(string warecode) {
            WareCode = warecode;
        }
        public ReelParam()
        {
        }
        /// <summary>
        /// 物品二维码信息
        /// </summary>
        public string WareCode { get; set; }
        public string ReeID { get; set; }
        /// <summary>
        /// 库位号
        /// </summary>
        public string PosID { get; set; }
        public string RFID { 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; }
        public int usedCount { get; set; }
        /// <summary>
        /// 是否是入料NG料
        /// </summary>
        public bool IsNg = false;
        /// <summary>
        /// 入料NG消息
        /// </summary>
        public string NgMsg = "";
        /// <summary>
        /// 物料编码
        /// </summary>
        public string PN { get; set; }
        public string LOT { get; set; }
        public string EXP { get; set; }
        public string SN { 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 bool ReelOnFixture { get; internal set; } = false;
        public string OutPosID { get; internal set; }

        public int HeightPos = 0;
        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 crc.GetString("Res0070","入库NG")+ $":{NgMsg}[{WareCode}]";
            }
            else
            {

                return crc.GetString("Res0071","库位号") + $":[{PosID}][{WareCode}] ";
            }
        }
        public string ToDetailStr()
        {
            return $"{DateTime.Now:HH:mm:ss},{SN},{LOT},{EXP},{PN},{NgMsg},{WareCode}";
        }
    }
    [Serializable]
    class BoxStorePosition {

        /// <summary>
        /// 前后轴位置P2
        /// </summary>
        public int X_Axis_P2;

        /// <summary>
        /// 左右轴位置P2
        /// </summary>
        public int Y_Axis_P2;
        /// <summary>
        /// 升降轴取料高点
        /// </summary>
        public int Z_Axis_P2;
        /// <summary>
        /// 升降轴取料低点
        /// </summary>
        public int Z_Axis_P3;


        public string posid;
        public ReelParam Reel;

        public BoxStorePosition(Robot_Config Config, ACStorePosition aCStorePosition, ReelParam reel) {
            X_Axis_P2 = aCStorePosition.X_Axis_P2;
            Y_Axis_P2 = aCStorePosition.Y_Axis_P2;
            Z_Axis_P2 = aCStorePosition.Z_Axis_P2;
            Z_Axis_P3 = aCStorePosition.Z_Axis_P3;

            posid = aCStorePosition.PositionNum;
            Reel = reel.clone();
            LogUtil.info($"BSP:{posid},{JsonHelper.SerializeObject(this)}");
        }
        public const string ngdoor = "单料口";
        public const string clamp = "夹爪位";
        public const string strings = "料串口";

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