ADI study watch python SDK
Project description
Study Watch Python SDK
The adi-study-watch provides an object-oriented interface for interacting with ADI's VSM study watch platform.
Installation
pip install adi-study-watch
Description
A user application can use the SDK to receive complete packets of bytes over a physical interface (USB or BLE) and decode it. The functionality is organized into applications, some of which own sensors, some own system-level functionality (i.e. file system), and while others own algorithms. The hierarchy of objects within the SDK mirrors the applications present on the device. Each application has its own object within the SDK hierarchy, which is used to interact with that application. A brief guide on using the SDK and few examples have been added below.
Firmware Setup
Getting started with SDK
Import the adi-study-watch module into your application code
from adi_study_watch import SDK
Instantiate the SDK object by passing the com port number
sdk = SDK('COM28')
The application objects can be instantiated from the sdk object. In order to instantiate an application object, we'll have to pass a call-back function as an input argument which can be used to retrieve the data from the application object. Define a callback function as displayed below.
def adxl_cb(data):
print(data)
Once the call-back function is defined, you can instantiate the application object as shown below.
adxl_app = sdk.get_adxl_application()
adxl_app.set_callback(adxl_cb)
Each application object has various methods that can be called by referring to the application. An example of retrieving the sensor status is shown below. Almost all method in an application returns result in a dict.
packet = adxl_app.get_sensor_status() # returns dict
print(packet)
Basic Example:
import time
from datetime import datetime
from adi_study_watch import SDK
# callback function to receive adxl data
def callback_data(data):
sequence_number = data["payload"]["sequence_number"]
for stream_data in data["payload"]["stream_data"]:
dt_object = datetime.fromtimestamp(stream_data['timestamp'] / 1000) # convert timestamp from ms to sec.
print(f"seq :{sequence_number} timestamp: {dt_object} x,y,z :: ({stream_data['x']}, "
f"{stream_data['y']}, {stream_data['z']})")
if __name__ == "__main__":
sdk = SDK("COM4")
application = sdk.get_adxl_application()
application.set_callback(callback_data)
# quickstart adxl stream
application.start_sensor()
application.enable_csv_logging("adxl.csv") # logging adxl data to csv file
application.subscribe_stream()
time.sleep(10)
application.unsubscribe_stream()
application.disable_csv_logging()
application.stop_sensor()
Permission Issue in Ubuntu
1 - You can run your script with admin (sudo).
2 - If you don't want to run scripts as admin follows the steps below:
- add user to
tty
anddialout
group
sudo usermod -aG tty <user>
sudo usermod -aG dialout <user>
- create a file at
/etc/udev/rules.d/
with name10-adi-usb.rules
:
ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="0456", ATTRS{idProduct}=="2cfe", MODE="0666", GROUP="dialout"
- reboot
All streams packet structure : https://analogdevicesinc.github.io/study-watch-sdk/python/_rst/adi_study_watch.core.packets.html#module-adi_study_watch.core.packets.stream_data_packets
Documentation : https://analogdevicesinc.github.io/study-watch-sdk/python
Examples : https://github.com/analogdevicesinc/study-watch-sdk/tree/main/python/samples
License : https://github.com/analogdevicesinc/study-watch-sdk/blob/main/LICENSE
Changelog https://github.com/analogdevicesinc/study-watch-sdk/blob/main/python/CHANGELOG.md
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 adi_study_watch-5.22.1.tar.gz
.
File metadata
- Download URL: adi_study_watch-5.22.1.tar.gz
- Upload date:
- Size: 126.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4a48a76e1c17ba05a3e6a2bc6909060a06934d52cfb27896a501bf94d31f9cb |
|
MD5 | 6ca90ed7e86643704d2c84572edc07cc |
|
BLAKE2b-256 | 16ba312c00af13d64924fc15a5504f85902524deda6acc1288b285cfc6b97575 |
File details
Details for the file adi_study_watch-5.22.1-py3-none-any.whl
.
File metadata
- Download URL: adi_study_watch-5.22.1-py3-none-any.whl
- Upload date:
- Size: 233.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d9aa5ec16eebf76818df7b46fe762486cc1c0c2d89e9bd88eeec884b051ae04 |
|
MD5 | 28905e1eaa9b4a6574fc545a8740bffb |
|
BLAKE2b-256 | a5713dbcf3ec93e0c6bb45c69f390e774d862584692391c09d5650063cab569f |