Skip to content

Commit 93f91d7

Browse files
authored
Merge pull request #32 from stadtnavi/no-outdated-msg
feat: don't send updates for which newer info was sent
2 parents 7a8e936 + cbb4ea1 commit 93f91d7

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

gtfsrthttp2mqtt.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def __init__(self, mqttConnect, mqttCredentials, baseMqttTopic, gtfsrtFeedURL, g
3939
self.session.mount(gtfsrtFeedURL, adapter)
4040
self.session.headers.update(json.loads(gtfsrtFeedHeaders))
4141
self.OTPData = None
42-
42+
self.lastFeedTimestamp = None
4343

4444

4545
def onMQTTConnected(self, client, userdata, flags, rc):
@@ -77,6 +77,15 @@ def doGTFSRTPolling(self):
7777
feedmsg = gtfs_realtime_pb2.FeedMessage()
7878
try:
7979
feedmsg.ParseFromString(r.content)
80+
81+
# Do not send messages for feeds older than already sent
82+
feedTimestamp = feedmsg.header.timestamp
83+
if self.lastFeedTimestamp is None or feedTimestamp >= self.lastFeedTimestamp:
84+
self.lastFeedTimestamp = feedTimestamp
85+
else:
86+
print(f"Received a feed with timestamp earlier ({feedTimestamp}) than seen before ({self.lastFeedTimestamp}), skipping this update")
87+
return
88+
8089
for entity in feedmsg.entity:
8190
if not entity.HasField('vehicle'):
8291
continue

0 commit comments

Comments
 (0)