v0.1.7.1(2024/06/29)
1. [APIs: aio.py] - 对于automatic test删除了输入框,使用configs.xlsx配置文件作为参数输入 - 完善initialization/param_check/func_start_callback函数中对于automatic test的处理 - 将textbox组件一直设置为normal状态,不再频繁切换disabled - 将所有的f_h文件对象修改为f_hb,并将connection_state修改为c_state - 在detect_network函数中,实例化HmiRequest,并在无限循环中检测心跳是否正常,如异常,则销毁hr,重新生成 - 取消在tabview切换时,检测心跳的逻辑,这样做无法保证实时性 2. [APIs: openapi.py] - 将sock_conn函数移出__init__,单独作为连接函数存在 - 新增全局变量self.t_bool,控制所有的线程中无限循环的启停,也就是可以人为的退出线程 - 移除close_sock函数 - heartbeat函数中新增打印所有消息的代码,调试时打开,平常关闭 - execution函数中,新增对overview.set_autoload和overview.reload的支持 - execution函数中,对send动作增加异常处理逻辑 3. [APIs: do_brake.py] - 新增文件,处理制动测试流程,建立连接,导入project,pp2main,run,采集并处理曲线数据,本地修改RL程序,推送至控制器等 - 目前完成: - 文件合规性检查 - 导入工程并设置为运行工程 4. [APIs: current.py] 修改scenario/single电机电流最大长度为150s 5. 在本文件中更新关于制动自动化测试的相关内容
This commit is contained in:
@ -16,37 +16,6 @@ class HmiRequest(object):
|
||||
self.w2t = w2t
|
||||
self.c = None
|
||||
self.c_xs = None
|
||||
|
||||
def sock_conn():
|
||||
# while True:
|
||||
with open(f"{current_path}/../../assets/templates/heartbeat", "r", encoding='utf-8') as f_h:
|
||||
connection_state = f_h.read().strip()
|
||||
if connection_state == '0':
|
||||
try:
|
||||
c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
c.connect(('192.168.0.160', 5050))
|
||||
# c.connect(('192.168.84.129', 5050))
|
||||
c.setblocking(False)
|
||||
c_xs = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
c_xs.connect(('192.168.0.160', 6666))
|
||||
# c_xs.connect(('192.168.84.129', 6666))
|
||||
c_xs.setblocking(False)
|
||||
|
||||
self.w2t("Connection success", 0, 0, 'green')
|
||||
with open(f"{current_path}/../../assets/templates/heartbeat", "w", encoding='utf-8') as f_h:
|
||||
f_h.write('1')
|
||||
return c, c_xs
|
||||
|
||||
except Exception as Err:
|
||||
with open(f"{current_path}/../../assets/templates/heartbeat", "w", encoding='utf-8') as f_h:
|
||||
f_h.write('0')
|
||||
self.w2t("Connection failed...", 0, 0, 'red')
|
||||
return None, None
|
||||
|
||||
self.c, self.c_xs = sock_conn()
|
||||
if self.c is None or self.c_xs is None:
|
||||
self.w2t("Aborting! Try to switch tabs to re-connect!", 0, 1, 'red')
|
||||
|
||||
self.c_msg = []
|
||||
self.c_msg_xs = []
|
||||
self.flag = 0
|
||||
@ -54,7 +23,9 @@ class HmiRequest(object):
|
||||
self.leftover = 0
|
||||
self.flag_xs = 0
|
||||
self.response_xs = ''
|
||||
self.t_bool = True
|
||||
|
||||
self.sock_conn()
|
||||
self.t_heartbeat = threading.Thread(target=self.heartbeat)
|
||||
self.t_heartbeat.daemon = True
|
||||
self.t_heartbeat.start()
|
||||
@ -65,9 +36,29 @@ class HmiRequest(object):
|
||||
self.t_unpackage_xs.daemon = True
|
||||
self.t_unpackage_xs.start()
|
||||
|
||||
def close_sock(self):
|
||||
self.c.close()
|
||||
self.c_xs.close()
|
||||
def sock_conn(self):
|
||||
# while True:
|
||||
with open(f"{current_path}/../../assets/templates/heartbeat", "r", encoding='utf-8') as f_hb:
|
||||
c_state = f_hb.read().strip()
|
||||
if c_state == '0':
|
||||
try:
|
||||
self.c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
self.c.connect(('192.168.0.160', 5050))
|
||||
# self.c.connect(('192.168.84.129', 5050))
|
||||
self.c.setblocking(False)
|
||||
self.c_xs = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
self.c_xs.connect(('192.168.0.160', 6666))
|
||||
# self.c_xs.connect(('192.168.84.129', 6666))
|
||||
self.c_xs.setblocking(False)
|
||||
|
||||
self.w2t("Connection success", 0, 0, 'green')
|
||||
with open(f"{current_path}/../../assets/templates/heartbeat", "w", encoding='utf-8') as f_hb:
|
||||
f_hb.write('1')
|
||||
|
||||
except Exception as Err:
|
||||
self.w2t("Connection failed...", 0, 0, 'red')
|
||||
with open(f"{current_path}/../../assets/templates/heartbeat", "w", encoding='utf-8') as f_hb:
|
||||
f_hb.write('0')
|
||||
|
||||
def header_check(self, index, data):
|
||||
try:
|
||||
@ -87,12 +78,15 @@ class HmiRequest(object):
|
||||
return 'DATA READ ERR'
|
||||
|
||||
def heartbeat(self):
|
||||
while True:
|
||||
while self.t_bool:
|
||||
_id = self.excution('controller.heart')
|
||||
_flag = 0 if self.get_from_id(_id) is None else 1
|
||||
with open(f"{current_path}/../../assets/templates/heartbeat", "w", encoding='utf-8') as f_h:
|
||||
f_h.write(str(_flag))
|
||||
_flag = '0' if self.get_from_id(_id) is None else '1'
|
||||
with open(f"{current_path}/../../assets/templates/heartbeat", "w", encoding='utf-8') as f_hb:
|
||||
f_hb.write(_flag)
|
||||
time.sleep(3)
|
||||
# with open('log.txt', 'w') as f:
|
||||
# for msg in self.c_msg:
|
||||
# f.write(msg + '\n')
|
||||
|
||||
def msg_storage(self, response, flag=0):
|
||||
messages = self.c_msg if flag == 0 else self.c_msg_xs
|
||||
@ -224,7 +218,7 @@ class HmiRequest(object):
|
||||
sel = selectors.DefaultSelector()
|
||||
sel.register(sock, selectors.EVENT_READ, to_read)
|
||||
|
||||
while True:
|
||||
while self.t_bool:
|
||||
events = sel.select()
|
||||
for key, mask in events:
|
||||
callback = key.data
|
||||
@ -244,7 +238,7 @@ class HmiRequest(object):
|
||||
sel = selectors.DefaultSelector()
|
||||
sel.register(sock, selectors.EVENT_READ, to_read)
|
||||
|
||||
while True:
|
||||
while self.t_bool:
|
||||
events = sel.select()
|
||||
for key, mask in events:
|
||||
callback = key.data
|
||||
@ -268,13 +262,22 @@ class HmiRequest(object):
|
||||
match command:
|
||||
case 'state.set_tp_mode':
|
||||
req['data']['tp_mode'] = kwargs['tp_mode']
|
||||
case 1:
|
||||
pass
|
||||
case 'overview.set_autoload':
|
||||
req['data']['autoload_prj_path'] = kwargs['autoload_prj_path']
|
||||
case 'overview.reload':
|
||||
req['data']['prj_path'] = kwargs['prj_path']
|
||||
req['data']['tasks'] = kwargs['tasks']
|
||||
|
||||
req['id'] = self.gen_id(command)
|
||||
print(f"req = {req}")
|
||||
cmd = json.dumps(req, separators=(',', ':'))
|
||||
self.c.send(self.package(cmd))
|
||||
time.sleep(2)
|
||||
try:
|
||||
self.c.send(self.package(cmd))
|
||||
time.sleep(2)
|
||||
except Exception as Err:
|
||||
self.w2t(f"{cmd}\n请求发送失败...\n{Err}", 0, 11)
|
||||
|
||||
return req['id']
|
||||
|
||||
else: # for xService
|
||||
pass
|
||||
|
Reference in New Issue
Block a user