예제 #1
0
    def _get_svc_description(self, service):
        uuid_name = service.uuid.getCommonName()

        if uuid_name and uuid_name != str(service.uuid):
            return "{} ({})".format(color_green(uuid_name), service.uuid)

        return str(service.uuid)
예제 #2
0
    def _get_svc_description(self, service):
        uuid_name = service.uuid.getCommonName()

        if uuid_name and uuid_name != str(service.uuid):
            return "{} ({})".format(color_green(uuid_name), service.uuid)

        return str(service.uuid)
예제 #3
0
    def print_info(self):
        headers = (color_blue("{} ({} dBm)").format(self.addr, self.rssi), "")
        if self.connectable:
            allow_connection = color_green(str(self.connectable))
        else:
            allow_connection = color_red(str(self.connectable))

        data = [
            ("Vendor", self.vendor),
            ("Allow Connections", allow_connection),
        ]

        for d in self.data:
            data.append((d[0], d[1]))

        print_table(headers, *data, max_column_length=70, extra_fill=3)
예제 #4
0
    def print_info(self):
        headers = (color_blue("{} ({} dBm)").format(self.addr, self.rssi), "")
        if self.connectable:
            allow_connection = color_green(str(self.connectable))
        else:
            allow_connection = color_red(str(self.connectable))

        data = [
            ("Vendor", self.vendor),
            ("Allow Connections", allow_connection),
        ]

        for d in self.data:
            data.append((d[0], d[1]))

        print_table(headers, *data, max_column_length=70, extra_fill=3)
예제 #5
0
    def _get_appearance(self, data):
        appearance = {
            0: "Unknown",
            64: "Generic Phone",
            128: "Generic Computer",
            192: "Generic Watch",
            193: "Watch: Sports Watch",
            256: "Generic Clock",
            320: "Generic Display",
            384: "Generic Remote Control",
            448: "Generic Eye-glasses",
            512: "Generic Tag",
            576: "Generic Keyring",
            640: "Generic Media Player",
            704: "Generic Barcode Scanner",
            768: "Generic Thermometer",
            769: "Thermometer: Ear",
            832: "Generic Heart rate Sensor",
            833: "Heart Rate Sensor: Heart Rate Belt",
            896: "Generic Blood Pressure",
            897: "Blood Pressure: Arm",
            898: "Blood Pressure: Wrist",
            960: "Human Interface Device (HID)",
            961: "Keyboard",
            962: "Mouse",
            963: "Joystick",
            964: "Gamepad",
            965: "Digitizer Tablet",
            966: "Card Reader",
            967: "Digital Pen",
            968: "Barcode Scanner",
            1024: "Generic Glucose Meter",
            1088: "Generic: Running Walking Sensor",
            1089: "Running Walking Sensor: In-Shoe",
            1090: "Running Walking Sensor: On-Shoe",
            1091: "Running Walking Sensor: On-Hip",
            1152: "Generic: Cycling",
            1153: "Cycling: Cycling Computer",
            1154: "Cycling: Speed Sensor",
            1155: "Cycling: Cadence Sensor",
            1156: "Cycling: Power Sensor",
            1157: "Cycling: Speed and Cadence Sensor",
            1216: "Generic Control Device",
            1217: "Switch",
            1218: "Multi-switch",
            1219: "Button",
            1220: "Slider",
            1221: "Rotary",
            1222: "Touch-panel",
            1280: "Generic Network Device",
            1281: "Access Point",
            1344: "Generic Sensor",
            1345: "Motion Sensor",
            1346: "Air Quality Sensor",
            1347: "Temperature Sensor",
            1348: "Humidity Sensor",
            1349: "Leak Sensor",
            1350: "Smoke Sensor",
            1351: "Occupancy Sensor",
            1352: "Contact Sensor",
            1353: "Carbon Monoxide Sensor",
            1354: "Carbon Dioxide Sensor",
            1355: "Ambient Light Sensor",
            1356: "Energy Sensor",
            1357: "Color Light Sensor",
            1358: "Rain Sensor",
            1359: "Fire Sensor",
            1360: "Wind Sensor",
            1361: "Proximity Sensor",
            1362: "Multi-Sensor",
            1408: "Generic Light Fixtures",
            1409: "Wall Light",
            1410: "Ceiling Light",
            1411: "Floor Light",
            1412: "Cabinet Light",
            1413: "Desk Light",
            1414: "Troffer Light",
            1415: "Pendant Light",
            1416: "In-ground Light",
            1417: "Flood Light",
            1418: "Underwater Light",
            1419: "Bollard with Light",
            1420: "Pathway Light",
            1421: "Garden Light",
            1422: "Pole-top Light",
            1423: "Spotlight",
            1424: "Linear Light",
            1425: "Street Light",
            1426: "Shelves Light",
            1427: "High-bay / Low-bay Light",
            1428: "Emergency Exit Light",
            1472: "Generic Fan",
            1473: "Ceiling Fan",
            1474: "Axial Fan",
            1475: "Exhaust Fan",
            1476: "Pedestal Fan",
            1477: "Desk Fan",
            1478: "Wall Fan",
            1536: "Generic HVAC",
            1537: "Thermostat",
            1600: "Generic Air Conditioning",
            1664: "Generic Humidifier",
            1728: "Generic Heating",
            1729: "Radiator",
            1730: "Boiler",
            1731: "Heat Pump",
            1732: "Infrared Heater",
            1733: "Radiant Panel Heater",
            1734: "Fan Heater",
            1735: "Air Curtain",
            1792: "Generic Access Control",
            1793: "Access Door",
            1794: "Garage Door",
            1795: "Emergency Exit Door",
            1796: "Access Lock",
            1797: "Elevator",
            1798: "Window",
            1799: "Entrance Gate",
            1856: "Generic Motorized Device",
            1857: "Motorized Gate",
            1858: "Awning",
            1859: "Blinds or Shades",
            1860: "Curtains",
            1861: "Screen",
            1920: "Generic Power Device",
            1921: "Power Outlet",
            1922: "Power Strip",
            1923: "Plug",
            1924: "Power Supply",
            1925: "LED Driver",
            1926: "Fluorescent Lamp Gear",
            1927: "HID Lamp Gear",
            1984: "Generic Light Source",
            1985: "Incandescent Light Bulb",
            1986: "LED Bulb",
            1987: "HID Lamp",
            1988: "Fluorescent Lamp",
            1989: "LED Array",
            1990: "Multi-Color LED Array",
            3136: "Generic: Pulse Oximeter",
            3137: "Fingertip",
            3138: "Wrist Worn",
            3200: "Generic: Weight Scale",
            3264: "Generic",
            3265: "Powered Wheelchair",
            3266: "Mobility Scooter",
            3328: "Generic",
            5184: "Generic: Outdoor Sports Activity",
            5185: "Location Display Device",
            5186: "Location and Navigation Display Device",
            5187: "Location Pod",
            5188: "Location and Navigation Pod",
        }

        try:
            code = struct.unpack("h", data)[0]

            if code in appearance.keys():
                return color_green(appearance[code])
        except Exception:
            pass

        return repr(data)
