X-Git-Url: http://average.org/gitweb/?a=blobdiff_plain;f=gps303%2Fzmsg.py;h=1fe18123c441739a9891b1433ec8bc276b5c876a;hb=5e1ae25333928e02eed519652256bee2e8e06671;hp=8179616485f0d9f5b89148e4dcf12d21df4294ae;hpb=5e1e7a4d37a1e149d5e899dada7b55a863cd8e64;p=loctrkd.git diff --git a/gps303/zmsg.py b/gps303/zmsg.py index 8179616..1fe1812 100644 --- a/gps303/zmsg.py +++ b/gps303/zmsg.py @@ -80,8 +80,8 @@ class _Zmsg: def topic(proto, is_incoming=True, imei=None): - return ( - pack("BB", is_incoming, proto) + b"" if imei is None else imei.encode() + return pack("BB", is_incoming, proto) + ( + b"" if imei is None else pack("16s", imei.encode()) ) @@ -100,8 +100,14 @@ class Bcast(_Zmsg): @property def packed(self): return ( - pack("BB", int(self.is_incoming), self.proto) - + ("0000000000000000" if self.imei is None else self.imei).encode() + pack( + "BB16s", + int(self.is_incoming), + self.proto, + "0000000000000000" + if self.imei is None + else self.imei.encode(), + ) + ( b"\0\0\0\0\0\0\0\0" if self.when is None @@ -130,12 +136,19 @@ class Resp(_Zmsg): @property def packed(self): return ( - "0000000000000000" if self.imei is None else self.imei.encode() - ) + ( + 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 + ) + + self.packet + ) def decode(self, buffer): self.imei = buffer[:16].decode()