init commit

This commit is contained in:
2025-03-20 18:13:49 +08:00
commit 09d322378a
103 changed files with 12549 additions and 0 deletions

Binary file not shown.

View File

@ -0,0 +1,842 @@
<?xml version="1.0" encoding="UTF-8"?>
<m>
<l>
<c name="addr" type="2" value="40000"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40000"/>
<c name="function" type="10" value="ctrl_clear_alarm"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_clear_alarm"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40001"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40001"/>
<c name="function" type="10" value="ctrl_estop_reset"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_estop_reset"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40002"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40002"/>
<c name="function" type="10" value="ctrl_estop_reset_clear_alarm"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_onekey_reset"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40003"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40003"/>
<c name="function" type="10" value="ctrl_motor_off"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_motor_off"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40004"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40004"/>
<c name="function" type="10" value="ctrl_motor_on"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_motor_on"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40005"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40005"/>
<c name="function" type="10" value="ctrl_motoron_pptomain_start"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_onekey_start"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40006"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40006"/>
<c name="function" type="10" value="ctrl_motoron_start"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_motoron_start"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40007"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40007"/>
<c name="function" type="10" value="ctrl_pause_motoroff"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_pause_motoroff"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40008"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40008"/>
<c name="function" type="10" value="ctrl_pptomain"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_pp2main"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40009"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40009"/>
<c name="function" type="10" value="ctrl_program_start"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_prog_start"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40010"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40010"/>
<c name="function" type="10" value="ctrl_program_stop"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_prog_stop"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40011"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40011"/>
<c name="function" type="10" value="ctrl_reduced_mode"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_reduced_mode"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40012"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40012"/>
<c name="function" type="10" value="ctrl_soft_estop"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_soft_estop"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="true"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40013"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40013"/>
<c name="function" type="10" value="ctrl_switch_auto_motoron"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_auto_motoron"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40014"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40014"/>
<c name="function" type="10" value="ctrl_switch_operation_auto"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_switch_auto"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40015"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40015"/>
<c name="function" type="10" value="ctrl_switch_operation_manu"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_switch_manual"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40016"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40016"/>
<c name="function" type="10" value="enable_safe_region01"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_safe_region01"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40017"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40017"/>
<c name="function" type="10" value="enable_safe_region02"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_safe_region02"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40018"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40018"/>
<c name="function" type="10" value="enable_safe_region03"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_safe_region03"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40100"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40100"/>
<c name="function" type="10" value=""/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="act"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40500"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40500"/>
<c name="function" type="10" value="sta_alarm"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_alarm_state"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="true"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40501"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40501"/>
<c name="function" type="10" value="sta_collision"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_clsn_alarm_stat"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40502"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40502"/>
<c name="function" type="10" value="sta_collision_open"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_clsn_open_stat"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="true"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40503"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40503"/>
<c name="function" type="10" value="sta_controller_is_running"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_controller_running"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="true"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40504"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40504"/>
<c name="function" type="10" value="sta_encoder_low_battery"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_encoder_low"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40505"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40505"/>
<c name="function" type="10" value="sta_estop"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_estop_stat"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40506"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40506"/>
<c name="function" type="10" value="sta_motor"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_motor_stat"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40507"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40507"/>
<c name="function" type="10" value="sta_operation_mode"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_operation_mode"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40508"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40508"/>
<c name="function" type="10" value="sta_program"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_prog_stat"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40509"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40509"/>
<c name="function" type="10" value="sta_program_not_run"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_prog_not_run"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="true"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40510"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40510"/>
<c name="function" type="10" value="sta_program_reset"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_prog_reset"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40511"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40511"/>
<c name="function" type="10" value="sta_reduced_mode"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_reduced_mode_stat"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40512"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40512"/>
<c name="function" type="10" value="sta_robot_is_busy"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_robot_is_busy"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40513"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40513"/>
<c name="function" type="10" value="sta_robot_moving"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_robot_moving"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40514"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40514"/>
<c name="function" type="10" value="sta_safe_door"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_safe_door"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40515"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40515"/>
<c name="function" type="10" value="sta_safe_region01"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_safe_region01"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40516"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40516"/>
<c name="function" type="10" value="sta_safe_region02"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_safe_region02"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40517"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40517"/>
<c name="function" type="10" value="sta_safe_region03"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_safe_region03"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40518"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40518"/>
<c name="function" type="10" value="sta_soft_estop"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_soft_estop_stat"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40600"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40600"/>
<c name="function" type="10" value=""/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="ready_to_go"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40601"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40602"/>
<c name="function" type="10" value=""/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="scenario_time"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="float"/>
<c name="value"/>
<c name="value_single" type="10" value="0"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40603"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40603"/>
<c name="function" type="10" value=""/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="capture_start"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
</l>
</m>

Binary file not shown.

View File

@ -0,0 +1,75 @@
{
"device_list": [
{
"enable": true,
"endian": 1,
"extend_attr": {
"RTU": {
"serial_name": ""
},
"TCP": {
"ip": "0.0.0.0",
"port": 502
},
"coils": {
"max_num": 16,
"start_addr": 0
},
"discrete_input": {
"max_num": 16,
"start_addr": 0
},
"hold_register": {
"max_num": 2000,
"start_addr": 40000
},
"input_register": {
"max_num": 2000,
"start_addr": 4000
},
"protol_type": "TCP",
"slaver_id": 1
},
"mode": "slaver",
"name": "autotest",
"type": "MODBUS"
}
],
"support_types": [
{
"device_type": "MODBUS",
"support_mode": {
"master": 10,
"slaver": 10
}
},
{
"device_type": "CCLINK",
"support_mode": {
"master": 0,
"slaver": 1
}
},
{
"device_type": "ETHERCAT",
"support_mode": {
"master": 0,
"slaver": 10
}
},
{
"device_type": "PROFINET",
"support_mode": {
"master": 0,
"slaver": 1
}
},
{
"device_type": "EtherNetIP",
"support_mode": {
"master": 0,
"slaver": 1
}
}
]
}

View File

