import json import csv import matplotlib.pyplot as plt import numpy as np import datetime from datetime import datetime, timedelta import os # 生成一个任务的参数 def __scheme_task_to_retinfo(j:json): texts=[] length=len(j["TestStandard"]) for i in j["ReturnInfo"]: texts.append(i) return texts # 生成任务参数序列 def __scheme_tasks_to_retinfo(j:json): # texts=[] # for i in j["TaskArray"]: # texts+=__scheme_task_to_retinfo(i) texts=j["CheckerRtvName"] # print(texts) return texts def __json_extract_retinfo(name:str): with open(name,"rb") as f: json_obj=json.loads(f.read()) return __scheme_tasks_to_retinfo(json_obj) return None def __get_date(): now_time = datetime.utcnow() utc_time = now_time + timedelta(hours=8) utc_time = utc_time.strftime("%Y%m%d") return utc_time # 获取本次生成方案的id号 def __get_scheme_id(): info_name="scheme_export_info.txt" id=1 if os.path.exists(info_name): info_f=open(info_name,'r') lines=info_f.readlines() if(__get_date()==lines[0].strip()): id=int(lines[1].strip())+1 info_f.close() with open(info_name,"w+") as f: f.write(__get_date()+'\n') f.write(str(id)+'\n') return id def __reflush_scheme_id(id): # 日bit0~bit4 月bit5~bit8 年bit9~bit15 sid=(id>>0)&0x7f modele=(id>>7)&0x1f chip=(id>>12)&0xf day=(id>>16)&0x1f month=(id>>21)&0xf year=((id>>25)&0x7f)+2022 now_time = datetime.utcnow() utc_time = now_time + timedelta(hours=8) sid=__get_scheme_id() day=utc_time.day month=utc_time.month year=utc_time.year-2022 id=(sid&0x7f)|((modele&0x1f)<<7)|((chip&0xf)<<12)|((day&0x1f)<<16)|((month&0xf)<<21)|((year&0x7f)<<25) return id,sid def main(): save_name="check_data.csv" title=__json_extract_retinfo("代工厂数据采集EJ旧68uF22um08211.json") save_f=open(save_name,'+w') save_f.write(','.join(title)+'\n') err_num=0 with open("EJ09C测试数据.csv",newline="") as f: data=csv.reader(f) for row in data: if(row[3]=='0'): save_f.write(row[4]+'\n') else: err_num+=1 print(row) print("检测异常数量为:",err_num) def datas(): title=__json_extract_retinfo("代工厂数据采集EJ旧68uF22um08211.json") data_list=[] for i in title: t=[] data_list.append(t) with open("EJ09C测试数据.csv",newline="") as f: data=csv.reader(f) for row in data: if(row[3]=='0'): s=row[4].split(',') for i in range(len(s)): data_list[i].append(int(s[i])) return title,data_list def export_scheme(ret_limit): name="代工厂数据采集EJ旧68uF22um08211.json" save_name="代工厂参数标定测试EJ" index=0 with open(name,"r",encoding="utf-8") as f: json_obj=json.loads(f.read()) for i in json_obj["TaskArray"]: for j in i["TestStandard"]: j["Max"]=ret_limit[index][0] j["Min"]=ret_limit[index][1] json_obj["PlanID"],sid=__reflush_scheme_id(json_obj["PlanID"]) save_name=save_name+"_"+__get_date()+"{d:02d}".format(d=sid) json_obj["PlanBrief"]=save_name json_str=json.dumps(json_obj, sort_keys=True, indent=4, separators=(',', ': '),ensure_ascii=False) save_f=open(save_name+".json",'+wb') save_f.write(json_str.encode("utf-8")) save_f.close() if __name__ == "__main__": # main() x=[1,2,3,4,5,6,7] avg=np.average(x) print(type(x),type(avg)) sub=np.abs(x-avg) print(sub)