X-Git-Url: http://average.org/gitweb/?a=blobdiff_plain;f=loctrkd%2Fbeesure.py;h=e535b76d1c56420c72b77433ee8078f7a8a5d61e;hb=cffceea601459816660ab46d46be2f3e9370c2fe;hp=a0d802bb1df306e888e87218028241210ffd5695;hpb=5ef83cb7db7464a5a625b0b7c86c4e25ebbb0de1;p=loctrkd.git diff --git a/loctrkd/beesure.py b/loctrkd/beesure.py index a0d802b..e535b76 100755 --- a/loctrkd/beesure.py +++ b/loctrkd/beesure.py @@ -26,9 +26,9 @@ __all__ = ( "class_by_prefix", "enframe", "inline_response", + "proto_handled", "parse_message", "probe_buffer", - "proto_by_name", "proto_name", "DecodeError", "Respond", @@ -320,7 +320,10 @@ class LK(BeeSurePkt): class CONFIG(BeeSurePkt): PROTO = "CONFIG" - RESPOND = Respond.INL + + +class ICCID(BeeSurePkt): + PROTO = "ICCID" class UD(BeeSurePkt): @@ -348,11 +351,12 @@ class UD(BeeSurePkt): ) = args[:17] rest_args = args[17:] self.base_stations_number = int(rest_args[0]) + # ???, mcc, net, (area, cell, strength)* self.base_stations = rest_args[1 : 4 + 3 * self.base_stations_number] rest_args = rest_args[3 + 3 * self.base_stations_number + 1 :] self.wifi_ap_number = int(rest_args[0]) - self.wifi_ap = rest_args[1 : self.wifi_ap_number] - # rest_args = rest_args[self_wifi_ap_number+1:] + # (SSID, MAC, strength)* + self.wifi_ap = rest_args[1 : 1 + 3 * self.wifi_ap_number] self.positioning_accuracy = rest_args[-1] @@ -405,16 +409,16 @@ def class_by_prefix( return CLASSES[proto] +def proto_handled(proto: str) -> bool: + return proto.startswith(PROTO_PREFIX) + + def proto_name(obj: Union[MetaPkt, BeeSurePkt]) -> str: return PROTO_PREFIX + ( obj.__class__.__name__ if isinstance(obj, BeeSurePkt) else obj.__name__ ) -def proto_by_name(name: str) -> str: - return PROTO_PREFIX + PROTOS.get(name, "UNKNOWN") - - def proto_of_message(packet: bytes) -> str: return PROTO_PREFIX + packet[20:-1].split(b",")[0].decode()