Delete U180-ToolKit.py
This commit is contained in:
parent
b8e5d96c45
commit
6613dbf814
105
U180-ToolKit.py
105
U180-ToolKit.py
@ -1,105 +0,0 @@
|
|||||||
#import gpibprologix
|
|
||||||
import os
|
|
||||||
import json
|
|
||||||
import time
|
|
||||||
import csv
|
|
||||||
import pandas as pd
|
|
||||||
from plotly.subplots import make_subplots
|
|
||||||
import plotly.graph_objects as go
|
|
||||||
import datetime
|
|
||||||
import numpy
|
|
||||||
import GPIBPrologix
|
|
||||||
|
|
||||||
GPIB = GPIBPrologix.ResourceManager("/dev/ttyACM0")
|
|
||||||
instObj = GPIB.open_resource(22)
|
|
||||||
instObj.write("BEEP")
|
|
||||||
instObj.write("CAL? 72")
|
|
||||||
print(instObj.read())
|
|
||||||
print(instObj.query("CAL? 72"))
|
|
||||||
time.sleep(60)
|
|
||||||
## user customisable functions
|
|
||||||
def readFunc(instObj):
|
|
||||||
return instObj.read()
|
|
||||||
|
|
||||||
def writeFunc(instObj, input):
|
|
||||||
instObj.write(input)
|
|
||||||
|
|
||||||
def queryFunc(instObj, input):
|
|
||||||
time.sleep(0.1)
|
|
||||||
return instObj.query(input)
|
|
||||||
|
|
||||||
## the main program functionalities, should not be adjusted
|
|
||||||
def readRunningConfigs():
|
|
||||||
searchPath = os.path.realpath(os.path.dirname(__file__))+'/RunningConfigs/'
|
|
||||||
filenames = next(os.walk(searchPath), (None, None, []))[2]
|
|
||||||
filenames = [item for item in filenames if str.endswith(item,'.json')]
|
|
||||||
return filenames
|
|
||||||
|
|
||||||
def doACAL(dcACAL, ohmACAL, acACAL):
|
|
||||||
output = queryFunc(instObj, "TEMP?")
|
|
||||||
if dcACAL == "yes":
|
|
||||||
writeFunc(instObj, "ACAL DCV")
|
|
||||||
time.sleep(140+20)
|
|
||||||
if acACAL == "yes":
|
|
||||||
writeFunc(instObj, "ACAL ACV")
|
|
||||||
time.sleep(140+20)
|
|
||||||
if ohmACAL == "yes":
|
|
||||||
writeFunc(instObj, "ACAL OHMS")
|
|
||||||
time.sleep(600+60)
|
|
||||||
return output
|
|
||||||
|
|
||||||
def interrogate3458A(instObj):
|
|
||||||
output = []
|
|
||||||
d = datetime.datetime.now()
|
|
||||||
dx = d - datetime.timedelta(microseconds=d.microsecond)
|
|
||||||
output.append(dx.strftime("%d-%m-%y %H:%M:%S"))
|
|
||||||
output.append(queryFunc(instObj,"TEMP?")) # get temperature in device
|
|
||||||
output.append(queryFunc(instObj,"CAL? 1,1")) # get RREF cal value
|
|
||||||
output.append(queryFunc(instObj,"CAL? 2,1")) # get VREF cal value
|
|
||||||
output.append(queryFunc(instObj,"CAL? 78")) # get 10kohm ACAL gain constrant
|
|
||||||
output.append(queryFunc(instObj,"CAL? 79")) # get 100kohm ACAL gain constrant
|
|
||||||
output.append(queryFunc(instObj,"CAL? 71")) # get 1v0 ACAL gain constrant
|
|
||||||
output.append(queryFunc(instObj,"CAL? 70")) # get 0v1 ACAL gain constrant
|
|
||||||
output.append(queryFunc(instObj,"CAL? 86")) # get 1kohm ACAL ocomp constrant
|
|
||||||
output.append(queryFunc(instObj,"CAL? 87")) # get 10kohm ACAL ocomp constrant
|
|
||||||
output.append(queryFunc(instObj,"CAL? 176")) # get acal temperature for ohms
|
|
||||||
output.append(queryFunc(instObj,"CAL? 59")) # get temperature from during calibration
|
|
||||||
output.append(queryFunc(instObj,"CAL? 97")) # get 1mamp ACAL gain constrant
|
|
||||||
output.append(queryFunc(instObj,"CAL? 72")) # get 10v ACAL gain constrant
|
|
||||||
return output
|
|
||||||
|
|
||||||
## main program
|
|
||||||
# read the config file and do the folder setup
|
|
||||||
for file in readRunningConfigs():
|
|
||||||
dataPath = os.path.realpath(os.path.dirname(__file__))+'/RunningConfigs/'+file
|
|
||||||
with open(dataPath, "r") as read_file:
|
|
||||||
configData = json.load(read_file)
|
|
||||||
serialPath = os.path.realpath(os.path.dirname(__file__))+'/data/'+configData['serial']+'/'
|
|
||||||
if not os.path.exists(serialPath):
|
|
||||||
os.makedirs(serialPath)
|
|
||||||
with open(serialPath+configData['serial']+'.csv', 'a') as g:
|
|
||||||
writer = csv.writer(g)
|
|
||||||
writer.writerow(["DateTime","TEMP","CAL RREF","CAL VREF","G10K","G100K", "G1V0","G0V1","OCOMP1K","OCOMP10K", "ACALTEMP", "CALTEMP", "G1mA", "G10V"])
|
|
||||||
doACAL(configData['ACAL-DCV'],configData['ACAL-OHMS'],configData['ACAL-ACV'])
|
|
||||||
with open(serialPath+configData['serial']+'.csv', 'a') as f:
|
|
||||||
writer = csv.writer(f)
|
|
||||||
writer.writerow((interrogate3458A(instObj)))
|
|
||||||
writeFunc(instObj,"DISP OFF,''")
|
|
||||||
|
|
||||||
## do the plotting
|
|
||||||
for file in readRunningConfigs():
|
|
||||||
dataPath = os.path.realpath(os.path.dirname(__file__))+'/RunningConfigs/'+file
|
|
||||||
with open(dataPath, "r") as read_file:
|
|
||||||
configData = json.load(read_file)
|
|
||||||
serialPath = os.path.realpath(os.path.dirname(__file__))+'/data/'+configData['serial']+'/'
|
|
||||||
df = pd.read_csv(serialPath+configData['serial']+'.csv')
|
|
||||||
|
|
||||||
time_x = pd.to_datetime(df['DateTime'],format='%d-%m-%y %H:%M:%S')
|
|
||||||
coefficients = numpy.polyfit(df['TEMP'], df['G10V'], 1, rcond=None, full=False, w=None, cov=False)
|
|
||||||
polynomial = numpy.poly1d(coefficients)
|
|
||||||
|
|
||||||
fig = make_subplots(rows=1, cols=2)
|
|
||||||
fig.add_trace(go.Scatter(x=time_x, y=df['G10V']-polynomial(df['TEMP']),mode='lines+markers',name='time vs cal72 w tempcomp'),row=1, col=1)
|
|
||||||
fig.add_trace(go.Scatter(x=df['TEMP'], y=df['G10V'],mode='lines+markers',name='temp vs cal72'),row=1, col=2)
|
|
||||||
fig.write_html(serialPath+configData['serial']+'.html')
|
|
||||||
fig.write_image(serialPath+configData['serial']+'.png')
|
|
||||||
Loading…
x
Reference in New Issue
Block a user