Python ctypes.c_uint16() Examples
The following are 30
code examples of ctypes.c_uint16().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
ctypes
, or try the search function
.
Example #1
Source File: test_dtype.py From recruit with Apache License 2.0 | 8 votes |
def test_union_with_struct_packed(self): class Struct(ctypes.Structure): _pack_ = 1 _fields_ = [ ('one', ctypes.c_uint8), ('two', ctypes.c_uint32) ] class Union(ctypes.Union): _fields_ = [ ('a', ctypes.c_uint8), ('b', ctypes.c_uint16), ('c', ctypes.c_uint32), ('d', Struct), ] expected = np.dtype(dict( names=['a', 'b', 'c', 'd'], formats=['u1', np.uint16, np.uint32, [('one', 'u1'), ('two', np.uint32)]], offsets=[0, 0, 0, 0], itemsize=ctypes.sizeof(Union) )) self.check(Union, expected)
Example #2
Source File: test_dtype.py From predictive-maintenance-using-machine-learning with Apache License 2.0 | 6 votes |
def test_union_packed(self): class Struct(ctypes.Structure): _fields_ = [ ('one', ctypes.c_uint8), ('two', ctypes.c_uint32) ] _pack_ = 1 class Union(ctypes.Union): _pack_ = 1 _fields_ = [ ('a', ctypes.c_uint8), ('b', ctypes.c_uint16), ('c', ctypes.c_uint32), ('d', Struct), ] expected = np.dtype(dict( names=['a', 'b', 'c', 'd'], formats=['u1', np.uint16, np.uint32, [('one', 'u1'), ('two', np.uint32)]], offsets=[0, 0, 0, 0], itemsize=ctypes.sizeof(Union) )) self.check(Union, expected)
Example #3
Source File: test_dtype.py From recruit with Apache License 2.0 | 6 votes |
def test_union_packed(self): class Struct(ctypes.Structure): _fields_ = [ ('one', ctypes.c_uint8), ('two', ctypes.c_uint32) ] _pack_ = 1 class Union(ctypes.Union): _pack_ = 1 _fields_ = [ ('a', ctypes.c_uint8), ('b', ctypes.c_uint16), ('c', ctypes.c_uint32), ('d', Struct), ] expected = np.dtype(dict( names=['a', 'b', 'c', 'd'], formats=['u1', np.uint16, np.uint32, [('one', 'u1'), ('two', np.uint32)]], offsets=[0, 0, 0, 0], itemsize=ctypes.sizeof(Union) )) self.check(Union, expected)
Example #4
Source File: gps_time.py From ReachView with GNU General Public License v3.0 | 6 votes |
def unpack(self, msg): """Extract the actual time from the message""" datetime = [] # unpack year byte1 = ctypes.c_uint8(msg[18]) byte2 = ctypes.c_uint8(msg[19]) year = ctypes.c_uint16(byte2.value << 8 | byte1.value).value datetime.append(year) # unpack month, day, hour, minute, second for i in range(20, 25): datetime.append(msg[i]) date = datetime[:3] time = datetime[3:] return date, time
Example #5
Source File: test_ctypeslib.py From recruit with Apache License 2.0 | 6 votes |
def test_padded_union(self): dt = np.dtype(dict( names=['a', 'b'], offsets=[0, 0], formats=[np.uint16, np.uint32], itemsize=5, )) ct = np.ctypeslib.as_ctypes_type(dt) assert_(issubclass(ct, ctypes.Union)) assert_equal(ctypes.sizeof(ct), dt.itemsize) assert_equal(ct._fields_, [ ('a', ctypes.c_uint16), ('b', ctypes.c_uint32), ('', ctypes.c_char * 5), # padding ])
Example #6
Source File: test_dtype.py From recruit with Apache License 2.0 | 6 votes |
def test_large_packed_structure(self): class PackedStructure(ctypes.Structure): _pack_ = 2 _fields_ = [ ('a', ctypes.c_uint8), ('b', ctypes.c_uint16), ('c', ctypes.c_uint8), ('d', ctypes.c_uint16), ('e', ctypes.c_uint32), ('f', ctypes.c_uint32), ('g', ctypes.c_uint8) ] expected = np.dtype(dict( formats=[np.uint8, np.uint16, np.uint8, np.uint16, np.uint32, np.uint32, np.uint8 ], offsets=[0, 2, 4, 6, 8, 12, 16], names=['a', 'b', 'c', 'd', 'e', 'f', 'g'], itemsize=18)) self.check(PackedStructure, expected)
Example #7
Source File: nsf2x.py From nsf2x with GNU General Public License v2.0 | 6 votes |
def __SetDLLReturnTypes(self): self.nnotesdll.NotesInitExtended.restype = ctypes.c_uint16 self.nnotesdll.NotesTerm.restype = ctypes.c_uint16 self.nnotesdll.NSFDbOpen.restype = ctypes.c_uint16 self.nnotesdll.NSFDbClose.restype = ctypes.c_uint16 self.nnotesdll.NSFNoteOpenExt.restype = ctypes.c_uint16 self.nnotesdll.NSFNoteOpenByUNID.restype = ctypes.c_uint16 self.nnotesdll.NSFNoteClose.restype = ctypes.c_uint16 self.nnotesdll.NSFNoteCopy.restype = ctypes.c_uint16 self.nnotesdll.NSFNoteGetInfo.restype = None self.nnotesdll.NSFNoteIsSignedOrSealed.restype = ctypes.c_bool self.nnotesdll.NSFNoteDecrypt.restype = ctypes.c_uint16 self.nnotesdll.NSFItemDelete.restype = ctypes.c_uint16 self.nnotesdll.NSFNoteHasMIMEPart.restype = ctypes.c_bool self.nnotesdll.NSFNoteHasMIME.restype = ctypes.c_bool self.nnotesdll.NSFNoteHasComposite.restype = ctypes.c_bool self.nnotesdll.MMCreateConvControls.restype = ctypes.c_uint16 self.nnotesdll.MMDestroyConvControls.restype = ctypes.c_uint16 self.nnotesdll.MMSetMessageContentEncoding.restype = None self.nnotesdll.MIMEConvertCDParts.restype = ctypes.c_uint16 self.nnotesdll.MIMEConvertMIMEPartCC.restype = ctypes.c_uint16 self.nnotesdll.NSFNoteUpdate.restype = ctypes.c_uint16
Example #8
Source File: gps_time.py From rtkbase with GNU Affero General Public License v3.0 | 6 votes |
def unpack(self, msg): """Extract the actual time from the message""" datetime = [] # unpack year byte1 = ctypes.c_uint8(msg[18]) byte2 = ctypes.c_uint8(msg[19]) year = ctypes.c_uint16(byte2.value << 8 | byte1.value).value datetime.append(year) # unpack month, day, hour, minute, second for i in range(20, 25): datetime.append(msg[i]) date = datetime[:3] time = datetime[3:] return date, time
Example #9
Source File: test_dtype.py From predictive-maintenance-using-machine-learning with Apache License 2.0 | 6 votes |
def test_large_packed_structure(self): class PackedStructure(ctypes.Structure): _pack_ = 2 _fields_ = [ ('a', ctypes.c_uint8), ('b', ctypes.c_uint16), ('c', ctypes.c_uint8), ('d', ctypes.c_uint16), ('e', ctypes.c_uint32), ('f', ctypes.c_uint32), ('g', ctypes.c_uint8) ] expected = np.dtype(dict( formats=[np.uint8, np.uint16, np.uint8, np.uint16, np.uint32, np.uint32, np.uint8 ], offsets=[0, 2, 4, 6, 8, 12, 16], names=['a', 'b', 'c', 'd', 'e', 'f', 'g'], itemsize=18)) self.check(PackedStructure, expected)
Example #10
Source File: test_dtype.py From predictive-maintenance-using-machine-learning with Apache License 2.0 | 6 votes |
def test_union_with_struct_packed(self): class Struct(ctypes.Structure): _pack_ = 1 _fields_ = [ ('one', ctypes.c_uint8), ('two', ctypes.c_uint32) ] class Union(ctypes.Union): _fields_ = [ ('a', ctypes.c_uint8), ('b', ctypes.c_uint16), ('c', ctypes.c_uint32), ('d', Struct), ] expected = np.dtype(dict( names=['a', 'b', 'c', 'd'], formats=['u1', np.uint16, np.uint32, [('one', 'u1'), ('two', np.uint32)]], offsets=[0, 0, 0, 0], itemsize=ctypes.sizeof(Union) )) self.check(Union, expected)
Example #11
Source File: test_ctypeslib.py From predictive-maintenance-using-machine-learning with Apache License 2.0 | 6 votes |
def test_padded_union(self): dt = np.dtype(dict( names=['a', 'b'], offsets=[0, 0], formats=[np.uint16, np.uint32], itemsize=5, )) ct = np.ctypeslib.as_ctypes_type(dt) assert_(issubclass(ct, ctypes.Union)) assert_equal(ctypes.sizeof(ct), dt.itemsize) assert_equal(ct._fields_, [ ('a', ctypes.c_uint16), ('b', ctypes.c_uint32), ('', ctypes.c_char * 5), # padding ])
Example #12
Source File: test_ctypeslib.py From Mastering-Elasticsearch-7.0 with MIT License | 6 votes |
def test_padded_union(self): dt = np.dtype(dict( names=['a', 'b'], offsets=[0, 0], formats=[np.uint16, np.uint32], itemsize=5, )) ct = np.ctypeslib.as_ctypes_type(dt) assert_(issubclass(ct, ctypes.Union)) assert_equal(ctypes.sizeof(ct), dt.itemsize) assert_equal(ct._fields_, [ ('a', ctypes.c_uint16), ('b', ctypes.c_uint32), ('', ctypes.c_char * 5), # padding ])
Example #13
Source File: test_dtype.py From Mastering-Elasticsearch-7.0 with MIT License | 6 votes |
def test_union_with_struct_packed(self): class Struct(ctypes.Structure): _pack_ = 1 _fields_ = [ ('one', ctypes.c_uint8), ('two', ctypes.c_uint32) ] class Union(ctypes.Union): _fields_ = [ ('a', ctypes.c_uint8), ('b', ctypes.c_uint16), ('c', ctypes.c_uint32), ('d', Struct), ] expected = np.dtype(dict( names=['a', 'b', 'c', 'd'], formats=['u1', np.uint16, np.uint32, [('one', 'u1'), ('two', np.uint32)]], offsets=[0, 0, 0, 0], itemsize=ctypes.sizeof(Union) )) self.check(Union, expected)
Example #14
Source File: test_dtype.py From Mastering-Elasticsearch-7.0 with MIT License | 6 votes |
def test_union_packed(self): class Struct(ctypes.Structure): _fields_ = [ ('one', ctypes.c_uint8), ('two', ctypes.c_uint32) ] _pack_ = 1 class Union(ctypes.Union): _pack_ = 1 _fields_ = [ ('a', ctypes.c_uint8), ('b', ctypes.c_uint16), ('c', ctypes.c_uint32), ('d', Struct), ] expected = np.dtype(dict( names=['a', 'b', 'c', 'd'], formats=['u1', np.uint16, np.uint32, [('one', 'u1'), ('two', np.uint32)]], offsets=[0, 0, 0, 0], itemsize=ctypes.sizeof(Union) )) self.check(Union, expected)
Example #15
Source File: test_dtype.py From Mastering-Elasticsearch-7.0 with MIT License | 6 votes |
def test_large_packed_structure(self): class PackedStructure(ctypes.Structure): _pack_ = 2 _fields_ = [ ('a', ctypes.c_uint8), ('b', ctypes.c_uint16), ('c', ctypes.c_uint8), ('d', ctypes.c_uint16), ('e', ctypes.c_uint32), ('f', ctypes.c_uint32), ('g', ctypes.c_uint8) ] expected = np.dtype(dict( formats=[np.uint8, np.uint16, np.uint8, np.uint16, np.uint32, np.uint32, np.uint8 ], offsets=[0, 2, 4, 6, 8, 12, 16], names=['a', 'b', 'c', 'd', 'e', 'f', 'g'], itemsize=18)) self.check(PackedStructure, expected)
Example #16
Source File: isotp.py From scapy with GNU General Public License v2.0 | 6 votes |
def __bind_socket(self, sock, iface, sid, did): socket_id = ctypes.c_int(sock.fileno()) ifr = self.__get_sock_ifreq(sock, iface) if sid > 0x7ff: sid = sid | socket.CAN_EFF_FLAG if did > 0x7ff: did = did | socket.CAN_EFF_FLAG # select the CAN interface and bind the socket to it addr = SOCKADDR_CAN(ctypes.c_uint16(socket.PF_CAN), ifr.ifr_ifindex, ADDR_INFO(TP(ctypes.c_uint32(did), ctypes.c_uint32(sid)))) error = LIBC.bind(socket_id, ctypes.byref(addr), ctypes.sizeof(addr)) if error < 0: warning("Couldn't bind socket")
Example #17
Source File: utils.py From debin with Apache License 2.0 | 6 votes |
def adapt_int_width(n, width, signed=True): n = int(n) if width == 1: result = n elif width == 2: result = n elif width == 4: result = ctypes.c_int8(n).value if signed else ctypes.c_uint8(n).value elif width == 8: result = ctypes.c_int8(n).value if signed else ctypes.c_uint8(n).value elif width == 16: result = ctypes.c_int16(n).value if signed else ctypes.c_uint16(n).value elif width == 32: result = ctypes.c_int32(n).value if signed else ctypes.c_uint32(n).value elif width == 64: result = ctypes.c_int64(n).value if signed else ctypes.c_uint64(n).value else: result = n return result
Example #18
Source File: messages.py From olympe with BSD 3-Clause "New" or "Revised" License | 6 votes |
def _ar_arsdk_encode_type_info(cls, ar_argtype): arsdk_encode_type_info_map = { arsdkparser.ArArgType.I8: (od.ARSDK_ARG_TYPE_I8, "i8", ctypes.c_int8), arsdkparser.ArArgType.U8: (od.ARSDK_ARG_TYPE_U8, "u8", ctypes.c_uint8), arsdkparser.ArArgType.I16: (od.ARSDK_ARG_TYPE_I16, "i16", ctypes.c_int16), arsdkparser.ArArgType.U16: (od.ARSDK_ARG_TYPE_U16, "u16", ctypes.c_uint16), arsdkparser.ArArgType.I32: (od.ARSDK_ARG_TYPE_I32, "i32", ctypes.c_int32), arsdkparser.ArArgType.U32: (od.ARSDK_ARG_TYPE_U32, "u32", ctypes.c_uint32), arsdkparser.ArArgType.I64: (od.ARSDK_ARG_TYPE_I64, "i64", ctypes.c_int64), arsdkparser.ArArgType.U64: (od.ARSDK_ARG_TYPE_U64, "u64", ctypes.c_uint64), arsdkparser.ArArgType.FLOAT: (od.ARSDK_ARG_TYPE_FLOAT, "f32", ctypes.c_float), arsdkparser.ArArgType.DOUBLE: (od.ARSDK_ARG_TYPE_DOUBLE, "f64", ctypes.c_double), arsdkparser.ArArgType.STRING: (od.ARSDK_ARG_TYPE_STRING, "cstr", od.char_pointer_cast), arsdkparser.ArArgType.ENUM: (od.ARSDK_ARG_TYPE_ENUM, "i32", ctypes.c_int32), } return arsdk_encode_type_info_map[ar_argtype]
Example #19
Source File: test_hdrhistogram.py From HdrHistogram_py with Apache License 2.0 | 6 votes |
def test_zz_encode_errors(): with pytest.raises(TypeError): encode() with pytest.raises(TypeError): encode(None, None, 0, 0) src_array = (c_uint16 * ARRAY_SIZE)() src_array_addr = addressof(src_array) dst_len = 9 * ARRAY_SIZE # negative length with pytest.raises(ValueError): encode(src_array_addr, -1, sizeof(c_uint16), 0, dst_len) # dest length too small with pytest.raises(ValueError): encode(src_array_addr, ARRAY_SIZE, 4, 0, 4) # invalid word size with pytest.raises(ValueError): encode(src_array_addr, ARRAY_SIZE, 3, 0, 0) # Null dest ptr with pytest.raises(ValueError): encode(src_array_addr, ARRAY_SIZE, 4, 0, dst_len)
Example #20
Source File: list_ports_osx.py From Jandroid with BSD 3-Clause "New" or "Revised" License | 5 votes |
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
Example #21
Source File: kanaquiz.py From collection with MIT License | 5 votes |
def console (self, color): if sys.platform[:3] == 'win': import ctypes kernel32 = ctypes.windll.LoadLibrary('kernel32.dll') GetStdHandle = kernel32.GetStdHandle SetConsoleTextAttribute = kernel32.SetConsoleTextAttribute GetStdHandle.argtypes = [ ctypes.c_uint32 ] GetStdHandle.restype = ctypes.c_size_t SetConsoleTextAttribute.argtypes = [ ctypes.c_size_t, ctypes.c_uint16 ] SetConsoleTextAttribute.restype = ctypes.c_long handle = GetStdHandle(0xfffffff5) if color < 0: color = 7 result = 0 if (color & 1): result |= 4 if (color & 2): result |= 2 if (color & 4): result |= 1 if (color & 8): result |= 8 if (color & 16): result |= 64 if (color & 32): result |= 32 if (color & 64): result |= 16 if (color & 128): result |= 128 SetConsoleTextAttribute(handle, result) else: if color >= 0: foreground = color & 7 background = (color >> 4) & 7 bold = color & 8 sys.stdout.write("\033[%s3%d;4%dm"%(bold and "01;" or "", foreground, background)) sys.stdout.flush() else: sys.stdout.write("\033[0m") sys.stdout.flush() return 0 # echo text
Example #22
Source File: emake.py From collection with MIT License | 5 votes |
def console (self, color): if not os.isatty(sys.stdout.fileno()): return False if sys.platform[:3] == 'win': try: import ctypes except: return 0 kernel32 = ctypes.windll.LoadLibrary('kernel32.dll') GetStdHandle = kernel32.GetStdHandle SetConsoleTextAttribute = kernel32.SetConsoleTextAttribute GetStdHandle.argtypes = [ ctypes.c_uint32 ] GetStdHandle.restype = ctypes.c_size_t SetConsoleTextAttribute.argtypes = [ ctypes.c_size_t, ctypes.c_uint16 ] SetConsoleTextAttribute.restype = ctypes.c_long handle = GetStdHandle(0xfffffff5) if color < 0: color = 7 result = 0 if (color & 1): result |= 4 if (color & 2): result |= 2 if (color & 4): result |= 1 if (color & 8): result |= 8 if (color & 16): result |= 64 if (color & 32): result |= 32 if (color & 64): result |= 16 if (color & 128): result |= 128 SetConsoleTextAttribute(handle, result) else: if color >= 0: foreground = color & 7 background = (color >> 4) & 7 bold = color & 8 sys.stdout.write("\033[%s3%d;4%dm"%(bold and "01;" or "", foreground, background)) sys.stdout.flush() else: sys.stdout.write("\033[0m") sys.stdout.flush() return 0 #---------------------------------------------------------------------- # dependence: 工程编译,Compile/Link/Build #----------------------------------------------------------------------
Example #23
Source File: test_hdrhistogram.py From HdrHistogram_py with Apache License 2.0 | 5 votes |
def test_zz_encode(): for int_type in [c_uint16, c_uint32, c_uint64]: check_zz_encode(int_type) # Few malicious V2 encodes using ZiZag LEB128/9 bytes # Valid large value overflows smaller size dest counter # This is the largest positive number (zigzag odd numbers are positive)
Example #24
Source File: test_dtype.py From pySINDy with MIT License | 5 votes |
def test_packed_structure(self): class PackedStructure(ctypes.Structure): _pack_ = 1 _fields_ = [ ('a', ctypes.c_uint8), ('b', ctypes.c_uint16) ] expected = np.dtype([ ('a', np.uint8), ('b', np.uint16) ]) self.check(PackedStructure, expected)
Example #25
Source File: test_hdrhistogram.py From HdrHistogram_py with Apache License 2.0 | 5 votes |
def test_zz_decode_errors(): with pytest.raises(TypeError): decode(None, None, 0, 0) dst_array = (c_uint16 * ARRAY_SIZE)() # negative array size with pytest.raises(IndexError): decode(b' ', 0, addressof(dst_array), -1, sizeof(c_uint16)) # invalid word size with pytest.raises(ValueError): decode(b' ', 0, addressof(dst_array), ARRAY_SIZE, 3) # read index negative with pytest.raises(IndexError): decode(b'', -1, addressof(dst_array), ARRAY_SIZE, sizeof(c_uint16)) # Truncated end with pytest.raises(ValueError): decode(TRUNCATED_VALUE, 0, addressof(dst_array), ARRAY_SIZE, sizeof(c_uint16)) # Too large positive value for this counter size with pytest.raises(OverflowError): decode(LARGE_POSITIVE_VALUE, 0, addressof(dst_array), ARRAY_SIZE, sizeof(c_uint16)) # Negative overflow with pytest.raises(OverflowError): decode(LARGE_NEGATIVE_VALUE, 0, addressof(dst_array), ARRAY_SIZE, sizeof(c_uint16)) # zero count skip index out of bounds with pytest.raises(IndexError): decode(INDEX_SKIPPER_VALUE, 0, addressof(dst_array), ARRAY_SIZE, sizeof(c_uint16)) # read index too large => empty results res = decode(b'BUMMER', 8, addressof(dst_array), ARRAY_SIZE, sizeof(c_uint16)) assert res['total'] == 0
Example #26
Source File: list_ports_osx.py From android3dblendermouse with Apache License 2.0 | 5 votes |
def get_int_property(device_type, property, cf_number_type): """ Search the given device for the specified string property @param device_type Device to search @param property String to search for @param cf_number_type CFType number @return Python string containing the value, or None if not found. """ key = cf.CFStringCreateWithCString( kCFAllocatorDefault, property.encode("mac_roman"), kCFStringEncodingMacRoman) CFContainer = iokit.IORegistryEntryCreateCFProperty( device_type, key, kCFAllocatorDefault, 0) if CFContainer: if (cf_number_type == kCFNumberSInt32Type): number = ctypes.c_uint32() elif (cf_number_type == kCFNumberSInt16Type): number = ctypes.c_uint16() cf.CFNumberGetValue(CFContainer, cf_number_type, ctypes.byref(number)) cf.CFRelease(CFContainer) return number.value return None
Example #27
Source File: test_ctypeslib.py From predictive-maintenance-using-machine-learning with Apache License 2.0 | 5 votes |
def test_scalar(self): dt = np.dtype('<u2') ct = np.ctypeslib.as_ctypes_type(dt) assert_equal(ct, ctypes.c_uint16.__ctype_le__) dt = np.dtype('>u2') ct = np.ctypeslib.as_ctypes_type(dt) assert_equal(ct, ctypes.c_uint16.__ctype_be__) dt = np.dtype('u2') ct = np.ctypeslib.as_ctypes_type(dt) assert_equal(ct, ctypes.c_uint16)
Example #28
Source File: test_ctypeslib.py From predictive-maintenance-using-machine-learning with Apache License 2.0 | 5 votes |
def test_structure(self): dt = np.dtype([ ('a', np.uint16), ('b', np.uint32), ]) ct = np.ctypeslib.as_ctypes_type(dt) assert_(issubclass(ct, ctypes.Structure)) assert_equal(ctypes.sizeof(ct), dt.itemsize) assert_equal(ct._fields_, [ ('a', ctypes.c_uint16), ('b', ctypes.c_uint32), ])
Example #29
Source File: list_ports_osx.py From AstroBox with GNU Affero General Public License v3.0 | 5 votes |
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
Example #30
Source File: list_ports_osx.py From Jandroid with BSD 3-Clause "New" or "Revised" License | 5 votes |
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