Common.cs 4.5 KB
using System;
using System.Runtime.InteropServices;

namespace DoubleLine
{
    public static class Common
    {
        public readonly static string LOG_PATH = AppDomain.CurrentDomain.BaseDirectory + "LOG\\";
        public static Asa.File.Log log;
        public static BLL.ABB ABB;
        public static BLL.WebService Web;
        public static BLL.BenQ_AGV BenqAGV;
        public static BLL.LineDouble LineDouble;
        public static BLL.LinePack LinePack;
        public static BLL.LineDischarge LineDischarge;
        public static BLL.ControlCenter ControlCenter;
        public static Asa.RFID.ReaderAll RFID;

        public static ABBInfo[] ABB_Info;
        public static RFIDInfo[] RFID_Info;
        public static IOInfo[] IO_Info;

        public const string ABB_MOVEP = "movep";
        public const string ABB_MOVEGET = "moveget";
        public const string ABB_MOVEPUT = "moveput";
        public const string ABB_MOVEHOME = "movehome";
    }

    public static class API
    {
        [DllImport("user32.dll", EntryPoint = "ShowWindow", CharSet = CharSet.Auto)]
        public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);
        [DllImport("user32.dll ", SetLastError = true)]
        public static extern void SwitchToThisWindow(IntPtr hWnd, bool fAltTab);
        public const int SW_RESTORE = 9;

    }

    public enum DeviceAction
    {
        Start, Stop, Error
    }

    public class ABBInfo
    {
        public string IP;
        public string Name;
        public int Speed;
        public string State;
        public bool IsOpen;
        public bool GetStart;
        public bool GetEnd;
        public bool PutStart;
        public bool PutIn;
        public bool PutEnd;

        public ABBInfo(string name, string ip, int speed)
        {
            IP = ip;
            Name = name;
            Speed = speed;
            State = "";
            IsOpen = false;
            GetStart = false;
            GetEnd = true;
            PutStart = false;
            PutIn = false;
            PutEnd = true;
        }

    }

    public class RFIDInfo
    {
        public string IP;
        public string Name;
        public bool IsOpen;
        public bool IsScan;

        public RFIDInfo(string name, string ip)
        {
            Name = name;
            IP = ip;
            IsOpen = false;
            IsScan = false;
        }
    }

    public class IOInfo
    {
        /// <summary>
        /// IP地址
        /// </summary>
        public string IP;
        /// <summary>
        /// 名称
        /// </summary>
        public string Name;
        /// <summary>
        /// IO模块
        /// </summary>
        public Asa.IOModule.AIOBOX Box;
        /// <summary>
        /// DI
        /// </summary>
        public Register[] DI;
        /// <summary>
        /// DO
        /// </summary>
        public Register[] DO;

        public IOInfo(string name, string ip)
        {
            Name = name;
            IP = ip;
            Box = new Asa.IOModule.AIOBOX();
            Box.IP = ip;
        }

        //public string ToStrDO(int index, int status)
        //{
        //    string s = "";
        //    if (status == 255)
        //        s += " [ON]";
        //    else if (status == 0)
        //        s += " [OFF]";

        //    s += DO[index].Name;
        //    return s;
        //}

        //public string ToStrDI(int index, int status)
        //{
        //    string s = "";
        //    if (status == 255)
        //        s += " [ON]";
        //    else if (status == 0)
        //        s += " [OFF]";

        //    s += DI[index].Name;
        //    return s;
        //}
    }

    /// <summary>
    /// 寄存器
    /// </summary>
    public class Register
    {
        /// <summary>
        /// 模块寄存器ID
        /// </summary>
        public string ID;
        /// <summary>
        /// 号码管名称
        /// </summary>
        public string Name;
        /// <summary>
        /// 解释说明
        /// </summary>
        public string Explain;
        /// <summary>
        /// 状态
        /// </summary>
        public Asa.IOModule.Box_Sta Sta;

        /// <summary>
        /// 寄存器
        /// </summary>
        /// <param name="id">模块寄存器ID</param>
        /// <param name="name">号码管名称</param>
        /// <param name="explain">解释说明</param>
        public Register(string id, string name, string explain)
        {
            ID = id;
            Name = name;
            Explain = explain;
            Sta = Asa.IOModule.Box_Sta.Off;
        }

    }


}