STTP Python API
Project description
Python STTP (IEEE 2664) Implementation
Streaming Telemetry Transport Protocol
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 = []
message.append(f"{subscriber.total_measurementsreceived:,}")
message.append(" measurements received so far. Current measurement:\n ")
message.append(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.
Links
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.1.0.tar.gz
(59.1 kB
view hashes)
Built Distribution
sttpapi-0.1.0-py3-none-any.whl
(84.8 kB
view hashes)