Miksi viestikanava ei lähetä mitään

50 views
Skip to first unread message

Jussi Salmi

unread,
Jan 15, 2025, 11:42:33 AMJan 15
to meri.digitraffic.fi
Yritän seuraavalla koodilla lukea AIS-viestejä, mutta tulee virhe "struct.error: unpack requires a buffer of 2 bytes", joka ilmeisesti tarkoittaa, että viesti on liian lyhyt tai jotain sen suuntaista.


Koodin antoi Copilot. Sama virhe oli chatGPT:n tuottamassa koodissa

import paho.mqtt.client as mqtt

# MQTT-yhteyden asetukset
broker = "meri.digitraffic.fi"
port = 443
#topic = "vessels-v2/+/location"
client_id = "your_client_id"

# MQTT-asiakas luokka
class MQTTClient:
    def __init__(self, broker, port, topic, client_id):
        self.client = mqtt.Client(client_id)
        self.client.on_connect = self.on_connect
        self.client.on_message = self.on_message
        self.client.connect(broker, port, 60)
        self.client.loop_start()

    def on_connect(self, client, userdata, flags, rc):
        if rc == 0:
            print("Connected successfully")
            self.client.subscribe(topic)
        else:
            print("Connection failed with code", rc)

    def on_message(self, client, userdata, msg):
        print(f"Received message: {msg.payload.decode()} on topic {msg.topic}")

# Luo MQTT-asiakas ja alusta se
mqtt_client = MQTTClient(broker, port, topic, client_id)

# Odota viestejä
try:
    while True:
        pass
except KeyboardInterrupt:
    mqtt_client.client.loop_stop()
    mqtt_client.client.disconnect()
    print("Disconnected")

meri.digitraffic.fi

unread,
Jan 16, 2025, 3:33:55 AMJan 16
to meri.digitraffic.fi
Hei,

sivustolta löytyy nyt päivitetty Python-esimerkki MQTT:n käytöstä: https://www.digitraffic.fi/meriliikenne/#yksinkertainen-python-mqtt-websocket--client

Sivuston esimerkin koodi on paho-mqtt -kirjaston versioille 2.x. Antamassasi koodissa taidetaan käyttää kirjaston vanhaa 1.x -versiota. 

Ystävällisin terveisin / Best regards
– Digitraffic asiakastuki / Digitraffic support –

Jussi Salmi

unread,
Jan 21, 2025, 8:26:23 AMJan 21
to meri.digitraffic.fi
Okei, kiitos paljon!

Jussi

Reply all
Reply to author
Forward
0 new messages