Proxy for reading bluesky hardware over ZMQ interface.
Project description
Bluesky Hardware Proxy
This is a proxy server to provide access to certain bluesky device methods over a zmq interface.
The interface is based directly on the zmq interface of bluesky-queueserver, so an identical client (with a different address) can be used.
For convenience, a version of zmq_single_request
with the default address of tcp://localhost:60620
is provided as bluesky_hwproxy.comms.zmq_single_request
.
Starting a server
start-hwproxy-server
is an entry point provided to start up an instance of hwproxy.
It accepts the same parameters for specifying the environment that contains device objects as start-re-manager
from bluesky-queueserver.
for example:
$ start-hwproxy-server --startup-script ./startup.py
$ start-hwproxy-server --startup-module ophyd.sim
$ start-hwproxy-server --startup-dir ./startup/
Note that at present, --startup-profile
is not connected, though will be in the near future.
Connecting via python
from bluesky_hwproxy.comms import zmq_single_request
devices = zmq_single_request("list")[0]["result"]
describe = zmq_single_request("describe", {"device":devices[-1]})[0]["result"]
Connecting via cli
We provide a hwproxy
command line program to allow interfacing with the hwproxy server
Commands to interact with the server itself:
$ hwproxy list # List available hardware as string keys, one per line
motor1
motor2
det
$ hwproxy reload # reload available devices
The following print JSON response to the terminal:
$ hwproxy read <device>
$ hwproxy describe <device>
$ hwproxy config read <device>
$ hwproxy config describe <device>
$ hwproxy hints <device>
Output is colorized when run from an interactive shell, plain text when e.g. piped.
Finally, we allow checking if a set position is valid:
$ hwproxy check <device> <value>
true
The result is simply true
or false
printed to the terminal.
<value>
can be any json encoded string (most of the time it is a simple float, however pseudopositioners and specialized hardware may use lists, etfc.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file bluesky-hwproxy-2022.8.0.tar.gz
.
File metadata
- Download URL: bluesky-hwproxy-2022.8.0.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.28.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ae541df7d7a2386afcc3642a44a73bddb2ab3c04ede211f4fb7ea2aea0ffe19 |
|
MD5 | f08866da4bd9638cde60e234c91c703f |
|
BLAKE2b-256 | 41694c48d432301e71bfe908420d59c7ef8ee77a26952c1e337c6e37f7305ee2 |
Provenance
File details
Details for the file bluesky_hwproxy-2022.8.0-py3-none-any.whl
.
File metadata
- Download URL: bluesky_hwproxy-2022.8.0-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.28.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4728a4a5d895d91e8d61e4b249dd16fd5111dd9b6f2b9e8b7094c5095fa070c |
|
MD5 | 87d5fddd439b9537dbda68a7c4298e28 |
|
BLAKE2b-256 | 41eaf461bc6aaa150260e3076592bf63431dccd27871c083e4dfbad2b8540c0c |