Skip to main content

Python library for configuring PD Buddy Sink devices

Project description

Python library for working with the PD Buddy Sink Serial Console Configuration Interface

Features

  • Provides a Pythonic interface to the PD Buddy Sink shell commands
  • Configuration is represented as a SinkConfig object
  • SinkConfig objects can be manipulated locally and written to the device with one method call
  • Allows control of whether or not the output is enabled
  • Provides a Pythonic interface for reading advertised PDOs
  • Provides functions for testing if the power supply follows the Power Rules
  • Includes a script for testing if a PD Buddy Sink is correctly functioning

Examples

Open the first PD Buddy Sink device and read its configuration

>>> import pdbuddy
>>> pdbs = pdbuddy.Sink(list(pdbuddy.Sink.get_devices())[0])
>>> pdbs.get_cfg()
SinkConfig(status=<SinkStatus.VALID: 2>, flags=<SinkFlags.NONE: 0>, v=5000, vmin=None, vmax=None, i=3000, idim=<SinkDimension.CURRENT: 1>)
>>> print(pdbs.get_cfg())
status: valid
flags: (none)
v: 5.000 V
i: 3.00 A

Locally manipulate a SinkConfig object

>>> cfg = pdbs.get_cfg()
>>> cfg = cfg._replace(v=20000, i=2250)
>>> cfg = cfg._replace(flags=cfg.flags | pdbuddy.SinkFlags.GIVEBACK)
>>> cfg
SinkConfig(status=<SinkStatus.VALID: 2>, flags=<SinkFlags.GIVEBACK: 1>, v=20000, vmin=None, vmax=None, i=2250, idim=<SinkDimension.CURRENT: 1>)

Write the SinkConfig object to flash

>>> pdbs.set_tmpcfg(cfg)
>>> pdbs.write()
>>> pdbs.get_cfg()
SinkConfig(status=<SinkStatus.VALID: 2>, flags=<SinkFlags.GIVEBACK: 1>, v=20000, vmin=None, vmax=None, i=2250, idim=<SinkDimension.CURRENT: 1>)

Requirements

  • Python 2.7, >= 3.3
  • pySerial >= 3.0
  • aenum >= 2.0 (if using Python < 3.6)

Testing

To run the unit tests, run:

$ python setup.py test

This will test the Sink class only if a PD Buddy Sink is plugged in and in setup mode, so make sure that’s the case if you’re testing any changes to the Sink class. Also, make sure the Status LED is blinking quickly when the tests are run, since that’s the only real way to test the identify command. Be aware that the Sink’s configuration will get clobbered by the tests.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pd-buddy-python-0.5.1.tar.gz (11.2 kB view hashes)

Uploaded source

Built Distribution

pd_buddy_python-0.5.1-py2.py3-none-any.whl (12.7 kB view hashes)

Uploaded py2 py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page