Skip to main content

Arduino simpleRPC API client library and CLI.

Project description

https://img.shields.io/github/last-commit/jfjlaros/arduino-simple-rpc.svg https://github.com/jfjlaros/arduino-simple-rpc/actions/workflows/python-package.yml/badge.svg https://readthedocs.org/projects/simplerpc/badge/?version=latest https://img.shields.io/github/release-date/jfjlaros/arduino-simple-rpc.svg https://img.shields.io/github/release/jfjlaros/arduino-simple-rpc.svg https://img.shields.io/pypi/v/arduino-simple-rpc.svg https://img.shields.io/github/languages/code-size/jfjlaros/arduino-simple-rpc.svg https://img.shields.io/github/languages/count/jfjlaros/arduino-simple-rpc.svg https://img.shields.io/github/languages/top/jfjlaros/arduino-simple-rpc.svg https://img.shields.io/github/license/jfjlaros/arduino-simple-rpc.svg

This library provides a simple way to interface to Arduino functions exported with the simpleRPC protocol. The exported method definitions are communicated to the host, which is then able to generate an API interface using this library.

Features:

  • User friendly API library.

  • Command line interface (CLI) for method discovery and testing.

  • Function and parameter names are defined on the Arduino.

  • API documentation is defined on the Arduino.

  • Support for disconnecting and reconnecting.

  • Support for serial and ethernet devices.

Please see ReadTheDocs for the latest documentation.

Quick start

Export any function e.g., digitalRead() and digitalWrite() on the Arduino, these functions will show up as member functions of the Interface class instance.

First, we make an Interface class instance and tell it to connect to the serial device /dev/ttyACM0.

>>> from simple_rpc import Interface
>>>
>>> interface = Interface('/dev/ttyACM0')

We can use the built-in help() function to see the API documentation of any exported method.

>>> help(interface.digital_read)
Help on method digital_read:

digital_read(pin) method of simple_rpc.simple_rpc.Interface instance
    Read digital pin.

    :arg int pin: Pin number.

    :returns int: Pin value.

All exposed methods can be called like any other class method.

>>> interface.digital_read(8)         # Read from pin 8.
0
>>> interface.digital_write(13, True) # Turn LED on.

Further reading

For more information about the host library and other interfaces, please see the Usage and Library sections.

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

arduino-simple-rpc-2.4.2.tar.gz (8.8 kB view details)

Uploaded Source

File details

Details for the file arduino-simple-rpc-2.4.2.tar.gz.

File metadata

  • Download URL: arduino-simple-rpc-2.4.2.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.4.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.7

File hashes

Hashes for arduino-simple-rpc-2.4.2.tar.gz
Algorithm Hash digest
SHA256 e78632507fd8b15cf33ed0f1be7ddaf720d6dfeccff20a359b022524c05a5c55
MD5 b810b91ac6d2d073ecc42b38fa3be575
BLAKE2b-256 a99feca4be918dcf4cba2354649d81f82067b7e97aa6b1ca628904bee4e2158b

See more details on using hashes here.

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