- "0000000000000000" if self.imei is None else self.imei.encode()
- ) + self.packet
-
- def decode(self, buffer):
- self.imei = buffer[:16].decode()
- self.packet = buffer[16:]
-
-
-class LocEvt(_Zmsg):
- """Zmq message with original or approximated location from lookaside"""
-
- KWARGS = (
- ("imei", "0000000000000000"),
- ("devtime", datetime(1970, 1, 1, tzinfo=timezone.utc)),
- ("lat", 0.0),
- ("lon", 0.0),
- ("is_gps", True),
- )
-
- @property
- def packed(self):
- return self.imei.encode() + pack(
- "!dddB",
- self.devtime.replace(tzinfo=timezone.utc).timestamp(),
- self.lat,
- self.lon,
- int(self.is_gps),
+ pack(
+ "16s",
+ "0000000000000000"
+ if self.imei is None
+ else self.imei.encode(),
+ )
+ + (
+ b"\0\0\0\0\0\0\0\0"
+ if self.when is None
+ else pack("!d", self.when)
+ )
+ + self.packet