实现小板在线信息,支持主板程序V2.10及以上
This commit is contained in:
@@ -228,6 +228,7 @@ class console_dlg(QObject):
|
||||
self.cmd_list.append("cp "+self.find_file_by_type(".bin")+" /home/root/config/checker_slave.bin")
|
||||
self.cmd_list.append("cp "+self.find_file_by_type("scheme.json")+" /home/root/config/checker_ye_cfg.json")
|
||||
self.cmd_list.append("cp cfg.json /home/root/config/cfg.json")
|
||||
self.cmd_list.append("cp "+self.find_file_by_type(".sh")+" /home/root/config/checker_app_pre.sh")
|
||||
self.cmd_list.append("cp "+self.find_file_by_type(".axf")+" /lib/firmware/checker_m4.axf")
|
||||
self.cmd_list.append("cp "+self.find_file_by_type(".dtb")+" /boot/stm32mp157d-atk.dtb")
|
||||
self.cmd_list.append("cp "+self.find_file_by_type(".py")+ " /home/root/daemon.py")
|
||||
|
@@ -4,12 +4,43 @@ import prottcp as pt
|
||||
|
||||
|
||||
|
||||
|
||||
#参数数据类型
|
||||
_g_params_type =[
|
||||
"str",
|
||||
"int8",
|
||||
"int16",
|
||||
"int32",
|
||||
"hex",
|
||||
"none"
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
||||
# task_id,errcode,par_count,ret_count
|
||||
_g_ew_task_table=[
|
||||
("电源准备",0,1,10,0),
|
||||
("延时等待",1,1,2,1),
|
||||
("测量桥丝阻值",2,4,1,1),
|
||||
("上电充能",3,2,3,2),
|
||||
("电源准备",0,1,10,0,{
|
||||
"参数类型":"int16",
|
||||
"返回值类型":"none",
|
||||
"参数描述":"检测前校准检测过程中需要使用的电压,便于检测过程中快速输出电压,范围55~270(0.1V)",
|
||||
"返回值描述":"无返回值"
|
||||
}),
|
||||
("延时等待",1,1,2,1,{
|
||||
"参数类型":"int16",
|
||||
"返回值类型":"int16",
|
||||
"参数描述":"延时时间(0.1s),置1打开电流监控",
|
||||
"返回值描述":"打开电流监控时的电流波动ADC值"
|
||||
}),
|
||||
("测量桥丝阻值",2,4,1,1,{
|
||||
"参数类型":"int16",
|
||||
"返回值类型":"int16",
|
||||
"参数描述":"测量方式:0 4线制;1 2线1-4通;2 2线2-3通;5 读取电阻校准值",
|
||||
"返回值描述":"打开电流监控时的电流波动ADC值"
|
||||
}),
|
||||
("上电充能",3,2,3,2,{
|
||||
|
||||
}),
|
||||
("设置总线电压",4,1,1,1),
|
||||
("获取总线电流",5,1,0,2),
|
||||
("使能MTP",6,5,1,0),
|
||||
@@ -289,14 +320,19 @@ def coder_check_decode_sn(data:bytearray):
|
||||
if __name__ == "__main__":
|
||||
u=pt.protu()
|
||||
|
||||
# # 检测并写入流水号
|
||||
# data=coder_check_write_sn(2,12345)
|
||||
# 检测并写入流水号
|
||||
# data=coder_check_write_sn(0,12345)
|
||||
|
||||
# 检测并读取工厂信息和延时
|
||||
data=coder_check_read_fatinfo(2)
|
||||
|
||||
u.cmd=0x21
|
||||
data=u.encode(data)
|
||||
print(data.hex(' '))
|
||||
# # 检测并读取工厂信息和延时
|
||||
# data=coder_check_read_fatinfo(0)
|
||||
|
||||
# data=bytearray.fromhex("0d 00 00 0d 01 1f 0a 01 18 02 0a 05 01 14 00 04 00")
|
||||
# u.cmd=0x21
|
||||
# data=u.encode(data)
|
||||
# print(data.hex(' '))
|
||||
def fun():
|
||||
return "fun_test"
|
||||
d={"fun":fun
|
||||
}
|
||||
print(d["fun"]())
|
||||
|
60
updata/runtask_win.py
Normal file
60
updata/runtask_win.py
Normal file
@@ -0,0 +1,60 @@
|
||||
from math import *
|
||||
import dearpygui.dearpygui as dpg
|
||||
import dearpygui.demo as demo
|
||||
|
||||
dpg.create_context()
|
||||
dpg.create_viewport(title='Custom Title', width=800, height=800)
|
||||
|
||||
# demo.show_demo()
|
||||
|
||||
|
||||
sindatax = []
|
||||
sindatay = []
|
||||
cosdatay = []
|
||||
for i in range(100):
|
||||
sindatax.append(i/100)
|
||||
sindatay.append(0.5 + 0.5*sin(50*i/100))
|
||||
cosdatay.append(0.5 + 0.75*cos(50*i/100))
|
||||
|
||||
|
||||
def _on_demo_close(sender, app_data, user_data):
|
||||
dpg.delete_item(sender)
|
||||
dpg.delete_item("__demo_texture_container")
|
||||
dpg.delete_item("__demo_colormap_registry")
|
||||
dpg.delete_item("__demo_hyperlinkTheme")
|
||||
|
||||
def show():
|
||||
dpg.add_texture_registry(label="Demo Texture Container", tag="__demo_texture_container")
|
||||
dpg.add_colormap_registry(label="Demo Colormap Registry", tag="__demo_colormap_registry")
|
||||
with dpg.theme(tag="__demo_hyperlinkTheme"):
|
||||
with dpg.theme_component(dpg.mvButton):
|
||||
dpg.add_theme_color(dpg.mvThemeCol_Button, [0, 0, 0, 0])
|
||||
dpg.add_theme_color(dpg.mvThemeCol_ButtonActive, [0, 0, 0, 0])
|
||||
dpg.add_theme_color(dpg.mvThemeCol_ButtonHovered, [29, 151, 236, 25])
|
||||
dpg.add_theme_color(dpg.mvThemeCol_Text, [29, 151, 236])
|
||||
|
||||
def _log(sender, app_data, user_data):
|
||||
print(f"sender: {sender}, \t app_data: {app_data}, \t user_data: {user_data}")
|
||||
with dpg.window(label="Dear PyGui Demo", width=800, height=500, on_close=_on_demo_close, pos=(0, 0), tag="__demo_id"):
|
||||
# create plot
|
||||
dpg.add_text("Anti-aliasing can be enabled from the plot's context menu (see Help).", bullet=True)
|
||||
with dpg.plot(label="Line Series", height=400, width=-1):
|
||||
|
||||
# optionally create legend
|
||||
dpg.add_plot_legend()
|
||||
|
||||
# REQUIRED: create x and y axes
|
||||
dpg.add_plot_axis(dpg.mvXAxis, label="x")
|
||||
|
||||
with dpg.plot_axis(dpg.mvYAxis, label="y"):
|
||||
|
||||
# series belong to a y axis
|
||||
dpg.add_line_series(sindatax, sindatay, label="0.5 + 0.5 * sin(x)")
|
||||
dpg.add_line_series(sindatax, cosdatay, label="0.5 + 0.75 * cos(x)")
|
||||
|
||||
|
||||
show()
|
||||
dpg.setup_dearpygui()
|
||||
dpg.show_viewport()
|
||||
dpg.start_dearpygui()
|
||||
dpg.destroy_context()
|
677
updata/task_table.py
Normal file
677
updata/task_table.py
Normal file
@@ -0,0 +1,677 @@
|
||||
|
||||
|
||||
import task_table_fun as ttf
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
_g_ew_task_table=[
|
||||
{
|
||||
"TaskID":0,
|
||||
"TaskName":"电源准备",
|
||||
"TaskBrief":"电压范围5.5V~27V,分辨率0.1V",
|
||||
"ParamInfo":"预设电压列表,最多10个",
|
||||
"ReturnInfo":"无返回值",
|
||||
"ReturnSize":0,
|
||||
"inputfun":ttf.input_task0,
|
||||
"outputfun":ttf.output_task0
|
||||
},
|
||||
{
|
||||
"TaskID":1,
|
||||
"TaskName":"延时等待",
|
||||
"TaskBrief":"延时时间返回0s~6553s,分辨率0.1S。波动DAC换算 Vad/4096*3.3/100/11",
|
||||
"ParamInfo":["延时时间0.1s","使1/失0电流监控"],
|
||||
"ReturnInfo":["电流波动DAC"],
|
||||
"ParamType":"int16",
|
||||
"RetType":"int16"
|
||||
},
|
||||
{
|
||||
"TaskID":2,
|
||||
"TaskName":"桥丝电阻测试",
|
||||
"TaskBrief":"测量桥丝阻值,可配置测量模式: 0 4线制; 1 2线1-4通;2 2线2-3通;5 返回电阻校准值",
|
||||
"ParamInfo":["测量模式"],
|
||||
"ReturnInfo":["电阻0.01Ω"],
|
||||
"ParamType":"int16",
|
||||
"RetType":"int16"
|
||||
},
|
||||
{
|
||||
"TaskID":3,
|
||||
"TaskName":"上电充能",
|
||||
"TaskBrief":"统计模块的上电充能,具有电压设置功能,采集档位 R10_0p1mA_1p6mA_UC",
|
||||
"ParamInfo":["总线电压0.1V","超时时间 0.1ms","充电结束时的AD值"],
|
||||
"ReturnInfo":["总线电压0.1V","总线电流低于设置AD值的时间"],
|
||||
"ParamType":"int16",
|
||||
"RetType":"int16"
|
||||
},
|
||||
{
|
||||
"TaskID":4,
|
||||
"TaskName":"设置总线电压",
|
||||
"TaskBrief":"设置总线电压",
|
||||
"ParamInfo":["总线电压"],
|
||||
"ReturnInfo":["总线电压"],
|
||||
"ParamType":"int16",
|
||||
"RetType":"int16"
|
||||
},
|
||||
{
|
||||
"TaskID":5,
|
||||
"TaskName":"获取总线电流",
|
||||
"TaskBrief":"测量总线基本电流",
|
||||
"ParamInfo":[],
|
||||
"ReturnInfo":["总线正电流 0.1uA","总线反电流 0.1uA"],
|
||||
"ParamType":"none",
|
||||
"RetType":"int16"
|
||||
},
|
||||
{
|
||||
"TaskID":6,
|
||||
"TaskName":"使能MTP",
|
||||
"TaskBrief":"使能MTP擦写,0失能/1使能",
|
||||
"ParamInfo":["是否使能"],
|
||||
"ReturnInfo":[],
|
||||
"ParamType":"int16",
|
||||
"RetType":"none"
|
||||
},
|
||||
{
|
||||
"TaskID":7,
|
||||
"TaskName":"扫描UID",
|
||||
"TaskBrief":"扫描总线上的电子模块",
|
||||
"ParamInfo":["UID长度","是否使能UID对比","是否使能反馈监控"],
|
||||
"ReturnInfo":["最大反馈电流","最大反馈时间","最小反馈电流","最小反馈时间","UID 0~1","UID 2~3","UID 4~5","UID 6~7"],
|
||||
"ParamType":"int16",
|
||||
"RetType":"int16"
|
||||
},
|
||||
{
|
||||
"TaskID":8,
|
||||
"TaskName":"写配置参数",
|
||||
"TaskBrief":"写模块运行时的配置参数",
|
||||
"ParamInfo":["起爆MOS选择 0内部/1外部","通信信号源 0:rxh 1:rxl 2:rx","通信模式 1:差分 2:单端","起爆日志标记周期 0:不标记 1:5ms 2:10ms 3:20ms 4:50ms 5:10ms 6:150ms 7:200ms","UID长度","密码长度","模块版本"],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":9,
|
||||
"TaskName":"检测配置参数",
|
||||
"TaskBrief":"检测模块运行时的配置参数",
|
||||
"ParamInfo":["起爆MOS选择 0内部/1外部","通信信号源 0:rxh 1:rxl 2:rx","通信模式 1:差分 2:单端","起爆日志标记周期 0:不标记 1:5ms 2:10ms 3:20ms 4:50ms 5:10ms 6:150ms 7:200ms","UID长度","密码长度","模块版本"],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":10,
|
||||
"TaskName":"验证配置",
|
||||
"TaskBrief":"验证配置",
|
||||
"ParamInfo":["掩码低2byte","掩码高2byte","比较低2byte","比较高2byte"],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":11,
|
||||
"TaskName":"模拟注码",
|
||||
"TaskBrief":"写入测试用的UID和密码,此任务之前要先写配置参数",
|
||||
"ParamInfo":[],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":12,
|
||||
"TaskName":"模拟注码验证",
|
||||
"TaskBrief":"写入测试用的UID和密码,此任务之前要先写三码数据",
|
||||
"ParamInfo":[],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":13,
|
||||
"TaskName":"芯片自检",
|
||||
"TaskBrief":"芯片自检",
|
||||
"ParamInfo":["自检模式","自检时间ms"],
|
||||
"ReturnInfo":["自检模式0x08的回读数据"],
|
||||
},
|
||||
{
|
||||
"TaskID":14,
|
||||
"TaskName":"状态检测",
|
||||
"TaskBrief":"状态码比较",
|
||||
"ParamInfo":["掩码参数","比较结果值"],
|
||||
"ReturnInfo":["状态值低2byte","状态值高2byte"],
|
||||
},
|
||||
{
|
||||
"TaskID":15,
|
||||
"TaskName":"充电",
|
||||
"TaskBrief":"充电",
|
||||
"ParamInfo":["充电模式","充电分组"],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":16,
|
||||
"TaskName":"放电",
|
||||
"TaskBrief":"放电",
|
||||
"ParamInfo":[],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":17,
|
||||
"TaskName":"写延时",
|
||||
"TaskBrief":"写延时",
|
||||
"ParamInfo":["延时ms"],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":18,
|
||||
"TaskName":"读延时",
|
||||
"TaskBrief":"读延时",
|
||||
"ParamInfo":[],
|
||||
"ReturnInfo":["延时值ms"],
|
||||
},
|
||||
{
|
||||
"TaskID":19,
|
||||
"TaskName":"时钟校准",
|
||||
"TaskBrief":"时钟校准",
|
||||
"ParamInfo":["校准周期ms","校准脉冲数"],
|
||||
"ReturnInfo":["校准值,真实值的4倍"],
|
||||
},
|
||||
{
|
||||
"TaskID":20,
|
||||
"TaskName":"设置通信地址",
|
||||
"TaskBrief":"设置通信地址",
|
||||
"ParamInfo":["通信地址","设置模式 0:系统 1:UID配置地址 2:快速配置","延时"],
|
||||
"ReturnInfo":["延时"],
|
||||
},
|
||||
{
|
||||
"TaskID":21,
|
||||
"TaskName":"状态巡检",
|
||||
"TaskBrief":"测试系统只能巡检一个地址,起始地址应该大于1,结束地址小于1024,两个地址差值应该小于256",
|
||||
"ParamInfo":["起始地址","结束地址","状态码"],
|
||||
"ReturnInfo":["地址结果"],
|
||||
},
|
||||
{
|
||||
"TaskID":22,
|
||||
"TaskName":"起爆使能",
|
||||
"TaskBrief":"起爆使能",
|
||||
"ParamInfo":[],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":23,
|
||||
"TaskName":"起爆检测",
|
||||
"TaskBrief":"起爆",
|
||||
"ParamInfo":["采样超时0.01ms","起爆电流AD","延迟采样ms"],
|
||||
"ReturnInfo":["等待时间 0.01ms"],
|
||||
},
|
||||
{
|
||||
"TaskID":24,
|
||||
"TaskName":"写入缓存数据",
|
||||
"TaskBrief":"写入缓存数据",
|
||||
"ParamInfo":["MTP地址","缓存地址","写入字节数"],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":25,
|
||||
"TaskName":"验证缓存数据",
|
||||
"TaskBrief":"验证缓存数据",
|
||||
"ParamInfo":["MTP地址","缓存地址","写入字节数"],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":26,
|
||||
"TaskName":"关总线",
|
||||
"TaskBrief":"关总线",
|
||||
"ParamInfo":[],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":27,
|
||||
"TaskName":"升级",
|
||||
"TaskBrief":"EW模块升级 升级模式 0:无app时升级 1:无条件升级",
|
||||
"ParamInfo":["充电时间 ms","app启动时间 ms","总线关断时间 ms","升级模式"],
|
||||
"ReturnInfo":["错误代码"],
|
||||
"CommTestCmd":"ResistorSample",
|
||||
},
|
||||
{
|
||||
"TaskID":28,
|
||||
"TaskName":"充能统计",
|
||||
"TaskBrief":"充能统计",
|
||||
"ParamInfo":["充电挡位","充电超时0.1us","充电电流判线 AD值","充末电流结束值 0.1uA","充电最长时间 0.1s","充电高压保持时间 0.1s"],
|
||||
"ReturnInfo":["充能值 0.1ms","充末电流 0.1uA","充电最大电流 0.1mA","充电抖动幅值 adv"],
|
||||
},
|
||||
{
|
||||
"TaskID":29,
|
||||
"TaskName":"异常判定",
|
||||
"TaskBrief":"对已检项目进行异常判定,如果异常判定结果不在过滤范围内,则此任务失败",
|
||||
"ParamInfo":["过滤值1","过滤值2","过滤值3","过滤值4","过滤值5","过滤值6","过滤值7","过滤值8","过滤值9","过滤值10",],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":30,
|
||||
"TaskName":"重新执行任务",
|
||||
"TaskBrief":"重新执行指定序号的任务,本次执行会覆盖之前的结果",
|
||||
"ParamInfo":["需要重新执行的任务序号"],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":31,
|
||||
"TaskName":"写三码数据",
|
||||
"TaskBrief":"写入缓存的三码数据,此任务之前要先写配置参数",
|
||||
"ParamInfo":[],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":32,
|
||||
"TaskName":"校验三码数据",
|
||||
"TaskBrief":"验证写入的三码数据,此任务之前要先写三码数据",
|
||||
"ParamInfo":[],
|
||||
"ReturnInfo":[],
|
||||
"CommTestCmd":"ResistorSample",
|
||||
},
|
||||
{
|
||||
"TaskID":33,
|
||||
"TaskName":"配置三码数据到小板",
|
||||
"TaskBrief":"先把三码数据写入小板缓存,然后才能使用三码绑定任务",
|
||||
"ParamInfo":["uid,pwd长度","数据0,1","数据2,3","数据4,5","数据6,7","数据8,9","数据10,11","数据12,13","数据14,15","数据16,17",],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":34,
|
||||
"TaskName":"任务插槽",
|
||||
"TaskBrief":"程序可以动态添加要执行的任务,此任务将执行所有序号匹配的动态任务",
|
||||
"ParamInfo":["插槽序号"],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":35,
|
||||
"TaskName":"读取MTP",
|
||||
"TaskBrief":"从指定mtp地址读取数据",
|
||||
"ParamInfo":["mtp地址(4byte寻址)","读取长度(byte)",],
|
||||
"ReturnInfo":["数据0,1","数据2,3","数据4,5","数据6,7","数据8,9","数据10,11","数据12,13","数据14,15",],
|
||||
},
|
||||
{
|
||||
"TaskID":36,
|
||||
"TaskName":"写入MTP",
|
||||
"TaskBrief":"写入数据到指定mtp地址",
|
||||
"ParamInfo":["mtp地址(4byte寻址)","写入长度(byte)","数据0,1","数据2,3","数据4,5","数据6,7","数据8,9","数据10,11","数据12,13","数据14,15",],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":37,
|
||||
"TaskName":"设置电阻校准值",
|
||||
"TaskBrief":"电阻测量的校准值,不建议将此任务添加进方案中",
|
||||
"ParamInfo":["电阻校准值"],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":38,
|
||||
"TaskName":"读取流水号",
|
||||
"TaskBrief":"读取27bit的流水号数据,对比失败则此任务失败",
|
||||
"ParamInfo":["要校验的流水号低2字节","要校验的流水号高2字节"],
|
||||
"ReturnInfo":["读取的流水号低2字节","读取的流水号高2字节"],
|
||||
},
|
||||
{
|
||||
"TaskID":39,
|
||||
"TaskName":"写入流水号",
|
||||
"TaskBrief":"采用读改写的方式写入27bit的流水号数据",
|
||||
"ParamInfo":["要写入的流水号低2字节","要写入的流水号高2字节"],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":40,
|
||||
"TaskName":"写固定延时",
|
||||
"TaskBrief":"写入延时并掉电保存,需要复位后刷新",
|
||||
"ParamInfo":["延时值ms"],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
{
|
||||
"TaskID":41,
|
||||
"TaskName":"复位",
|
||||
"TaskBrief":"0复位至bootloader,1复位至app",
|
||||
"ParamInfo":["复位类型"],
|
||||
"ReturnInfo":[],
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
||||
_g_jq_task_table=[
|
||||
{
|
||||
"TaskID": 0,
|
||||
"TaskName": "电源准备",
|
||||
"TaskBrief": "检测前校准检测过程中需要使用的电压,便于检测过程中快速输出电压。电压范围55~270",
|
||||
"ParamInfo": ["预设电压1", "预设电压2", "预设电压3", "预设电压4", "预设电压5", "预设电压6", "预设电压7", "预设电压8", "预设电压9", "预设电压10",],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 1,
|
||||
"TaskName": "上电充能",
|
||||
"TaskBrief": "统计上电瞬间,模块功耗。电流计数方式 A = 3.3*ADC/4096/510/11",
|
||||
"ParamInfo": ["总线电压", "采样超时0.1ms", "计时启停ADC"],
|
||||
"ReturnInfo": ["总线电压", "大于启停的时间"],
|
||||
"CommTestCmd": "PowerOn",
|
||||
}, {
|
||||
"TaskID": 2,
|
||||
"TaskName": "设置总线电压",
|
||||
"TaskBrief": "设置总线电压为预设电压中的值",
|
||||
"ParamInfo": ["总线电压"],
|
||||
"ReturnInfo": ["总线电压"],
|
||||
"CommTestCmd": "SetBusV",
|
||||
}, {
|
||||
"TaskID": 3,
|
||||
"TaskName": "获取总线电流",
|
||||
"TaskBrief": "获取总线正反两个极性电流",
|
||||
"ParamInfo": [],
|
||||
"ReturnInfo": ["总线正电流", "总线反电流"],
|
||||
}, {
|
||||
"TaskID": 4,
|
||||
"TaskName": "扫描UID",
|
||||
"TaskBrief": "芯片通信测试,分配网络地址。芯片复位后,第一条通信测试命令",
|
||||
"ParamInfo": ["使1/失0反码采集", "使0/失1UID全0验证"],
|
||||
"ReturnInfo": ["最大反馈电流", "最大反馈时间", "最小反馈电流", "最小反馈时间", "1字节", "3字节", "5字节", "7字节"],
|
||||
}, {
|
||||
"TaskID": 5,
|
||||
"TaskName": "密码验证",
|
||||
"TaskBrief": "芯片密码验证",
|
||||
"ParamInfo": ["0码/1原码验证"],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 6,
|
||||
"TaskName": "读取芯片代码",
|
||||
"TaskBrief": "读取芯片代码",
|
||||
"ParamInfo": [],
|
||||
"ReturnInfo": ["2字节代码"],
|
||||
}, {
|
||||
"TaskID": 7,
|
||||
"TaskName": "OTP检测",
|
||||
"TaskBrief": "对OTP数据进行检测,可屏蔽检测区域",
|
||||
"ParamInfo": ["1关/0检UID密码为0", "1关/0检延时保留区为0", "1关/0检用户区为0"],
|
||||
"ReturnInfo": [],
|
||||
"CommTestCmd": "OTPCheck",
|
||||
}, {
|
||||
"TaskID": 8,
|
||||
"TaskName": "工厂程测检测",
|
||||
"TaskBrief": "芯片出厂检测,会在24 25区写0xFF",
|
||||
"ParamInfo": [],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 9,
|
||||
"TaskName": "读芯片状态",
|
||||
"TaskBrief": "将芯片状态值与参数值进行算术与操作,等于参数值表示执行成功",
|
||||
"ParamInfo": ["状态值掩码"],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 10,
|
||||
"TaskName": "写工厂信息",
|
||||
"TaskBrief": "在OTP 20~23区间写入工厂数据",
|
||||
"ParamInfo": ["2字节数据", "2字节数据"],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 11,
|
||||
"TaskName": "充能统计",
|
||||
"TaskBrief": "充能统会发送充电命令,计电流判线设定值,从上升到下降的时间。同时记录充过程中最大电流。以及结束高压充电的总线电流和充电电流监控时间。充电电流判线计数公式 电流=AD/4093*3.3/100/11",
|
||||
"ParamInfo": ["超时0.1us", "电流判线AD", "充电结束值0.1uA", "充电超时0.1S", "电流监控0.1S"],
|
||||
"ReturnInfo": ["充能值0.1ms", "充末电流0.1uA", "最大充电电流0.1mA", "充电抖动ADV"],
|
||||
}, {
|
||||
"TaskID": 12,
|
||||
"TaskName": "充电电压检测",
|
||||
"TaskBrief": "由高向低扫描芯片电压检测值,扫描失败返回值为0",
|
||||
"ParamInfo": ["起始DAC", "结束DAC"],
|
||||
"ReturnInfo": ["扫描通过的DAC"],
|
||||
}, {
|
||||
"TaskID": 13,
|
||||
"TaskName": "延时等待",
|
||||
"TaskBrief": "延时流程,同时可以启动总线电流监测 设置单位0.1S。波动DAC换算 Vad/4096*3.3/100/11",
|
||||
"ParamInfo": ["延时时间", "使1/失0电流监控"],
|
||||
"ReturnInfo": ["电流波动DAC"],
|
||||
}, {
|
||||
"TaskID": 14,
|
||||
"TaskName": "写延时",
|
||||
"TaskBrief": "向延时寄存器写入数据",
|
||||
"ParamInfo": ["延时"],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 15,
|
||||
"TaskName": "读延时",
|
||||
"TaskBrief": "读延时寄存器",
|
||||
"ParamInfo": [],
|
||||
"ReturnInfo": ["延时值"],
|
||||
}, {
|
||||
"TaskID": 16,
|
||||
"TaskName": "时钟校准",
|
||||
"TaskBrief": "发送校准脉冲",
|
||||
"ParamInfo": ["脉冲周期", "脉冲个数"],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 17,
|
||||
"TaskName": "放电",
|
||||
"TaskBrief": "发送放电命令,使能快速放电,还需要配置放电时间。快速放电仅JQ2012才有。放电时间单位0.1S,该值应该大于0快速放电才有效",
|
||||
"ParamInfo": ["0/1使能快速", "快速时间"],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 18,
|
||||
"TaskName": "复位放电",
|
||||
"TaskBrief": "执行复位和放电,并检测复测成功",
|
||||
"ParamInfo": [],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 19,
|
||||
"TaskName": "起爆使能",
|
||||
"TaskBrief": "发送起爆使能命令",
|
||||
"ParamInfo": [],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 20,
|
||||
"TaskName": "起爆充能",
|
||||
"TaskBrief": "发送起爆命令后,检测起爆完成后对电容的充电。判断电流上升沿到下降沿的时间。充能电流ADC/4096*3.3/100/21",
|
||||
"ParamInfo": ["电流判线AD", "起爆脉冲个数", "延时采集时间"],
|
||||
"ReturnInfo": ["充能时间", "充电电流", "充电电流波动"],
|
||||
}, {
|
||||
"TaskID": 21,
|
||||
"TaskName": "使能通讯末电流采集",
|
||||
"TaskBrief": "启动命令通讯结束后电流采集,与获取通讯电流配合。两个任务间应该避免充电、OTP写和起爆操作",
|
||||
"ParamInfo": [],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 22,
|
||||
"TaskName": "获取通讯末电流",
|
||||
"TaskBrief": "获取通讯电流配合与使能通讯末电流采集,获取两个任务间,通讯完成后的最大电流",
|
||||
"ParamInfo": [],
|
||||
"ReturnInfo": ["通讯末电流"],
|
||||
}, {
|
||||
"TaskID": 23,
|
||||
"TaskName": "写OTP数据",
|
||||
"TaskBrief": "向芯片OTP中写入数据",
|
||||
"ParamInfo": ["OTP地址", "数据长度", "1数据", "3数据", "5数据", "7数据"],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 24,
|
||||
"TaskName": "读OTP数据",
|
||||
"TaskBrief": "从芯片OTP中读取数据",
|
||||
"ParamInfo": ["OTP地址", "数据长度"],
|
||||
"ReturnInfo": ["nBytesOTP数据"],
|
||||
}, {
|
||||
"TaskID": 25,
|
||||
"TaskName": "清除起爆命令",
|
||||
"TaskBrief": "起爆脉冲重新计算",
|
||||
"ParamInfo": [],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 26,
|
||||
"TaskName": "关总线",
|
||||
"TaskBrief": "关闭总线输出",
|
||||
"ParamInfo": [],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 27,
|
||||
"TaskName": "缓存写入OTP",
|
||||
"TaskBrief": "缓存数据写入OTP数据",
|
||||
"ParamInfo": ["OTP 地址", "缓存区起始", "写入数据长度"],
|
||||
"ReturnInfo": [],
|
||||
},
|
||||
{
|
||||
"TaskID": 28,
|
||||
"TaskName": "三码绑定",
|
||||
"TaskBrief": "注码检测指令使用,直接使用命令中的三码数据",
|
||||
"ParamInfo": [],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 29,
|
||||
"TaskName": "验证三码",
|
||||
"TaskBrief": "验证芯片三码数据,直接使用命令中的三码数据",
|
||||
"ParamInfo": [],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 30,
|
||||
"TaskName": "电容压差",
|
||||
"TaskBrief": "充电后,总线断电测试电容给芯片供电,评估芯片延时功耗",
|
||||
"ParamInfo": ["断电时间0.1S"],
|
||||
"ReturnInfo": ["压差mV"],
|
||||
}, {
|
||||
"TaskID": 31,
|
||||
"TaskName": "桥丝电阻测试",
|
||||
"TaskBrief": "测量桥丝阻值。可配置测量模式 0 4线制, 1 2线1-4通,2 2线2-3通",
|
||||
"ParamInfo": ["测量模式"],
|
||||
"ReturnInfo": ["电阻0.01Ω"],
|
||||
}, {
|
||||
"TaskID": 32,
|
||||
"TaskName": "使能OTP",
|
||||
"TaskBrief": "OTP使能命令",
|
||||
"ParamInfo": [],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 33,
|
||||
"TaskName": "写版本",
|
||||
"TaskBrief": "写入模块版本号到OTP 20地址,该值应该小于32",
|
||||
"ParamInfo": ["版本号"],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 34,
|
||||
"TaskName": "读版本",
|
||||
"TaskBrief": "获取写入的版本号",
|
||||
"ParamInfo": [],
|
||||
"ReturnInfo": ["版本号"],
|
||||
}, {
|
||||
"TaskID": 35,
|
||||
"TaskName": "写缓存数据",
|
||||
"TaskBrief": "将系统缓存区的数据写入到OTP中,主要用于写工厂信息",
|
||||
"ParamInfo": ["OTP地址", "缓存地址", "写入长度"],
|
||||
"ReturnInfo": [],
|
||||
}, {
|
||||
"TaskID": 36,
|
||||
"TaskName": "验证缓存数据",
|
||||
"TaskBrief": "对比缓存数据与OTP数据",
|
||||
"ParamInfo": ["OTP地址", "缓存地址", "验证长度"],
|
||||
"ReturnInfo": [],
|
||||
},
|
||||
{
|
||||
"TaskID": 37,
|
||||
"TaskName": "验证延时时间",
|
||||
"TaskBrief": "验证延时和otp是否相等",
|
||||
"ParamInfo": [],
|
||||
"ReturnInfo": [],
|
||||
},
|
||||
{
|
||||
"TaskID": 38,
|
||||
"TaskName": "切换总线极性",
|
||||
"TaskBrief": "反复切换总线极性,输出最后一次极性切换后的电流",
|
||||
"ParamInfo": ["间隔时间ms", "切换次数"],
|
||||
"ReturnInfo": [],
|
||||
},
|
||||
{
|
||||
"TaskID": 39,
|
||||
"TaskName": "异常判定",
|
||||
"TaskBrief": "对已检项目进行异常判定,如果异常判定结果不在过滤范围内,则此任务失败",
|
||||
"ParamInfo": ["过滤值1", "过滤值2", "过滤值3", "过滤值4", "过滤值5", "过滤值6", "过滤值7", "过滤值8", "过滤值9", "过滤值10",],
|
||||
"ReturnInfo": [],
|
||||
},
|
||||
{
|
||||
"TaskID": 40,
|
||||
"TaskName": "重新执行任务",
|
||||
"TaskBrief": "重新执行指定序号的任务,本次执行会覆盖之前的结果",
|
||||
"ParamInfo": ["需要重新执行的任务序号"],
|
||||
"ReturnInfo": [],
|
||||
},
|
||||
{
|
||||
"TaskID": 41,
|
||||
"TaskName": "配置三码数据到小板",
|
||||
"TaskBrief": "先把三码数据写入小板缓存,然后才能使用三码绑定任务",
|
||||
"ParamInfo": ["uid,pwd长度", "数据0,1", "数据2,3", "数据4,5", "数据6,7", "数据8,9", "数据10,11", "数据12,13", "数据14,15", "数据16,17",],
|
||||
"ReturnInfo": [],
|
||||
},
|
||||
{
|
||||
"TaskID": 42,
|
||||
"TaskName": "任务插槽",
|
||||
"TaskBrief": "程序可以动态添加要执行的任务,此任务将执行所有序号匹配的动态任务",
|
||||
"ParamInfo": ["插槽序号"],
|
||||
"ReturnInfo": [],
|
||||
},
|
||||
{
|
||||
"TaskID": 43,
|
||||
"TaskName": "设置电阻校准值",
|
||||
"TaskBrief": "电阻测量的校准值,不建议将此任务添加进方案中",
|
||||
"ParamInfo": ["电阻校准值"],
|
||||
"ReturnInfo": [],
|
||||
},
|
||||
{
|
||||
"TaskID": 44,
|
||||
"TaskName": "写入流水号",
|
||||
"TaskBrief": "采用读改写的方式写入27bit的流水号数据",
|
||||
"ParamInfo": ["要写入的流水号低2字节", "要写入的流水号高2字节"],
|
||||
"ReturnInfo": [],
|
||||
},
|
||||
{
|
||||
"TaskID": 45,
|
||||
"TaskName": "读取流水号",
|
||||
"TaskBrief": "读取27bit的流水号数据,对比失败则此任务失败",
|
||||
"ParamInfo": ["要校验的流水号低2字节", "要校验的流水号高2字节"],
|
||||
"ReturnInfo": ["读取的流水号低2字节", "读取的流水号高2字节"],
|
||||
},
|
||||
{
|
||||
"TaskID": 46,
|
||||
"TaskName": "写固定延时",
|
||||
"TaskBrief": "写入延时并掉电保存",
|
||||
"ParamInfo": ["延时值ms"],
|
||||
"ReturnInfo": [],
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
|
||||
_g_ext_task_table=[
|
||||
{
|
||||
"TaskID": 100,
|
||||
"TaskName": "异常判定",
|
||||
"TaskBrief": "对已检项目进行异常判定,如果异常判定结果不在过滤范围内,则此任务失败",
|
||||
"ParamInfo": ["过滤值1", "过滤值2", "过滤值3", "过滤值4", "过滤值5", "过滤值6", "过滤值7", "过滤值8", "过滤值9", "过滤值10",],
|
||||
"ReturnInfo": [],
|
||||
},
|
||||
{
|
||||
"TaskID": 101,
|
||||
"TaskName": "重新执行任务",
|
||||
"TaskBrief": "重新执行指定序号的任务,本次执行会覆盖之前的结果",
|
||||
"ParamInfo": ["需要重新执行的任务序号"],
|
||||
"ReturnInfo": [],
|
||||
},
|
||||
{
|
||||
"TaskID": 102,
|
||||
"TaskName": "配置三码数据到小板",
|
||||
"TaskBrief": "先把三码数据写入小板缓存,然后才能使用三码绑定任务",
|
||||
"ParamInfo": ["uid,pwd长度", "数据0,1", "数据2,3", "数据4,5", "数据6,7", "数据8,9", "数据10,11", "数据12,13", "数据14,15", "数据16,17",],
|
||||
"ReturnInfo": [],
|
||||
},
|
||||
{
|
||||
"TaskID": 103,
|
||||
"TaskName": "任务插槽",
|
||||
"TaskBrief": "程序可以动态添加要执行的任务,此任务将执行所有序号匹配的动态任务",
|
||||
"ParamInfo": ["插槽序号"],
|
||||
"ReturnInfo": [],
|
||||
},
|
||||
{
|
||||
"TaskID": 104,
|
||||
"TaskName": "设置电阻校准值",
|
||||
"TaskBrief": "电阻测量的校准值,不建议将此任务添加进方案中",
|
||||
"ParamInfo": ["电阻校准值"],
|
||||
"ReturnInfo": [],
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
print(_g_ew_task_table[3])
|
||||
print(is_number("三"))
|
||||
|
43
updata/task_table_fun.py
Normal file
43
updata/task_table_fun.py
Normal file
@@ -0,0 +1,43 @@
|
||||
|
||||
|
||||
|
||||
|
||||
def is_number(s:str):
|
||||
try: # 如果能运行float(s)语句,返回True(字符串s是浮点数)
|
||||
float(s)
|
||||
return True
|
||||
except ValueError: # ValueError为Python的一种标准异常,表示"传入无效的参数"
|
||||
pass # 如果引发了ValueError这种异常,不做任何事情(pass:不做任何事情,一般用做占位语句)
|
||||
try:
|
||||
import unicodedata # 处理ASCii码的包
|
||||
unicodedata.numeric(s) # 把一个表示数字的字符串转换为浮点数返回的函数
|
||||
return True
|
||||
except (TypeError, ValueError):
|
||||
pass
|
||||
return False
|
||||
|
||||
|
||||
|
||||
# 任务0的输入函数,逗号隔开,输入小数
|
||||
def input_task0(text:str):
|
||||
ret=bytearray()
|
||||
sp=text.split(",")
|
||||
for i in sp:
|
||||
if(is_number(i)):
|
||||
num=int(float(i)*10)
|
||||
ret.append(num&0xff)
|
||||
ret.append((num>>8)&0xff)
|
||||
return ret
|
||||
|
||||
# 解析任务0的返回值
|
||||
def output_task0(data:bytearray):
|
||||
pass
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -121,7 +121,7 @@ class myudp(QObject):
|
||||
for i in range(len(cmd_list)):
|
||||
resoult=self.send(ip,cmd_list[i][0],cmd_list[i][1],cmd_list[i][2])
|
||||
if(resoult!=True):
|
||||
err_str="cmd="+cmd_list[i][0]+" filed."
|
||||
err_str="cmd="+cmd_list[i][0]+" failed."
|
||||
print(STR_RED,ip,"|"+err_str,STR_END)
|
||||
self.end_signal.emit(ip,False,err_str)
|
||||
return
|
||||
|
@@ -94,7 +94,7 @@ class data_box(QObject):
|
||||
self.lable.setText(title)
|
||||
self.text = QLabel(father)
|
||||
self.text.setObjectName(u"text")
|
||||
self.text.setGeometry(QRect(40,x+20,450,30))
|
||||
self.text.setGeometry(QRect(40,x+20,550,30))
|
||||
self.text.setText(text)
|
||||
|
||||
|
||||
@@ -331,7 +331,7 @@ class updata_dlg(QWidget):
|
||||
self.sstate_but.setText("小板在线状态")
|
||||
self.sstate_but.clicked.connect(self.sstate_but_clicked)
|
||||
self.sstate_but.setToolTip("点击此按钮查看小板在线情况,显示在线小板的地址。")
|
||||
self.sstate_but.setEnabled(False)
|
||||
# self.sstate_but.setEnabled(False)
|
||||
# self.sstate_but.setToolTipDuration(1)
|
||||
|
||||
# 初始化添加文件按钮
|
||||
@@ -878,9 +878,9 @@ class updata_dlg(QWidget):
|
||||
# u.rate_signal.connect(self.rate_slot)
|
||||
# u.end_signal.connect(self.end_slot)
|
||||
u.data_signal.connect(self.data_slot)
|
||||
updata_cmd="mcu comm_test"
|
||||
updata_cmd="slave_info"
|
||||
cmd_list=[]
|
||||
cmd_list.append((updata_cmd,2,5))# 两次返回,五秒超时
|
||||
cmd_list.append((updata_cmd,1,5))# 1次返回,五秒超时
|
||||
t = threading.Thread(target=u.bordcast, args=(cmd_list,))
|
||||
t.start()
|
||||
|
||||
@@ -920,7 +920,7 @@ class updata_dlg(QWidget):
|
||||
slave_len=len(self.get_selected_slave())
|
||||
if(len(self.data_list)>=slave_len):
|
||||
w=QDialog(self.widget)
|
||||
w.resize(703-150, slave_len*50+20)
|
||||
w.resize(800-150, slave_len*50+20)
|
||||
w.setWindowTitle("返回数据展示")
|
||||
self.creat_databoxs(w,self.data_list)
|
||||
w.show()
|
||||
|
Reference in New Issue
Block a user