From f1de7bc6815be2ee129a27ff4a898abbc48a5b51 Mon Sep 17 00:00:00 2001 From: Hemna Date: Fri, 16 Dec 2022 15:54:40 -0500 Subject: [PATCH] Fix packets timestamp to int Python's default timestamp is a float. APRS packet expect to have an old style unix integer timestamp. --- aprsd/packets/core.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/aprsd/packets/core.py b/aprsd/packets/core.py index a52f19b..64f3da6 100644 --- a/aprsd/packets/core.py +++ b/aprsd/packets/core.py @@ -26,6 +26,11 @@ PACKET_TYPE_BEACON = "beacon" PACKET_TYPE_UNCOMPRESSED = "uncompressed" +def _int_timestamp(): + """Build a unix style timestamp integer""" + return int(round(time.time())) + + @dataclass() class Packet(metaclass=abc.ABCMeta): from_call: str @@ -34,7 +39,7 @@ class Packet(metaclass=abc.ABCMeta): format: str = None msgNo: str = None # noqa: N815 packet_type: str = None - timestamp: float = field(default_factory=time.time) + timestamp: float = field(default_factory=_int_timestamp) raw: str = None _raw_dict: dict = field(repr=False, default_factory=lambda: {}) _retry_count = 3