Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
B
bpd-software
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Model registry
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Carlo Alessandro Nicolau
bpd-software
Commits
8063d25f
Commit
8063d25f
authored
3 years ago
by
Carlo Alessandro Nicolau
Browse files
Options
Downloads
Patches
Plain Diff
Some console improvements (TBC)
parent
4b729d48
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
host/python/codegen/analogvariables.py
+18
-7
18 additions, 7 deletions
host/python/codegen/analogvariables.py
host/python/console/jsendcommand.py
+105
-0
105 additions, 0 deletions
host/python/console/jsendcommand.py
with
123 additions
and
7 deletions
host/python/codegen/analogvariables.py
+
18
−
7
View file @
8063d25f
...
...
@@ -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
)
...
...
This diff is collapsed.
Click to expand it.
host/python/console/jsendcommand.py
+
105
−
0
View file @
8063d25f
...
...
@@ -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
]
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment