线程评级:
  • 0票(s) - 0平均
  • 1
  • 2
  • 3.
  • 4
  • 5
启用SetCollisionActive时,RoboDK崩溃
在API中调用SetCollisionActive后,当已经发生碰撞或程序正在运行时,RoboDK就会崩溃。崩溃似乎只发生在发现现有的冲突或通过API函数启动程序时。

这是启用SetCollisionActive时出现的错误信息:

引用:System.Net.Sockets.SocketException: '连接尝试失败,因为被连接方在一段时间后没有正确响应,或者已建立的连接失败,因为连接的主机未能响应'


RoboDK v5.5.4
c# API
这个问题看起来与你的项目有关。看起来API超时了,可能是因为RoboDK花了太长时间来计算碰撞。

你能分享一下RoboDK的项目文件和步骤给我们复制吗?
# 3
我找到了原因,因为我同时也在使用RoboDK的活动频道。
# 4
好的,谢谢你告诉我们。事件通道应该在单独的Robolink实例上使用。

如果你能分享一种复制的方法,我们可以尝试防止崩溃。
# 5
实际上,我有两个线程来处理robodk,第一个线程有一个队列,我用它向robodk发送命令。这是为了使robodk不会因为两个或更多命令同时运行而超时和崩溃,就像这篇文章中发生的那样;当发送像碰撞检查这样的命令时,它也不会冻结UI的主线程。另一个线程是处理robodk事件,主要用于检查用户是否从场景中的树中选择了一个对象。

代码:
async void dequeucommands ()
代码:

而(真)

如果(commandsQueue。计数> 0)

wait Task.Run(() => DO ROBODK STUFF);


等待Task.Delay (25);



代码:
空白RDKEventThread ()

而(真)

EventResult EventResult = null;
试一试

eventResult = eventChannel.WaitForEvent();

catch(异常e)

eventResult = null;

最后

if (eventResult != null)

开关(eventResult.EventType)

EventType。Selection3DChanged:

打破;
默认值:
打破;









浏览此主题的用户:
1客人(年代)