From 51a2cdb11ae229ec11b03931a5e537a8337c730d Mon Sep 17 00:00:00 2001 From: ranchuan Date: Thu, 19 Oct 2023 18:17:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=88=E6=8A=A4=E8=BF=9B=E7=A8=8B=E8=AF=86?= =?UTF-8?q?=E5=88=ABu=E7=9B=98=E5=90=8E=E8=87=AA=E5=8A=A8=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E5=B0=8F=E6=9D=BF=E7=A8=8B=E5=BA=8F=E5=92=8C=E6=96=B9?= =?UTF-8?q?=E6=A1=88=20=E5=88=86=E6=9E=90=E5=B7=A5=E5=85=B7=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E7=94=9F=E6=88=90=E5=9B=BE=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReadMe.txt | 4 +- analysis/.gitignore | 1 + analysis/analysis.py | 12 + ...工厂数据采集EJ旧68uF22um08211.json | 1568 ----------------- daemon/daemon.py | 37 +- 5 files changed, 47 insertions(+), 1575 deletions(-) create mode 100644 analysis/.gitignore delete mode 100644 analysis/代工厂数据采集EJ旧68uF22um08211.json diff --git a/ReadMe.txt b/ReadMe.txt index 335d4b8..3fd5311 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -76,4 +76,6 @@ 2023.10.18 批检仪赋码工具根据设备类型禁用按钮 守护进程添加升级小板功能,升级时蜂鸣器提示 - +2023.10.19 + 守护进程识别u盘后自动升级小板程序和方案 + 分析工具自动生成图像 diff --git a/analysis/.gitignore b/analysis/.gitignore new file mode 100644 index 0000000..94a2dd1 --- /dev/null +++ b/analysis/.gitignore @@ -0,0 +1 @@ +*.json \ No newline at end of file diff --git a/analysis/analysis.py b/analysis/analysis.py index e8cf448..0672ec4 100644 --- a/analysis/analysis.py +++ b/analysis/analysis.py @@ -15,6 +15,7 @@ import sys import scheme_data import numpy as np import threading +import os plt.rcParams['font.sans-serif']=['SimHei'] @@ -29,6 +30,7 @@ class QFigure(QObject): self.__canvas = FigureCanvas(self.__figure) self.__ax = self.__figure.add_axes([0.1,0.1,0.8,0.8]) self.__ax.set_title(title) + self._title=title def draw(self,x,y,lable:str=None,limit_max:int=None,limit_min:int=None): line,=self.__ax.plot(x,y,) @@ -46,6 +48,11 @@ class QFigure(QObject): # self.__ax.yaxis.set_ticks(ticks) self.__ax.grid(visible=True,which="major",axis="y") self.__canvas.draw() + def save(self,path:str,perfix:str): + if not os.path.exists(path): + os.makedirs(path) + name=os.path.join(path,perfix+self._title) + self.__figure.savefig(name+'.png') def lable(self,lablex,labley): self.__ax.set_ylabel(labley) self.__ax.set_xlabel(lablex) @@ -147,7 +154,9 @@ class Analysis(QWidget): figure.draw(range(len(data)),data,lable="原始值",limit_max=limit_max,limit_min=limit_min) y=np.add(range(len(dat_count)),min) figure.draw(dat_count,y,lable="权重") + figure.save(self._save_path,str(self._item_index)+".") self.__items.append((figure,tplayout)) + self._item_index+=1 # 连接的绘制的方法 def import_but_clicked(self): @@ -159,6 +168,9 @@ class Analysis(QWidget): if(self.titles==None): self.__import_but.setEnabled(True) return + self._item_index=0 + self._save_path="file/"+self.sch_data.scheme_name.split('/')[-1].split('.')[0] + print(self._save_path) for i in range(len(self.titles)): self.addItem(datas[i],self.titles[i],[self.titles[i]]) widget.setLayout(self.__layout) diff --git a/analysis/代工厂数据采集EJ旧68uF22um08211.json b/analysis/代工厂数据采集EJ旧68uF22um08211.json deleted file mode 100644 index 47f1b7b..0000000 --- a/analysis/代工厂数据采集EJ旧68uF22um08211.json +++ /dev/null @@ -1,1568 +0,0 @@ -{ - "PlanID": 51708545, - "PlanBrief": "代工厂数据采集EJ旧68uF22um08211", - "CheckSoftVersion": [ - 6, - 7, - 8, - 0, - 9 - ], - "CheckHardVersion": [ - 0, - 65535 - ], - "TimeOutS": 70, - "TimeOutM": 76, - "TimeOutUI": 78, - "TaskIDMax": 26, - "FacInfoSize": 0, - "FacInfoAddr": -1, - "FacFunClass": 0, - "TaskArray": [ - { - "TaskID": 0, - "TaskBrief": "电源准备", - "TaskIndex": 0, - "ParamCount": 7, - "ParamInfo": [ - "预设电压1", - "预设电压2", - "预设电压3", - "预设电压4", - "预设电压5", - "预设电压6", - "预设电压7" - ], - "ParamVal": [ - 65, - 80, - 85, - 175, - 205, - 215, - 230 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 21, - "ResultErrCode": [], - "RetryCount": 1, - "TaskMes": "检测前校准检测过程中需要使用的电压,便于检测过程中快速输出电压。电压范围55~270" - }, - { - "TaskID": 31, - "TaskBrief": "桥丝电阻测试", - "TaskIndex": 1, - "ParamCount": 1, - "ParamInfo": [ - "测量模式" - ], - "ParamVal": [ - 0 - ], - "TestStandard": [ - { - "Max": 550, - "Min": 350 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "电容0.1Ω" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0, - "TaskMes": "测量桥丝阻值。可配置测量模式 0 4线制, 1 2线1-4通,2 2线2-3通" - }, - { - "TaskID": 1, - "TaskBrief": "上电充能", - "TaskIndex": 2, - "ParamCount": 3, - "ParamInfo": [ - "总线电压", - "采样超时0.1ms", - "计时启停ADC" - ], - "ParamVal": [ - 80, - 10000, - 600 - ], - "TestStandard": [ - { - "Max": 85, - "Min": 75 - }, - { - "Max": 900, - "Min": 0 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "电压", - "大于启停的时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 22, - "ResultErrCode": [ - 23, - 22 - ], - "RetryCount": 1, - "TaskMes": "统计上电瞬间,模块功耗。电流计数方式 A = 3.3*ADC/4096/510/11" - }, - { - "TaskID": 4, - "TaskBrief": "扫描UID", - "TaskIndex": 3, - "ParamCount": 2, - "ParamInfo": [ - "使1/失0反码采集", - "使0/失1UID全0验证" - ], - "ParamVal": [ - 1, - 0 - ], - "TestStandard": [ - { - "Max": 70, - "Min": 40 - }, - { - "Max": 400, - "Min": 270 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "最大反馈电流", - "最大反馈时间" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 24, - "ResultErrCode": [ - 43, - 42, - 255, - 255, - 255, - 255, - 255, - 255 - ], - "RetryCount": 1, - "TaskMes": "芯片通信测试,分配网络地址。芯片复位后,第一条通信测试命令" - }, - { - "TaskID": 3, - "TaskBrief": "获取总线电流", - "TaskIndex": 4, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 250, - "Min": 120 - }, - { - "Max": 250, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 27, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0, - "TaskMes": "获取总线正反两个极性电流" - }, - { - "TaskID": 6, - "TaskBrief": "读取芯片代码", - "TaskIndex": 5, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 28, - "ResultErrCode": [ - 28 - ], - "RetryCount": 1, - "TaskMes": "读取芯片代码" - }, - { - "TaskID": 5, - "TaskBrief": "密码验证", - "TaskIndex": 6, - "ParamCount": 1, - "ParamInfo": [ - "0码/1原码验证" - ], - "ParamVal": [ - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0, - "TaskMes": "芯片密码验证" - }, - { - "TaskID": 19, - "TaskBrief": "起爆使能", - "TaskIndex": 7, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0, - "TaskMes": "发送起爆使能命令" - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 8, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 205 - ], - "TestStandard": [ - { - "Max": 210, - "Min": 200 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "总线电压" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 23, - "ResultErrCode": [ - 23 - ], - "RetryCount": 1, - "TaskMes": "设置总线电压为预设电压中的值" - }, - { - "TaskID": 3, - "TaskBrief": "获取总线电流", - "TaskIndex": 9, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 260, - "Min": 120 - }, - { - "Max": 260, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "总线正电流", - "总线反电流" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 27, - "ResultErrCode": [ - 27, - 27 - ], - "RetryCount": 0, - "TaskMes": "获取总线正反两个极性电流" - }, - { - "TaskID": 14, - "TaskBrief": "写延时", - "TaskIndex": 10, - "ParamCount": 1, - "ParamInfo": [ - "延时" - ], - "ParamVal": [ - 800 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0, - "TaskMes": "向延时寄存器写入数据" - }, - { - "TaskID": 16, - "TaskBrief": "时钟校准", - "TaskIndex": 11, - "ParamCount": 2, - "ParamInfo": [ - "脉冲周期", - "脉冲个数" - ], - "ParamVal": [ - 400, - 900 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 39, - "ResultErrCode": [], - "RetryCount": 0, - "TaskMes": "发送校准脉冲" - }, - { - "TaskID": 11, - "TaskBrief": "充能统计", - "TaskIndex": 12, - "ParamCount": 5, - "ParamInfo": [ - "超时0.1us", - "电流判线AD", - "充电结束值0.1uA", - "充电超时0.1S", - "电流监控0.1S" - ], - "ParamVal": [ - 20000, - 1000, - 500, - 60, - 20 - ], - "TestStandard": [ - { - "Max": 12000, - "Min": 7800 - }, - { - "Max": 500, - "Min": 120 - }, - { - "Max": 18, - "Min": 10 - }, - { - "Max": 1500, - "Min": 0 - } - ], - "ReturnCount": 4, - "ReturnInfo": [ - "充能值0.1ms", - "充末电流0.1uA", - "最大充电电流0.1mA", - "充电抖动ADV" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 31, - "ResultErrCode": [ - 31, - 32, - 32, - 32 - ], - "RetryCount": 1, - "TaskMes": "充能统会发送充电命令,计电流判线设定值,从上升到下降的时间。同时记录充过程中最大电流。以及结束高压充电的总线电流和充电电流监控时间。充电电流判线计数公式 电流=AD/4093*3.3/100/11" - }, - { - "TaskID": 12, - "TaskBrief": "充电电压检测", - "TaskIndex": 13, - "ParamCount": 2, - "ParamInfo": [ - "起始DAC", - "结束DAC" - ], - "ParamVal": [ - 31, - 27 - ], - "TestStandard": [ - { - "Max": 31, - "Min": 29 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "扫描通过的DAC" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 30, - "ResultErrCode": [ - 30 - ], - "RetryCount": 1, - "TaskMes": "由高向低扫描芯片电压检测值,扫描失败返回值为0" - }, - { - "TaskID": 9, - "TaskBrief": "读芯片状态", - "TaskIndex": 14, - "ParamCount": 1, - "ParamInfo": [ - "状态值掩码" - ], - "ParamVal": [ - 254 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0, - "TaskMes": "将芯片状态值与参数值进行算术与操作,等于参数值表示执行成功" - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 15, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 65 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 23, - "ResultErrCode": [ - 255 - ], - "RetryCount": 1, - "TaskMes": "设置总线电压为预设电压中的值" - }, - { - "TaskID": 13, - "TaskBrief": "延时等待", - "TaskIndex": 16, - "ParamCount": 2, - "ParamInfo": [ - "延时时间", - "使1/失0电流监控" - ], - "ParamVal": [ - 30, - 1 - ], - "TestStandard": [ - { - "Max": 300, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "电流波动DAC" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 33 - ], - "RetryCount": 1, - "TaskMes": "延时流程,同时可以启动总线电流监测 设置单位0.1S。波动DAC换算 Vad/4096*3.3/100/11" - }, - { - "TaskID": 12, - "TaskBrief": "充电电压检测", - "TaskIndex": 17, - "ParamCount": 2, - "ParamInfo": [ - "起始DAC", - "结束DAC" - ], - "ParamVal": [ - 31, - 27 - ], - "TestStandard": [ - { - "Max": 31, - "Min": 28 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "扫描通过的DAC" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 30, - "ResultErrCode": [ - 30 - ], - "RetryCount": 1, - "TaskMes": "由高向低扫描芯片电压检测值,扫描失败返回值为0" - }, - { - "TaskID": 17, - "TaskBrief": "放电", - "TaskIndex": 18, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0, - "TaskMes": "发送放电命令,使能快速放电,还需要配置放电时间。快速放电仅JQ2012才有。放电时间单位0.1S,该值应该大于0快速放电才有效" - }, - { - "TaskID": 17, - "TaskBrief": "放电", - "TaskIndex": 19, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0, - "TaskMes": "发送放电命令,使能快速放电,还需要配置放电时间。快速放电仅JQ2012才有。放电时间单位0.1S,该值应该大于0快速放电才有效" - }, - { - "TaskID": 13, - "TaskBrief": "延时等待", - "TaskIndex": 20, - "ParamCount": 1, - "ParamInfo": [ - "延时时间" - ], - "ParamVal": [ - 100 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0, - "TaskMes": "延时流程,同时可以启动总线电流监测 设置单位0.1S。波动DAC换算 Vad/4096*3.3/100/11" - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 21, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 215 - ], - "TestStandard": [ - { - "Max": 220, - "Min": 210 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "总线电压" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 23 - ], - "RetryCount": 0, - "TaskMes": "设置总线电压为预设电压中的值" - }, - { - "TaskID": 11, - "TaskBrief": "充能统计", - "TaskIndex": 22, - "ParamCount": 5, - "ParamInfo": [ - "超时0.1us", - "电流判线AD", - "充电结束值0.1uA", - "充电超时0.1S", - "电流监控0.1S" - ], - "ParamVal": [ - 20000, - 1000, - 500, - 80, - 20 - ], - "TestStandard": [ - { - "Max": 12000, - "Min": 8000 - }, - { - "Max": 500, - "Min": 120 - }, - { - "Max": 18, - "Min": 10 - }, - { - "Max": 1500, - "Min": 0 - } - ], - "ReturnCount": 4, - "ReturnInfo": [ - "充能值0.1ms", - "充末电流0.1uA", - "最大充电电流0.1mA", - "充电抖动ADV" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 31, - 33, - 32, - 32 - ], - "RetryCount": 0, - "TaskMes": "充能统会发送充电命令,计电流判线设定值,从上升到下降的时间。同时记录充过程中最大电流。以及结束高压充电的总线电流和充电电流监控时间。充电电流判线计数公式 电流=AD/4093*3.3/100/11" - }, - { - "TaskID": 20, - "TaskBrief": "起爆充能", - "TaskIndex": 23, - "ParamCount": 2, - "ParamInfo": [ - "电流判线AD", - "起爆脉冲个数" - ], - "ParamVal": [ - 800, - 500 - ], - "TestStandard": [ - { - "Max": 100, - "Min": 0 - }, - { - "Max": 200, - "Min": 0 - }, - { - "Max": 1500, - "Min": 0 - } - ], - "ReturnCount": 3, - "ReturnInfo": [ - "充能时间", - "充电电流", - "充电电流波动" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 41, - 41, - 41 - ], - "RetryCount": 0, - "TaskMes": "发送起爆命令后,检测起爆完成后对电容的充电。判断电流上升沿到下降沿的时间。充能电流ADC/4096*3.3/100/21" - }, - { - "TaskID": 25, - "TaskBrief": "清除起爆命令", - "TaskIndex": 24, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0, - "TaskMes": "起爆脉冲重新计算" - }, - { - "TaskID": 25, - "TaskBrief": "清除起爆命令", - "TaskIndex": 25, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 0, - "TaskMes": "起爆脉冲重新计算" - }, - { - "TaskID": 18, - "TaskBrief": "复位放电", - "TaskIndex": 26, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 45, - "ResultErrCode": [], - "RetryCount": 2, - "TaskMes": "执行复位和放电,并检测复测成功" - }, - { - "TaskID": 2, - "TaskBrief": "设置总线电压", - "TaskIndex": 27, - "ParamCount": 1, - "ParamInfo": [ - "总线电压" - ], - "ParamVal": [ - 65 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 21, - "ResultErrCode": [ - 21 - ], - "RetryCount": 0, - "TaskMes": "设置总线电压为预设电压中的值" - }, - { - "TaskID": 13, - "TaskBrief": "延时等待", - "TaskIndex": 28, - "ParamCount": 1, - "ParamInfo": [ - "延时时间" - ], - "ParamVal": [ - 80 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 1, - "TaskMes": "延时流程,同时可以启动总线电流监测 设置单位0.1S。波动DAC换算 Vad/4096*3.3/100/11" - }, - { - "TaskID": 4, - "TaskBrief": "扫描UID", - "TaskIndex": 29, - "ParamCount": 2, - "ParamInfo": [ - "使1/失0反码采集", - "使0/失1UID全0验证" - ], - "ParamVal": [ - 0, - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 24, - "ResultErrCode": [ - 255, - 255, - 255, - 255, - 255, - 255, - 255, - 255 - ], - "RetryCount": 1, - "TaskMes": "芯片通信测试,分配网络地址。芯片复位后,第一条通信测试命令" - }, - { - "TaskID": 5, - "TaskBrief": "密码验证", - "TaskIndex": 30, - "ParamCount": 1, - "ParamInfo": [ - "0码/1原码验证" - ], - "ParamVal": [ - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 29, - "ResultErrCode": [], - "RetryCount": 1, - "TaskMes": "芯片密码验证" - }, - { - "TaskID": 7, - "TaskBrief": "OTP检测", - "TaskIndex": 31, - "ParamCount": 3, - "ParamInfo": [ - "1关/0检UID密码为0", - "1关/0检延时保留区为0", - "1关/0检用户区为0" - ], - "ParamVal": [ - 0, - 0, - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 25, - "ResultErrCode": [], - "RetryCount": 1, - "TaskMes": "对OTP数据进行检测,可屏蔽检测区域" - }, - { - "TaskID": 14, - "TaskBrief": "写延时", - "TaskIndex": 32, - "ParamCount": 1, - "ParamInfo": [ - "延时" - ], - "ParamVal": [ - 20 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 36, - "ResultErrCode": [], - "RetryCount": 1, - "TaskMes": "向延时寄存器写入数据" - }, - { - "TaskID": 15, - "TaskBrief": "读延时", - "TaskIndex": 33, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [ - { - "Max": 20, - "Min": 20 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "延时值" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 37, - "ResultErrCode": [ - 255 - ], - "RetryCount": 1, - "TaskMes": "读延时寄存器" - }, - { - "TaskID": 16, - "TaskBrief": "时钟校准", - "TaskIndex": 34, - "ParamCount": 2, - "ParamInfo": [ - "脉冲周期", - "脉冲个数" - ], - "ParamVal": [ - 1000, - 25 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 39, - "ResultErrCode": [], - "RetryCount": 1, - "TaskMes": "发送校准脉冲" - }, - { - "TaskID": 11, - "TaskBrief": "充能统计", - "TaskIndex": 35, - "ParamCount": 5, - "ParamInfo": [ - "超时0.1us", - "电流判线AD", - "充电结束值0.1uA", - "充电超时0.1S", - "电流监控0.1S" - ], - "ParamVal": [ - 15000, - 800, - 400, - 40, - 0 - ], - "TestStandard": [ - { - "Max": 3000, - "Min": 2000 - }, - { - "Max": 450, - "Min": 120 - } - ], - "ReturnCount": 2, - "ReturnInfo": [ - "充能值0.1ms", - "充末电流0.1uA" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 34, - "ResultErrCode": [ - 34, - 35, - 255, - 255 - ], - "RetryCount": 1, - "TaskMes": "充能统会发送充电命令,计电流判线设定值,从上升到下降的时间。同时记录充过程中最大电流。以及结束高压充电的总线电流和充电电流监控时间。充电电流判线计数公式 电流=AD/4093*3.3/100/11" - }, - { - "TaskID": 12, - "TaskBrief": "充电电压检测", - "TaskIndex": 36, - "ParamCount": 2, - "ParamInfo": [ - "起始DAC", - "结束DAC" - ], - "ParamVal": [ - 3, - 0 - ], - "TestStandard": [ - { - "Max": 3, - "Min": 0 - } - ], - "ReturnCount": 1, - "ReturnInfo": [ - "扫描通过的DAC" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 30, - "ResultErrCode": [ - 34 - ], - "RetryCount": 1, - "TaskMes": "由高向低扫描芯片电压检测值,扫描失败返回值为0" - }, - { - "TaskID": 12, - "TaskBrief": "充电电压检测", - "TaskIndex": 37, - "ParamCount": 2, - "ParamInfo": [ - "起始DAC", - "结束DAC" - ], - "ParamVal": [ - 0, - 0 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [ - 255 - ], - "RetryCount": 0, - "TaskMes": "由高向低扫描芯片电压检测值,扫描失败返回值为0" - }, - { - "TaskID": 19, - "TaskBrief": "起爆使能", - "TaskIndex": 38, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 1, - "TaskMes": "发送起爆使能命令" - }, - { - "TaskID": 9, - "TaskBrief": "读芯片状态", - "TaskIndex": 39, - "ParamCount": 1, - "ParamInfo": [ - "状态值掩码" - ], - "ParamVal": [ - 254 - ], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 42, - "ResultErrCode": [], - "RetryCount": 10, - "TaskMes": "将芯片状态值与参数值进行算术与操作,等于参数值表示执行成功" - }, - { - "TaskID": 20, - "TaskBrief": "起爆充能", - "TaskIndex": 40, - "ParamCount": 3, - "ParamInfo": [ - "电流判线AD", - "起爆脉冲个数", - "延时采集时间" - ], - "ParamVal": [ - 800, - 653, - 25 - ], - "TestStandard": [ - { - "Max": 3000, - "Min": 2000 - }, - { - "Max": 100, - "Min": 30 - }, - { - "Max": 100, - "Min": 0 - } - ], - "ReturnCount": 3, - "ReturnInfo": [ - "充能时间", - "充电电流", - "充电电流波动" - ], - "ErrJumpTo": 255, - "ExecuteErrCode": 41, - "ResultErrCode": [ - 41, - 41, - 41 - ], - "RetryCount": 1, - "TaskMes": "发送起爆命令后,检测起爆完成后对电容的充电。判断电流上升沿到下降沿的时间。充能电流ADC/4096*3.3/100/21" - }, - { - "TaskID": 18, - "TaskBrief": "复位放电", - "TaskIndex": 41, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 45, - "ResultErrCode": [], - "RetryCount": 2, - "TaskMes": "执行复位和放电,并检测复测成功" - }, - { - "TaskID": 26, - "TaskBrief": "关总线", - "TaskIndex": 42, - "ParamCount": 0, - "ParamInfo": [], - "ParamVal": [], - "TestStandard": [], - "ReturnCount": 0, - "ReturnInfo": [], - "ErrJumpTo": 255, - "ExecuteErrCode": 254, - "ResultErrCode": [], - "RetryCount": 1, - "TaskMes": "关闭总线输出" - } - ], - "CheckerRtvName": [ - "电容0.1Ω", - "电压", - "大于启停的时间", - "最大反馈电流", - "最大反馈时间", - "总线正电流", - "总线反电流", - "总线电压", - "总线正电流", - "总线反电流", - "充能值0.1ms", - "充末电流0.1uA", - "最大充电电流0.1mA", - "充电抖动ADV", - "扫描通过的DAC", - "电流波动DAC", - "扫描通过的DAC", - "总线电压", - "充能值0.1ms", - "充末电流0.1uA", - "最大充电电流0.1mA", - "充电抖动ADV", - "充能时间", - "充电电流", - "充电电流波动", - "延时值", - "充能值0.1ms", - "充末电流0.1uA", - "扫描通过的DAC", - "充能时间", - "充电电流", - "充电电流波动" - ], - "MajorErrInfo": [ - { - "Info": "执行成功", - "MajorErrCode": 0, - "SubErrCode": [] - }, - { - "Info": "检测器异常", - "MajorErrCode": 1, - "SubErrCode": [ - 21, - 23, - 254 - ] - }, - { - "Info": "主电容异常", - "MajorErrCode": 2, - "SubErrCode": [ - 30, - 31, - 32, - 33, - 34, - 35, - 42 - ] - }, - { - "Info": "接触异常", - "MajorErrCode": 3, - "SubErrCode": [ - 27 - ] - }, - { - "Info": "桥丝阻值异常", - "MajorErrCode": 4, - "SubErrCode": [ - 30, - 41, - 42, - 51 - ] - }, - { - "Info": "芯片异常", - "MajorErrCode": 5, - "SubErrCode": [ - 22, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 32, - 33, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45 - ] - }, - { - "Info": "其他异常", - "MajorErrCode": 20, - "SubErrCode": [ - 255, - 208, - 209, - 210, - 211, - 212, - 213 - ] - } - ], - "SubErrInfo": [ - { - "Info": "预设电压异常", - "ErrCode": 21, - "ErrFac": [ - "1.检测小板电压调节失效,存在无法设置的电压" - ] - }, - { - "Info": "上电充能错误", - "ErrCode": 22, - "ErrFac": [ - "1.检测器输出电压异常", - "2.模块上电容性负载大", - "3.模块基本电路异常" - ] - }, - { - "Info": "电压设置异常", - "ErrCode": 23, - "ErrFac": [ - "1.检测小板输出电压异常", - "2.外部短路,导致过流保护" - ] - }, - { - "Info": "UID扫描错误", - "ErrCode": 24, - "ErrFac": [ - "1.芯片通信异常", - "2.OTP中UID非0(启用了UID全0检测)" - ] - }, - { - "Info": "OTP错误", - "ErrCode": 25, - "ErrFac": [ - "1.OTP数据非全0(启用了全0检测)" - ] - }, - { - "Info": "通讯电流错误", - "ErrCode": 26, - "ErrFac": [ - "1.芯片反码电流异常" - ] - }, - { - "Info": "基本电流错误", - "ErrCode": 27, - "ErrFac": [ - "1.芯片的静态功耗异常", - "2.检测器输出电压异常" - ] - }, - { - "Info": "读取芯片ID错误", - "ErrCode": 28, - "ErrFac": [ - "1.通信错误" - ] - }, - { - "Info": "密码验证错误", - "ErrCode": 29, - "ErrFac": [ - "1.芯片异常,内部密码与严重密码不一致" - ] - }, - { - "Info": "DAC比较错误", - "ErrCode": 30, - "ErrFac": [ - "1.芯片异常,检测DAC不准", - "2.电容端电压异常,不符合检测要求", - "3.高压或充电降压通信异常", - "4.芯片充电漏流偏大" - ] - }, - { - "Info": "高压充能错误", - "ErrCode": 31, - "ErrFac": [ - "1.电容漏流", - "2.电容容值偏低或偏大", - "3.芯片充电漏流,充电回路或起爆回路", - "4.芯片高压基本电流偏大", - "5.芯片异常,充电电流偏小" - ] - }, - { - "Info": "充电电流错误", - "ErrCode": 32, - "ErrFac": [ - "1.芯片异常,充电电流符合指标" - ] - }, - { - "Info": "高压充末电流错误", - "ErrCode": 33, - "ErrFac": [ - "1.电容漏流", - "2.芯片充电回路漏流或起爆回路漏流", - "3.芯片高压基本电流偏大" - ] - }, - { - "Info": "低压充电能量错误", - "ErrCode": 34, - "ErrFac": [ - "1.电容漏流", - "2.电容容值偏低或偏大", - "3.芯片充电漏流,充电回路或起爆回路", - "4.芯片低压基本电流偏大", - "5.芯片异常,充电电流偏小", - "6.高压充电后不能放电" - ] - }, - { - "Info": "低压充末电流错误", - "ErrCode": 35, - "ErrFac": [ - "1.电容漏流", - "2.芯片充电回路漏流或起爆回路漏流", - "3.芯片基本功耗偏大" - ] - }, - { - "Info": "写延时错误", - "ErrCode": 36, - "ErrFac": [ - "1.芯片设置延时功能异常", - "2.通信异常" - ] - }, - { - "Info": "读延时错误", - "ErrCode": 37, - "ErrFac": [ - "1.芯片读延时功能异常", - "2.通信异常" - ] - }, - { - "Info": "芯片程测错误", - "ErrCode": 38, - "ErrFac": [ - "1.芯片成测标记错误,非全FFFF", - "2.通信异常" - ] - }, - { - "Info": "时钟校准错误", - "ErrCode": 39, - "ErrFac": [ - "1.检测器命令执行异常" - ] - }, - { - "Info": "写工厂信息错误", - "ErrCode": 40, - "ErrFac": [ - "1.OTP数据写入出错", - "2.通信异常" - ] - }, - { - "Info": "模拟起爆错误", - "ErrCode": 41, - "ErrFac": [ - "1.发送起爆指令后无应答" - ] - }, - { - "Info": "芯片状态码异常", - "ErrCode": 42, - "ErrFac": [ - "1.状态码与设置的掩码不匹配", - "2.通讯异常" - ] - }, - { - "Info": "通信电流错误", - "ErrCode": 43, - "ErrFac": [ - "1.芯片异常", - "2.检测器异常" - ] - }, - { - "Info": "反码时长错误", - "ErrCode": 44, - "ErrFac": [ - "1.芯片异常,通讯无反码", - "2.通讯反码电流低,不能识别" - ] - }, - { - "Info": "复位放电错误", - "ErrCode": 45, - "ErrFac": [ - "1.高压充电后降压通讯异常", - "2.芯片复位不能正常放电", - "3.芯片异常,指令不执行" - ] - }, - { - "Info": "桥丝阻值异常", - "ErrCode": 51, - "ErrFac": [ - "1.桥丝电阻不符合标准", - "2.测试设备校准偏差" - ] - }, - { - "Info": "通信超时", - "ErrCode": 208, - "ErrFac": [ - "1.小板状态异常,不响应通信指令", - "2.小板与主板之间通信异常" - ] - }, - { - "Info": "脚本执行失败", - "ErrCode": 209, - "ErrFac": [ - "1.脚本功能异常", - "2.配置文件配置为不使用脚本" - ] - }, - { - "Info": "数据长度与方案不符", - "ErrCode": 210, - "ErrFac": [ - "1.小板和主板使用的方案不同,更新方案即可", - "2.脚本功能异常" - ] - }, - { - "Info": "方案ID不符", - "ErrCode": 211, - "ErrFac": [ - "1.使用的方案和脚本适配的方案不适配,更换相应的脚本或者方案即可" - ] - }, - { - "Info": "检测项目不足", - "ErrCode": 212, - "ErrFac": [ - "1.方案中未执行异常判定所需的任务,无法判定异常", - "2.脚本功能异常" - ] - }, - { - "Info": "数据不合规", - "ErrCode": 213, - "ErrFac": [ - "1.用于判定的数据不具有正常的电性能检测规律,模块检测时不应出现此错误", - "2.脚本功能异常", - "3.方案中相关异常判定参数设置不合理", - "4.小板和主板使用的方案不同但数据返回长度相同,导致错误解释了返回数据的含义" - ] - }, - { - "Info": "检测器执行异常", - "ErrCode": 254, - "ErrFac": [ - "广播类命令执行错误" - ] - }, - { - "Info": "返回参数判断", - "ErrCode": 255, - "ErrFac": [] - } - ] -} \ No newline at end of file diff --git a/daemon/daemon.py b/daemon/daemon.py index 895df48..27c4716 100644 --- a/daemon/daemon.py +++ b/daemon/daemon.py @@ -12,7 +12,10 @@ import json # 定义守护进程 - +# 2023.10.19 +# 检测到插入sd卡时快速响5声 +# 升级主板完成后连续响2声 +# 小板升级完成后连续响3声 # 日志文件路径 @@ -94,7 +97,8 @@ class cfg(object): num=self.json_obj["slave_num"] for i in range(num): addrs+=str(i+1)+',' - return addrs[:-1] + return addrs[:-1] + return addrs def write_info(text:str): fm = '%Y-%m-%d %X' @@ -123,6 +127,7 @@ class auto_updata(object): if(ack!=self.sd_inserd_state): if(ack==True): write_info("sd inserd.") + self.beep_insert() if(self.copy_file()==True): time.sleep(5) self.beep_tip(True) @@ -148,9 +153,9 @@ class auto_updata(object): _do_cmd("chmod 777 /usr/local/QDesktop-fb") _do_cmd("cp "+self.find_file_by_type([".bin"])+" /home/root/config/checker_slave.bin") _do_cmd("cp "+self.find_file_by_type([".pkt"])+" /home/root/config/checker_slave.pkt") - _do_cmd("cp "+self.find_file_by_type("scheme.json")+" /home/root/config/checker_ye_cfg.json") + _do_cmd("cp "+self.find_file_by_type([".json"])+" /home/root/config/checker_ye_cfg.json") _do_cmd("cp "+self.file_path+"/cfg.json /home/root/config/cfg.json") - _do_cmd("cp "+self.find_file_by_type(".axf")+" /lib/firmware/checker_m4.axf") + _do_cmd("cp "+self.find_file_by_type([".axf"])+" /lib/firmware/checker_m4.axf") # _do_cmd("cp "+self.find_file_by_type(".dtb")+" /boot/stm32mp157d-atk.dtb") _do_cmd("sync") _do_cmd("systemctl restart atk-qtapp-start.service") @@ -160,8 +165,9 @@ class auto_updata(object): for i in self.file_list: sp=i.split(".")[-1] sp='.'+sp - if(sp in types): - return self.file_path+'/'+i + if(i!="cfg.json"): + if(sp in types): + return self.file_path+'/'+i return "unknown" def updata_slave(self): cfg_f=cfg() @@ -183,6 +189,16 @@ class auto_updata(object): a=u.send_cmd(cmd) if(a!=None): write_info("|--| "+a) + slave_file=self.find_file_by_type([".json"]) + if(slave_file!="unknown"): + time.sleep(5) + write_info("updata scheme:"+slave_file) + u=myudp() + cmd="mcu scheme "+addrs + a=u.send_cmd(cmd) + if(a!=None): + write_info("|--| "+a) + # 升级完成时的连续三声提示 def beep_end(self): @@ -193,6 +209,15 @@ class auto_updata(object): b.power(False) time.sleep(0.2) b.close() + # 检测到sd卡插入时连续响5声 + def beep_insert(self): + b=beep() + for i in range(5): + b.power(True) + time.sleep(0.05) + b.power(False) + time.sleep(0.1) + b.close() # 升级时的蜂鸣器提示 def beep_tip(self,power:bool): if(power==True) and (self.beep_power!=True):