def get_single(self): result = usbtc08.usb_tc08_get_single(self.handle, self.channelbuffer, self.flags, self.unit) if result == 0: err_code = usbtc08.usb_tc08_get_last_error(self.handle) if err_code == 16: # try again time.sleep(1.) result = usbtc08.usb_tc08_get_single(self.handle, self.channelbuffer, self.flags, self.unit) if result == 0: raise usbtc08_error( err_code, 'Take single measurement of all channels.') else: raise usbtc08_error( err_code, 'Take single measurement of all channels.') else: if self.debugMode: print('\tTake a single measurement of all channels.') for i in range(0, 9): print('\t\tChannel %i: %4.2f %s' % (i, self.channelbuffer[i], self.unit_text)) if self.debugMode: print('\tFlags: %s' % "{0:b}".format(self.flags[0]).zfill(9))
def stop(self): result = usbtc08.usb_tc08_stop(self.handle) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Stop sampling.') else: if DEBUG: print 'Stopped sampling.'
def run(self, interval): result = usbtc08.usb_tc08_run(self.handle, interval) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Issue run command.') else: if DEBUG: print 'Started sampling with %i ms interval.' % interval
def close_unit(self): result = usbtc08.usb_tc08_close_unit(self.handle) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Closing communication.') else: if DEBUG: print 'Unit closed successfully.'
def set_channel(self, channel, tc): result = usbtc08.usb_tc08_set_channel(self.handle, channel, ord(tc)) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Setting channel.') else: if DEBUG: print 'Set channel %i to %s-type thermocouple.' % (channel, tc)
def disable_channel(self, channel): result = usbtc08.usb_tc08_set_channel(self.handle, channel, ord(' ')) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Disabling channel.') else: if DEBUG: print 'Disabled channel %i.' % (channel)
def disable_channel(self, channel): result = usbtc08.usb_tc08_set_channel(self.handle, channel, ord(' ')) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Disabling channel.') else: if self.debugMode: cprint('\tDisabled channel %i.' % (channel), 'yellow')
def close_self(self): result = usbtc08.usb_tc08_close_unit(self.handle) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Closing communication.') else: if self.debugMode: cprint('\tself.unit closed successfully.', 'green')
def stop(self): result = usbtc08.usb_tc08_stop(self.handle) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Stop sampling.') else: if self.debugMode: cprint('\tStopped sampling.', 'green')
def run(self, interval): result = usbtc08.usb_tc08_run(self.handle, interval) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Issue run command.') else: if self.debugMode: cprint('\tStarted sampling with %i ms interval.' % interval, 'green')
def get_minimum_interval_ms(self): result = usbtc08.usb_tc08_get_minimum_interval_ms(self.handle) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Read the minimum sample interval.') else: interval = result if DEBUG: print 'Minimum sampling interval is %i ms.' % interval return interval
def set_channel(self, channel, tc): result = usbtc08.usb_tc08_set_channel(self.handle, channel, ord(tc)) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Setting channel.') else: if self.debugMode: cprint( '\tSet channel %i to %s-type thermocouple.' % (channel, tc), 'green')
def get_single(self): result = usbtc08.usb_tc08_get_single(self.handle, self.channelbuffer, self.flags, self.unit) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Take single measurement of all channels.') else: if DEBUG: print 'Take a single measurement of all channels.' for i in range(0, 9): print 'Channel %i: %4.2f %s' % (i, self.channelbuffer[i], self.unit_text) if DEBUG: print 'Flags: %s' % "{0:b}".format(self.flags[0]).zfill(9)
def open_unit_async(self): result = usbtc08.usb_tc08_open_unit_async() if result == 1: if DEBUG: print 'Started enumerating USB TC-08 units.' elif result == 0: if DEBUG: print 'ERROR: No more USB TC-08 units found.' sys.exit(1) elif result == -1: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(0), 'Failed to start enumerating.')
def get_minimum_interval_ms(self): result = usbtc08.usb_tc08_get_minimum_interval_ms(self.handle) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Read the minimum sample interval.') else: interval = result if self.debugMode: cprint('\tMinimum sampling interval is %i ms.' % interval, 'green') return interval
def get_unit_info(self): result = usbtc08.usb_tc08_get_unit_info(self.handle, self.info) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Reading unit info.') else: if DEBUG: print 'Received information about the USB TC-08 unit.' if DEBUG: print 'Driver version: %s' % ''.join(chr(i) for i in self.info.DriverVersion if i in range(32, 127)) print 'Picopp version: %i' % self.info.PicoppVersion print 'Hardware version: %i' % self.info.HardwareVersion print 'Variant: %i' % self.info.Variant print 'Serial number: %s' % ''.join(chr(i) for i in self.info.szSerial if i in range(32, 127)) print 'Calibration date: %s' % ''.join(chr(i) for i in self.info.szCalDate if i in range(32, 127))
def open_unit_async(self): result = usbtc08.usb_tc08_open_unit_async() if result == 1: if self.debugMode: cprint('\tStarted enumerating USB TC-08 self.units.', 'green') elif result == 0: if self.debugMode: cprint('\tERROR: No more USB TC-08 self.units found.', 'red', attrs=['bold']) sys.exit(1) elif result == -1: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(0), 'Failed to start enumerating.')
def open_unit_progress(self): result, self.handle, progress = usbtc08.usb_tc08_open_unit_progress() while result == usbtc08.USBTC08_PROGRESS_PENDING: time.sleep(0.1); result, self.handle, progress = usbtc08.usb_tc08_open_unit_progress() if result == usbtc08.USBTC08_PROGRESS_FAIL: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(0), 'Waiting completion of enumeration.') elif self.handle <= 0: if DEBUG: print 'ERROR: No TC-08 units detected.' sys.exit(1) elif result == usbtc08.USBTC08_PROGRESS_COMPLETE: if DEBUG: print 'Completed enumeration.'
def set_mains(self, freq): if freq == 60: result = usbtc08.usb_tc08_set_mains(self.handle, 1) elif freq == 50: result = usbtc08.usb_tc08_set_mains(self.handle, 0) else: if DEBUG: print 'ERROR: Incorrect mains frequency. Default to filter 50 Hz.' result = usbtc08.usb_tc08_set_mains(self.handle, 0) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Setting mains filter.') else: if DEBUG: print 'Set USB TC-08 unit to reject %i Hz.' % freq
def get_temp_deskew(self, channel): result = usbtc08.usb_tc08_get_temp_deskew(self.handle, self.tempbuffer, self.timebuffer, usbtc08.USBTC08_MAX_SAMPLE_BUFFER, self.flags, channel, self.unit, 0) samples = 0 if result == -1: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Reading deskewed data of channel.') elif result == 0: if DEBUG: print 'No samples available.' else: samples = result if DEBUG: print 'Read %i samples to the buffer.' % samples if DEBUG: for i in range(0, samples): print '%i %4.2f' % (self.timebuffer[i], self.tempbuffer[i]) print 'Flags: %s' % "{0:b}".format(self.flags[0]).zfill(9) return samples
def set_mains(self, freq): if freq == 60: result = usbtc08.usb_tc08_set_mains(self.handle, 1) elif freq == 50: result = usbtc08.usb_tc08_set_mains(self.handle, 0) else: if self.debugMode: cprint( '\tERROR: Incorrect mains frequency. Default to filter 50 Hz.', 'red') result = usbtc08.usb_tc08_set_mains(self.handle, 0) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Setting mains filter.') else: if self.debugMode: cprint('\tSet USB TC-08 self.unit to reject %i Hz.' % freq, 'green')
def open_unit_progress(self): result, self.handle, progress = usbtc08.usb_tc08_open_unit_progress() while result == usbtc08.USBTC08_PROGRESS_PENDING: time.sleep(0.1) result, self.handle, progress = usbtc08.usb_tc08_open_unit_progress( ) if result == usbtc08.USBTC08_PROGRESS_FAIL: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(0), 'Waiting completion of enumeration.') elif self.handle <= 0: if self.debugMode: cprint('\tERROR: No TC-08 self.units detected.', 'red', attrs=['bold']) sys.exit(1) elif result == usbtc08.USBTC08_PROGRESS_COMPLETE: if self.debugMode: cprint('\tCompleted enumeration.', 'green')
def get_unit_info2(self): result = usbtc08.usb_tc08_get_unit_info2(self.handle, self.charbuffer, usbtc08.USBTC08_MAX_VERSION_CHARS, usbtc08.USBTC08LINE_DRIVER_VERSION) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Reading driver version.') else: length = result self.info_driver = ''.join(chr(self.charbuffer[i]) for i in range(0, length) if self.charbuffer[i] in range(32, 127)) if DEBUG: print 'Driver version: %s' % self.info_driver result = usbtc08.usb_tc08_get_unit_info2(self.handle, self.charbuffer, usbtc08.USBTC08_MAX_VERSION_CHARS, usbtc08.USBTC08LINE_KERNEL_DRIVER_VERSION) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Reading kernel driver version.') else: length = result self.info_kernel = ''.join(chr(self.charbuffer[i]) for i in range(0, length) if self.charbuffer[i] in range(32, 127)) if DEBUG: print 'Kernel driver version: %s' % self.info_kernel result = usbtc08.usb_tc08_get_unit_info2(self.handle, self.charbuffer, usbtc08.USBTC08_MAX_VERSION_CHARS, usbtc08.USBTC08LINE_HARDWARE_VERSION) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Reading hardware version.') else: length = result self.info_hardware = ''.join(chr(self.charbuffer[i]) for i in range(0, length) if self.charbuffer[i] in range(32, 127)) if DEBUG: print 'Hardware version: %s' % self.info_hardware result = usbtc08.usb_tc08_get_unit_info2(self.handle, self.charbuffer, usbtc08.USBTC08_MAX_INFO_CHARS, usbtc08.USBTC08LINE_VARIANT_INFO) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Reading variant info.') else: length = result self.info_variant = ''.join(chr(self.charbuffer[i]) for i in range(0, length) if self.charbuffer[i] in range(32, 127)) if DEBUG: print 'Variant info: %s' % self.info_variant result = usbtc08.usb_tc08_get_unit_info2(self.handle, self.charbuffer, usbtc08.USBTC08_MAX_SERIAL_CHARS, usbtc08.USBTC08LINE_BATCH_AND_SERIAL) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Reading batch and serial.') else: length = result self.info_serial = ''.join(chr(self.charbuffer[i]) for i in range(0, length) if self.charbuffer[i] in range(32, 127)) if DEBUG: print 'Batch and serial: %s' % self.info_serial result = usbtc08.usb_tc08_get_unit_info2(self.handle, self.charbuffer, usbtc08.USBTC08_MAX_DATE_CHARS, usbtc08.USBTC08LINE_CAL_DATE) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Reading calibration date.') else: length = result self.info_calibration = ''.join(chr(self.charbuffer[i]) for i in range(0, length) if self.charbuffer[i] in range(32, 127)) if DEBUG: print 'Calibration date: %s' % self.info_calibration
def get_unit_info(self): result = usbtc08.usb_tc08_get_unit_info(self.handle, self.info) if result == 0: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Reading self.unit info.') else: if self.debugMode: cprint('\tReceived information about the USB TC-08 self.unit.', 'green') if self.debugMode: print('\tDriver version: %s' % ''.join( chr(i) for i in self.info.DriverVersion if i in range(32, 127))) print('\tPicopp version: %i' % self.info.PicoppVersion) print('\tHardware version: %i' % self.info.HardwareVersion) print('\tVariant: %i' % self.info.Variant) print('\tSerial number: %s' % ''.join( chr(i) for i in self.info.szSerial if i in range(32, 127))) print('\tCalibration date: %s' % ''.join( chr(i) for i in self.info.szCalDate if i in range(32, 127)))
def get_temp(self, channel): result = usbtc08.usb_tc08_get_temp(self.handle, self.tempbuffer, self.timebuffer, usbtc08.USBTC08_MAX_SAMPLE_BUFFER, self.flags, channel, self.unit, 0) cprint('\tReceived result: %i' % result, 'green') samples = 0 if result == -1: raise usbtc08_error(usbtc08.usb_tc08_get_last_error(self.handle), 'Reading data of channel.') elif result == 0: if self.debugMode: cprint('\tNo samples available.', 'yellow') else: samples = result if self.debugMode: cprint('\tRead %i samples to the buffer.' % samples, 'green') if self.debugMode: for i in range(0, samples): print('\t\t%i %4.2f' % (self.timebuffer[i], self.tempbuffer[i])) print('\tFlags: %s' % "{0:b}".format(self.flags[0]).zfill(9)) return samples