Skip to content
Snippets Groups Projects
Commit 8063d25f authored by Carlo Alessandro Nicolau's avatar Carlo Alessandro Nicolau
Browse files

Some console improvements (TBC)

parent 4b729d48
No related branches found
No related tags found
No related merge requests found
......@@ -6,6 +6,9 @@ def linear_regression(x0, y0, x1, y1, x):
m = float((y1-y0) / (x1-x0))
return m * (x-x0) + y0
def quadratic(a, b, c, x):
y = a*x*x + b*x + c
return y
def channel2voltage_ADC(_channel):
"""Convert from the ADC channel to the ADC voltage"""
......@@ -35,16 +38,24 @@ def convert_chn2meas_DUL_BOARDTEMP(_chn):
def convert_chn2meas_TEMP2(_chn):
# from Rocco's "mapping" doc (vers. 15.02.2021):
# ~ 0.7V@30C
# ~ 3.2V@100C
# todo: remove
# # OLD:
# # from Rocco's "mapping" doc (vers. 15.02.2021):
# # ~ 0.7V@30C
# # ~ 3.2V@100C
# v = channel2voltage_ADC(_chn)
# v0 = 0.7; meas0 = 30.; v1 = 3.2; meas1 = 100.
# return linear_regression(v0, meas0, v1, meas1, v)
# new version with quadratic fit
# (Rocco's mail 9/12/2021)
a = -15.327
b = 65.478
c = -8.819
v = channel2voltage_ADC(_chn)
v0 = 0.7; meas0 = 30.; v1 = 3.2; meas1 = 100.
return linear_regression(v0, meas0, v1, meas1, v)
return quadratic(a,b,c,v)
def convert_chn2meas_TEMP1(_chn):
# from Rocco's "mapping" doc (vers. 15.02.2021):
# same as TEMP2
return convert_chn2meas_TEMP2(_chn)
......
......@@ -24,6 +24,9 @@ CLB_IPADDR = '172.21.1.221'
JSCRIPTFMT = './execute.sh BPSCmd {} [REQCODE] [RESPCODE] [RESPLEN] [REQPAYLOAD]'.format(CLB_IPADDR)
channel2current_MON_5V_I = analogvariables.convert_chn2meas_PWB_I
def ask_confirm():
answer = ""
while answer not in ["y", "n"]:
......@@ -36,9 +39,111 @@ def mydirtyexec(_cmd):
os.system(_cmd + ' > __tmp')
return open('__tmp', 'r').read()
def getconvertedvals(command, fields):
vals = list()
# the pork way (with great respect for porks)
if command.name == 'SENSOR_GET_SINGLE':
vn = fields[0]
converter = None
if vn == 'MON_DUL_BOARDTEMP':
converter = convert_chn2meas_DUL_BOARDTEMP
units = 'C'
elif vn == 'MON_TEMP2':
converter = convert_chn2meas_TEMP2
units = 'C'
elif vn == 'MON_TEMP1':
converter = convert_chn2meas_TEMP1
units = 'C'
elif vn == 'MON_VEOC_RTN_I':
converter = convert_chn2meas_VEOC_RTN_I
units = 'A'
elif vn == 'MON_VEOC_FWR_I':
converter = convert_chn2meas_VEOC_FWR_I
units = 'A'
elif vn == 'MON_HYDRO_I':
converter = convert_chn2meas_HYDRO_I
units = 'mA'
elif vn == 'MON_INPUT_V':
converter = convert_chn2meas_INPUT_V
units = 'V'
elif vn == 'MON_LBL_I':
converter = convert_chn2meas_LBL_I
units = 'mA'
elif vn == 'MON_GLRA_I':
converter = convert_chn2meas_GLRA_I
units = 'A'
elif vn == 'MON_GLRB_I':
converter = convert_chn2meas_GLRB_I
units = 'A'
elif vn == 'MON_PWB_I':
converter = convert_chn2meas_PWB_I
units = 'A'
elif vn == 'FLAG_DUL_ALARMPOS1':
pass
elif vn == 'FLAG_DUL_ALARMPOS2':
pass
elif vn == 'FLAG_DUL_ALARMNEG1':
pass
elif vn == 'FLAG_DUL_ALARMNEG2':
pass
elif vn == 'FLAG_HYDRO_PWR_FAULT':
pass
elif vn == 'FLAG_LBL_PWR_FAULT':
pass
elif vn == 'FLAG_GLRA_FAULT':
pass
elif vn == 'FLAG_GLRB_FAULT':
pass
elif vn == 'FLAG_POWERBOARD_FAULT':
pass
elif vn == 'FLAG_GLRA_GOOD':
pass
elif vn == 'FLAG_GLRB_GOOD':
pass
elif vn == 'FLAG_POWERBOARD_GOOD':
pass
else:
pass
if converter:
vals.append(['',''])
vals.append([converter(fields[1]), units]) # VALUE
vals.append([converter(fields[2]), units]) # OFFSET
vals.append([converter(fields[3]), units]) # MAXVALUE
vals.append([converter(fields[4]), units]) # MEANVALUE
else:
# to be verified
pass
elif command.name in ['SENSOR_VALUES_GETALL', 'SENSOR_AVERAGE_GETALL', 'SENSOR_OFFSETS_GETALL', 'SENSOR_MAXVALUES_GETALL']:
vals.append([convert_chn2meas_DUL_BOARDTEMP(fields[0]), '']) # FIELD 0 : MON_DUL_BOARDTEMP_MEAN
vals.append([convert_chn2meas_TEMP2(fields[1]), '']) # FIELD 1 : MON_TEMP2_MEAN
vals.append([convert_chn2meas_TEMP1(fields[2]), '']) # FIELD 2 : MON_TEMP1_MEAN
vals.append([convert_chn2meas_VEOC_RTN_I(fields[3]), '']) # FIELD 3 : MON_VEOC_RTN_I_MEAN
vals.append([convert_chn2meas_VEOC_FWR_I(fields[4]), '']) # FIELD 4 : MON_VEOC_FWR_I_MEAN
vals.append([convert_chn2meas_HYDRO_I(fields[5]), '']) # FIELD 5 : MON_HYDRO_I_MEAN
vals.append([convert_chn2meas_INPUT_V(fields[6]), '']) # FIELD 6 : MON_INPUT_V_MEAN
vals.append([convert_chn2meas_LBL_I(fields[7]), '']) # FIELD 7 : MON_LBL_I_MEAN
vals.append([convert_chn2meas_GLRA_I(fields[8]), '']) # FIELD 8 : MON_GLRA_I_MEAN
vals.append([convert_chn2meas_GLRB_I(fields[9]), '']) # FIELD 9 : MON_GLRB_I_MEAN
vals.append([convert_chn2meas_PWB_I(fields[10]), '']) # FIELD 10 : MON_PWB_I_MEAN
return vals
def getconvertedvals___OLD(command, fields):
vals = list()
# the pork way (with great respect for porks)
if command.name == 'SENSOR_GET_SINGLE':
vn = fields[0]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment