"Respond",
)
+MODNAME = __name__.split(".")[-1]
PROTO_PREFIX: str = "ZX:"
### Deframer ###
ttup = (tup[0] % 100,) + tup[1:6]
return pack("BBBBBB", *ttup)
- def rectified(self) -> CoordReport: # JSON-able dict
- return CoordReport(
+ def rectified(self) -> Tuple[str, CoordReport]: # JSON-able dict
+ return MODNAME, CoordReport(
devtime=str(self.devtime),
- battery_percentage=-1,
- accuracy=-1.0,
- altitude=-1.0,
+ battery_percentage=None,
+ accuracy=None,
+ altitude=None,
speed=self.speed,
direction=self.heading,
latitude=self.latitude,
def out_encode(self) -> bytes: # Set interval in minutes
return pack("B", self.upload_interval)
- def rectified(self) -> StatusReport:
- return StatusReport(battery_percentage=self.batt)
+ def rectified(self) -> Tuple[str, StatusReport]:
+ return MODNAME, StatusReport(battery_percentage=self.batt)
class HIBERNATION(GPS303Pkt): # Server can send to send devicee to sleep
]
)
- def rectified(self) -> HintReport:
- return HintReport(
+ def rectified(self) -> Tuple[str, HintReport]:
+ return MODNAME, HintReport(
devtime=str(self.devtime),
- battery_percentage=-1,
+ battery_percentage=None,
mcc=self.mcc,
mnc=self.mnc,
gsm_cells=self.gsm_cells,
for cls in CLASSES.values()
if hasattr(cls, "rectified")
]
+
+
+def make_response(cmd: str, imei: str, **kwargs: Any) -> Optional[GPS303Pkt]:
+ if cmd == "poweroff":
+ return HIBERNATION.Out()
+ return None