Catalog PyPI
Back to packageRELEASE DETAILS

5.22.1

PyPI

adi-study-watch

ADI study watch python SDK

Published6 Aug 2024
Direct dependencies4
Transitive dependenciesNot calculated

README

Version 5.22.1 documentation

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

https://github.com/analogdevicesinc/study-watch-sdk/blob/main/firmware/Study_Watch_Firmware_Upgrade.pdf

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 and dialout group
sudo usermod -aG tty <user>
sudo usermod -aG dialout <user>
  • create a file at /etc/udev/rules.d/ with name 10-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

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 4

Native requirements
4 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
pyserial
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.6",
  "evaluation": "NOT_EVALUATED"
}
pyserial==3.5runtime
tqdm
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.6",
  "evaluation": "NOT_EVALUATED"
}
tqdm==4.61.0runtime
libusb1
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.6",
  "evaluation": "NOT_EVALUATED"
}
libusb1==3.0.0runtime
bleak
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.6",
  "evaluation": "NOT_EVALUATED"
}
bleak==0.20.2runtime

Distribution files

2 collected
adi_study_watch-5.22.1-py3-none-any.whl

bdist_wheel · 227.56 KB · Python py3

Source file
adi_study_watch-5.22.1.tar.gz

sdist · 123.73 KB · Python source

Source file

Repository

PENDING
analogdevicesinc/study-watch-sdk

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 19:32 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:bf4b5d5e760ea6ee19d9b37c20dafbd313c895bfc1fdf1cc5a7465f92d9fe61a

Other collected versions

View all collected versions →