线程评级:
  • 0 (s) - 0平均投票
  • 1
  • 2
  • 3
  • 4
  • 5
问题运行ubuntu RoboDK
# 1
你好,

我认为这是一个错误,在Linux上使用最新版RoboDK, RoboDK / bin文件夹中,无法RoboDK运行
只有RoboDK-Start。上海是有效的。

我的问题,与我的python应用程序,我必须RoboDK运行。以编程方式(我使用RoboLink。py“连接”功能)。与Windows, Linux不是好的

你有解决方案吗?
# 2
我提出一个修改的代码。这允许您使用RoboDK-Start.sh

def start_robodk(命令):
print(开始%年代\ n % self.APPLICATION_DIR)
导入子流程
#导入时间
# tstart = time.time ()

从系统平台作为_platform导入
如果(_platform = =“linux”或_platform = =“linux2”)和os.path.splitext(命令[0])[1]= = " . sh ":
p =子流程。Popen(命令shell = True,可执行= / bin / bash, stdout = subprocess.PIPE)
其他:
p =子流程。Popen(命令,stdout = subprocess.PIPE)
而真正的:
行= str (p.stdout.readline () .decode (“utf - 8”)) .strip ()
print(线)
如果“奔跑”line.lower ():
# telapsed = time.time ()——tstart
#打印(“RoboDK启动时间:%。3 f % telapsed)
打破

#子流程。Popen(命令,stdout =子流程。管、bufsize = 1, universal_newlines = True) p:
#自我。_ProcessID = p.pid
#在p.stdout线:
# line_ok = line.strip ()
#打印(line_ok)
#如果“奔跑”line_ok.lower ():
#打印(“RoboDK运行”)
#返回#不返回! !

进口套接字
连接= 0
因为我在范围(2):
端口的范围(self.PORT_START, self.PORT_END + 1):
自我。COM = socket.socket(套接字。AF_INET socket.SOCK_STREAM)
self.COM.settimeout (1)
试一试:
self.COM.connect(自我。IP、端口)
连接= self._is_connected ()
如果连接> 0:
self.COM.settimeout (self.TIMEOUT)
打破
除了:
连接=连接

如果连接> 0:#如果关闭状态,试着打开的应用程序
自我。端口=端口
打破;
elif我= = 0:
如果自我。IP ! =“localhost”:
打破;

试一试:
命令=[自我。APPLICATION_DIR] + self.ARGUMENTS
start_robodk(命令)
#导入时间
# time . sleep(5) #等待RoboDK启动并检查网络许可。
除了:
提高异常(“应用程序路径不正确或无法启动:' + self.APPLICATION_DIR)

如果连接> 0,而不是self._verify_connection ():
连接= 0
返回连接
# 3
嗨Tonio163,


谢谢你的反馈,我们真的很感激。
高兴看到你自己设法解决这个问题。

注意,我们将发布一个新版本的Ubuntu下周其他修正。

杰里米




用户浏览这个线程:
1客人(年代)