示例#1
0
        /// <summary>
        /// Initial
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnInitial_Click(object sender, EventArgs e)
        {
            if (cmbLabel.Items.Count > 0)
            {
                cmbLabel.SelectedIndex = 0;
            }

            cmbPrinter.Items.AddRange(ConfigLoad.GetLocalPrinterList());
        }
示例#2
0
文件: Main.cs 项目: qipa/HSFramework
    IEnumerator Load()
    {
        ConfigLoad.GetInstance().configLoadProgress += (float f) =>
        {
            D.Log(f);
        };
        yield return(ConfigLoad.GetInstance().LoadConfig());

        ConfigLoad.GetInstance().Destory();
    }
示例#3
0
    // Start is called before the first frame update
    void Start()
    {
        Instance = this;
        ConfigLoad configLoad = new ConfigLoad();

        // 加载行为树配置文件回调
        ConfigLoad.loadEndCallBack = ConfigLoadEnd;
        //加载配置文件
        configLoad.Init();
    }
        private void Initialize()
        {
            if (!Directory.Exists(@".\HikazeLauncher"))
            {
                Directory.CreateDirectory(@".\HikazeLauncher");
            }
            if (!Directory.Exists(@"D:\mc\.minecraft"))
            {
                Directory.CreateDirectory(@"D:\mc\.minecraft");
            }
            thisGame = new ThisGame(@"D:\mc\.minecraft", @".\HikazeLauncher");

            thisGame.MakeConfig(@".\HikazeLauncher\Config.json");
            cbbxVersionList.Items.AddRange(thisGame.VersionList.ToArray());
            configForm = new ConfigForm(thisGame.CurrentConfig);
            configForm.ConfigChanged += OnConfigChanged;
            //ConfigLoad += configForm.OnConfigLoad;
            ConfigLoad?.Invoke(this, new ConfigChangedEventArgs(thisGame.CurrentConfig));
        }
        static void Main(string[] args)
        {
            #region Fileds
            AsyncTcpServer server = null;
            int            totalNum = 0, rownum = 0, columnum = 0, usedcabinet = 0;
            string         rangeRule  = "";
            string         serverip   = "";
            int            serverport = 0;
            #endregion

            #region Initial

            #region 读取箱体配置文件
            try
            {
                ConfigLoad conip = new ConfigLoad(configPath);
                totalNum    = conip.GetIntValue("totalNum");
                rangeRule   = conip.GetStringValue("rangeRule");
                rownum      = conip.GetIntValue("rowNum");
                columnum    = conip.GetIntValue("colunNum");
                usedcabinet = conip.GetIntValue("usedNum");
                serverip    = conip.GetStringValue("ServerIP");
                serverport  = conip.GetIntValue("ServerPort");
            }
            catch (Exception ex)
            {
                Logger.Custom("log/", $"load config failed with error:{ex}");
            }
            strsend = totalNum.ToString("000") + "-" + rangeRule + "-" + rownum.ToString("000") + "-"
                      + columnum.ToString("000") + "-" + usedcabinet.ToString("000");
            Console.WriteLine(strsend);
            #endregion

            #region 启动服务器
            try
            {
                Console.WriteLine("sever is starting.....");
                Logger.Custom("log/", "sever is starting.....");
                server = new AsyncTcpServer(IPAddress.Parse("192.168.2.20"), 10001);
                //server = new AsyncTcpServer(IPAddress.Parse("127.0.0.1"), 10001);
                server.ClientConnected    += new EventHandler <TcpClientConnectedEventArgs>(Server_ClientConnected);
                server.ClientDisconnected += new EventHandler <TcpClientDisconnectedEventArgs>(Server_ClientDisconnected);
                server.PlaintextReceived  += new EventHandler <TcpDatagramReceivedEventArgs <string> >(Server_PlaintextReceived);
                server.Start();
                Console.WriteLine($"server is started");
                Logger.Custom("log/", "server is started");
            }

            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Logger.Custom("log/", $"server starting excetpiton:{ex.Message}");
            }
            #endregion

            #region 建立客户端
            IPEndPoint iPEndPoint = new IPEndPoint(IPAddress.Parse(serverip), serverport);
            AsyncTcpClient = new AsyncTcpClient(iPEndPoint);
            //AsyncTcpClient.DatagramReceived += AsyncTcpClient_DatagramReceived;
            try
            {
                AsyncTcpClient.Connect();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Logger.Custom("log/", $"建立服务器连接出错:{ex.Message}");
            }

            #endregion

            #region 启动串口
            string[] names = CustomSerialPort.GetPortNames();
            foreach (var item in names)
            {
                Console.WriteLine(item);
            }
            try
            {
                mySer = new CustomSerialPort("/dev/COM1", 9600);
                //mySer = new CustomSerialPort("COM1", 9600);
                Console.WriteLine($"PortName:{mySer.PortName}");
                if (mySer != null)
                {
                    mySer.ReceivedEvent += MySer_DataReceived;
                    if (mySer.Open())
                    {
                        Console.WriteLine("Serial Open Success!");
                        Logger.Custom("log/", $"Serial Open Success!");
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Logger.Custom("log/", $"Serial Opening exception:{ex.Message}");
            }

            #endregion

            #region 初始化逻辑
            //1是开,2关
            logicals.Clear();
            logicals.Add(new Logical("N-O-D-R", 1, "2", "1", 2));
            logicals.Add(new Logical("A-O-D-R", 1, "2", "1", 2));
            logicals.Add(new Logical("A-R-D-R", 1, "2", "1", -1));
            logicals.Add(new Logical("C-R-D-R", -1, "-1", "1", -1));
            #endregion

            #region 检查柜门状态
            lock (objPortLock)
            {
                mySer.Write(readOneall);
                Thread.Sleep(500);
                mySer.Write(readsecondAll);
                Thread.Sleep(500);
            }

            for (int i = 0; i < 60; i++)
            {
                if (CheckLockState(i + 1) == 2)
                {
                    isNormalClose[i] = true;
                }
                if (i < 3)
                {
                    Console.WriteLine($"D{i.ToString("000")} is normalClosed:{isNormalClose[i].ToString()}");
                }
            }
            #endregion

            Console.WriteLine($"状态数组当前的大小时:{sourcebyte.Length}");
            foreach (var item in sourcebyte)
            {
                Console.WriteLine(item.ToString("X"));
            }

            #endregion



            while (true)
            {
                lock (objPortLock)
                {
                    try
                    {
                        mySer.Write(readOneall);
                        Thread.Sleep(500);
                        mySer.Write(readsecondAll);
                        Thread.Sleep(500);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        Logger.Custom("log/", $"主程序出错:{ex.Message}");
                    }
                }

                for (int i = 0; i < 60; i++)
                {
                    #region 检查非法开门
                    if (isNormalClose[i] && CheckLockState(i + 1) == 1 && !isSendError[i])
                    {
                        if (!AsyncTcpClient.Connected)
                        {
                            try
                            {
                                Console.WriteLine("client disconnect!");
                                AsyncTcpClient = new AsyncTcpClient(iPEndPoint);
                                AsyncTcpClient.Connect();
                                if (AsyncTcpClient.Connected)
                                {
                                    AsyncTcpClient.Send(Encoding.Default.GetBytes($"D{(i + 1).ToString("000")} is opened Illegally!"));
                                    isSendError[i] = true;
                                    Console.WriteLine($"D{i + 1}非法开门了!");
                                }
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.Message);
                                Logger.Custom("log/", $"建立服务器连接出错:{ex.Message}");
                            }
                        }
                        else
                        {
                            AsyncTcpClient.Send(Encoding.Default.GetBytes($"D{(i+1).ToString("000")} is opened Illegally!"));
                            isSendError[i] = true;
                            Console.WriteLine($"D{i + 1}非法开门了!");
                        }
                    }
                    #endregion

                    #region 等待非法开门关门
                    if (isSendError[i] && CheckLockState(i + 1) == 2)
                    {
                        if (!AsyncTcpClient.Connected)
                        {
                            try
                            {
                                Console.WriteLine("client disconnect!");
                                AsyncTcpClient = new AsyncTcpClient(iPEndPoint);
                                AsyncTcpClient.Connect();
                                if (AsyncTcpClient.Connected)
                                {
                                    AsyncTcpClient.Send(Encoding.Default.GetBytes($"D{(i + 1).ToString("000")} is Closed!"));
                                    isSendError[i] = false;
                                }
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.Message);
                                Logger.Custom("log/", $"建立服务器连接出错:{ex.Message}");
                            }
                        }
                        else
                        {
                            AsyncTcpClient.Send(Encoding.Default.GetBytes($"D{(i+1).ToString("000")} is closed!"));
                            isSendError[i] = false;
                        }
                    }
                    #endregion
                }


                //delete threedays ago logger
                if (DateTime.Now.Hour == 0 && DateTime.Now.Minute == 0 && DateTime.Now.Second < 10)
                {
                    //删除文件
                    for (int i = 0; i < Directory.GetFiles("log").ToList().Count; i++)
                    {
                        try
                        {
                            string   filestr     = Directory.GetFiles("log")[i];
                            string   date        = filestr.Substring(4, filestr.Length - 8);
                            DateTime recoderdate = Convert.ToDateTime(date);
                            TimeSpan timespan    = DateTime.Now - recoderdate;
                            if (timespan > new TimeSpan(72, 0, 0))
                            {
                                File.Delete(Directory.GetFiles("log")[i]);
                            }
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.Message);
                        }
                    }
                }
            }
        }