From f4eb9f81f79507eb0fb87c7c3a27bb2f41d319f5 Mon Sep 17 00:00:00 2001 From: marcel Date: Sat, 14 Jan 2023 15:07:47 +0100 Subject: [PATCH] aprs_status now returns actual state of transmision. --- CHANGELOG.md | 3 +++ aprs-mqtt-bridge.py | 29 ++++++++++++++++++----------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 604806e..caf0713 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,3 +11,6 @@ All notable changes to this project will be documented in this file. ## [1.0.0] - 2023-01-13 First working version. + +## [1.0.1] - 2023-01-14 +Changed: aprs_status (published on the MQTT broker) now returns actual state of transmision (sending, retrying, send or failed) instead if just 'ready' and 'busy'. diff --git a/aprs-mqtt-bridge.py b/aprs-mqtt-bridge.py index 34346b1..7f05c39 100755 --- a/aprs-mqtt-bridge.py +++ b/aprs-mqtt-bridge.py @@ -41,6 +41,7 @@ class mqtt_settings: #retry #topics state = 'ready' + aprs_state = 'idle' pass mqtt = mqtt_settings() @@ -282,6 +283,7 @@ def process_message(data, payload): #os.system(aprs.beacon_program_with_arguments) print ('APRS message ' + aprs.message + ' send to ' + aprs.call_of_wait_for_ack + '.') mqtt.state = 'busy' + mqtt.aprs_state = 'sending message' aprs.request_to_send = 1; else: mqtt.state = 'busy' @@ -299,9 +301,10 @@ def run(): client.loop_start() # Send ready to MQTT broker to indicate we are meaning business - topic = mqtt.topic_root + '/aprs_status' - publish(client,topic,'ready') - mqtt.state = 'ready' + mqtt.aprs_state = 'ready' + #topic = mqtt.topic_root + '/aprs_status' + #publish(client,topic,'ready') + mqtt.state = 'busy' aprs.time_out_timer = time.time() while True: @@ -347,9 +350,10 @@ def run(): aprs.wait_for_ack = 0 aprs.busy = 0 aprs.retry_counter = 0 - topic = mqtt.topic_root + '/aprs_status' - publish(client,topic,'ready') - mqtt.state = 'ready' + mqtt.aprs_state = 'message send' + #topic = mqtt.topic_root + '/aprs_status' + #publish(client,topic,mqtt.aprs_state) + mqtt.state = 'busy' # Time out waiting for acknowledge @@ -362,6 +366,8 @@ def run(): aprs.request_to_send = 1; #os.system(aprs.beacon_program_with_arguments) print ('Retry: APRS ' + aprs.message + ' message send to ' + aprs.call_of_wait_for_ack + '.') + mqtt.aprs_state = 'sending message (retry ' + str(aprs.retry_counter) + ')' + mqtt.state = 'busy' else: # Give up print ('No acknowledge received from ' + aprs.call_of_wait_for_ack + '. Giving up.') @@ -369,13 +375,14 @@ def run(): aprs.wait_for_ack = 0 aprs.busy = 0 aprs.retry_counter = 0 - topic = mqtt.topic_root + '/aprs_status' - publish(client,topic,'ready') - mqtt.state = 'ready' - # If APRS system is still waiting for acknowledge, keep on waiting and send an MQTT update + mqtt.aprs_state = 'sending message failed' + #topic = mqtt.topic_root + '/aprs_status' + #publish(client,topic,mqtt.aprs_state) + mqtt.state = 'busy' + # If APRS system is transmitting, retrying and still waiting for acknowledge, keep on waiting and send an MQTT update if mqtt.state == 'busy': topic = mqtt.topic_root + '/aprs_status' - publish(client,topic,'busy') + publish(client,topic,mqtt.aprs_state) mqtt.state = 'ready'