@ -0,0 +1,520 @@
{
"MODBUS": [
{
"property": {
"device_name": "autotest",
"endian": 1
},
"regs": {
"rd": [
{
"addr": 40000,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "ctrl_clear_alarm",
"len": 1,
"name": "r_clear_alarm",
"retain": false,
"type": "bool"
},
{
"addr": 40001,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "ctrl_estop_reset",
"len": 1,
"name": "r_estop_reset",
"retain": false,
"type": "bool"
},
{
"addr": 40002,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "ctrl_estop_reset_clear_alarm",
"len": 1,
"name": "r_onekey_reset",
"retain": false,
"type": "bool"
},
{
"addr": 40003,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "ctrl_motor_off",
"len": 1,
"name": "r_motor_off",
"retain": false,
"type": "bool"
},
{
"addr": 40004,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "ctrl_motor_on",
"len": 1,
"name": "r_motor_on",
"retain": false,
"type": "bool"
},
{
"addr": 40005,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "ctrl_motoron_pptomain_start",
"len": 1,
"name": "r_onekey_start",
"retain": false,
"type": "bool"
},
{
"addr": 40006,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "ctrl_motoron_start",
"len": 1,
"name": "r_motoron_start",
"retain": false,
"type": "bool"
},
{
"addr": 40007,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "ctrl_pause_motoroff",
"len": 1,
"name": "r_pause_motoroff",
"retain": false,
"type": "bool"
},
{
"addr": 40008,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "ctrl_pptomain",
"len": 1,
"name": "r_pp2main",
"retain": false,
"type": "bool"
},
{
"addr": 40009,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "ctrl_program_start",
"len": 1,
"name": "r_prog_start",
"retain": false,
"type": "bool"
},
{
"addr": 40010,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "ctrl_program_stop",
"len": 1,
"name": "r_prog_stop",
"retain": false,
"type": "bool"
},
{
"addr": 40011,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "ctrl_reduced_mode",
"len": 1,
"name": "r_reduced_mode",
"retain": false,
"type": "bool"
},
{
"addr": 40012,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "ctrl_soft_estop",
"len": 1,
"name": "r_soft_estop",
"retain": false,
"type": "bool"
},
{
"addr": 40013,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "ctrl_switch_auto_motoron",
"len": 1,
"name": "r_auto_motoron",
"retain": false,
"type": "bool"
},
{
"addr": 40014,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "ctrl_switch_operation_auto",
"len": 1,
"name": "r_switch_auto",
"retain": false,
"type": "bool"
},
{
"addr": 40015,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "ctrl_switch_operation_manu",
"len": 1,
"name": "r_switch_manual",
"retain": false,
"type": "bool"
},
{
"addr": 40016,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "enable_safe_region01",
"len": 1,
"name": "r_safe_region01",
"retain": false,
"type": "bool"
},
{
"addr": 40017,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "enable_safe_region02",
"len": 1,
"name": "r_safe_region02",
"retain": false,
"type": "bool"
},
{
"addr": 40018,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "enable_safe_region03",
"len": 1,
"name": "r_safe_region03",
"retain": false,
"type": "bool"
},
{
"addr": 40100,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "",
"len": 1,
"name": "act",
"retain": false,
"type": "bool"
}
],
"rdwr": [
{
"addr": 40500,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_alarm",
"len": 1,
"name": "w_alarm_state",
"retain": false,
"type": "bool"
},
{
"addr": 40501,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_collision",
"len": 1,
"name": "w_clsn_alarm_stat",
"retain": false,
"type": "bool"
},
{
"addr": 40502,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_collision_open",
"len": 1,
"name": "w_clsn_open_stat",
"retain": false,
"type": "bool"
},
{
"addr": 40503,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_controller_is_running",
"len": 1,
"name": "w_controller_running",
"retain": false,
"type": "bool"
},
{
"addr": 40504,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_encoder_low_battery",
"len": 1,
"name": "w_encoder_low",
"retain": false,
"type": "bool"
},
{
"addr": 40505,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_estop",
"len": 1,
"name": "w_estop_stat",
"retain": false,
"type": "bool"
},
{
"addr": 40506,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_motor",
"len": 1,
"name": "w_motor_stat",
"retain": false,
"type": "bool"
},
{
"addr": 40507,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_operation_mode",
"len": 1,
"name": "w_operation_mode",
"retain": false,
"type": "bool"
},
{
"addr": 40508,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_program",
"len": 1,
"name": "w_prog_stat",
"retain": false,
"type": "bool"
},
{
"addr": 40509,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_program_not_run",
"len": 1,
"name": "w_prog_not_run",
"retain": false,
"type": "bool"
},
{
"addr": 40510,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_program_reset",
"len": 1,
"name": "w_prog_reset",
"retain": false,
"type": "bool"
},
{
"addr": 40511,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_reduced_mode",
"len": 1,
"name": "w_reduced_mode_stat",
"retain": false,
"type": "bool"
},
{
"addr": 40512,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_robot_is_busy",
"len": 1,
"name": "w_robot_is_busy",
"retain": false,
"type": "bool"
},
{
"addr": 40513,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_robot_moving",
"len": 1,
"name": "w_robot_moving",
"retain": false,
"type": "bool"
},
{
"addr": 40514,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_safe_door",
"len": 1,
"name": "w_safe_door",
"retain": false,
"type": "bool"
},
{
"addr": 40515,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_safe_region01",
"len": 1,
"name": "w_safe_region01",
"retain": false,
"type": "bool"
},
{
"addr": 40516,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_safe_region02",
"len": 1,
"name": "w_safe_region02",
"retain": false,
"type": "bool"
},
{
"addr": 40517,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_safe_region03",
"len": 1,
"name": "w_safe_region03",
"retain": false,
"type": "bool"
},
{
"addr": 40518,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "sta_soft_estop",
"len": 1,
"name": "w_soft_estop_stat",
"retain": false,
"type": "bool"
},
{
"addr": 40600,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "",
"len": 1,
"name": "ready_to_go",
"retain": false,
"type": "bool"
},
{
"addr": 40601,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "",
"len": 1,
"name": "scenario_time",
"retain": false,
"type": "float"
},
{
"addr": 40603,
"addr_1st": 0,
"addr_2nd": 0,
"bit_bias": 0,
"byte_bias": 0,
"function": "",
"len": 1,
"name": "capture_start",
"retain": false,
"type": "bool"
}
]
}
}
]
}

View File

@ -0,0 +1,843 @@
<?xml version="1.0" encoding="UTF-8"?>
<m>
<l>
<c name="addr" type="2" value="40000"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40000"/>
<c name="function" type="10" value="ctrl_clear_alarm"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_clear_alarm"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40001"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40001"/>
<c name="function" type="10" value="ctrl_estop_reset"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_estop_reset"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40002"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40002"/>
<c name="function" type="10" value="ctrl_estop_reset_clear_alarm"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_onekey_reset"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40003"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40003"/>
<c name="function" type="10" value="ctrl_motor_off"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_motor_off"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40004"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40004"/>
<c name="function" type="10" value="ctrl_motor_on"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_motor_on"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40005"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40005"/>
<c name="function" type="10" value="ctrl_motoron_pptomain_start"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_onekey_start"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40006"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40006"/>
<c name="function" type="10" value="ctrl_motoron_start"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_motoron_start"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40007"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40007"/>
<c name="function" type="10" value="ctrl_pause_motoroff"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_pause_motoroff"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40008"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40008"/>
<c name="function" type="10" value="ctrl_pptomain"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_pp2main"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40009"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40009"/>
<c name="function" type="10" value="ctrl_program_start"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_prog_start"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40010"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40010"/>
<c name="function" type="10" value="ctrl_program_stop"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_prog_stop"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40011"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40011"/>
<c name="function" type="10" value="ctrl_reduced_mode"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_reduced_mode"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40012"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40012"/>
<c name="function" type="10" value="ctrl_soft_estop"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_soft_estop"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="true"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40013"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40013"/>
<c name="function" type="10" value="ctrl_switch_auto_motoron"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_auto_motoron"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40014"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40014"/>
<c name="function" type="10" value="ctrl_switch_operation_auto"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_switch_auto"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40015"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40015"/>
<c name="function" type="10" value="ctrl_switch_operation_manu"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_switch_manual"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40016"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40016"/>
<c name="function" type="10" value="enable_safe_region01"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_safe_region01"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40017"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40017"/>
<c name="function" type="10" value="enable_safe_region02"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_safe_region02"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40018"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40018"/>
<c name="function" type="10" value="enable_safe_region03"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="r_safe_region03"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40100"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40100"/>
<c name="function" type="10" value=""/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="act"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rd"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40500"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40500"/>
<c name="function" type="10" value="sta_alarm"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_alarm_state"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="true"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40501"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40501"/>
<c name="function" type="10" value="sta_collision"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_clsn_alarm_stat"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40502"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40502"/>
<c name="function" type="10" value="sta_collision_open"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_clsn_open_stat"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="true"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40503"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40503"/>
<c name="function" type="10" value="sta_controller_is_running"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_controller_running"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="true"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40504"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40504"/>
<c name="function" type="10" value="sta_encoder_low_battery"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_encoder_low"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40505"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40505"/>
<c name="function" type="10" value="sta_estop"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_estop_stat"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40506"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40506"/>
<c name="function" type="10" value="sta_motor"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_motor_stat"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40507"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40507"/>
<c name="function" type="10" value="sta_operation_mode"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_operation_mode"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40508"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40508"/>
<c name="function" type="10" value="sta_program"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_prog_stat"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40509"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40509"/>
<c name="function" type="10" value="sta_program_not_run"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_prog_not_run"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="true"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40510"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40510"/>
<c name="function" type="10" value="sta_program_reset"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_prog_reset"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40511"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40511"/>
<c name="function" type="10" value="sta_reduced_mode"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_reduced_mode_stat"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40512"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40512"/>
<c name="function" type="10" value="sta_robot_is_busy"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_robot_is_busy"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40513"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40513"/>
<c name="function" type="10" value="sta_robot_moving"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_robot_moving"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40514"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40514"/>
<c name="function" type="10" value="sta_safe_door"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_safe_door"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40515"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40515"/>
<c name="function" type="10" value="sta_safe_region01"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_safe_region01"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40516"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40516"/>
<c name="function" type="10" value="sta_safe_region02"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_safe_region02"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40517"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40517"/>
<c name="function" type="10" value="sta_safe_region03"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_safe_region03"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40518"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40518"/>
<c name="function" type="10" value="sta_soft_estop"/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="w_soft_estop_stat"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40600"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40600"/>
<c name="function" type="10" value=""/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="ready_to_go"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40601"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40602"/>
<c name="function" type="10" value=""/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="scenario_time"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="float"/>
<c name="value"/>
<c name="value_single" type="10" value="0"/>
<c name="bias" type="2" value="0"/>
</l>
<l>
<c name="addr" type="2" value="40603"/>
<c name="addr_1st" type="2" value="0"/>
<c name="addr_2nd" type="2" value="0"/>
<c name="bit_bias" type="2" value="0"/>
<c name="byte_bias" type="4" value="0"/>
<c name="description" type="10" value=""/>
<c name="dev_name" type="10" value="autotest"/>
<c name="dev_type" type="10" value="MODBUS"/>
<c name="end_addr" type="2" value="40603"/>
<c name="function" type="10" value=""/>
<c name="len" type="2" value="1"/>
<c name="name" type="10" value="capture_start"/>
<c name="retain" type="1" value="false"/>
<c name="rw" type="10" value="rdwr"/>
<c name="type" type="10" value="bool"/>
<c name="value"/>
<c name="value_single" type="10" value="false"/>
<c name="bias" type="2" value="0"/>
</l>
</m>

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "safety",
"command": "collision.get_params"
}

