Skip to main content

Yepkit YKUSH Python API and command line tool

Project description

pykush

  __   __         _    _ _
  \ \ / /__ _ __ | | _(_) |_
   \ V / _ \ '_ \| |/ / | __|
    | |  __/ |_) |   <| | |_
    |_|\___| .__/|_|\_\_|\__|
           |_|

Yepkit YKUSH Python library and command line tool

Provides library and command line functionality for communicating with a YKUSH device over USB.

Thanks to the developers and maintainers of the following projects among others:

  • HIDAPI multi-platform library
  • Python hidapi wrapper module
  • Python hidapi-cffi wrapper module Any of the above python wrappers are currently supported.

Features

  • Easy to use
  • Written to support YKUSH, the Yepkit USB Switchable Hub
  • Open-source, please be our guest to collaborate
  • Current development version supports both Python 2 and 3
  • Works on Linux, Windows and Mac

Requirements

Installation

If you are in a hurry and just need a console application you can give our Pyinstaller bundled executable a try:

Download the executable corresponding to your platform and run it from a terminal window. Also remember to authorize execution on Linux or macOS systems:

$ chown u+x pykush
$ ./pykush -l

From source

Anonymous:

$ git clone https://github.com/Yepkit/pykush
$ cd pykush/
$ python setup.py install

Git:

$ git clone git@github.com:Yepkit/pykush
$ cd pykush/
$ python setup.py install

Usage

Basic command line usage

$ python pykush.py -h
usage: pykush.py [-h] [-s SERIAL]
                 (-l | -u [UP [UP ...]] | -d [DOWN [DOWN ...]] | -r READ | -w WRITE WRITE | -p)

Yepkit YKUSH command line tool.

optional arguments:
  -h, --help            show this help message and exit
  -s SERIAL, --serial SERIAL
                        specify the serial number string of the YKUSH to be
                        listed or managed
  -l, --list            list YKUSH devices
  -u [UP [UP ...]], --up [UP [UP ...]]
                        the downstream port numbers to power up, none means
                        all
  -d [DOWN [DOWN ...]], --down [DOWN [DOWN ...]]
                        the downstream port numbers to power down, none means
                        all
  -r READ, --read READ  the GPIO pin to read from
  -w WRITE WRITE, --write WRITE WRITE
                        the GPIO pin to write to
  -p, --persist         make the current running configuration persistent
                        across reboots (only supported on devices with
                        firmware v2.0 and above)

$ python pykush.py -l
listing YKUSH family devices
  found a YKUSH release 2 device with serial number YK20001
    system device path 0001:000a:00, vendor id 0x04d8, product id 0xf2f7
    the device is running a v1.2 firmware and has 3 downstream ports
    downstream running power states, port 1 to 3: UP, UP, UP

$ python pykush.py -d 1 2
managing YKUSH family devices
  found a YKUSH release 2 device with serial number YK20001
    system device path 0001:000a:00, vendor id 0x04d8, product id 0xf2f7
    the device is running a v1.2 firmware and has 3 downstream ports
    powering DOWN port 1... done
    powering DOWN port 2... done

Basic module programming usage

$ python
>>> import pykush
>>> yk = pykush.YKUSH()
>>> yk.set_allports_state_up()
True
>>> yk.get_downstream_port_count()
3
>>> yk.set_port_state(2, pykush.YKUSH_PORT_STATE_DOWN)
True
>>> yk.get_port_state(2)
0
>>> yk.get_port_state(2) == pykush.YKUSH_PORT_STATE_DOWN
True
>>>

Disclaimer

The module is already usable in the limited scope we tested but it is still in a alpha stage.

Contributing

Bug Reports

If you find a problem, please submit a bug report on issue tracker.

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

yepkit-pykush-0.3.5.tar.gz (10.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page