Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Unified Diff: tools/telemetry/third_party/pyserial/serial/tools/list_ports_osx.py

Issue 1647513002: Delete tools/telemetry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/third_party/pyserial/serial/tools/list_ports_osx.py
diff --git a/tools/telemetry/third_party/pyserial/serial/tools/list_ports_osx.py b/tools/telemetry/third_party/pyserial/serial/tools/list_ports_osx.py
deleted file mode 100755
index c9ed6150f37fcc6aec8ed8d03e4978879466c147..0000000000000000000000000000000000000000
--- a/tools/telemetry/third_party/pyserial/serial/tools/list_ports_osx.py
+++ /dev/null
@@ -1,208 +0,0 @@
-#!/usr/bin/env python
-
-# portable serial port access with python
-#
-# This is a module that gathers a list of serial ports including details on OSX
-#
-# code originally from https://github.com/makerbot/pyserial/tree/master/serial/tools
-# with contributions from cibomahto, dgs3, FarMcKon, tedbrandston
-# and modifications by cliechti
-#
-# this is distributed under a free software license, see license.txt
-
-
-
-# List all of the callout devices in OS/X by querying IOKit.
-
-# See the following for a reference of how to do this:
-# http://developer.apple.com/library/mac/#documentation/DeviceDrivers/Conceptual/WorkingWSerial/WWSerial_SerialDevs/SerialDevices.html#//apple_ref/doc/uid/TP30000384-CIHGEAFD
-
-# More help from darwin_hid.py
-
-# Also see the 'IORegistryExplorer' for an idea of what we are actually searching
-
-import ctypes
-from ctypes import util
-import re
-
-iokit = ctypes.cdll.LoadLibrary(ctypes.util.find_library('IOKit'))
-cf = ctypes.cdll.LoadLibrary(ctypes.util.find_library('CoreFoundation'))
-
-kIOMasterPortDefault = ctypes.c_void_p.in_dll(iokit, "kIOMasterPortDefault")
-kCFAllocatorDefault = ctypes.c_void_p.in_dll(cf, "kCFAllocatorDefault")
-
-kCFStringEncodingMacRoman = 0
-
-iokit.IOServiceMatching.restype = ctypes.c_void_p
-
-iokit.IOServiceGetMatchingServices.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]
-iokit.IOServiceGetMatchingServices.restype = ctypes.c_void_p
-
-iokit.IORegistryEntryGetParentEntry.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]
-
-iokit.IORegistryEntryCreateCFProperty.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p, ctypes.c_uint32]
-iokit.IORegistryEntryCreateCFProperty.restype = ctypes.c_void_p
-
-iokit.IORegistryEntryGetPath.argtypes = [ctypes.c_void_p, ctypes.c_void_p, ctypes.c_void_p]
-iokit.IORegistryEntryGetPath.restype = ctypes.c_void_p
-
-iokit.IORegistryEntryGetName.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
-iokit.IORegistryEntryGetName.restype = ctypes.c_void_p
-
-iokit.IOObjectGetClass.argtypes = [ctypes.c_void_p, ctypes.c_void_p]
-iokit.IOObjectGetClass.restype = ctypes.c_void_p
-
-iokit.IOObjectRelease.argtypes = [ctypes.c_void_p]
-
-
-cf.CFStringCreateWithCString.argtypes = [ctypes.c_void_p, ctypes.c_char_p, ctypes.c_int32]
-cf.CFStringCreateWithCString.restype = ctypes.c_void_p
-
-cf.CFStringGetCStringPtr.argtypes = [ctypes.c_void_p, ctypes.c_uint32]
-cf.CFStringGetCStringPtr.restype = ctypes.c_char_p
-
-cf.CFNumberGetValue.argtypes = [ctypes.c_void_p, ctypes.c_uint32, ctypes.c_void_p]
-cf.CFNumberGetValue.restype = ctypes.c_void_p
-
-def get_string_property(device_t, property):
- """ Search the given device for the specified string property
-
- @param device_t Device to search
- @param property String to search for.
- @return Python string containing the value, or None if not found.
- """
- key = cf.CFStringCreateWithCString(
- kCFAllocatorDefault,
- property.encode("mac_roman"),
- kCFStringEncodingMacRoman
- )
-
- CFContainer = iokit.IORegistryEntryCreateCFProperty(
- device_t,
- key,
- kCFAllocatorDefault,
- 0
- );
-
- output = None
-
- if CFContainer:
- output = cf.CFStringGetCStringPtr(CFContainer, 0)
-
- return output
-
-def get_int_property(device_t, property):
- """ Search the given device for the specified string property
-
- @param device_t Device to search
- @param property String to search for.
- @return Python string containing the value, or None if not found.
- """
- key = cf.CFStringCreateWithCString(
- kCFAllocatorDefault,
- property.encode("mac_roman"),
- kCFStringEncodingMacRoman
- )
-
- CFContainer = iokit.IORegistryEntryCreateCFProperty(
- device_t,
- key,
- kCFAllocatorDefault,
- 0
- );
-
- number = ctypes.c_uint16()
-
- if CFContainer:
- output = cf.CFNumberGetValue(CFContainer, 2, ctypes.byref(number))
-
- return number.value
-
-def IORegistryEntryGetName(device):
- pathname = ctypes.create_string_buffer(100) # TODO: Is this ok?
- iokit.IOObjectGetClass(
- device,
- ctypes.byref(pathname)
- )
-
- return pathname.value
-
-def GetParentDeviceByType(device, parent_type):
- """ Find the first parent of a device that implements the parent_type
- @param IOService Service to inspect
- @return Pointer to the parent type, or None if it was not found.
- """
- # First, try to walk up the IOService tree to find a parent of this device that is a IOUSBDevice.
- while IORegistryEntryGetName(device) != parent_type:
- parent = ctypes.c_void_p()
- response = iokit.IORegistryEntryGetParentEntry(
- device,
- "IOService".encode("mac_roman"),
- ctypes.byref(parent)
- )
-
- # If we weren't able to find a parent for the device, we're done.
- if response != 0:
- return None
-
- device = parent
-
- return device
-
-def GetIOServicesByType(service_type):
- """
- """
- serial_port_iterator = ctypes.c_void_p()
-
- response = iokit.IOServiceGetMatchingServices(
- kIOMasterPortDefault,
- iokit.IOServiceMatching(service_type),
- ctypes.byref(serial_port_iterator)
- )
-
- services = []
- while iokit.IOIteratorIsValid(serial_port_iterator):
- service = iokit.IOIteratorNext(serial_port_iterator)
- if not service:
- break
- services.append(service)
-
- iokit.IOObjectRelease(serial_port_iterator)
-
- return services
-
-def comports():
- # Scan for all iokit serial ports
- services = GetIOServicesByType('IOSerialBSDClient')
-
- ports = []
- for service in services:
- info = []
-
- # First, add the callout device file.
- info.append(get_string_property(service, "IOCalloutDevice"))
-
- # If the serial port is implemented by a
- usb_device = GetParentDeviceByType(service, "IOUSBDevice")
- if usb_device != None:
- info.append(get_string_property(usb_device, "USB Product Name"))
-
- info.append(
- "USB VID:PID=%x:%x SNR=%s"%(
- get_int_property(usb_device, "idVendor"),
- get_int_property(usb_device, "idProduct"),
- get_string_property(usb_device, "USB Serial Number"))
- )
- else:
- info.append('n/a')
- info.append('n/a')
-
- ports.append(info)
-
- return ports
-
-# test
-if __name__ == '__main__':
- for port, desc, hwid in sorted(comports()):
- print "%s: %s [%s]" % (port, desc, hwid)
-

Powered by Google App Engine
This is Rietveld 408576698