View File

@ -0,0 +1,6 @@
{
"id": "xxxxxxxxxxx",
"module": "safety",
"command": "collision.set_params",
"data": null
}

View File

@ -0,0 +1,7 @@
{
"module": "safety",
"command": "collision.set_state",
"data": {
"collision_state": false
}
}

View File

@ -0,0 +1,5 @@
{
"id":"xxxxxxxxxxx",
"module":"system",
"command":"controller.get_params"
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "system",
"command": "controller.heart"
}

View File

@ -0,0 +1,8 @@
{
"id": "xxxxxxxxxxx",
"module": "system",
"command": "controller.reboot",
"data": {
"arg": 6
}
}

View File

@ -0,0 +1,8 @@
{
"id": "xxxxxxxxxxx",
"module": "system",
"command": "controller.set_params",
"data": {
"time": "2020-02-28 15:28:30"
}
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "system",
"command": "device.get_params"
}

View File

@ -0,0 +1,8 @@
{
"id": "xxxxxxxxxxx",
"module": "robot",
"command": "diagnosis.get_params",
"data": {
"version": "1.4.1"
}
}

View File

@ -0,0 +1,12 @@
{
"id": "xxxxxxxxxxx",
"module": "robot",
"command": "diagnosis.open",
"data": {
"open": false,
"display_open": false,
"overrun": false,
"turn_area": false,
"delay_motion": false
}
}

View File

@ -0,0 +1,8 @@
{
"id": "xxxxxxxxxxx",
"module": "robot",
"command": "diagnosis.save",
"data": {
"save": true
}
}

View File

@ -0,0 +1,10 @@
{
"id": "xxxxxxxxxxx",
"module": "robot",
"command": "diagnosis.set_params",
"data": {
"display_pdo_params": [],
"frequency": 50,
"version": "1.4.1"
}
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "dynamic",
"command": "drag.get_params"
}

View File

@ -0,0 +1,10 @@
{
"id": "xxxxxxxxxxx",
"module": "dynamic",
"command": "drag.set_params",
"data": {
"enable": true,
"space": 0,
"type": 0
}
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "fieldbus",
"command": "fieldbus_device.get_params"
}

View File

@ -0,0 +1,8 @@
{
"id": "xxxxxxxxxxx",
"module": "fieldbus",
"command": "fieldbus_device.load_cfg",
"data": {
"file_name": "fieldbus_device.json"
}
}

View File

@ -0,0 +1,9 @@
{
"id": "xxxxxxxxxxx",
"module": "fieldbus",
"command": "fieldbus_device.set_params",
"data": {
"device_name": "modbus_1",
"enable": true
}
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "io",
"command": "io_device.load_cfg"
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "motion",
"command": "jog.get_params"
}

View File

@ -0,0 +1,10 @@
{
"id": "xxxxxxxxxxx",
"module": "motion",
"command": "jog.set_params",
"data": {
"step": 1000,
"override": 0.2,
"space": 5
}
}

View File

@ -0,0 +1,10 @@
{
"id": "xxxxxxxxxxx",
"module": "motion",
"command": "jog.start",
"data": {
"index": 0,
"direction": true,
"is_ext": false
}
}

View File

@ -0,0 +1,8 @@
{
"id": "log_code.data.code_list",
"s": {
"log_code.data": {
"code_list": []
}
}
}

View File

@ -0,0 +1,5 @@
{
"g": {
"log_code.data": "null"
}
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "fieldbus",
"command": "modbus.get_params"
}

View File

@ -0,0 +1,8 @@
{
"id": "xxxxxxxxxxx",
"module": "fieldbus",
"command": "modbus.get_values",
"data": {
"mode": "all"
}
}

View File

@ -0,0 +1,8 @@
{
"id": "xxxxxxxxxxx",
"module": "fieldbus",
"command": "modbus.load_cfg",
"data": {
"file" : "registers.json"
}
}

View File

@ -0,0 +1,12 @@
{
"id": "xxxxxxxxxxx",
"module": "fieldbus",
"command": "modbus.set_params",
"data": {
"enable_slave": true,
"ip": "192.168.0.160",
"port": 502,
"slave_id": 0,
"enable_master": false
}
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "motion",
"command": "move.get_joint_pos"
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "motion",
"command": "move.get_monitor_cfg"
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "motion",
"command": "move.get_params"
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "motion",
"command": "move.get_pos"
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "motion",
"command": "move.get_quickstop_distance"
}

View File

@ -0,0 +1,5 @@
{
"id" : "xxxxxxxxx",
"module": "motion",
"command": "move.get_quickturn_pos"
}

View File

@ -0,0 +1,8 @@
{
"id": "xxxxxxxxxxx",
"module": "motion",
"command": "move.quick_turn",
"data": {
"name":"home"
}
}

View File

@ -0,0 +1,8 @@
{
"id": "xxxxxxxxxxx",
"module": "motion",
"command": "move.set_monitor_cfg",
"data": {
"ref_coordinate": 1
}
}

View File

@ -0,0 +1,17 @@
{
"id": "xxxxxxxxxxx",
"module": "motion",
"command": "move.set_params",
"data": {
"MOTION": {
"JOINT_MAX_SPEED": [1.0,0.0,0.0,0.0,0.0,0.0],
"JOINT_MAX_ACC": [1.0,0.0,0.0,0.0,0.0,0.0],
"JOINT_MAX_JERK": [1.0,0.0,0.0],
"TCP_MAX_SPEED": 500,
"DEFAULT_ACC_PARAMS": [0.3,1.0],
"VEL_SMOOTH_FACTOR": 3.33,
"ACC_RAMPTIME_JOG": 0.01
}
}
}

View File

@ -0,0 +1,8 @@
{
"id": "xxxxxxxxxxx",
"module": "motion",
"command": "move.set_quickstop_distance",
"data":{
"distance": 2
}
}

View File

@ -0,0 +1,15 @@
{
"id" : "xxxxxxxxx",
"module": "motion",
"command": "move.set_quickturn_pos",
"data": {
"enable_home": false,
"enable_drag": false,
"enable_transport": false,
"joint_home": [0.0,0.0,0.0,0.0,0.0,0.0,0.0],
"joint_drag": [0.0,0.0,0.0,0.0,0.0,0.0,0.0],
"joint_transport": [0.0,0.0,0.0,0.0,0.0,0.0,0.0],
"end_posture": 0,
"home_error_range":[0.0,0.0,0.0,0.0,0.0,0.0,0.0]
}
}

View File

@ -0,0 +1,8 @@
{
"id": "xxxxxxxxxxx",
"module": "motion",
"command": "move.stop",
"data":{
"stoptype": 0
}
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "project",
"command": "overview.get_autoload"
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "project",
"command": "overview.get_cur_prj"
}

View File

@ -0,0 +1,9 @@
{
"id": "xxxxxxxxxxx",
"module": "project",
"command": "overview.reload",
"data": {
"prj_path": "",
"tasks": []
}
}

View File

@ -0,0 +1,8 @@
{
"id": "xxxxxxxxxxx",
"module": "project",
"command": "overview.set_autoload",
"data": {
"autoload_prj_path": ""
}
}

View File

@ -0,0 +1,11 @@
{
"id": "xxxxxxxxxxx",
"module": "fieldbus",
"command": "register.set_value",
"data": {
"name": "",
"type": "bool",
"bias": 0,
"value": 0
}
}

View File

@ -0,0 +1,8 @@
{
"id": "xxxxxxxxxxx",
"module": "project",
"command": "rl_task.pp_to_main",
"data": {
"tasks": []
}
}

View File

