Ejemplo n.º 1
0
        public void ReadDataDisplay(object sender, ReadDataEventAgrs e)
        {
            string[] datas = e.Data.Split('|');

            if (datas.Length < 5)
            {
                return;
            }

            MainForm mf      = this.MdiParent as MainForm;
            var      popList = mf.popList;

            if (popList.Count > 0)
            {
                foreach (var pop in popList)
                {
                    int resultQty = int.Parse(datas[3]);
                    int badQty    = int.Parse(datas[4]);

                    if (pop.TaskID.Replace("task", "").TrimStart('0') == datas[1])
                    {
                        resultQty = pop.ResultQty += resultQty;
                        badQty    = pop.BadQty += badQty;
                        this.Invoke((MethodInvoker)(() =>
                        {
                            dataGridView1.DataSource = null;
                            dataGridView1.DataSource = popList;
                        }));

                        //if (pop.Qty <= pop.ResultQty)
                        //{
                        //	this.Invoke((MethodInvoker)(() => mf.Stop(pop.Worker, pop.Frm, pop.Task_proc_id)));
                        //}
                    }

                    if (!string.IsNullOrEmpty(taskID) && taskID.Replace("task", "").TrimStart('0') == datas[1])
                    {
                        this.Invoke((MethodInvoker)(() =>
                        {
                            label10.Text = (pop.Qty - resultQty).ToString();
                            label14.Text = resultQty.ToString();
                            label15.Text = badQty.ToString();
                        }));
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private void ReadDataDisplay(object sender, ReadDataEventAgrs e)
        {
            KEEP_ARRIVE_COUNT = 0;

            if (LogVisible)
            {
                if (ListBox1.Items.Count > 50)
                {
                    this.Invoke((MethodInvoker)(() => ListBox1.Items.Clear()));
                }

                this.Invoke((MethodInvoker)(() => ListBox1.Items.Add(e.Data.Trim())));
                this.Invoke((MethodInvoker)(() => ListBox1.SelectedIndex = ListBox1.Items.Count - 1));
            }
            txtReadATL.Invoke((MethodInvoker) delegate { txtReadATL.Text = e.Data.Trim(); });

            if (ReadData != null)
            {
                ReadData(null, e);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 수신된 데이터를 찍어주고, DB에 전송한다.
        /// </summary>
        private void DoingSchedule()
        {
            string lsRecvData;
            int    liCnt;
            string lsTmpData;

            string[] laData;

            try
            {
                if (t_client == null || !t_client.client.Connected)
                {
                    return;
                }

                if (t_client.client.Available > 0)
                {
                    byte[] rcvTemp = new byte[t_client.client.Available];
                    recvData.Read(rcvTemp, 0, rcvTemp.Length);
                    string readData = UTF7Encoding.UTF7.GetString(rcvTemp);

                    this.Log.WriteInfo($"[RECV] : {readData}");

                    RECV_TMP_DATA += readData;

                    liCnt = RECV_TMP_DATA.IndexOf(STX);
                    if (liCnt >= 0)
                    {
                        lsRecvData = RECV_TMP_DATA.Substring(liCnt);
                        if (lsRecvData.Substring(0, 1) == STX)
                        {
                            while (true)
                            {
                                liCnt = lsRecvData.IndexOf(ETX);
                                if (liCnt >= 0)
                                {
                                    lsTmpData = lsRecvData.Substring(0, liCnt);
                                }
                                else
                                {
                                    break;
                                }

                                // ========= 도착한 데이타 처리 ===================
                                //lsTmpData = STX|Date|TaskID|ProductID|Qty|BadQty|ETX
                                //lsTmpData = STX|x|ETX

                                laData = lsTmpData.Split('|');
                                if (laData.Length < 7)
                                {
                                    break;
                                }

                                if (ReadData != null)
                                {
                                    ReadDataEventAgrs args = new ReadDataEventAgrs();
                                    args.Data = $"[{laData[1]}] |{laData[2]}|{laData[3]}|{laData[4]}|{laData[5]}";
                                    ReadData(null, args);
                                }

                                switch (laData[1])
                                {
                                case "X":
                                case "x":       //KeepArrive 수신 처리
                                    //KEEP_ARRIVE_COUNT = 0;
                                    break;

                                case "RESET":
                                case "reset":
                                    break;

                                default:
                                    IF_SetValue($"[{laData[1]}] |{laData[2]}|{laData[3]}|{laData[4]}|{laData[5]}");
                                    break;
                                }

                                lsRecvData = lsRecvData.Substring(liCnt + 1);
                                liCnt      = lsRecvData.IndexOf(STX);
                                if (liCnt >= 0)
                                {
                                    lsRecvData    = lsRecvData.Substring(liCnt);
                                    RECV_TMP_DATA = lsRecvData;
                                }
                                else
                                {
                                    if (lsRecvData.Length > 0)
                                    {
                                        lsRecvData    = lsRecvData.Substring(0);
                                        RECV_TMP_DATA = lsRecvData;
                                    }
                                }
                                if (string.IsNullOrEmpty(lsRecvData.Trim()))
                                {
                                    RECV_TMP_DATA = string.Empty;
                                    break;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception err)
            {
                Log.WriteError($"[RECV중 오류]:{err.Message}");
                if (err.Message.Contains("Connection Error") || err.Message.Contains("개체"))
                {
                    throw new Exception(err.Message);
                }
            }
            finally
            {
                Thread.Sleep(100);
            }
        }