使用TCP/IP和VisionPro通讯

前提

最近开发工作需要吧VisionPro的检测数据显示到自己的程序中,查了网上好多资料,没有一个完整的教程,折腾了两天终于弄出了点眉目,在这里记录下,方便有类似需求的码农。

VisionPro的通讯管理设置

  1. 通讯管理器里就有TCP/IP的设置
    通讯管理器
    新建一个服务器
    TCP/IP添加
    这里就是传输的数据,每次检测完成就发送一次
    字段

U3D C#代码

1.TCP连接

 private void OnLinkVP()
        {
    
    
            IPAddress ipA = IPAddress.Parse("127.0.0.1");
            IPEndPoint endPoint = new IPEndPoint(ipA, 5001);
            client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            client.Connect(endPoint);
            receiveTask = Task.Factory.StartNew(ReceiveTask);
            MsgText.text = $"连接成功";
        }

2.接收数据

 private void ReceiveTask()
        {
    
    
            try
            {
    
    
                while (client.Connected)
                {
    
    
                    var newBytesLen = client.Receive(receiveBuffer);
                    msg = Encoding.Default.GetString(receiveBuffer);
                }

                Environment.Exit(0);
            }
            catch (Exception exc)
            {
    
    
                Debug.LogError(exc.ToString());
                return;
            }
        }
         private void Update()
        {
    
    
         if (!string.IsNullOrEmpty(msg))
            {
    
    
                MsgText.text = $"检测到的斑点数量:{
      
      msg}";//控件设置不能再线程中执行
                Debug.Log($"次数:{
      
      count}");
                count++;
                msg = "";
            }
        }

3.演示效果
U3D
u3d2

猜你喜欢

转载自blog.csdn.net/m0_37965883/article/details/107517991