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

我认为有一个错误,在Linux上最新的RoboDK版本,在RoboDK / bin文件夹中,无法运行RoboDK
只有RoboDK-Start.sh在工作。

我的问题是,我的python应用程序,我必须运行RoboDK。编程方式(我使用RoboLink.py与“Connect”函数)。Windows没问题,Linux不行

请问你有解决办法吗?
# 2
我建议对代码进行修改。这允许您使用RoboDK-Start.sh

def start_robodk(命令):
print('Starting %s\n' % self.APPLICATION_DIR)
导入子流程
#导入时间
#tstart = time.time()

从sys导入平台作为_platform
If (_platform == "linux" or _platform == "linux2") and os.path.splitext(command[0])[1] == ".sh":
P =子进程。Popen(命令,shell=True,可执行文件='/bin/bash', stdout=subprocess.PIPE)
其他:
P =子进程。Popen(命令,stdout = subprocess.PIPE)
而真正的:
Line = str(p.stdout.readline().decode("utf-8")).strip()
print(线)
如果'running'在line.lower()中:
# telped = time.time() - tstart
#print("RoboDK启动时间:%。3f" %复发)
打破

#子流程。Popen(命令,stdout =子流程。PIPE, bufsize=1, universal_newlines=True)作为p:
#自我。_ProcessID = p.pid
# for line in p.s dout:
# line_ok = line.strip()
#打印(line_ok)
# if 'running' in line_ok.lower():
# print(“RoboDK正在运行”)
# return #不返回!!

进口套接字
已连接= 0
对于I在range(2)内:
for port in range(self.PORT_START,self.PORT_END+1):
= socket.socket(套接字。AF_INET socket.SOCK_STREAM)
self.COM.settimeout (1)
试一试:
self.COM.connect(自我。IP、端口)
Connected = self._is_connected()
如果连接> 0:
self.COM.settimeout (self.TIMEOUT)
打破
除了:
连接的

如果连接> 0:#如果状态是关闭的,尝试打开应用程序
自我。PORT =端口
打破;
if I == 0:
如果自我。= 'localhost':
打破;

试一试:
命令= [self.]APPLICATION_DIR] + self。参数
start_robodk(命令)
#导入时间
#time.sleep(5) #等待RoboDK启动,检查网络license。
除了:
引发异常('应用程序路径不正确或无法启动:' + self.APPLICATION_DIR)

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


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

请注意,我们将于下周发布Ubuntu的新版本,其中包括其他更正。

杰里米




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