@ -0,0 +1,8 @@
{
"id": "xxxxxxxxxxx",
"module": "project",
"command": "rl_task.run",
"data": {
"tasks": []
}
}

View File

@ -0,0 +1,9 @@
{
"id": "xxxxxxxxxxx",
"module": "project",
"command": "rl_task.set_run_params",
"data": {
"loop_mode": true,
"override": 1.0
}
}

View File

@ -0,0 +1,8 @@
{
"id": "xxxxxxxxxxx",
"module": "project",
"command": "rl_task.stop",
"data": {
"tasks": []
}
}

View File

@ -0,0 +1,7 @@
{
"c": {
"safety.safety_area.overall_enable": {
"enable": true
}
}
}

View File

@ -0,0 +1,8 @@
{
"c": {
"safety.safety_area.safety_area_enable": {
"id": 0,
"enable": true
}
}
}

View File

@ -0,0 +1,5 @@
{
"c": {
"safety.safety_area.set_param": null
}
}

View File

@ -0,0 +1,7 @@
{
"c": {
"safety.safety_area.signal_enable": {
"signal": true
}
}
}

View File

@ -0,0 +1,5 @@
{
"g": {
"safety_area_data": null
}
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "robot",
"command": "servo.clear_alarm"
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "network",
"command": "socket.get_params"
}

View File

@ -0,0 +1,17 @@
{
"id": "xxxxxxxxxxx",
"module": "network",
"command": "socket.set_params",
"data": {
"enable": true,
"ip": "",
"name": "c1",
"port": "8080",
"suffix": "\r",
"type": 1,
"reconnect_flag": false,
"auto_connect": true,
"disconnection_triggering_behavior": 0,
"disconnection_detection_time": 10
}
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "safety",
"command": "soft_limit.get_params"
}

View File

@ -0,0 +1,12 @@
{
"id": "xxxxxxxxxxx",
"module": "safety",
"command": "soft_limit.set_params",
"data": {
"enable": true,
"upper": [0,0,0,0,0,0,0],
"lower": [0,0,0,0,0,0,0],
"reduced_upper": [0,0,0,0,0,0,0],
"reduced_lower": [0,0,0,0,0,0,0]
}
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "system",
"command": "state.get_state"
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "system",
"command": "state.get_tp_mode"
}

View File

@ -0,0 +1,8 @@
{
"id": "xxxxxxxxxxx",
"module": "system",
"command": "state.set_tp_mode",
"data": {
"tp_mode": "with"
}
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "system",
"command": "state.switch_auto"
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "system",
"command": "state.switch_manual"
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "system",
"command": "state.switch_motor_off"
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "system",
"command": "state.switch_motor_on"
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "io",
"command": "system_io.query_configuration"
}

View File

@ -0,0 +1,5 @@
{
"id": "xxxxxxxxxxx",
"module": "io",
"command": "system_io.query_event_cfg"
}

View File

@ -0,0 +1,9 @@
{
"id": "xxxxxxxxxxx",
"module": "io",
"command": "system_io.update_configuration",
"data": {
"input_system_io": {},
"output_system_io": {}
}
}

Binary file not shown.

View File

@ -0,0 +1,56 @@
b'\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340\x01o429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17\n\t\t\t]\n\t\t}\n\t],\n\t"module" : "robot"\n}\x04\x00\x00\x00-h\x02\x00{\n\t"command" : "diagnosis.result",\n\t"data" : \n\t[\n\t\t{\n\t\t\t"channel" : 0,\n\t\t\t"name" : "hw_joint_vel_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0'
b'.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 1,\n\t\t\t"name" : "hw_joint_vel_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t6.7411265092630715e-06,\n\t\t\t\t0.00049929277011941824,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0027270103772138884,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t0.00012044146029883355,\n\t\t\t\t-0.0022272681986605192,\n\t\t\t\t-0.0027270103772138884,\n\t\t\t\t0.0020686270214758614,\n\t\t\t\t-0.0027270103772138884,\n\t\t\t\t0.0020686270214758614,\n\t\t\t\t1.3482253018526145e-06,\n\t\t\t\t-0.002697798\x04\x008290070812,\n\t\t\t\t0.00050648330506263212,\n\t\t\t\t-0.0,\n\t\t\t\t0.0020753681479851243,\n\t\t\t\t2.8762139772855775e-05,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t3.5952674716069715e-05,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t0.0001496530085056402,\n\t\t\t\t0.0001276319952420475,\n\t\t\t\t-0.0027252127434780845,\n\t\t\t\t6.7411265092630715e-06,\n\t\t\t\t-0.0026977988290070812,\n\t\t\t\t8.5387602450665581e-06,\n\t\t\t\t0.0020686270214758614,\n\t\t\t\t0.00206862702147'
b'58614,\n\t\t\t\t-0.0,\n\t\t\t\t7.1905349432139438e-06,\n\t\t\t\t1.3482253018526145e-06,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t2.8762139772855775e-05,\n\t\t\t\t-0.0,\n\t\t\t\t6.7411265092630715e-06,\n\t\t\t\t-0.0,\n\t\t\t\t0.00049929277011941824,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 2,\n\t\t\t"name" : "hw_joint_vel_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t1.1984224905356572e-06,\n\t\t\t\t0.00010705907582118537,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0024236097500266104,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0024240092241901226,\n\t\t\x04\x00\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t0.0018387795746452099,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t0.00010705907582118537,\n\t\t\t\t-0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 3,\n\t\t\t"name" : "hw_joint_vel_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t'
b'-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.00021840051467521813,\n\t\t\t\t-0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 4,\n\t\t\t"name" : "hw_joint_vel_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t-0.0,\n\t\t\t\t-0.0\x04\x00,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n'
b'\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 5,\n\t\t\t"name" : "hw_joint_vel_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-\x04\x000.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 0,\n\t\t\t"name" : "device_servo_trq_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t'
b'\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 1,\n\t\t\t"name" : "device_servo_trq_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0\x04\x00.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 2,\n\t\t\t"name" : "device_servo_trq_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.'
b'0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 3,\n\t\t\t"name" : "device_servo_trq_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\x04\x00\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 4,\n\t\t\t"name" : "device_servo_trq_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n'
b'\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 5,\n\t\t\t"name" : "device_servo_trq_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.\x04\x000,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 0,\n\t\t\t"name" : "device_safety_estop",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n'
b'\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 1,\n\t\t\t"name" : "device_safety_estop",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1\x04\x00.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 2,\n\t\t\t"name" : "device_safety_estop",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.'
b'0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 3,\n\t\t\t"name" : "device_safety_estop",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t\x04\x001.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0,\n\t\t\t\t1.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 4,\n\t\t\t"name" : "device_safety_estop",\n\t\t\t"value" : '
b'\n\t\t\t[\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 5,\n\t\t\t"name" : "device_safety_estop",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5\x04\x00.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429'
b'065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.55163404\x01n29065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17\n\t\t\t]\n\t\t}\n\t],\n\t"module" : "robot"\n}\x04\x00\x00\x00-\x8f\x02\x00{\n\t"command"'
> - 封包解包顺序:帧长度二字节/包长度四字节/协议二字节/预留二字节,\x04\x00:\x00\x00\tR:\x02:\x00
> - 帧长度和包长度没有必然关系单帧的时候是帧长度减去包长度等于6包长度指的是所有内容的长度
> - HMI内部每次发送1024个字节进行分包有效内容长度规则是第一帧 frm_value-6(帧大小减去包头长度),第二帧(包含)及之后的帧,帧大小即是数据长度
==================================================================================================
单包多帧示例
\x04\x00\x00\x00-h\x02\x00
frm_value = int.from_bytes(b"\x04\x00") = 1024 | 每次发送的帧的报文总长度,包括包头(如果有),但不包括帧头
pkg_value = int.from_bytes(b"\x00\x00-h") = 11624 | 包长度是不包括所有的帧和包报文头的,单包单帧的情况也是一样的
pkg_size = 6 字节
有效数据长度 = 10240 + 402 + 1004 - 20 - 2(首个帧头) = 11624
有效数据长度+包报文头 = 11624 + 6 = 11630
有效数据长度+包报文头+帧报文头 = 11624 + 6 + 22 = 11652
首帧长度 1018=frm_value-pkg_size=1024-6如下是第一帧和第二帧的拼接
b'{\n\t"command" : "diagnosis.result",\n\t"data" : \n\t[\n\t\t{\n\t\t\t"channel" : 0,\n\t\t\t"name" : "hw_joint_vel_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 1,\n\t\t\t"name" : "hw_joint_vel_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t6.7411265092630715e-06,\n\t\t\t\t0.00049929277011941824,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0027270103772138884,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t0.00012044146029883355,\n\t\t\t\t-0.0022272681986605192,\n\t\t\t\t-0.0027270103772138884,\n\t\t\t\t0.0020686270214758614,\n\t\t\t\t-0.0027270103772138884,\n\t\t\t\t0.0020686270214758614,\n\t\t\t\t1.3482253018526145e-06,\n\t\t\t\t-0.002697798'
单帧长度 1024如下是第二帧和第三帧的拼接
b'8290070812,\n\t\t\t\t0.00050648330506263212,\n\t\t\t\t-0.0,\n\t\t\t\t0.0020753681479851243,\n\t\t\t\t2.8762139772855775e-05,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t3.5952674716069715e-05,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t0.0001496530085056402,\n\t\t\t\t0.0001276319952420475,\n\t\t\t\t-0.0027252127434780845,\n\t\t\t\t6.7411265092630715e-06,\n\t\t\t\t-0.0026977988290070812,\n\t\t\t\t8.5387602450665581e-06,\n\t\t\t\t0.0020686270214758614,\n\t\t\t\t0.0020686270214758614,\n\t\t\t\t-0.0,\n\t\t\t\t7.1905349432139438e-06,\n\t\t\t\t1.3482253018526145e-06,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t2.8762139772855775e-05,\n\t\t\t\t-0.0,\n\t\t\t\t6.7411265092630715e-06,\n\t\t\t\t-0.0,\n\t\t\t\t0.00049929277011941824,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t"channel" : 2,\n\t\t\t"name" : "hw_joint_vel_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t1.1984224905356572e-06,\n\t\t\t\t0.00010705907582118537,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0024236097500266104,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0,\n\t\t\t\t-0.0024240092241901226,\n\t\t'
---------------------------------------------------------------------------------------------------
第一帧有效 - 402
b'{\n\t"command" : "diagnosis.result",\n\t"data" : \n\t[\n\t\t{\n\t\t\t"channel" : 0,\n\t\t\t"name" : "hw_joint_vel_feedback",\n\t\t\t"value" : \n\t\t\t[\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0.0,\n\t\t\t\t0'
---------------------------------------------------------------------------------------------------
中间有 10 帧,共计 10240 个字节,也有 10 个 \x04\x00共计 20 个字节
---------------------------------------------------------------------------------------------------
最后一帧有效 - 1004
b'065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.55163404\x01n29065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17,\n\t\t\t\t-5.5516340429065717e-17\n\t\t\t]\n\t\t}\n\t],\n\t"module" : "robot"\n}'
---------------------------------------------------------------------------------------------------
==================================================================================================
单包单帧示例
\x00\\\x00\x00\x00V\x02\x00
frm_value = int.from_bytes(b"\x00\\") = 92 | 每次发送的帧的报文总长度,包括包头(如果有),但不包括帧头
pkg_value = int.from_bytes(b"\x00\x00\x00V") = 86 | 包长度是不包括所有的帧和包报文头的,单包单帧的情况也是一样的
pkg_size = 6
有效数据长度 = 86
有效数据长度+包报文头 = 86 + 6 = 92
有效数据长度+包报文头+帧报文头 = 86 + 6 +2 = 94
帧长度 86=frm_value-pkg_size=92-6
b'\x00\\\x00\x00\x00V\x02\x00{\n\t"data" : \n\t{\n\t\t"name" : "xCore"\n\t},\n\t"id" : "controller.heart-1719734550.9790015"\n}'

