Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Niclas Esser
mpikat
Commits
de111bcf
Commit
de111bcf
authored
Jan 27, 2020
by
Tobias Winchen
Browse files
Fix ioloop launch of scpi server
parent
7c4bfcf4
Changes
1
Hide whitespace changes
Inline
Side-by-side
mpikat/effelsberg/edd/edd_scpi_interface.py
View file @
de111bcf
...
@@ -3,13 +3,17 @@ import logging
...
@@ -3,13 +3,17 @@ import logging
from
mpikat.core.scpi
import
ScpiAsyncDeviceServer
,
scpi_request
,
raise_or_ok
,
launch_server
from
mpikat.core.scpi
import
ScpiAsyncDeviceServer
,
scpi_request
,
raise_or_ok
,
launch_server
import
mpikat.effelsberg.edd.pipeline.EDDPipeline
as
EDDPipeline
import
mpikat.effelsberg.edd.pipeline.EDDPipeline
as
EDDPipeline
from
mpikat.effelsberg.edd.edd_server_product_controller
import
EddServerProductController
from
mpikat.effelsberg.edd.edd_server_product_controller
import
EddServerProductController
import
coloredlogs
from
tornado.gen
import
Return
,
coroutine
,
sleep
import
tornado
import
signal
log
=
logging
.
getLogger
(
'mpikat.edd_scpi_interface'
)
log
=
logging
.
getLogger
(
'mpikat.edd_scpi_interface'
)
class
EddScpiInterface
(
ScpiAsyncDeviceServer
):
def
__init__
(
self
,
master_controller_ip
,
master_controller_port
,
interface
,
port
,
ioloop
=
None
):
class
EddScpiInterface
(
ScpiAsyncDeviceServer
):
def
__init__
(
self
,
interface
,
port
,
master_ip
,
master_port
,
ioloop
=
None
):
"""
"""
@brief A SCPI interface for a EddMasterController instance
@brief A SCPI interface for a EddMasterController instance
...
@@ -21,10 +25,16 @@ class EddScpiInterface(ScpiAsyncDeviceServer):
...
@@ -21,10 +25,16 @@ class EddScpiInterface(ScpiAsyncDeviceServer):
@note If no IOLoop instance is specified the current instance is used.
@note If no IOLoop instance is specified the current instance is used.
"""
"""
log
.
info
(
"Master ast {}:{}"
.
format
(
master_ip
,
master_port
))
super
(
EddScpiInterface
,
self
).
__init__
(
interface
,
port
,
ioloop
)
super
(
EddScpiInterface
,
self
).
__init__
(
interface
,
port
,
ioloop
)
self
.
__controller
=
EddServerProductController
(
"MASTER"
,
master_controller_ip
,
master_controller_port
)
self
.
address
=
(
master_ip
,
master_port
)
self
.
__controller
=
EddServerProductController
(
"MASTER"
,
master_ip
,
master_port
)
@
scpi_request
()
@
scpi_request
()
@
raise_or_ok
@
coroutine
def
request_edd_configure
(
self
,
req
):
def
request_edd_configure
(
self
,
req
):
"""
"""
@brief Configure the EDD backend
@brief Configure the EDD backend
...
@@ -69,6 +79,8 @@ class EddScpiInterface(ScpiAsyncDeviceServer):
...
@@ -69,6 +79,8 @@ class EddScpiInterface(ScpiAsyncDeviceServer):
yield
self
.
__controller
.
capture_stop
()
yield
self
.
__controller
.
capture_stop
()
@
scpi_request
(
str
)
@
scpi_request
(
str
)
@
raise_or_ok
@
coroutine
def
request_edd_set
(
self
,
req
,
message
):
def
request_edd_set
(
self
,
req
,
message
):
"""
"""
@brief Set an option for an edd backend component.
@brief Set an option for an edd backend component.
...
@@ -85,7 +97,6 @@ class EddScpiInterface(ScpiAsyncDeviceServer):
...
@@ -85,7 +97,6 @@ class EddScpiInterface(ScpiAsyncDeviceServer):
d
[
i
]
=
{}
d
[
i
]
=
{}
d
=
d
[
i
]
d
=
d
[
i
]
d
[
p
[
-
1
]]
=
o
d
[
p
[
-
1
]]
=
o
yield
self
.
__controller
.
set
(
g
)
yield
self
.
__controller
.
set
(
g
)
@
scpi_request
(
str
)
@
scpi_request
(
str
)
...
@@ -98,6 +109,7 @@ class EddScpiInterface(ScpiAsyncDeviceServer):
...
@@ -98,6 +109,7 @@ class EddScpiInterface(ScpiAsyncDeviceServer):
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
parser
=
EDDPipeline
.
getArgumentParser
()
parser
=
EDDPipeline
.
getArgumentParser
()
parser
.
add_argument
(
'--master-controller-ip'
,
dest
=
'master_ip'
,
type
=
str
,
default
=
"localhost"
,
parser
.
add_argument
(
'--master-controller-ip'
,
dest
=
'master_ip'
,
type
=
str
,
default
=
"localhost"
,
help
=
'The ip for the master controller'
)
help
=
'The ip for the master controller'
)
...
@@ -105,6 +117,30 @@ if __name__ == "__main__":
...
@@ -105,6 +117,30 @@ if __name__ == "__main__":
help
=
'The port number for the master controller'
)
help
=
'The port number for the master controller'
)
args
=
parser
.
parse_args
()
args
=
parser
.
parse_args
()
server
=
EddScpiInterface
(
args
.
master_ip
,
args
.
master_port
,
args
.
host
,
args
.
port
)
logging
.
getLogger
().
addHandler
(
logging
.
NullHandler
())
launch_server
(
server
)
log
=
logging
.
getLogger
(
'mpikat'
)
log
.
setLevel
(
args
.
log_level
.
upper
())
coloredlogs
.
install
(
fmt
=
(
"[ %(levelname)s - %(asctime)s - %(name)s "
"- %(filename)s:%(lineno)s] %(message)s"
),
level
=
args
.
log_level
.
upper
(),
logger
=
log
)
ioloop
=
tornado
.
ioloop
.
IOLoop
.
current
()
log
.
info
(
"Starting Pipeline instance"
)
server
=
EddScpiInterface
(
args
.
host
,
args
.
port
,
args
.
master_ip
,
args
.
master_port
)
log
.
info
(
"Created Pipeline instance"
)
signal
.
signal
(
signal
.
SIGINT
,
lambda
sig
,
frame
:
ioloop
.
add_callback_from_signal
(
EDDPipeline
.
on_shutdown
,
ioloop
,
server
))
def
start_and_display
():
log
.
info
(
"Starting Pipeline server"
)
server
.
start
()
log
.
debug
(
"Started Pipeline server"
)
log
.
info
(
"Listening at {0}, Ctrl-C to terminate server"
.
format
(
server
.
bind_address
))
ioloop
.
add_callback
(
start_and_display
)
ioloop
.
start
()
Write
Preview
Supports
Markdown
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!
Cancel
Please
register
or
sign in
to comment