Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
E
eehg-master
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
cs
ds
eehg-master
Commits
296cf02b
Commit
296cf02b
authored
1 month ago
by
Mauro Trovo
Browse files
Options
Downloads
Patches
Plain Diff
read from field
parent
e3b080dc
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
src/EEHGMaster.py
+268
-1
268 additions, 1 deletion
src/EEHGMaster.py
with
268 additions
and
1 deletion
src/EEHGMaster.py
100644 → 100755
+
268
−
1
View file @
296cf02b
...
...
@@ -640,6 +640,90 @@ class EEHGMaster(Device):
Device
.
init_device
(
self
)
# PROTECTED REGION ID(EEHGMaster.init_device) ENABLED START #
self
.
_fel_mode
=
''
self
.
seed_dev_atts_toread
=
[
'
State
'
,
'
wavelength
'
,
'
bandwidth
'
,
'
energy
'
,
'
energy_max
'
,
'
wavelength2
'
,
'
bandwidth2
'
,
'
energy2
'
,
'
energy2_max
'
]
# definisco delle variabili di servizio per i limiti sup. dell'en. seed
self
.
nrg_s1_range
=
50.0
self
.
nrg_s2_range
=
20.0
# inizializzo i devices:
# SeedCcd1Dev
# - Device da cui leggere HorSigma che diventa waist_s1
# SeedCcd2Dev
# - Device da cui leggere HorSigma che diventa waist_s2
# self.xx_device = None #prototipoSeedCcd1Dev
# if self.XxDev:
# try:
# self.xx_device = tango.DeviceProxy(self.XxDevDev)
# except Exception as e:
# self.error_stream("Failed to connect to remote device: {}".format(e))
# self.set_state(tango.DevState.FAULT)
# self.set_status('failed to connect to remote device')
self
.
masterfel1_device
=
None
if
self
.
MasterFel1Dev
:
try
:
self
.
masterfel1_device
=
tango
.
DeviceProxy
(
self
.
MasterFel1Dev
)
except
Exception
as
e
:
self
.
error_stream
(
"
Failed to connect to remote device: {}
"
.
format
(
e
))
self
.
set_state
(
tango
.
DevState
.
FAULT
)
self
.
set_status
(
'
failed to connect to remote device
'
)
self
.
sclmagnet_device
=
None
if
self
.
SclMagnetDev
:
try
:
self
.
xx_device
=
tango
.
DeviceProxy
(
self
.
SclMagnetDev
)
except
Exception
as
e
:
self
.
error_stream
(
"
Failed to connect to remote device: {}
"
.
format
(
e
))
self
.
set_state
(
tango
.
DevState
.
FAULT
)
self
.
set_status
(
'
failed to connect to remote device
'
)
self
.
delayline_device
=
None
if
self
.
DelayLineDev
:
try
:
self
.
delayline_device
=
tango
.
DeviceProxy
(
self
.
DelayLineDev
)
except
Exception
as
e
:
self
.
error_stream
(
"
Failed to connect to remote device: {}
"
.
format
(
e
))
self
.
set_state
(
tango
.
DevState
.
FAULT
)
self
.
set_status
(
'
failed to connect to remote device
'
)
self
.
dispmagnet_device
=
None
if
self
.
DispersiveMagDev
:
try
:
self
.
dispmagnet_device
=
tango
.
DeviceProxy
(
self
.
DispersiveMagDev
)
except
Exception
as
e
:
self
.
error_stream
(
"
Failed to connect to remote device: {}
"
.
format
(
e
))
self
.
set_state
(
tango
.
DevState
.
FAULT
)
self
.
set_status
(
'
failed to connect to remote device
'
)
self
.
seedmaster_device
=
None
#prototipo
if
self
.
SeedMasterDev
:
try
:
self
.
seedmaster_device
=
tango
.
DeviceProxy
(
self
.
SeedMasterDev
)
except
Exception
as
e
:
self
.
error_stream
(
"
Failed to connect to remote device: {}
"
.
format
(
e
))
self
.
set_state
(
tango
.
DevState
.
FAULT
)
self
.
set_status
(
'
failed to connect to remote device
'
)
self
.
seedccd1_device
=
None
if
self
.
SeedCcd1Dev
:
try
:
self
.
seedccd1_device
=
tango
.
DeviceProxy
(
self
.
SeedCcd1Dev
)
except
Exception
as
e
:
self
.
error_stream
(
"
Failed to connect to remote device: {}
"
.
format
(
e
))
self
.
set_state
(
tango
.
DevState
.
FAULT
)
self
.
set_status
(
'
failed to connect to remote device
'
)
self
.
seedccd2_device
=
None
if
self
.
SeedCcd2Dev
:
try
:
self
.
seedccd2_device
=
tango
.
DeviceProxy
(
self
.
SeedCcd2Dev
)
except
Exception
as
e
:
self
.
error_stream
(
"
Failed to connect to remote device: {}
"
.
format
(
e
))
self
.
set_state
(
tango
.
DevState
.
FAULT
)
self
.
set_status
(
'
failed to connect to remote device
'
)
# PROTECTED REGION END # // EEHGMaster.init_device
...
...
@@ -1416,8 +1500,191 @@ class EEHGMaster(Device):
"""
reads from field the attribute `current` values
:return:Non
e
:return:Non
"""
# leggo il primo attributo Lambda fel
if
self
.
masterfel1_device
:
try
:
lambdaf
=
self
.
masterfel1_device
.
read_attribute
(
"
LambdaFEL
"
).
value
except
tango
.
DevFailed
:
lambdaf
=
13.3
# self.error_stream('')
self
.
error_stream
(
'
failed to read lambda FEL
'
)
self
.
set_state
(
tango
.
DevState
.
ALARM
)
self
.
set_status
(
'
failed to read lambda FEL
'
)
self
.
lambda_fel_curr
=
lambdaf
else
:
self
.
set_state
(
tango
.
DevState
.
ALARM
)
self
.
set_status
(
'
device not initialized
'
)
# leggo il secondo attributo energy
if
self
.
sclmagnet_device
:
try
:
valore
=
self
.
sclmagnet_device
.
read_attribute
(
"
MagnetEnergy
"
).
value
except
tango
.
DevFailed
:
valore
=
1.2
# self.error_stream('')
self
.
error_stream
(
'
failed to read beam energy
'
)
self
.
set_state
(
tango
.
DevState
.
ALARM
)
self
.
set_status
(
'
failed to read beam energy
'
)
self
.
e_nrg_fel
=
valore
else
:
self
.
set_state
(
tango
.
DevState
.
ALARM
)
self
.
set_status
(
'
device not initialized
'
)
# leggo il terzo attributo r561
if
self
.
delayline_device
:
try
:
valore
=
self
.
delayline_device
.
read_attribute
(
"
R56
"
).
value
except
tango
.
DevFailed
:
valore
=
100.0
# self.error_stream('')
self
.
error_stream
(
'
failed to read R561
'
)
self
.
set_state
(
tango
.
DevState
.
ALARM
)
self
.
set_status
(
'
failed to read R561
'
)
self
.
r561_curr
=
valore
else
:
self
.
set_state
(
tango
.
DevState
.
ALARM
)
self
.
set_status
(
'
delay line device not initialized
'
)
# leggo il terzo attributo r562
if
self
.
dispmagnet_device
:
try
:
valore
=
self
.
dispmagnet_device
.
read_attribute
(
"
R56
"
).
value
except
tango
.
DevFailed
:
valore
=
2.0
# self.error_stream('')
self
.
error_stream
(
'
failed to read R562
'
)
self
.
set_state
(
tango
.
DevState
.
ALARM
)
self
.
set_status
(
'
failed to read R562
'
)
self
.
r562_curr
=
valore
else
:
self
.
set_state
(
tango
.
DevState
.
ALARM
)
self
.
set_status
(
'
disp. mag. device not initialized
'
)
# leggo gli attributi del seed
if
self
.
seedmaster_device
:
try
:
attrs
=
self
.
seedmaster_device
.
read_attributes
(
self
.
seed_dev_atts_toread
)
# self.set_state(attrs[0].value)
if
attrs
[
1
].
quality
!=
tango
.
AttrQuality
.
ATTR_INVALID
:
self
.
lambda_s1_curr
=
attrs
[
1
].
value
else
:
self
.
lambda_s1_curr
=
260.0
if
attrs
[
2
].
quality
!=
tango
.
AttrQuality
.
ATTR_INVALID
:
self
.
dlambda_s1
=
attrs
[
2
].
value
else
:
self
.
dlambda_s1
=
1.0
if
attrs
[
3
].
quality
!=
tango
.
AttrQuality
.
ATTR_INVALID
:
self
.
nrg_s1_curr
=
attrs
[
3
].
value
else
:
self
.
nrg_s1_curr
=
5.0
if
attrs
[
4
].
quality
!=
tango
.
AttrQuality
.
ATTR_INVALID
:
self
.
nrg_s1_range
=
attrs
[
4
].
value
# #leggo:
# cfg = self.idev.get_attribute_config('Gap')
# self.min_mech_gap = float(cfg.min_value)
# self.max_mech_gap = float(cfg.max_value)
# #scrivo:
# self.set_attribute_config('nrg_s1'max_value, str(self.nrg_s1_range))
self
.
nrg_s1
.
max_value
=
self
.
nrg_s1_range
else
:
self
.
nrg_s1_range
=
50.0
if
attrs
[
5
].
quality
!=
tango
.
AttrQuality
.
ATTR_INVALID
:
self
.
lambda_s2_curr
=
attrs
[
5
].
value
else
:
self
.
lambda_s2_curr
=
255.0
if
attrs
[
6
].
quality
!=
tango
.
AttrQuality
.
ATTR_INVALID
:
self
.
dlambda_s2
=
attrs
[
6
].
value
else
:
self
.
dlambda_s2
=
1.0
if
attrs
[
7
].
quality
!=
tango
.
AttrQuality
.
ATTR_INVALID
:
self
.
nrg_s2_curr
=
attrs
[
7
].
value
else
:
self
.
nrg_s2_curr
=
10.0
if
attrs
[
8
].
quality
!=
tango
.
AttrQuality
.
ATTR_INVALID
:
self
.
nrg_s2_range
=
attrs
[
8
].
value
else
:
self
.
nrg_s2_range
=
50.0
except
tango
.
DevFailed
:
self
.
set_state
(
tango
.
DevState
.
ALARM
)
self
.
error_stream
(
'
seed device failed
'
)
self
.
set_status
(
'
seed device failed
'
)
except
ValueError
:
self
.
lambda_s1_curr
=
260.0
self
.
dlambda_s1
=
1.0
self
.
nrg_s1_curr
=
5.0
self
.
lambda_s2_curr
=
255.0
self
.
dlambda_s2
=
1.0
self
.
nrg_s2_curr
=
10.0
self
.
set_state
(
tango
.
DevState
.
ALARM
)
self
.
error_stream
(
'
reading of seed device failed
'
)
self
.
set_status
(
'
reading of seed device failed
'
)
else
:
self
.
set_state
(
tango
.
DevState
.
ALARM
)
self
.
set_status
(
'
seed device not initialized
'
)
# leggo l'attributo waist s1
if
self
.
seedccd1_device
:
try
:
valore
=
self
.
seedccd1_device
.
read_attribute
(
"
HorSigma
"
).
value
except
tango
.
DevFailed
:
valore
=
0.3
# self.error_stream('')
self
.
error_stream
(
'
failed to read waist 1
'
)
self
.
set_state
(
tango
.
DevState
.
ALARM
)
self
.
set_status
(
'
failed to read waist 1
'
)
self
.
waist_s1
=
valore
else
:
self
.
set_state
(
tango
.
DevState
.
ALARM
)
self
.
set_status
(
'
disp. mag. device not initialized
'
)
# leggo l'attributo waist s2
if
self
.
seedccd2_device
:
try
:
valore
=
self
.
seedccd2_device
.
read_attribute
(
"
HorSigma
"
).
value
except
tango
.
DevFailed
:
valore
=
0.2
# self.error_stream('')
self
.
error_stream
(
'
failed to read waist 1
'
)
self
.
set_state
(
tango
.
DevState
.
ALARM
)
self
.
set_status
(
'
failed to read waist 1
'
)
self
.
waist_s2
=
valore
else
:
self
.
set_state
(
tango
.
DevState
.
ALARM
)
self
.
set_status
(
'
disp. mag. device not initialized
'
)
pass
# PROTECTED REGION END # // EEHGMaster.ReadFromField
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
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