Completed documentation for backends

This commit is contained in:
Fabio Manganiello 2018-06-26 00:36:01 +02:00
parent 8a0ca64e4d
commit 7398107570
13 changed files with 111 additions and 6 deletions

View file

@ -22,4 +22,9 @@ Backends
platypush/backend/redis.rst platypush/backend/redis.rst
platypush/backend/scard.rst platypush/backend/scard.rst
platypush/backend/sensor.rst platypush/backend/sensor.rst
platypush/backend/sensor.ir.zeroborg.rst
platypush/backend/sensor.leap.rst
platypush/backend/sensor.mcp3008.rst
platypush/backend/sensor.serial.rst
platypush/backend/weather.forecast.rst

View file

@ -0,0 +1,6 @@
``platypush.backend.sensor.ir.zeroborg``
========================================
.. automodule:: platypush.backend.sensor.ir.zeroborg
:members:

View file

@ -0,0 +1,7 @@
``platypush.backend.sensor.leap``
=================================
.. automodule:: platypush.backend.sensor.leap
:members:

View file

@ -0,0 +1,8 @@
``platypush.backend.sensor.mcp3008``
====================================
.. automodule:: platypush.backend.sensor.mcp3008
:members:

View file

@ -4,4 +4,3 @@
.. automodule:: platypush.backend.sensor .. automodule:: platypush.backend.sensor
:members: :members:

View file

@ -0,0 +1,6 @@
``platypush.backend.sensor.serial``
===================================
.. automodule:: platypush.backend.sensor.serial
:members:

View file

@ -0,0 +1,6 @@
``platypush.backend.weather.forecast``
======================================
.. automodule:: platypush.backend.weather.forecast
:members:

View file

@ -7,6 +7,20 @@ from platypush.message.event.sensor.ir import IrKeyUpEvent, IrKeyDownEvent
class SensorIrZeroborgBackend(Backend): class SensorIrZeroborgBackend(Backend):
"""
This backend will read for events on the infrared sensor of a ZeroBorg
(https://www.piborg.org/motor-control-1135/zeroborg) circuitry for
Raspberry Pi. You can see the codes associated to an IR event from any
remote by running the scan utility::
python -m platypush.backend.sensor.ir.zeroborg.scan
Triggers:
* :class:`platypush.message.event.sensor.ir.IrKeyDownEvent` when a key is pressed
* :class:`platypush.message.event.sensor.ir.IrKeyUpEvent` when a key is released
"""
last_message =None last_message =None
last_message_timestamp = None last_message_timestamp = None
@ -18,10 +32,6 @@ class SensorIrZeroborgBackend(Backend):
self.logger.info('Initialized Zeroborg infrared sensor backend') self.logger.info('Initialized Zeroborg infrared sensor backend')
def send_message(self, message):
pass
def run(self): def run(self):
super().run() super().run()

View file

@ -20,6 +20,14 @@ class SensorLeapBackend(Backend):
Also, you'll need the Leap driver and utils installed on your OS (follow Also, you'll need the Leap driver and utils installed on your OS (follow
instructions at https://www.leapmotion.com/setup/) and the `leapd` daemon instructions at https://www.leapmotion.com/setup/) and the `leapd` daemon
running to recognize your controller. running to recognize your controller.
Triggers:
* :class:`platypush.message.event.sensor.leap.LeapFrameEvent` when a new frame is received
* :class:`platypush.message.event.sensor.leap.LeapFrameStartEvent` when a new sequence of frame starts
* :class:`platypush.message.event.sensor.leap.LeapFrameStopEvent` when a sequence of frame stops
* :class:`platypush.message.event.sensor.leap.LeapConnectEvent` when a Leap Motion device is connected
* :class:`platypush.message.event.sensor.leap.LeapDisconnectEvent` when a Leap Motion device disconnects
""" """
def __init__(self, def __init__(self,
@ -30,6 +38,23 @@ class SensorLeapBackend(Backend):
], ],
position_tolerance=0.0, # Position variation tolerance in % position_tolerance=0.0, # Position variation tolerance in %
*args, **kwargs): *args, **kwargs):
"""
:param position_ranges: It specifies how wide the hand space (x, y and z axes) should be in millimiters.
Default::
[
[-300.0, 300.0], # x axis
[25.0, 600.0], # y axis
[-300.0, 300.0], # z axis
]
:type position_ranges: list[list[float]]
:param position_tolerance: % of change between a frame and the next to really consider the next frame as a new one (default: 0)
:type position_tolerance: float
"""
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.position_ranges = position_ranges self.position_ranges = position_ranges

View file

@ -3,7 +3,18 @@ from platypush.context import get_plugin
class SensorMcp3008Backend(SensorBackend): class SensorMcp3008Backend(SensorBackend):
"""
Backend to poll analog sensor values from an MCP3008 chipset
(https://learn.adafruit.com/raspberry-pi-analog-to-digital-converters/mcp3008)
Requires:
* ``adafruit-mcp3008`` (``pip install adafruit-mcp3008``)
* The :mod:`platypush.plugins.gpio.sensor.mcp3008` plugin configured
"""
def get_measurement(self): def get_measurement(self):
""" get_measurement implementation """
plugin = get_plugin('gpio.sensor.mcp3008') plugin = get_plugin('gpio.sensor.mcp3008')
return plugin.get_data().output return plugin.get_data().output

View file

@ -3,7 +3,17 @@ from platypush.context import get_plugin
class SensorSerialBackend(SensorBackend): class SensorSerialBackend(SensorBackend):
"""
This backend listens for new events from sensors connected through a serial
interface (like Arduino) acting as a wrapper for the ``serial`` plugin.
Requires:
* The :mod:`platypush.plugins.serial` plugin configured
"""
def get_measurement(self): def get_measurement(self):
""" Implemnetation of ``get_measurement`` """
plugin = get_plugin('serial') plugin = get_plugin('serial')
return plugin.get_data().output return plugin.get_data().output

View file

@ -7,6 +7,18 @@ from platypush.message.event.weather import NewWeatherConditionEvent
class WeatherForecastBackend(Backend): class WeatherForecastBackend(Backend):
"""
Weather forecast backend - listens and propagates new weather events.
Triggers:
* :class:`platypush.message.event.weather.NewWeatherConditionEvent` when there is a weather condition update
Requires:
* The :mod:`platypush.plugins.weather.forecast` plugin configured
"""
def __init__(self, poll_seconds, **kwargs): def __init__(self, poll_seconds, **kwargs):
super().__init__(**kwargs) super().__init__(**kwargs)
self.poll_seconds = poll_seconds self.poll_seconds = poll_seconds

View file

@ -11,7 +11,7 @@ from platypush.plugins import Plugin
class CameraPiPlugin(Plugin): class CameraPiPlugin(Plugin):
""" """
Plugin to control a Pi camera. Plugin to control a Pi camera.
It acts as a wrapper around the :ref:`platypush.backend.camera.pi` backend It acts as a wrapper around the :mod:`platypush.backend.camera.pi` backend
to programmatically control the status. to programmatically control the status.
""" """