1313# scapy.contrib.status = loads
1414
1515from scapy .compat import orb
16- from scapy .packet import bind_layers , Packet
1716from scapy .fields import IntField , SignedByteField , StrField , BitField , \
1817 StrFixedLenField , ShortField , FixedPointField , ByteEnumField
1918from scapy .layers .bluetooth import EIR_Hdr , EIR_ServiceData16BitUUID , \
20- EIR_Flags , EIR_CompleteList16BitServiceUUIDs , HCI_Hdr , HCI_Command_Hdr , \
21- HCI_Cmd_LE_Set_Advertising_Data , HCI_LE_Meta_Advertising_Report
19+ EIR_CompleteList16BitServiceUUIDs , LowEnergyBeaconHelper
2220from scapy .modules import six
21+ from scapy .packet import bind_layers , Packet
2322
2423EDDYSTONE_UUID = 0xfeaa
2524
@@ -93,7 +92,7 @@ def any2i(self, pkt, x):
9392 return x
9493
9594
96- class Eddystone_Frame (Packet ):
95+ class Eddystone_Frame (Packet , LowEnergyBeaconHelper ):
9796 # https://github.com/google/eddystone/blob/master/protocol-specification.md
9897 name = "Eddystone Frame"
9998 fields_desc = [
@@ -104,33 +103,12 @@ class Eddystone_Frame(Packet):
104103 def build_eir (self ):
105104 """Builds a list of EIR messages to wrap this frame."""
106105
107- return [
108- EIR_Hdr () / EIR_Flags (flags = [
109- "general_disc_mode" , "br_edr_not_supported" ]),
106+ return LowEnergyBeaconHelper .base_eir + [
110107 EIR_Hdr () / EIR_CompleteList16BitServiceUUIDs (svc_uuids = [
111108 EDDYSTONE_UUID ]),
112109 EIR_Hdr () / EIR_ServiceData16BitUUID () / self
113110 ]
114111
115- def build_advertising_report (self ):
116- """Builds HCI_LE_Meta_Advertising_Report containing this frame."""
117-
118- return HCI_LE_Meta_Advertising_Report (
119- type = 0 , # Undirected
120- atype = 1 , # Random address
121- data = self .build_eir ()
122- )
123-
124- def build_set_advertising_data (self ):
125- """Builds a HCI_Cmd_LE_Set_Advertising_Data containing this frame.
126-
127- This includes the HCI_Hdr and HCI_Command_Hdr layers.
128- """
129-
130- return HCI_Hdr () / HCI_Command_Hdr () / HCI_Cmd_LE_Set_Advertising_Data (
131- data = self .build_eir ()
132- )
133-
134112
135113class Eddystone_UID (Packet ):
136114 # https://github.com/google/eddystone/tree/master/eddystone-uid
0 commit comments