Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Metrum API

The Metrum API provides a set of classes and functions for working with sensors and telemetry data.

classDiagram
    class SensorInterface {
        +device_id
        +read_sensors()
        +collect_datapoints()
        +collect_reading()
    }
    
    class ExampleSensor {
        +read_sensors()
    }
    
    class MetrumSensorPublisher {
        -reticulum
        -identity
        -sensor
        -destination
        -subscribers
        +announce()
        +encode_announce_data()
        +get_subscriber_hash(link)
        +link_established(link)
        +packet_received(data, packet)
        +link_closed(link)
        +publish_senml()
        +run(collection_interval, announce_interval, read_interval)
    }
    
    class MetrumSensorSubscriber {
        -reticulum
        -identity
        -publishers
        -senml_callback
        +received_announce(destination_hash, announced_identity, app_data)
        +connect_to_publisher(destination_hash)
        +link_established(link, destination_hash)
        +link_closed(link, destination_hash)
        +packet_received(data, packet)
        +reconnect_disconnected(max_age)
    }
    
    class RNS {
        +Identity
        +Destination
        +Link
        +Packet
        +Transport
    }
    
    SensorInterface <|-- ExampleSensor
    MetrumSensorPublisher --> SensorInterface
    MetrumSensorPublisher --> RNS
    MetrumSensorSubscriber --> RNS
  • Classes:
    • MetrumPublisher: A class for publishing telemetry data.
    • MetrumSubscriber: A class for subscribing to telemetry data.
  • Functions:
    • announce(): Announces the publisher's presence to the Reticulum network.
    • publish_telemetry(): Publishes telemetry data to the Reticulum network.