def test_return_string(self): value = ctypes.create_string_buffer(b"Hello", 20) value = (ctypes.c_char * 20)() ret = self.driver.lib.write_in_charp(value, len(value)) value = value.value.decode('ascii') self.assertEqual((ret, value, type(value)), (1, '28G11AC10T32', str)) ret, value = self.driver.lib.write_in_charp(RetStr(20), 20) self.assertEqual((ret, value, type(value)), (1, '28G11AC10T32', str)) ret, value = self.driver.lib.write_in_charp(*RetStr(20)) self.assertEqual((ret, value, type(value)), (1, '28G11AC10T32', str))
def _return_handler(self, func_name, ret_value): if ret_value < 0: msg = 'Cannot obtain error message' if not func_name == 'DAQmxGetExtendedErrorInfo': err, msg = self.lib.DAQmxGetExtendedErrorInfo( *RetStr(default_buf_size * 100)) if err < 0: msg = 'Cannot obtain error message' raise InstrumentError('In {}: {} ({})'.format( func_name, msg, ret_value)) return ret_value
def take_image(self): """Image acquisition. """ self.queuebuffer(self.userbuffer, self.imagesizebytes) self.command("AcquisitionStart") self.waitbuffer(*RetStr(1)) self.command("AcquisitionStop") self.flush() image = np.fromstring(self.userbuffer, dtype=np.uint32, count=self.length) image.shape = (self.height, self.width) return image
def take_image(self, numbuff, numframes): """Image acquisition with circular buffer. """ imagesizebytes = self.getint("ImageSizeBytes") userbuffer = [] for i in range(numbuff): userbuffer.append(ct.create_string_buffer(' ' * imagesizebytes)) self.queuebuffer(userbuffer, imagesizebytes) self.command("AcquisitionStart") for i in range(numbuff): self.waitbuffer(*RetStr(1)) self.queuebuffer(userbuffer[i], imagesizebytes) self.command("AcquisitionStop") self.flush() image = np.fromstring(userbuffer[0], dtype=np.uint32, count=self.length) image.shape = (self.height, self.width) return image
def device_names(self): """Indicates the names of all devices installed in the system. """ err, buf = self.lib.DAQmxGetSysDevNames(*RetStr(default_buf_size)) names = tuple(n.strip() for n in buf.split(',') if n.strip()) return names