DiamondLightSource / DiamondLightSource/dodal
Implement ophyd-async Bridge Client for Generic TCP Instrument Servers
- Dominant language
- Python
- Stars
- 5
- Forks
- 13
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 10
Description
### Goals
Acceptance criteria:
- [ ] Create a TCPBridgeClient that implements the ophyd_async.core.Device protocol.
- [ ] The client can connect to any server inheriting from AbstractInstrumentServer.
- [ ] Users can perform standard Bluesky operations
- [ ] Data types are automatically handled via the server's Tab-Separated Protocol responses.
- [ ] Connection status is monitored via the ophyd-async connection logic (Connected/Disconnected states).
### Tasks
base on the goals, deduce the tasks required. check them off once they're done
- [ ] Create Signal Mapping: Map specific TCP commands (e.g., getData, setRefV) to (soft)SignalR objects within ophyd-async.
- [ ] Add Device.connect(): Implement the asynchronous connection logic required by the ophyd-async controller.
- [ ] Unit Tests: Create a mock TCP server to verify that the client correctly parses data into the ophyd structure.
### Related Resources
[Abstract_instrument_servers](https://github.com/DiamondLightSource/sm-bluesky/blob/main/src/sm_bluesky/common/server/abstract_instrument_server.py)
Contributor guide
Assessment
This issue has not been assessed yet.