Skip to content

Commit 3793358

Browse files
Added advanced subscribe example
1 parent 3d7b01e commit 3793358

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

examples/advancedsubscribe/main.py

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,13 @@ class AdvancedSubscriber(Subscriber):
4343
def __init__(self):
4444
super().__init__()
4545

46-
self.subscriber = Subscriber()
4746
self.config = Config()
4847
self.settings = Settings()
4948
self.lastmessage = 0.0
5049

51-
self.subscriber.set_subscriptionupdated_receiver(self.subscription_updated)
52-
self.subscriber.set_newmeasurements_receiver(self.new_measurements)
53-
self.subscriber.set_connectionterminated_receiver(self.connection_terminated)
50+
self.set_subscriptionupdated_receiver(self.subscription_updated)
51+
self.set_newmeasurements_receiver(self.new_measurements)
52+
self.set_connectionterminated_receiver(self.connection_terminated)
5453

5554
def subscription_updated(self, signalindexcache: SignalIndexCache):
5655
self.statusmessage(f"Received signal index cache with {signalindexcache.count:,} mappings")
@@ -59,21 +58,24 @@ def new_measurements(self, measurements: List[Measurement]):
5958
if time() - self.lastmessage < 5.0:
6059
return
6160

62-
if self.lastmessage == 0.0:
63-
self.statusmessage("Receiving measurements...")
64-
return
61+
try:
62+
if self.lastmessage == 0.0:
63+
self.statusmessage("Receiving measurements...")
64+
return
6565

66-
message = [
67-
f"{self.total_measurementsreceived:,} measurements received so far...\n",
68-
f"Timestamp: {Ticks.to_string(measurements[0].timestamp)}\n",
69-
"\tID\tSignal ID\t\t\t\tValue\n"
70-
]
66+
message = [
67+
f"{self.total_measurementsreceived:,} measurements received so far...\n",
68+
f"Timestamp: {Ticks.to_string(measurements[0].timestamp)}\n",
69+
"\tID\tSignal ID\t\t\t\tValue\n"
70+
]
7171

72-
for measurement in measurements:
73-
metadata = self.measurement_metadata(measurement)
74-
message.append(f"\t{metadata.id}\t{measurement.signalid}\t{measurement.value:.6}\n")
72+
for measurement in measurements:
73+
metadata = self.measurement_metadata(measurement)
74+
message.append(f"\t{metadata.id}\t{measurement.signalid}\t{measurement.value:.6}\n")
7575

76-
self.lastmessage = time()
76+
self.statusmessage("".join(message))
77+
finally:
78+
self.lastmessage = time()
7779

7880
def connection_terminated(self):
7981
# Call default implementation which will display a connection terminated message to stderr

0 commit comments

Comments
 (0)