132 lines
2.8 KiB
Python
132 lines
2.8 KiB
Python
#Arg1=filename
|
|
#Arg2=base PV inc channel
|
|
|
|
#python UploadTempCurve.py U08910.340 SARES31-DIL-TST1:CV1
|
|
|
|
|
|
from epics import caget, caput
|
|
|
|
#Comment: 04.03.2024, FP and CMN & 300mK calibrated Cernox, 10mK--300K
|
|
#Sensor Model: RX-1000-BF0.007
|
|
#Serial Number: U08910
|
|
#Data Format: 4 (Log Ohms/Kelvin)
|
|
#SetPoint Limit: 300 (Kelvin)
|
|
#Temperature coefficient: 1 (Negative)
|
|
#Number of Breakpoints: 198
|
|
|
|
#No. Units Temperature (K)
|
|
|
|
|
|
#1 3.2956295902328776 302.29637503738195
|
|
#2 3.296971553758573 286.59226140605614
|
|
#3 3.2983135172842686 271.70396696844415
|
|
#4 3.299655480809964 257.58911041144177
|
|
|
|
|
|
import sys
|
|
#import re
|
|
|
|
with open(sys.argv[1], 'r') as f: #File of pv names to a list
|
|
data= f.readlines()
|
|
|
|
|
|
Model="?"
|
|
SN="?"
|
|
DF="?"
|
|
DFU="?"
|
|
TC="?"
|
|
TCU="?"
|
|
BPS="?"
|
|
|
|
SPL="?"
|
|
SPLU="?"
|
|
|
|
a = [0] * 205
|
|
b = [0] * 205
|
|
c = [0] * 205
|
|
lastpoint="0"
|
|
|
|
for line in data:
|
|
#print(len(line))
|
|
if (len(line)>10):
|
|
sp=line.replace("\t"," ")
|
|
sp=sp.replace("\n","")
|
|
# sp =re.split(' |\n', sp)
|
|
if ":" in line:
|
|
sp=sp.split(":")
|
|
sp0=sp[0]
|
|
pos=sp[1].lstrip()
|
|
#print("line:"+line)
|
|
#print(" '"+sp0.lower()+"' ")
|
|
#print(pos.split(" "))
|
|
if sp0.lower()=="sensor model" :
|
|
Model=pos.split(" ")[0]
|
|
|
|
if sp0.lower()=="serial number" :
|
|
SN=pos.split(" ")[0]
|
|
|
|
if sp0.lower()=="data format" :
|
|
DF=pos.split(" ")[0]
|
|
DFU=pos.split(" ")[1]
|
|
|
|
if sp0.lower()=="setpoint limit" :
|
|
SPL=pos.split(" ")[0]
|
|
SPLU=pos.split(" ")[1]
|
|
|
|
if sp0.lower()=="temperature coefficient" :
|
|
TC=pos.split(" ")[0]
|
|
TCU=pos.split(" ")[1]
|
|
|
|
if sp0.lower()=="number of breakpoints" :
|
|
BPS=pos.split(" ")[0]
|
|
|
|
|
|
else:
|
|
q=sp.split()
|
|
#print(sp)
|
|
#print(">"+q[0]+"<")
|
|
if (q[0].isdigit() ):
|
|
#print(">"+q[0]+"<")
|
|
#print(q[1])
|
|
val=int(q[0])
|
|
a[val-1]=val
|
|
b[val-1]=float(q[1])
|
|
c[val-1]=float(q[2])
|
|
lastpoint=q[0]
|
|
|
|
else:
|
|
sp="XXXX"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pv = sys.argv[2].strip()
|
|
|
|
print ("Upload: "+Model+","+SN+","+DF+","+SPL+","+TC+","+BPS+","+str(lastpoint)+" PV:"+pv)
|
|
|
|
#print(a)
|
|
#print(b)
|
|
#print(c)
|
|
|
|
caput(pv+"_NAME" ,Model.encode())
|
|
caput(pv+"_SN" ,SN.encode())
|
|
caput(pv+"_FORMAT" ,DF.encode())
|
|
caput(pv+"_SPLIM" ,SPL.encode())
|
|
caput(pv+"_COEF" ,TC.encode())
|
|
caput(pv+"_BPTS" ,BPS.encode())
|
|
|
|
caput(pv+"_NO" ,a)
|
|
caput(pv+"_UNITS" ,b)
|
|
caput(pv+"_TEMP" ,c)
|
|
caput(pv+"_NUM_ROWS" ,lastpoint.encode())
|
|
|
|
|
|
print ('Finished')
|
|
|
|
|
|
|