def main()

in sample_app/lorawan_aio/lorawan-broker/src/listen.py [0:0]


def main():
    # Set up MQTT client
    client = create_mqtt_client()
    client.connect(broker, publishing_port)

    # Set up UDP server
    with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        s.bind((HOST, PORT))
        print(f"Waiting for UDP packets on port {PORT}")

        while True:
            try:
                data, addr = s.recvfrom(1024)
                print(f"Received packet from {addr}")
                
                # Publish to original topic
                client.publish(topic, data)
                
                # Format and publish JSON data
                json_payload = format_json_payload(data)
                if json_payload:
                    client.publish(json_topic, json_payload)
                    print(f"Published JSON payload: {json_payload}")
                
            except Exception as e:
                print(f"Error: {e}")