Skip to content

Commit

Permalink
Generate develop docs
Browse files Browse the repository at this point in the history
  • Loading branch information
runner committed Aug 2, 2023
1 parent 59081ea commit 0106734
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 10 deletions.
12 changes: 12 additions & 0 deletions docs/develop/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,18 @@ Hardware support is provided by specific GPIO, Sensor and Stream modules. It's e
### Sensors

- ADS1x15 analog to digital converters (`ads1x15`)
- ADXL345 Digital Accelerometer Sensor

Mandatory:
- chip_addr

Optional:
- output_g (set True if output in g). default:m*

Output:
- x (in m*s²)
- y (in m*s²)
- z (in m*s²) (`adxl345`)
- AHT20 temperature and humidity sensor (`aht20`)
- BH1750 light level sensor (`bh1750`)
- BME280 temperature, humidity and pressure sensor (`bme280`)
Expand Down
20 changes: 10 additions & 10 deletions docs/develop/dev/modules/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ In order to support as much hardware as possible without changing the project's

In order for a module to specify its requirements, a module-level constant is used which lists them in the same format as the `pip install` command.

[mqtt_io.modules.gpio.raspberrypi:REQUIREMENTS](https://github.com/flyte/mqtt-io/blob/d7e07f5fd0dd398dc024d5beeaf4750bb6a57351/mqtt_io/modules/gpio/raspberrypi.py#L13):
[mqtt_io.modules.gpio.raspberrypi:REQUIREMENTS](https://github.com/flyte/mqtt-io/blob/7872a2f6121d2600e90920dd22447801a3839c08/mqtt_io/modules/gpio/raspberrypi.py#L13):

```python
REQUIREMENTS = ("RPi.GPIO",)
Expand All @@ -22,7 +22,7 @@ To specify extra schema for the pin-level config sections (`digital_inputs`, `di

If the pin-level schema only applies to an input or an output (in the case of a GPIO module), then instead of setting it on the `PIN_SCHEMA` class-level constant, use `INPUT_SCHEMA` or `OUTPUT_SCHEMA` respectively.

[mqtt_io.modules.gpio.gpiod:CONFIG_SCHEMA](https://github.com/flyte/mqtt-io/blob/d7e07f5fd0dd398dc024d5beeaf4750bb6a57351/mqtt_io/modules/gpio/gpiod.py#L18):
[mqtt_io.modules.gpio.gpiod:CONFIG_SCHEMA](https://github.com/flyte/mqtt-io/blob/7872a2f6121d2600e90920dd22447801a3839c08/mqtt_io/modules/gpio/gpiod.py#L18):

```python
CONFIG_SCHEMA = {
Expand All @@ -40,7 +40,7 @@ CONFIG_SCHEMA = {

During software startup, each GPIO module's `setup_module()` method will be called once per instance of the module in the `gpio_modules` section of the config file.

[mqtt_io.modules.gpio:GenericGPIO.setup_module](https://github.com/flyte/mqtt-io/blob/d7e07f5fd0dd398dc024d5beeaf4750bb6a57351/mqtt_io/modules/gpio/__init__.py#L109):
[mqtt_io.modules.gpio:GenericGPIO.setup_module](https://github.com/flyte/mqtt-io/blob/7872a2f6121d2600e90920dd22447801a3839c08/mqtt_io/modules/gpio/__init__.py#L109):

```python
def setup_module(self) -> None:
Expand Down Expand Up @@ -73,7 +73,7 @@ The GPIO library is then initialised and an object may be stored (usually at `se

It may be appropriate to build mappings of pin directions (input, output), pullups (up, down, off) and interrupt edges (rising, falling, both) if appropriate for this hardware. The base GenericGPIO class uses its own constants to refer to these, so the mappings translate the base GenericGPIO's constants to ones used by the hardware's Python library.

[mqtt_io.modules.gpio:PinDirection](https://github.com/flyte/mqtt-io/blob/d7e07f5fd0dd398dc024d5beeaf4750bb6a57351/mqtt_io/modules/gpio/__init__.py#L22):
[mqtt_io.modules.gpio:PinDirection](https://github.com/flyte/mqtt-io/blob/7872a2f6121d2600e90920dd22447801a3839c08/mqtt_io/modules/gpio/__init__.py#L22):

```python
class PinDirection(Enum):
Expand All @@ -85,7 +85,7 @@ class PinDirection(Enum):
OUTPUT = auto()
```

[mqtt_io.modules.gpio:PinPUD](https://github.com/flyte/mqtt-io/blob/d7e07f5fd0dd398dc024d5beeaf4750bb6a57351/mqtt_io/modules/gpio/__init__.py#L31):
[mqtt_io.modules.gpio:PinPUD](https://github.com/flyte/mqtt-io/blob/7872a2f6121d2600e90920dd22447801a3839c08/mqtt_io/modules/gpio/__init__.py#L31):

```python
class PinPUD(Enum):
Expand All @@ -98,7 +98,7 @@ class PinPUD(Enum):
DOWN = auto()
```

[mqtt_io.modules.gpio:InterruptEdge](https://github.com/flyte/mqtt-io/blob/d7e07f5fd0dd398dc024d5beeaf4750bb6a57351/mqtt_io/modules/gpio/__init__.py#L41):
[mqtt_io.modules.gpio:InterruptEdge](https://github.com/flyte/mqtt-io/blob/7872a2f6121d2600e90920dd22447801a3839c08/mqtt_io/modules/gpio/__init__.py#L41):

```python
class InterruptEdge(Enum):
Expand All @@ -113,7 +113,7 @@ class InterruptEdge(Enum):

The `raspberrypi` GPIO module is a good example of the above:

[mqtt_io.modules.gpio.raspberrypi:GPIO.setup_module](https://github.com/flyte/mqtt-io/blob/d7e07f5fd0dd398dc024d5beeaf4750bb6a57351/mqtt_io/modules/gpio/raspberrypi.py#L23):
[mqtt_io.modules.gpio.raspberrypi:GPIO.setup_module](https://github.com/flyte/mqtt-io/blob/7872a2f6121d2600e90920dd22447801a3839c08/mqtt_io/modules/gpio/raspberrypi.py#L23):

```python
def setup_module(self) -> None:
Expand Down Expand Up @@ -142,7 +142,7 @@ def setup_module(self) -> None:

If a digital input is not configured as an [interrupt](config/interrupts.md) (or even [sometimes if it is](config/reference/digital_inputs/?id=digital_inputs-star-interrupt_for)), then a loop will be created which polls the pin's current value and publishes a `DigitalInputChangedEvent` event when it does. As part of the initialisation of each pin, a callback function to publish the new value on MQTT will be subscribed to this event.

[mqtt_io.server.MqttIo._init_digital_inputs](https://github.com/flyte/mqtt-io/blob/d7e07f5fd0dd398dc024d5beeaf4750bb6a57351/mqtt_io/server.py#L344):
[mqtt_io.server.MqttIo._init_digital_inputs](https://github.com/flyte/mqtt-io/blob/7872a2f6121d2600e90920dd22447801a3839c08/mqtt_io/server.py#L344):

```python
def _init_digital_inputs(self) -> None:
Expand Down Expand Up @@ -175,7 +175,7 @@ def _init_digital_inputs(self) -> None:

For each of the entries in `digital_inputs` and `digital_outputs`, `setup_pin()` will be called. This step is for configuring the hardware's pins to be input or outputs, or anything else that must be set at pin level.

[mqtt_io.modules.gpio:GenericGPIO.setup_pin](https://github.com/flyte/mqtt-io/blob/d7e07f5fd0dd398dc024d5beeaf4750bb6a57351/mqtt_io/modules/gpio/__init__.py#L118):
[mqtt_io.modules.gpio:GenericGPIO.setup_pin](https://github.com/flyte/mqtt-io/blob/7872a2f6121d2600e90920dd22447801a3839c08/mqtt_io/modules/gpio/__init__.py#L118):

```python
def setup_pin(
Expand Down Expand Up @@ -214,7 +214,7 @@ digital_outputs:
Here's the `raspberrypi` GPIO module's `setup_pin()` implementation:
[mqtt_io.modules.gpio.raspberrypi:GPIO.setup_pin](https://github.com/flyte/mqtt-io/blob/d7e07f5fd0dd398dc024d5beeaf4750bb6a57351/mqtt_io/modules/gpio/raspberrypi.py#L44):
[mqtt_io.modules.gpio.raspberrypi:GPIO.setup_pin](https://github.com/flyte/mqtt-io/blob/7872a2f6121d2600e90920dd22447801a3839c08/mqtt_io/modules/gpio/raspberrypi.py#L44):
```python
def setup_pin(
Expand Down

0 comments on commit 0106734

Please sign in to comment.