Projekt

Obecné

Profil

Stáhnout (657 Bajtů) Statistiky
| Větev: | Tag: | Revize:
1
import logging
2

    
3
from paho.mqtt.client import MQTTMessage
4

    
5
from aswi2021vochomurka.model.Message import Message
6

    
7

    
8
class ParseException(Exception):
9
    pass
10

    
11

    
12
def parse_mqtt_message(message: MQTTMessage) -> Message:
13
    data = message.payload.decode("utf-8")
14
    parts = data.split(";")
15
    logging.debug('Parsing message: ' + data + ', parts: ' + str(len(parts)))
16
    if len(parts) != 4:
17
        raise ParseException
18

    
19
    try:
20
        return Message(
21
            message.topic,
22
            int(parts[2]),
23
            parts[0],
24
            parts[1],
25
            float(parts[3])
26
        )
27
    except Exception as error:
28
        raise ParseException from error
(3-3/6)