v0.2.0.3(2024/07/27)
1. [APIs: do_brake.py]: 精简程序,解决 OOM 问题 2. [APIs: do_current.py]: 精简程序,解决 OOM 问题 3. [APIs: factory_test.py]: 精简程序,解决 OOM 问题 4. [APIsL openapi.py] - 心跳修改为 1 s,因为 OOM 问题的解决依赖于长久的打开曲线开关,此时对于 hr.c_msg 的定时清理是个挑战,将心跳缩短,有利于清理日志后,避免丢失心跳 - 新增 diagnosis.save 命令,但是执行时,有问题,待解决
This commit is contained in:
@ -81,9 +81,8 @@ def prj_to_xcore(prj_file):
|
||||
print(stdout.read().decode()) # 必须得输出一下stdout,才能正确执行sudo
|
||||
print(stderr.read().decode()) # 顺便也执行以下stderr
|
||||
|
||||
_prj_name = prj_file.split('\\')[-1].removesuffix('.zip')
|
||||
cmd = 'cd /home/luoshi/bin/controller/; '
|
||||
cmd += f'sudo mv projects/target/_build/{_prj_name}.prj projects/target/_build/target.prj'
|
||||
cmd += 'sudo mv projects/target/_build/*.prj projects/target/_build/target.prj'
|
||||
stdin, stdout, stderr = ssh.exec_command(cmd, get_pty=True)
|
||||
stdin.write('luoshi2019' + '\n')
|
||||
stdin.flush()
|
||||
@ -106,7 +105,8 @@ def execution(cmd, hr, w2t, **kwargs):
|
||||
|
||||
def run_rl(path, config_file, data_all, hr, md, w2t):
|
||||
# 1. 关闭诊断曲线,触发软急停,并解除,目的是让可能正在运行着的机器停下来,切手动模式并下电
|
||||
_response = execution('diagnosis.open', hr, w2t, open=False, display_open=False)
|
||||
_response = execution('diagnosis.open', hr, w2t, open=True, display_open=True)
|
||||
_response = execution('diagnosis.set_params', hr, w2t, display_pdo_params=display_pdo_params)
|
||||
md.trigger_estop()
|
||||
md.reset_estop()
|
||||
md.write_act(False)
|
||||
@ -115,7 +115,6 @@ def run_rl(path, config_file, data_all, hr, md, w2t):
|
||||
# 2. reload工程后,pp2main,并且自动模式和上电
|
||||
prj_path = 'target/_build/target.prj'
|
||||
_response = execution('overview.reload', hr, w2t, prj_path=prj_path, tasks=['current'])
|
||||
_response = execution('overview.get_cur_prj', hr, w2t)
|
||||
_response = execution('rl_task.pp_to_main', hr, w2t, tasks=['current'])
|
||||
_response = execution('state.switch_auto', hr, w2t)
|
||||
_response = execution('state.switch_motor_on', hr, w2t)
|
||||
@ -134,8 +133,7 @@ def run_rl(path, config_file, data_all, hr, md, w2t):
|
||||
sleep(1)
|
||||
|
||||
# 4. 获取初始数据,周期时间,首次的各轴平均电流值,打开诊断曲线,并执行采集
|
||||
_response = execution('diagnosis.open', hr, w2t, open=True, display_open=True)
|
||||
_response = execution('diagnosis.set_params', hr, w2t, display_pdo_params=display_pdo_params)
|
||||
sleep(20) # 初始化 scenario time 为 0
|
||||
_t_start = time()
|
||||
while True:
|
||||
scenario_time = md.read_scenario_time()
|
||||
@ -162,36 +160,26 @@ def run_rl(path, config_file, data_all, hr, md, w2t):
|
||||
for i in range(6):
|
||||
rcs.append(float(_ws.cell(row=6, column=i + 2).value))
|
||||
|
||||
_response = execution('diagnosis.open', hr, w2t, open=False, display_open=False)
|
||||
sleep(1) # 保证所有数据均已返回
|
||||
get_durable_data(path, data_all, scenario_time, wait_time, rcs, hr, md, w2t)
|
||||
|
||||
# 7. 继续运行
|
||||
while True:
|
||||
# 固定间隔,更新一次数据,打开曲线,获取周期内电流,关闭曲线
|
||||
sleep(wait_time)
|
||||
_response = execution('diagnosis.open', hr, w2t, open=True, display_open=True)
|
||||
_response = execution('diagnosis.set_params', hr, w2t, display_pdo_params=display_pdo_params)
|
||||
sleep(scenario_time+5)
|
||||
_response = execution('diagnosis.open', hr, w2t, open=False, display_open=False)
|
||||
sleep(2)
|
||||
sleep(wait_time+scenario_time+7)
|
||||
# 保留数据并处理输出
|
||||
get_durable_data(path, data_all, scenario_time, wait_time, rcs, hr, md, w2t)
|
||||
|
||||
|
||||
def get_durable_data(path, data, scenario_time, wait_time, rcs, hr, md, w2t):
|
||||
_data_list = []
|
||||
for _msg in hr.c_msg:
|
||||
_c_msg = hr.c_msg.copy()
|
||||
for _msg in _c_msg:
|
||||
if 'diagnosis.result' in _msg:
|
||||
_data_list.insert(0, loads(_msg))
|
||||
else:
|
||||
_index = 210
|
||||
for _msg in hr.c_msg:
|
||||
if 'diagnosis.result' in _msg:
|
||||
_index = hr.c_msg.index(_msg)
|
||||
break
|
||||
del hr.c_msg[_index:]
|
||||
hr.c_msg_xs.clear()
|
||||
if len(hr.c_msg) > 240:
|
||||
del hr.c_msg[240:]
|
||||
|
||||
# with open(f'{path}\\log.txt', 'w', encoding='utf-8') as f_obj:
|
||||
# for _ in _data_list:
|
||||
|
Reference in New Issue
Block a user