DiamondLightSource / DiamondLightSource/dodal

Implement ophyd-async Bridge Client for Generic TCP Instrument Servers

Open
#2,114 0 comments 0 reactions 1 assignee Claimed by @Relm-Arrowny View on GitHub
i10 SMG
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.