View File

@ -0,0 +1,43 @@
# UTF-8
#
# For more details about fixed file info 'ffi' see:
# http://msdn.microsoft.com/en-us/library/ms646997.aspx
VSVersionInfo(
ffi=FixedFileInfo(
# filevers and prodvers should be always a tuple with four items: (1, 2, 3, 4)
# Set not needed items to zero 0.
filevers=(0, 3, 1, 6),
prodvers=(0, 3, 1, 6),
# Contains a bitmask that specifies the valid bits 'flags'r
mask=0x3f,
# Contains a bitmask that specifies the Boolean attributes of the file.
flags=0x0,
# The operating system for which this file was designed.
# 0x4 - NT and there is no need to change it.
OS=0x4,
# The general type of file.
# 0x1 - the file is an application.
fileType=0x1,
# The function of the file.
# 0x0 - the function is not defined for this fileType
subtype=0x0,
# Creation date and time stamp.
date=(0, 0)
),
kids=[
StringFileInfo(
[
StringTable(
'040904b0',
[StringStruct('CompanyName', 'Rokae - https://www.rokae.com/'),
StringStruct('FileDescription', 'All in one automatic toolbox'),
StringStruct('FileVersion', '0.3.1.6 (2025-03-21)'),
StringStruct('InternalName', 'AIO.exe'),
StringStruct('LegalCopyright', '© 2024-2025 Manford Fan'),
StringStruct('OriginalFilename', 'AIO.exe'),
StringStruct('ProductName', 'AIO'),
StringStruct('ProductVersion', '0.3.1.6 (2025-03-21)')])
]),
VarFileInfo([VarStruct('Translation', [1033, 1200])])
]
)

View File

