131 lines
3.7 KiB
Python
131 lines
3.7 KiB
Python
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)
|