예제 #6
0
    def _get_char_description(self, char):
        char_name = char.uuid.getCommonName()
        if char_name and char_name != str(char.uuid):
            return "  {} ({})".format(color_green(char_name), char.uuid)

        return "  {}".format(char.uuid)
예제 #7
0
    def _get_appearance(self, data):
        appearance = {
            0: "Unknown",
            64: "Generic Phone",
            128: "Generic Computer",
            192: "Generic Watch",
            193: "Watch: Sports Watch",
            256: "Generic Clock",
            320: "Generic Display",
            384: "Generic Remote Control",
            448: "Generic Eye-glasses",
            512: "Generic Tag",
            576: "Generic Keyring",
            640: "Generic Media Player",
            704: "Generic Barcode Scanner",
            768: "Generic Thermometer",
            769: "Thermometer: Ear",
            832: "Generic Heart rate Sensor",
            833: "Heart Rate Sensor: Heart Rate Belt",
            896: "Generic Blood Pressure",
            897: "Blood Pressure: Arm",
            898: "Blood Pressure: Wrist",
            960: "Human Interface Device (HID)",
            961: "Keyboard",
            962: "Mouse",
            963: "Joystick",
            964: "Gamepad",
            965: "Digitizer Tablet",
            966: "Card Reader",
            967: "Digital Pen",
            968: "Barcode Scanner",
            1024: "Generic Glucose Meter",
            1088: "Generic: Running Walking Sensor",
            1089: "Running Walking Sensor: In-Shoe",
            1090: "Running Walking Sensor: On-Shoe",
            1091: "Running Walking Sensor: On-Hip",
            1152: "Generic: Cycling",
            1153: "Cycling: Cycling Computer",
            1154: "Cycling: Speed Sensor",
            1155: "Cycling: Cadence Sensor",
            1156: "Cycling: Power Sensor",
            1157: "Cycling: Speed and Cadence Sensor",
            1216: "Generic Control Device",
            1217: "Switch",
            1218: "Multi-switch",
            1219: "Button",
            1220: "Slider",
            1221: "Rotary",
            1222: "Touch-panel",
            1280: "Generic Network Device",
            1281: "Access Point",
            1344: "Generic Sensor",
            1345: "Motion Sensor",
            1346: "Air Quality Sensor",
            1347: "Temperature Sensor",
            1348: "Humidity Sensor",
            1349: "Leak Sensor",
            1350: "Smoke Sensor",
            1351: "Occupancy Sensor",
            1352: "Contact Sensor",
            1353: "Carbon Monoxide Sensor",
            1354: "Carbon Dioxide Sensor",
            1355: "Ambient Light Sensor",
            1356: "Energy Sensor",
            1357: "Color Light Sensor",
            1358: "Rain Sensor",
            1359: "Fire Sensor",
            1360: "Wind Sensor",
            1361: "Proximity Sensor",
            1362: "Multi-Sensor",
            1408: "Generic Light Fixtures",
            1409: "Wall Light",
            1410: "Ceiling Light",
            1411: "Floor Light",
            1412: "Cabinet Light",
            1413: "Desk Light",
            1414: "Troffer Light",
            1415: "Pendant Light",
            1416: "In-ground Light",
            1417: "Flood Light",
            1418: "Underwater Light",
            1419: "Bollard with Light",
            1420: "Pathway Light",
            1421: "Garden Light",
            1422: "Pole-top Light",
            1423: "Spotlight",
            1424: "Linear Light",
            1425: "Street Light",
            1426: "Shelves Light",
            1427: "High-bay / Low-bay Light",
            1428: "Emergency Exit Light",
            1472: "Generic Fan",
            1473: "Ceiling Fan",
            1474: "Axial Fan",
            1475: "Exhaust Fan",
            1476: "Pedestal Fan",
            1477: "Desk Fan",
            1478: "Wall Fan",
            1536: "Generic HVAC",
            1537: "Thermostat",
            1600: "Generic Air Conditioning",
            1664: "Generic Humidifier",
            1728: "Generic Heating",
            1729: "Radiator",
            1730: "Boiler",
            1731: "Heat Pump",
            1732: "Infrared Heater",
            1733: "Radiant Panel Heater",
            1734: "Fan Heater",
            1735: "Air Curtain",
            1792: "Generic Access Control",
            1793: "Access Door",
            1794: "Garage Door",
            1795: "Emergency Exit Door",
            1796: "Access Lock",
            1797: "Elevator",
            1798: "Window",
            1799: "Entrance Gate",
            1856: "Generic Motorized Device",
            1857: "Motorized Gate",
            1858: "Awning",
            1859: "Blinds or Shades",
            1860: "Curtains",
            1861: "Screen",
            1920: "Generic Power Device",
            1921: "Power Outlet",
            1922: "Power Strip",
            1923: "Plug",
            1924: "Power Supply",
            1925: "LED Driver",
            1926: "Fluorescent Lamp Gear",
            1927: "HID Lamp Gear",
            1984: "Generic Light Source",
            1985: "Incandescent Light Bulb",
            1986: "LED Bulb",
            1987: "HID Lamp",
            1988: "Fluorescent Lamp",
            1989: "LED Array",
            1990: "Multi-Color LED Array",
            3136: "Generic: Pulse Oximeter",
            3137: "Fingertip",
            3138: "Wrist Worn",
            3200: "Generic: Weight Scale",
            3264: "Generic",
            3265: "Powered Wheelchair",
            3266: "Mobility Scooter",
            3328: "Generic",
            5184: "Generic: Outdoor Sports Activity",
            5185: "Location Display Device",
            5186: "Location and Navigation Display Device",
            5187: "Location Pod",
            5188: "Location and Navigation Pod",
        }

        try:
            code = struct.unpack("h", data)[0]

            if code in appearance.keys():
                return color_green(appearance[code])
        except Exception:
            pass

        return repr(data)
예제 #8
0
    def _get_char_description(self, char):
        char_name = char.uuid.getCommonName()
        if char_name and char_name != str(char.uuid):
            return "  {} ({})".format(color_green(char_name), char.uuid)

        return "  {}".format(char.uuid)