Metadata-Version: 2.1
Name: AMTIUSBDeviceWrapper
Version: 1.1.2
Summary: Wrapper for AMTI USB Device library. Currently only supported on Windows Systems for 32 and 64 bit versions of the SDK. Use 64 bit dll if running 64 bit python interpreter and vice versa with 32 bit dll.
Project-URL: Homepage, https://github.com/Lenz-Lab/AMTIUSBDeviceWrapper
Author-email: Jordy Larrea Rodriguez <Jordy.larrearodriguez@gmail.com>
License-File: LICENSE
Classifier: License :: CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.7
Description-Content-Type: text/markdown

# AMTIUSBDeviceWrapper

## Description

A digestable wrapper API for communication with AMTI GEN 5 and Optima USB Devices in python that simplifies AMTI's API.

## Getting Started

### Dependencies
* Windows 7 64/32-bit and later
* Python V 3.9.13 and later
* AMTI USB Device SDK V 1.3

### Installation
* Place AMTI DLL where convenient
* Recommended install
```
python3 -m pip install amtiusbdevicewrapper
```

### Execution

Ignore build step if installing from pypi.
* Build and install the package
```
git clone https://github.com/Lenz-Lab/AMTIUSBDeviceWrapper
py -m build # Windows
# or...
python -m build # Unix

# Install the package
pip install C:/some-dir/AMTIUSBDeviceWrapper/amtiusbdevicewrapper-<>.whl
```
* Simple Initialization and Data Acquisition at 500 Hz Example
```python
# Import and load library
from AMTIUSBDeviceWrapper import AMTIUSBDevice as amti
amti.AMTIUSBDevice.InitializeLibrary(dll_path=<path_to_dll>)

# Initialize and setup amti device for data acquisition
amti_device = amti.AMTIUSBDevice("gen5")
amti_device.init() # Default settings
amti_device.broadcastAcquisitionRate(rate=500)

amti_device.broadcastStart()
sleep(0.01) # wait 10 ms for signal conditioners to acquire data

# Get data matrix
data, sample_num = amti_device.getData(opt=1) # opt 1->caller allocates memory

amti_device.broadcastStop()
```

## Help

Ensure that you are using a version of python compatible with this package. IO specific exceptions are likely a result of an incorrect path.

## Authors

Jordy Larrea Rodriguez ([CasuallyAlive](https://github.com/CasuallyAlive))

## Version History
* 1.1
    * Supports all basic functionality for interfacing Gen5 signal conditioners
    * Passes all tests
* 1.0
    * Data acquisition is functional
    * Broadcast functions nonspecific to AMTI parameter configuration are functional
    * MISC bug fixes
* 0.2
    * C++ API handle is closed without issues
    * initialization functions pass tests
    * Various bug fixes and optimizations
    * See [commit change]() or See [release history]()
* 0.1
    * Initial Release

## License

This project is licensed under the Creative Commons Zero License.

## Acknowledgments

* [AMTI](https://www.amti.biz/)

## References

* The AMTI USB Device Software Development Kit Reference Manual, v1.3.0, AMTI Force and Motion, March 2017. Accessed: April 09, 2023. Available: [AMTI](https://www.amti.biz/)
