Skip to main content

Streaming Telemetry Transport Protocol API

Project description

Python STTP (IEEE 2664) Implementation

Streaming Telemetry Transport Protocol

CodeQL docs Release

The Streaming Telemetry Transport Protocol (STTP) is optimized for the demands of transporting high volume streaming data. The protocol allows for the transmission of any information that can be represented longitudinally, e.g., time-series data.

STTP is an officially approved IEEE standard (2664), see: https://standards.ieee.org/ieee/2664/7397/

Example Usage

from sttp.subscriber import Subscriber
from time import time
from threading import Thread

def main():
    subscriber = Subscriber()

    try:
        # Start new data read at each connection
        subscriber.set_connectionestablished_receiver(
            lambda: Thread(target=read_data, args=(subscriber,)).start())

        subscriber.subscribe("FILTER TOP 20 ActiveMeasurements WHERE True")
        subscriber.connect("localhost:7175")

        # Exit when enter key is pressed
        input()
    finally:
        subscriber.dispose()


def read_data(subscriber: Subscriber):
    subscriber.default_connectionestablished_receiver()
    reader = subscriber.read_measurements()
    lastmessage = 0.0

    while subscriber.connected:
        measurement, success = reader.next_measurement()

        if not success:
            break

        if time() - lastmessage < 5.0:
            continue
        elif lastmessage == 0.0:
            subscriber.statusmessage("Receiving measurements...")
            lastmessage = time()
            continue

        message = [
            f"{subscriber.total_measurementsreceived:,}",
            " measurements received so far. Current measurement:\n    ",
            str(measurement)
        ]

        subscriber.statusmessage("".join(message))
        lastmessage = time()

Example Output:

Connection to 127.0.0.1:7175 established.
Received 10,742 bytes of metadata in 0.045 seconds. Decompressing...
Decompressed 89,963 bytes of metadata in 0.004 seconds. Parsing...
Parsed 179 metadata records in 0.215 seconds
    Discovered:
        1 DeviceDetail records
        172 MeasurementDetail records
        5 PhasorDetail records
        1 SchemaVersion records
Metadata schema version: 14
Received success code in response to server command: Subscribe
Client subscribed as compact with 20 signals.
Receiving measurements...
1,470 measurements received so far. Current measurement:
    28bbb1fc-3434-48d3-87a8-bf5024c089d5 @ 19:43:53.600 = 516.545 (Normal)
2,970 measurements received so far. Current measurement:
    ed6def67-54c4-4e74-af95-c95fa6915fbc @ 19:43:58.600 = 218.070 (Normal)
4,460 measurements received so far. Current measurement:
    7aaf0a8f-3a4f-4c43-ab43-ed9d1e64a255 @ 19:44:03.633 = -0.230 (Normal)
5,930 measurements received so far. Current measurement:
    7aaf0a8f-3a4f-4c43-ab43-ed9d1e64a255 @ 19:44:08.633 = 8228.000 (Normal)

Connection to 127.0.0.1:7175 terminated.

Examples

https://github.com/sttp/pyapi/tree/main/examples

Support

For discussion and support, join our discussions channel or open an issue on GitHub.

Links

Lock

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

sttpapi-0.6.4.tar.gz (99.9 kB view details)

Uploaded Source

Built Distribution

sttpapi-0.6.4-py3-none-any.whl (137.5 kB view details)

Uploaded Python 3

File details

Details for the file sttpapi-0.6.4.tar.gz.

File metadata

  • Download URL: sttpapi-0.6.4.tar.gz
  • Upload date:
  • Size: 99.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for sttpapi-0.6.4.tar.gz
Algorithm Hash digest
SHA256 2fd6074e4265d929cc492f282c9f61be50cb33721f25429ab40235bbded75da7
MD5 9e8cd7784cd57de18afcc45f2a367236
BLAKE2b-256 76974898e7e81fa700f33d336b723784a93957b81cb9ac4623e16ab3e442151e

See more details on using hashes here.

File details

Details for the file sttpapi-0.6.4-py3-none-any.whl.

File metadata

  • Download URL: sttpapi-0.6.4-py3-none-any.whl
  • Upload date:
  • Size: 137.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for sttpapi-0.6.4-py3-none-any.whl
Algorithm Hash digest
SHA256 99eeb477926710a7ec6d04698ca999b1c60b9a6d218ba22add398e7422cdd5b1
MD5 367661646a4aa676033e8a24388e86ce
BLAKE2b-256 90b63552d8d870f062c5f1d9b486bd03d0eddd8b360dd63116d239855d85c0e6

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