Metadata-Version: 2.4
Name: feather-xrol
Version: 0.1.0
Summary: Bluesky and Ophyd integration for Attocube interferometer and Hexapod
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: bluesky
Requires-Dist: ophyd
Requires-Dist: pyepics
Requires-Dist: tiled
Requires-Dist: python-dotenv
Dynamic: license-file

# Project Feather 
contact: awojdyla@lbl.gov
![Starlings in flight](/assets/starlings_flach.jpg)

Project Feather aims at expending the use of [bluesky data collection framework](https://blueskyproject.io/bluesky/main/index.html) beyond synchrotron beamlines

We want to use Tiled to collect data from optical experiments, or to store metrology data so that it can easily be accessed.

Eventually, you might even be able to start a container that has everything you need.

## feather-xrol Package

Integration for Attocube interferometer and Hexapod.

### Installation

#### From Source (Development)
To install the package locally in editable mode for development:
```bash
pip install -e .
```

### Usage

The package provides Ophyd device definitions for the ALSHexapod and Attocube interferometer.

#### Hexapod Example
See `examples/hexapod_scan.py` for a complete example of running a scan.
```python
from feather_xrol.hexapod import ALSHexapod
from bluesky import RunEngine
from bluesky.plans import scan

hexapod = ALSHexapod('ALS:XROL-HEX0', name='hexapod')
RE = RunEngine({})
RE(scan([hexapod.x], hexapod.x, 0.0, 5.0, 10))
```

#### Attocube Example
See `examples/test_attocube.py` for Attocube axis integration.
```python
from feather_xrol.attocube import AttocubeAxis
from feather_xrol.ids_api.SEN import Device as AttocubeIDS3010

ids3010 = AttocubeIDS3010("192.168.10.81")
ids3010.connect()
atto = AttocubeAxis("atto_3", hardware_interface=ids3010, axis=2)
atto.trigger()
print(atto.read())
ids3010.close()
```
