DeviceStatus.cs 3.0 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TSA_V.DeviceLibrary
{
    public class DeviceStatus
    {
        public string Version = "2.1.1";
        /// <summary>
        /// 设备状态
        ///0=未启动
        ///1=复位中
        ///2=待机状态
        ///3=工作忙碌中
        /// </summary>
        public int CurrStatus = 0;
        /// <summary>
        /// 设备警告或错误信息
        /// </summary>
        public string WarnMsg = "";

        public OpInfo workInfo;
    }

    public class OpInfo
    {
        public int ID = 0;
        /// <summary>
        /// 程序名称
        /// </summary>
        public string ProName = "";
        /// <summary>
        /// 程序类型
        /// </summary>
        public string ProType = "";
        /// <summary>
        /// 实时条码
        /// </summary>
        public string BarCode = "";

        /// <summary>
        /// 板子宽度(显示的长度→)
        /// </summary>
        public int BoardWidth = 0;
        /// <summary>
        /// 板子高度(显示的高度↑)
        /// </summary>
        public int BoardLength = 0;
        /// <summary>
        /// 插装完成板子的AOI结果,NG或OK,如果设备未包含AOI功能,结果默认为OK
        /// </summary>
        public string AoiResult = "OK";

        /// <summary>
        /// 组装元器件列表
        /// </summary>
        public List<OpPointInfo> pointList { get; set; }


        public static OpInfo GetOpInfo(BoardInfo board, int maxIndex = -1)
        {
            //maxIndex=-1,没有oplist
            OpInfo op = new OpInfo();
            op.ProName = board.boardName;
            op.ProType = board.boardCode;

            op.BoardWidth = board.boardWidth;
            op.BoardLength = board.boardLength;
            op.pointList = new List<OpPointInfo>();
            if (maxIndex>0)
            {
                int index = 0;
                List<SMTPointInfo> list = board.GetSmtList();
                foreach (SMTPointInfo sm in list)
                {
                    if (maxIndex > 0 && index > maxIndex)
                    {
                        break;
                    }
                    op.pointList.Add(new OpPointInfo(sm.TagNo, sm.PN));
                    index++;
                }
            }
            return op;
        }
    }

    public class OpPointInfo
    {
        public int ID = 0;
        /// <summary>
        /// 物料编号 
        /// </summary>
        public string PartNum = "";
        /// <summary>
        ///点位名称
        /// </summary>
        public string PointName = "";

        public OpPointInfo(string pn, string name)
        {
            PartNum = pn;
            PointName = name;
        }

    }

    public class JsonParam
    {
        public JsonParam (DeviceStatus param)
        {
            this.json = param;
        }
        public DeviceStatus json;
    }

}