前提
最近开发工作需要吧VisionPro的检测数据显示到自己的程序中,查了网上好多资料,没有一个完整的教程,折腾了两天终于弄出了点眉目,在这里记录下,方便有类似需求的码农。
VisionPro的通讯管理设置
- 通讯管理器里就有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.演示效果