@ -0,0 +1,490 @@
v0.0.1(2024/05/18)
Draft
v0.0.2(2024/05/20)
1. 功能模块化,为后面其他功能奠定一个基本的框架
2. 使用了多线程提高效率
3. 优化了准备工作中的细节
4. 运行初始化时自动删除 raw_data_dir 中的 .xlsx 文件
5. 优化了输出格式
6. 使用 pyinstaller 库进行代码冻结并调试成功
v0.0.3(2024/05/21)
1. just_open函数打开失败的信息中添加文件名
2. 删除global变量函数全部通过传参实现
3. configuration.xlsx配置文件增加AXIS常量表示那个轴取值为 j1/j2/j3/j4/j5/j6/j7
4. [bugfix] 增加get_threshold_step函数用来获取在计算row_start时合适的阈值和步长主要是解决了二轴最差工况下最大速度是个尖端的问题
a. load100_speed100_reachxxx 二轴 threshold = 50 step = 20
b. 其他 threshold = 50 step = 100
如上是一个比较保守的设定因为设定的step比较小找到点之后要往后延200最好
5. 在find_row_start_dp函数中新增一个参数data_file方便后续调试
v0.0.4(2024/05/22)
1. 重新标定了get_threshold_step函数让处理更加准确
2. 新定义了now_doing_msg函数实时输出处理信息
3. 修改了find_row_start和find_row_start_dp函数增加的部分相同处理数据的时候先判断是否是空值或者是0此时可以加快步进
4. 修改了just_open函数不在做重试
v0.0.5(2024/05/23)
1. 完善了函数注释
2. 调整了阈值和步长
3. 删除了just_open函数以及对应的win32com库Thank GOD!终于可以不用这个库了)
4. 重写了获取开始点位的代码直接使用speed来判断而不用角度所以find_row_start_dp以及copy_data_to_excel_file函数也被一并删除
5. 修改了配置文件configs.xlsx的初始参数顺序及结构使程序通用性更强
6. 将initialazation中的预定义变量赋值调整到try...except...之外,更方便排查问题
7. 修改结束时间的格式,精确到秒
v0.0.6(2024/05/23)
1. 为了调整多功能框架aio.py文件将会作为入口程序存在不实现具体功能功能的实现将由具体的功能脚本实现aio.py只负责条件调用
2. 新增了自动化处理电流数据(电机/过载)的功能
v0.1.0(2024/05/29)
1. 修改为customtkinter图形化界面
2. 支持工业机器人制动数据处理(理论上支持,测试数据有问题,待验证)
3. 删除configs.xlsx配置表格直接在界面配置新增layout.xlsx文件存储customtkinter布局
4. 电流尚未支持
v0.1.1(2024/05/30)
1. 增加版本检测功能
2. 修改了无效数据下的动作
3. textbox只在开始和结束时改变状态而不是每次写入都更改
4. 调整了brake的结构
5. 重新在write2textbox中添加exitcode参数并补齐相关逻辑和修改brake中的调用方式
6. 修复参数检查无效的情况
7. 屏蔽电流相关的功能
v0.1.2(2024/06/01)
1. 增加iso数据处理功能
2. 重新修改了README.md
3. 单独将rokae拉出来作为一个独立的repo进行维护与scripts分离
v0.1.3(2024/06/01)
1. 完成电流处理的基本功能
2. 修复了一些已知bugs
v0.1.4(2024/06/06)
1. AV/RR支持小数
2. 可处理电机电流单轴以及多轴数据,可根据需要进行参数设定处理不同轴的数据
3. 界面初始位置修改以及删除所有entry的长度设定因为设定无效
4. 修改了layout.xlsx布局增加了duration/trqH/STO字段以及额外的RC行整体扩展了区域
5. 更改label/entry/optionmenu等控件的生成方式使用循环实现更加简洁和容易维护暂未实现
6. 支持工业/协作两条产品线的电机电流数据处理包括单轴场景max/avg计算
v0.1.5(2024/06/12)
1. [aio.py] 主界面切换不同功能时保持placehold一致
2. [brake.py] 由于制动采集模板和内容的更改,适配了新的数据,更新了算法
3. [aio.py] 新增tabview组件区分数据处理和自动化测试功能
4. [aio.py] 重新调整界面配色
5. [aio.py] 修改了write2textbox函数定制化显示每一行的颜色针对每一行可自定义输出内容颜色
6. [brake.py/iso.py/current.py] 由于第 5 点的更改,同时修改了其他文件相关引用的部分
7. [aio.py] 更改label/entry/optionmenu等控件的生成方式使用循环实现更加简洁和容易维护
8. [aio.py] 修改customtkinter库中C:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\customtkinter\windows\widgets\ctk_tabview.py文件参考https://github.com/TomSchimansky/CustomTkinter/issues/2296实现修改tabview组件的字体大小
9. [aio.py] 修改menu_main->menu_main_dpmenu_sub->menu_sub_dp为后续其他tab功能按钮做扩展是针对第三点做出的相应调整
10. [layout.xlsx] 添加了各个功能的流程图
v0.1.5.1(2024/06/12)
1. [current.py] 修改cycle功能中数据清理范围为70000行并将threshold从2调整为5
2. [current.py] 修改位置超限提示,使更清楚了解问题原因
3. [current.py] 修改find_point函数中错误提示增加定位信息
4. [README.md] 精简打包命令
5. [requirements.txt] 新增必要库配置文件
v0.1.5.2(2024/06/13)
1. [brake.py/aio.py] 将sto修改为estop
2. [brake.py] 修改了速度计算逻辑新版本的vel列数据遵循如下规则av = vel * 180 / pi根据av再计算speed
3. [brake.py] 将threshold修改为常量50
4. [brake.py] 提高了输出提示语的明确性,删除了不必要的省略号
5. [brake.py] 更正了之前的数据copy错误重新优化了estop处是否达到指定百分比的判定逻辑
v0.1.5.3(2024/06/14)
1. [aio.py] 修改w_param为84适配14寸电脑屏幕
2. [brake.py] 将判定合规逻辑修改为角速度超过指定角速度的95%
3. [README.md] 稍作修改,包括打包方式,功能特性等
v0.1.6.0(2024/06/15)
1. [aio.py] 新增wavelogger处理界面
2. [wavelogger.py] 新增精度数据处理模块
v0.1.6.1(2024/06/16)
1. [wavelogger.py] bugfix single_file_proc函数中修改_start起始点的计算逻辑
2. [wavelogger.py] bugfix find_point函数中当判断条件为临界值 2.0 的时候针对forward和backward两种情况对row_target做与判断逻辑相同的处理目的是避免形成死循环
v0.1.6.2(2024/06/16)
1. [current.py] 修改了max/avg相关功能中对于返回值的处理逻辑并在输出框以行的形式打印出来
v0.1.6.3(2024/06/18)
1. [current.py] 适配电机电流中速度使用hw_joint_vel_feedback的数据取消对device_servo_vel_feedback的支持后续所有涉及到速度相关的数据均已前者为准现已完成对单轴和场景的适配
> WARNING目前版本的电机电流程序还支持DriverMaster采集的数据处理等明确后将不再支持也即所有的电机电流数据工业+协作),都是用诊断曲线来采集
v0.1.7.0(2024/06/19)-未发布
1. [openapi.py] 初步搭建起框架,完成了新老协议的封包/解包/异步采集日志的操作(未充分测试,但基本无问题)
2. [openapi.py] 修改了封包的规则,使之更加明晰,封包操作没有实现分包功能,目前看实际场景用不到
v0.1.7.0(2024/06/21)-未发布
1. [openapi.py] 定义 MAX_FRAME_SIZE 常量1024替换socket接收以及响应数据处理相关部分
2. [openapi.py] 使用 int.to_bytes 和 int.from_bytes 替换 binascii 模块的功能
3. [aio.py] 修改了Data Process中初始化的动作使得初始化时的状态统一成程序刚启动时的样子
v0.1.7.0(2024/06/23)-未发布
1. [aio.py] 增加了tabview的点击行为函数每次点击tab都会初始化
2. [aio.py] 增加了Automatic Test界面元素包括如下并完成了功能框架的搭建
- 标签:文件/角速度/减速比
- 按钮:急停及恢复
- 输入框:文件路径/角速度/减速比
- OptionMenu负载
- 进度条
3. [openapi.py] 增加心跳检测函数,并开启线程执行;取消在该文件中生成实例
4. [aio.py] 完成detect_network并在main函数开启线程
5. 将templates文件夹移动到assets内
v0.1.7.0(2024/06/24)-未发布
1. [openapi.py] 建联部分做容错逻辑,并将读写文件做自适应处理
2. [aio.py] 将读写文件做自适应处理引入openapi模块并生成实例做心跳检测将socket超时时间修改为3s
v0.1.7.0(2024/06/25)-未发布
1. [aio.py] 取消了在本文件中开启openapi线程的做法并修改如下
- 通过包的方式导入其他模块
- 使用current_path来规避文件路径问题
- 声名了 self.hr 变量用来接收openapi的实例化
- 修改了对于segment button的错误调用
- 设定progress bar的长度是10
- 完善了segmented_button_callback函数
- 在detect_network函数中增加heartbeat初始化
- tabview_click函数中新增textbox清屏功能以及实例化openapi并做检测
2. [openapi.py] 取消了初始化中无限循环检测因为阻塞了aio主界面进程socket也无法多次连接浪费了好多时间很生气
- 通过tabview切换来实现重新连接并保留了异常处理部分
- 将所有的 __xxxx 函数都替换成 xxxx 函数,去掉了 __
- 使用current_path来规避文件路径问题
3. [do_brake.py] 初步完成了机器状态收集的功能,还需要完善
- 使用current_path来规避文件路径问题
- 新增validate_resp函数校验数据
- 完善了调用接口
> **关于HMI接口**
> - 封包解包顺序:帧长度二字节/包长度四字节/协议二字节/预留二字节,\x04\x00:\x00\x00\tR:\x02:\x00
> - 帧长度和包长度没有必然关系单帧的时候是帧长度减去包长度等于6包长度指的是所有内容的长度
> - HMI内部每次发送1024个字节进行分包内容长度规则是第一帧1024-6=1018(帧大小减去包头长度),第二帧(包含)及之后的帧,帧长度即是数据长度
v0.1.7.0(2024/06/26)-初步可用
1. [aio.py] 在detect_network函数中需改查询时间间隔是1s在tabview_click中增加textbox配置normal的语句
2. [do_brake.py -> btn_functions.py] 新增执行相应函数并在get_state函数中设置无示教器模式
3. [openapi.py] 新增sock_conn函数并做连接时的异常处理新增类参数w2t
4. [aio.py] 修改customtkinter库中C:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\customtkinter\windows\widgets\ctk_tabview.py文件参考https://github.com/TomSchimansky/CustomTkinter/issues/2296实现修改tabview组件的字体大小使用原生字体同时将segmented button字体修改为原生为了解决segmented button在禁用和启用时屏幕抖动的问题并将大小修改为16
5. [aio.py] 修改了segmented_button_callback的实现逻辑使代码更简洁
6. [aio.py] 修改了在tabview_click函数中对于实例化HmiRequest的动作使每次切换标签都会重新实例化也就是每次都会重新连接修复显示不正确的问题
7. [openapi.py] 新增了socket关闭的函数并增加msg_id为None的处理逻辑
8. [btn_functions.py] 完善了状态获取的功能,新增告警获取以及功能切换的逻辑
9. [aio.py] 修改了版本
10. [current.py] max/avg功能结束之前会将结果数据追加写入源文件avg算法更改为average+3×std
11. [wavelogger.py] 算法更改为 average+3×std
v0.1.7.1.0(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]
- 新增文件处理制动测试流程建立连接导入projectpp2mainrun采集并处理曲线数据本地修改RL程序推送至控制器等
- 目前完成:
- 文件合规性检查
- 导入工程并设置为运行工程
4. [APIs: current.py] 修改scenario/single电机电流最大长度为150s
5. 在本文件中更新关于制动自动化测试的相关内容
6. [t_change_ui: aio.py/brake.py/current.py] 整体修改了操作界面,删除了大部分的配置输入框,改用 configs.xlsx 配置文件替代并优化了max/avg功能中写入结果数据的方式
v0.1.7.1.1(2024/06/29)
1. [APIs: aio.py]
- 修改detect_network函数中sleep语句放到最后重新生成HmiRequest实例中增加sleep(4)这个停顿时间一定是比openapi中heartbeat函数的sleep要长1s以上才能正常工作
- 修改write2textbox函数新增默认参数tab_name只有当该值与当前tab一致时函数才会有输出
- 第二条改动影响到了automatic_test文件夹下所有的文件
2. [APIs: openapi.py]
- 规定了所有的网络异常均由heartbeat函数来定义其他异常不做中断处理
- execution函数中合并了case条件
- 增加了N多指令多为诊断曲线和rl程序相关
- 日志保留条数修改为20000
3. [APIs: do_brake.py]
- 实现自动推送工程到xCore并自动运行
- 初步实现了Modbus发送消息和检测状态
4. [APIs: do_current.py]
- 将do_brake.py的内容完全拷贝到此文件待修改
v0.1.7.2(2024/06/30)
1. 初步完成NB4h_R580_3BH7.zip工程的设计
2. 重新研究了解包操作,重新实现了一版
3. 修改openapi.pi中excution为execution函数
4. 增加了解包原理性文档
v0.1.7.3(2024/07/01)
1. [APIs: openapi.py]
- 继续完善封包解包操作并优化了所有调试信息默认打开状态直到bug数量明显减少
- 修复了两个bug删除了一个多余的break另一个是补齐了self.broke的重置
2. [APIs: do_current.py] 使用原工程的工程名进行move操作语义更加明确
> 目前看openapi.py封包解包没有任何问题了但是所有的调试信息都默认打开以便可以第一时间保留现场
> 打开诊断跑了10多分钟共计解包没有报错应该是没有问题了
v0.1.7.4(2024/07/02)
1. [APIs: openapi.py]
- 增加了modbus的python实现
- heartbeat函数修改发送间隔为1s
- 清除了绝大部分调试性输出,发现太多的这种输出也会导致心跳丢包...,不清楚这个原理是什么
- 在get_response函数中的while self.pkg > 0循环中删除了else语句因为它永不会被执行到
- 在get_response函数中修复一个bug在flag==0的else语句中补齐了index==6的情况
2. [APIs: do_current.py]
- 完成了六个轴的电机电流动作的执行,以及数据采集
- 完成了对应的RL程序的编写
3[APIs: aio.py]
- 引入modbus实例化并以参数的形式传递给相应的tabview
- 新增pre_warning函数在做自动化测试之前确保所有条件皆具备
v0.1.7.5(2024/07/03)
1. [APIs: aio.py]
- 增加触发急停和恢复急停功能逻辑
2. [APIs: do_current.py]
- 重新调整运行顺序,增加数据处理的逻辑(惯量负载逻辑暂不实现,等待软件部解决了修改工程之后不生效的问题再考虑)
3. [APIs: btn_functions.py]
- 增加触发急停和恢复急停的modbus实现仅适用于自动化测试
v0.1.7.6(2024/07/04)
1. [APIs: aio.py]
- Automatic Test逻辑中增加选择current时需要选负载类型的逻辑
2. [APIs: do_current.py]
- 单轴/场景电机电流的采集已完成
3. [APIs: openapi.py]
- 增加了modbus读取浮点数的功能
- 优化了get_from_id的逻辑
4. [autotest.xml] 新增了scenario_time只写寄存器
v0.1.8.0(2024/07/04)
1. [APIs: do_current.py] 完成了堵转电流和惯量负载电机电流的采集和处理,至此,电机电流的自动化工作基本完成
v0.1.8.1(2024/07/05)
1. [APIs: do_brake.py] 完成了制动性能测试框架的搭建,可以顺利执行完整的测试程序,但是未实现急停和数据处理
2. [APIs: aio.py] 修改了do_brake主函数的参数
3. 增加工程文件target.zip
v0.1.8.2(2024/07/08)
1. [APIs: do_brake.py] 完成了制动性能测试逻辑只不过制动信号传递生效延迟不可控暂时pending
2. [APIs: do_current.py]: 修改曲线数据时序主要是value data取反即可解决了波形锯齿明细的问题
3. [APIs: openapi.py]: modbus新增了触发急停信号的寄存器 stop0_signal并重写了解除急停socket新增了register.set_value协议
v0.1.9.0(2024/07/10)
1. 完成了制动性能的自动化采集
2. 完善了modbus浮点数读写相关的功能
3. 修改了target.zip工程该工程目前适配电机电流和制动性能
v0.1.9.1(2024/07/12)
1. [APIs: do_brake.py]
- 修改正负方向拍急停的逻辑基本原理为运行之前发送正负方向信号pon给RLRL根据信号以及速度正负号运作
- 由于上述修改正负方向急停准确率可达100%
2. [APIs: aio.py]
- 修改write2textbox的输出逻辑实现更加灵活的自定义输出同时修改相关部分
3. [APIs: openapi.py]
- modbus类新增指示政府方向急停的信号pon将modbus类入参中的tab_name删除并修改tab_name的值为'openapi'
- socket类种修改tab_name的值为'openapi'
v0.1.9.2(2024/07/13)
1. [APIs: do_brake.py]
- 修改ready_to_go信号的接收逻辑适配大负载机型
2. [APIs: do_current.py]
- 修改ready_to_go信号的接收逻辑适配大负载机型
- 调整单轴测试时间为35s适配大负载机型调整堵转电流持续时间15s适当减少测试时间
- 将act信号置为False的动作放在初始化增加程序健壮性
- 修改所有输出文件的命名,在扩展名之前加入时间戳
- 删除多余的时序矫正语句——item['value'].reverse(),使输出的曲线为平滑的自然顺序
3. [current: current.py]
- 在find_point函数种当无法找到正确点位时继续执行而不是直接终止执行
- max功能计算逻辑矫正应该是取绝对值的最大值
- 整体梳理了trq/trqh的传递路径现已修正完毕
- 减速比rr数据源修改为configs.xlsx
4. 在current工程main函数增加 VelSet 100语句
v0.1.9.3(2024/07/15)
1. [APIs: openapi.py]
- 修改modbus连接失败报错输出形式使之只在automatic test页面显示
- 将该文件移动至toplevel为后面扩展做准备
- 修改heartbeat文件路径使后续打包的时候更方便
2. [APIs: aio.py]
- 修改heartbeat文件路径使后续打包的时候更方便
- 修改write2textbox函数的打印逻辑先判断网络相关
v0.1.9.4(2024/07/15)
1. [profile: aio.py]完善durable text相关逻辑
2. [profile: do_brake/do_current/btn_functions.py]删除validate_resp函数修改execution函数
3. [profile: factory_test.py]
- 新增耐久/老化测试程序
- 实现六轴折线图显示
4. [profile: openapi.py]:多次合并遗留问题处理
5. templates文件夹组织架构调整
v0.2.0.0(2024/07/17)
1. [profile: aio.py]
- 增加velocity相关逻辑
- 修改负载信息为曲线信息
2. [profile: factory_test.py]
- 增加velocity相关逻辑
3. [profile: current.py]
- 修正减速比获取的规则
4. [profile: openapi.py]
- HmiRequest模块日志取消记录move.monitor相关
- HmiRequest模块增加了durable_lock变量控制文件读写互斥
v0.2.0.1(2024/07/19)
1. [main: aio.py]
- 修改了x轴显示使之为时间刻度
- 修改pre_warning函数增加了durable test的初始化
2. [main: factory_test.py]
- 增加了数据计算错误的判断逻辑
- 增加了历史数据保存的逻辑
- 增加了文件读写互斥的逻辑
- 修改功能为输出有效电流和最大电流,并将数据结构简化
v0.2.0.2(2024/07/26)
1. [main: current.py]
- 修正堵转电流无法正确写入结果文件的问题
2. [main: do_brake.py]
- 初始速度采集等待时间设置为可通过configs.xlsx配置文件调整的
- 初次速度采集停止逻辑修改为tasks.stop指令未验证
- 急停信号触发前pending时间设置为固定值10s
- 实现正负方向速度采集逻辑
- 工程名变更逻辑实现修改为通配符,方便后续根据机型保存文件
- 增加超差后写诊断的逻辑并可以通过configs.xlsx配置文件调整
- 程序输出中增加时间戳,方便调试定位日志时间
3. [main: do_current.py]
- 工程名变更逻辑实现修改为通配符,方便后续根据机型保存文件
4. 为工程文件添加更详细的注释
5. 补充了do_current/do_brake的流程图
6. [main: openapi.py]
- 将modbus motor_on/off的实现方法改为高电平脉冲触发
7. configs.xlsx配置表新增write_diagnosis/get_init_speed两个参数
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 命令,但是执行时,有问题,待解决
v0.2.0.4(2024/07/30)
1. [APIs: do_brake.py]: 修复制动数据处理过程中,只取曲线的最后 240 个数据
2. [APIs: aio.py]: 判定版本处,删除 self.destroy(),因为该语句会导致异常发生
- 心跳修改为 1s因为 OOM 问题的解决依赖于长久的打开曲线开关,此时对于 hr.c_msg 的定时清理是个挑战,将心跳缩短,有利于清理日志后,避免丢失心跳
- 新增 diagnosis.save 命令,但是执行时,有问题,待解决
v0.2.0.5(2024/07/31)
此版本改动较大,公共部分做了规整,放置到新建文件夹 commons 当中,并所有自定义模块引入 logging 模块,记录重要信息
1. [t_change_ui: clibs.py]
- 调整代码组织结构,新增模块,将公共函数以及类合并入此
- 将一些常量放入该模块
- 引入logging/concurrent_log_handler模块并作初始化操作供其他模块使用按50M切割最多保留10份
- prj_to_xcore函数设置工程名部分重写修复了多个prj工程可能不能执行的问题并优化输入密码的部分
2. [t_change_ui: openapi.py]
- 完全重写了 get_from_id 函数,使更精准
- 在 msg_storage 函数中,增加 logger保留所有响应消息
- 删除 heartbeat 函数中的日志保存功能部分
- 心跳再次修改为 2s...
3. [t_change_ui: aio.py]
- 增加了日志初始化部分
- detect_network 函数中修改重新实例化HR间隔为 4s对应心跳
- create_plot 函数中增加 close('all'),解决循环画图不销毁占用内存的问题
4. [t_change_ui: do_brake.py]
- 使用一直打开曲线的方法规避解决了 OOM 的问题,同时修改数据处理方式,只取最后 12s
- 优化 ssh 输入密码的部分
5. [t_change_ui: do_current.py]
- 保持电流,只取最后 15s
- 优化 ssh 输入密码的部分
6. [t_change_ui: all the part]: 引入 commons 包,并定制了 logging 输出,后续持续优化
7. [APIs: btn_functions.py] 重写了告警输出函数,从日志中拿数据
8. [APIs: aio.py] 将日志框输出的内容,也保存至日志文件
9. [APIs: do_brake.py]
- 修改获取初始速度的逻辑只获取configs文件中配置的时间内的速度
- 新增 configs 参数 single_brake可针对特定条件做测试
10. [APIs: all]: 添加了 logger.setLevel(INFO),只有添加这个,单个模块内才生效
v0.2.0.6(2024/08/09)
1. [t_change_ui: all files]
- 修改了 logger 的实现
- 尤其是 clibs.py使用日志字典重写了日志记录的功能
v0.2.0.7(2024/08/16)
1. [t_change_ui: clibs.py]:修改了 hmi.log 的日志等级为 WARNING
2. [t_change_ui: openapi.py]:根据第一步的修改,将此模块日志记录等级调整至 warning
3. [current: current.py]
- README新增了整机自动化测试的前置条件即滑块需要滑动到最右端
- current修改了文件校验的逻辑
4. [t_change_ui: aio.py]
- 修改变量命名widgit -> widget
- 根据第 5 点变动,同步修改代码实现
- 调整 UI 界面代码顺序,使之符合 layout.xlsx 描述
- 将版本检查的部分单独封装成一个函数,在 detect_network 线程初始化时调用一次,并且程序启动也不会受到阻塞
5. [t_change_ui: layout.xlsx]:修改了组件布局方式
> 前两个修改点,修复的是网络提示的颜色不正确问题,因为日志将 textbox 中的内容也作为 debug 信息写入 hmi.log 了
v0.2.0.8(2024/08/20)
1. [t_change_ui: clibs.py]
- 从外部拷贝 icon.ico 文件到 templates 目录
- 在 assets 目录新建 logs 目录,存放日志文件,并增加了相应的逻辑保证正常执行
2. [t_change_ui: aio.py]:增加 App 窗口图标代码
3. [t_change_ui: openapi.py]:将重复输出的网络错误提示,从 textbox 中转移到 debug.log 日志文件中
4. [main: openapi.py]:新增 rl_task.set_run_params 指令支持,可设定速度滑块以及是否重复运行
5. [main: do_brake/do_current/factory_test.py]:在初始化运动时增加 `clibs.execution('rl_task.set_run_params', hr, w2t, tab_name, loop_mode=True, override=1.0)`
v0.2.0.9(2024/10/09)
1. [main: do_brake.py] 采集完成后pending 3s使速度完全将为 0
v0.2.1.0(2024/12/05)
1. [current: do_current.py] 增加了 hw_sensor_trq_feedback 曲线的采集
2. [current: current.py] 增加了 hw_sensor_trq_feedback 曲线数据的处理,以及修改了之前数据处理的逻辑
3. [current: clibs.py] 新增可手动修改连接 IP 地址的功能,存储在 assets/templates/ipaddr.txt 中,默认是 192.168.0.160
v0.2.1.1(2024/12/16)
1. [main: do_brake.py] 修改了 SSH 的固定 IP 为 clibs 中读取的内容,并删除了每次都 reload 工程的动作,改为只在修改 RL 工程时 reload 一次旨在减少最近频繁出现的“无法获取overview.reload-xxxxxx”请求的响应初步判断是 xCore 的问题,非 AIO 问题,已反馈待版本修复
2. [main: wavelogger.py] 新增异常数据校验功能
v0.3.0.0(2025/01/09)
1. 重构了 AIO 工具:
- UI 界面
- 电机电流数据处理功能
- xCore 通讯协议实现
2. 将之前的功能迁移到新代码
v0.3.1.0(2025/01/23)
1. 实现了从机型文件读取相关测试参数,并用于自动化测试或者数据处理
2. 完整实现了所有功能的迁移,并自测验证通过
3. 重新实现并优化了如下功能:
- 电机电流数据采集,优化代码,提高执行效率,并适配新的报告文件
- 制动数据采集,比之前采集正确率提高 30%,基本可以做到 100% 的数据准确度
- 耐久数据采集并记录,优化了执行以及数据展示
- 基恩士数据采集处理,适配任意编码格式的文件处理
v0.3.1.2(2025/02/11)
1. 修改自动测试(制动/转矩/耐久的read_ready_to_go信号等待时间为15s
2. 废弃write_diagnosis参数
3. 优化do_brake中触发超差写诊断等待操作流程
v0.3.1.3(2025/02/12)
1. 修改自动测试(制动)的打开关闭曲线逻辑,开始时打开,完整测试结束时关闭
v0.3.1.3(2025/02/13)
1. 修改自动测试电机电流的数据处理方法从以前的Multiprocessing->threading因为Intel CPU遇到Multiprocessing会重新打开一个AIO实例
v0.3.1.5(2025/03/10)
1. 因公司网络环境调整修改服务器校验IP
v0.3.1.6(2025/03/21)
1. 调整耐久(场景)测试工程,以及相应的数据采集逻辑,将采集规则由固定时间间隔,修改为固定运动动作周期
> Tips工程以及寄存器文件均有变动

View File

@ -0,0 +1,11 @@
chardet==5.2.0
customtkinter==5.2.2
matplotlib==3.10.0
numpy==2.2.2
openpyxl==3.1.5
pandas==2.2.3
paramiko==3.5.0
pdfplumber==0.11.5
Pillow==11.1.0
pymodbus==3.8.3
pyinstaller==6.12.0

View File

@ -0,0 +1 @@
0.3.1.6@03/21/2025

BIN
assets/media/icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

BIN
assets/media/updated.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
assets/media/upgrade.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB