Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ID11
id11
Commits
b93c9278
Commit
b93c9278
authored
Feb 05, 2020
by
Emmanuel Papillon
Browse files
added CRL transfocator
parent
d33f6497
Changes
2
Hide whitespace changes
Inline
Side-by-side
id11/controllers/airpad.py
View file @
b93c9278
...
@@ -3,6 +3,7 @@ from gevent import sleep
...
@@ -3,6 +3,7 @@ from gevent import sleep
from
bliss.common.hook
import
MotionHook
from
bliss.common.hook
import
MotionHook
from
bliss.common.logtools
import
log_debug
from
bliss.common.logtools
import
log_debug
class
AirpadWagoPulseHook
(
MotionHook
):
class
AirpadWagoPulseHook
(
MotionHook
):
def
__init__
(
self
,
name
,
config
):
def
__init__
(
self
,
name
,
config
):
self
.
config
=
config
self
.
config
=
config
...
...
id11/controllers/crltransfocator.py
0 → 100644
View file @
b93c9278
import
gevent
from
bliss.controllers.transfocator
import
Transfocator
from
bliss.common.logtools
import
log_debug
,
log_error
class
CRLTransfocator
(
Transfocator
):
def
pos_read
(
self
):
down_stat
=
self
.
wago
.
get
(
"crl_stat_down"
)
up_stat
=
self
.
wago
.
get
(
"crl_stat_up"
)
log_debug
(
self
,
f
"pos_read: down=
{
down_stat
}
up=
{
up_stat
}
"
)
value
=
0
for
idx
in
range
(
self
.
nb_lens
):
if
down_stat
[
idx
]:
if
up_stat
[
idx
]:
# raise RuntimeError(f"CRL [{idx}] both IN and OUT !!")
log_error
(
self
,
f
"CRL [
{
idx
}
] both IN and OUT !!"
)
value
|=
1
<<
idx
elif
not
up_stat
[
idx
]:
# raise RuntimeError(f"CRL [{idx}] neither IN or OUT !!")
log_error
(
self
,
f
"CRL [
{
idx
}
] neither IN or OUT !!"
)
return
value
def
pos_write
(
self
,
value
):
log_debug
(
self
,
f
"pos_write
{
value
}
"
)
down_stat
=
self
.
wago
.
get
(
"crl_stat_down"
)
up_idx
=
list
()
for
idx
in
range
(
self
.
nb_lens
):
if
down_stat
[
idx
]
and
not
value
&
(
1
<<
idx
):
up_idx
.
append
(
idx
)
if
len
(
up_idx
):
self
.
__pulse
(
"crl_cmd_up"
,
up_idx
)
up_stat
=
self
.
wago
.
get
(
"crl_stat_up"
)
down_idx
=
list
()
for
idx
in
range
(
len
(
up_stat
)):
if
up_stat
[
idx
]
and
value
&
(
1
<<
idx
):
down_idx
.
append
(
idx
)
if
len
(
down_idx
):
self
.
__pulse
(
"crl_cmd_down"
,
down_idx
)
def
__pulse
(
self
,
name
,
indexes
):
log_debug
(
self
,
f
"pulse index
{
indexes
}
on
{
name
}
"
)
cmds
=
[
0
]
*
self
.
nb_lens
for
idx
in
indexes
:
cmds
[
idx
]
=
1
cmds
.
reverse
()
self
.
wago
.
set
(
name
,
*
cmds
)
gevent
.
sleep
(
0.5
)
cmds
=
[
0
]
*
self
.
nb_lens
self
.
wago
.
set
(
name
,
*
cmds
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment