private void BtnOpen_Click(object sender, EventArgs e)
        {
            TcpClientMgr.GetInstance().m_SocketClient.DelRecvEvent(new SocketClient.RecvEvent(test));
            TcpClientMgr.GetInstance().m_SocketClient.RegisterRecvEvent(new SocketClient.RecvEvent(test));

            TcpClientMgr.GetInstance().m_SocketClient.DelConnetEvent(new SocketClient.ConnetEvent(test1));
            TcpClientMgr.GetInstance().m_SocketClient.RegisterConnetEvent(new SocketClient.ConnetEvent(test1));
            TcpClientMgr.GetInstance().Connection();
        }
示例#2
0
        private void test1(string code, bool flag)
        {
            string text = code + "\n\n";

            if (!flag)
            {
                TcpClientMgr.GetInstance().Close();
            }
        }
示例#3
0
 public void SetServer(string ip, int port)
 {
     if (ip != Param.IP || port != Param.Port)
     {
         Param.IP   = ip;
         Param.Port = port;
         TcpClientMgr.GetInstance().Close();
         ConnectServer();
     }
 }
示例#4
0
        public void ConnectServer()
        {
            //连接到服务器
            labConnectState.Text = $@"{Param.IP}:{Param.Port}";
            Log.Show($@"连接服务器{Param.IP}:{Param.Port}");

            TcpClientMgr.GetInstance().m_SocketClient = new SocketClient(Param.IP, Param.Port);
            TcpClientMgr.GetInstance().m_SocketClient.RegisterConnetEvent(ConnectServer);
            TcpClientMgr.GetInstance().m_SocketClient.RegisterRecvEvent(ReceiveData);
            TcpClientMgr.GetInstance().Connection();
        }
示例#5
0
        private void SystemConfig_Load(object sender, EventArgs e)
        {
            ShowProductAll();

            txtAddr.Text = TcpClientMgr.GetInstance().m_SocketClient.IP;
            txtPort.Text = TcpClientMgr.GetInstance().m_SocketClient.Port.ToString();

            ckbSaveImageAll.Checked = AutoForm._autoForm.Param.IsSaveImageAll;
            ckbSaveImageNG.Checked  = AutoForm._autoForm.Param.IsSaveImageNG;
            ckbSaveData.Checked     = AutoForm._autoForm.Param.IsSaveData;
            ckbSaveLog.Checked      = AutoForm._autoForm.Param.IsSaveLog;
        }
示例#6
0
        public static void returnMessage()
        {
            string item;
            int    i = 0;

            while (!p._go.IsCompleted)
            {
                if (p._go.TryTake(out item))
                {
                    r._go.TryAdd(string.Format("处理:{0}", i++), 5000);
                    TcpClientMgr.GetInstance().Send("OK");
                    // Console.WriteLine(item);
                }
                System.Threading.Thread.Sleep(10);
            }
        }
示例#7
0
        public bool Run()
        {
            TcpClientMgr.GetInstance().m_SocketClient.DelConnetEvent(new SocketClient.ConnetEvent(test1));
            TcpClientMgr.GetInstance().m_SocketClient.RegisterConnetEvent(new SocketClient.ConnetEvent(test1));

            TcpClientMgr.GetInstance().m_SocketClient.DelRecvEvent(new SocketClient.RecvEvent(sendMessage));
            TcpClientMgr.GetInstance().m_SocketClient.RegisterRecvEvent(new SocketClient.RecvEvent(sendMessage));
            TcpClientMgr.GetInstance().Connection();
            Action <object> action = (object obj) =>
            {
                Parallel.Invoke(() => sendMessage(""), () => cameraSnap(), () => processImage(), () => returnMessage());
            };
            Task t1 = new Task(action, "");

            t1.Start();

            return(true);
        }
        private void test1(string code, bool flag)
        {
            string text = code + "\n\n";
            string a    = RecvTextBox.Text;

            if (RecvTextBox.InvokeRequired)
            {//c#中禁止跨线程直接访问控件,InvokeRequired是为了解决这个问题而产生的,用一个异步执行委托
                RecvTextBox.BeginInvoke(new MethodInvoker(delegate
                {
                    RecvTextBox.AppendText(text);
                }));
            }
            else
            {
                RecvTextBox.AppendText(text);
            }
            if (!flag)
            {
                TcpClientMgr.GetInstance().Close();
            }
        }
示例#9
0
        /// <summary>
        /// 解析指令
        /// </summary>
        /// <param name="data"></param>
        public static void Parse(string data)
        {
            DateTime t1 = DateTime.Now;

            Log.Show($"接收:{data}");

            bool result = false;

            //清理数据
            SendData.Clear();

            //平台定位
            if (data == CommandType.T1)
            {
                result = VisionMgr.GetInstance().GetVisionBase(VisionStepName.MainPos).Process();
                string temp;

                if (result)
                {
                    /* 12345678-数值必须用8位表示
                     * 12-前2位表示数值的符号,00-正,11-负
                     * 3456-中间4位表示数值的整数部分
                     * 78-后2位表示数值的小数部分
                     */
                    string x = $"{SendData.X:000000.00}".Replace(".", "").Replace("-00", "11");
                    string y = $"{SendData.Y:000000.00}".Replace(".", "").Replace("-00", "11");
                    string u = $"{SendData.Angle:000000.00}".Replace(".", "").Replace("-00", "11");

                    temp = $"01,,01,,01,,{x},,{y},,{u}";
                }
                else
                {
                    temp = $"01,,01,,00,,00000000,,00000000,,00000000";
                }

                TcpClientMgr.GetInstance().Send(temp);
                Log.Show($"发送:{temp}");
            }

            //机械手定位
            else if (data == CommandType.T2)
            {
                result = VisionMgr.GetInstance().GetVisionBase(VisionStepName.MainMea).Process();
                string temp;

                if (result)
                {
                    string x           = $"{SendData.X:000000.00}".Replace(".", "").Replace("-00", "11");
                    string y           = $"{SendData.Y:000000.00}".Replace(".", "").Replace("-00", "11");
                    string areaNgCount = $"{SendData.CountAreaNG:0000}";
                    string posNgCount  = $"{SendData.CountPosNG:0000}";

                    //面积NG数量 位置NG数量
                    temp = $"01,,02,,01,,{x},,{y},,{areaNgCount}{posNgCount}";
                }
                else
                {
                    temp = $"01,,02,,00,,00000000,,00000000,,00000000";
                }

                TcpClientMgr.GetInstance().Send(temp);
                Log.Show($"发送:{temp}");
            }

            //针脚测量
            else if (data == CommandType.T4)
            {
                result = VisionMgr.GetInstance().GetVisionBase(VisionStepName.PinMea).Process();
                string temp;

                if (result)
                {
                    string resPin = SendData.PinCountOK ? "11" : "22";
                    //面积NG数量 位置NG数量
                    temp = $"01,,01,,01,,00000000,,00000000,,000000{resPin}";
                }
                else
                {
                    temp = $"01,,01,,00,,00000000,,00000000,,00000022";
                }

                TcpClientMgr.GetInstance().Send(temp);
                Log.Show($"发送:{temp}");
            }


            TimeSpan time = DateTime.Now - t1;

            Log.Show($"用时:{time.TotalMilliseconds}");
        }
 private void BtnClose_Click(object sender, EventArgs e)
 {
     TcpClientMgr.GetInstance().Close();
 }