- '''.format(self.thread.sr_pkg_version(), self.thread.sr_lib_version()))
-
- QtGui.QMessageBox.about(self, 'About sigrok-meter', text)
-
- def format_unit(self, u):
- units = {
- sr.Unit.VOLT: 'V',
- sr.Unit.AMPERE: 'A',
- sr.Unit.OHM: u'\u03A9',
- sr.Unit.FARAD: 'F',
- sr.Unit.KELVIN: 'K',
- sr.Unit.CELSIUS: u'\u00B0C',
- sr.Unit.FAHRENHEIT: u'\u00B0F',
- sr.Unit.HERTZ: 'Hz',
- sr.Unit.PERCENTAGE: '%',
- # sr.Unit.BOOLEAN
- sr.Unit.SECOND: 's',
- sr.Unit.SIEMENS: 'S',
- sr.Unit.DECIBEL_MW: 'dBu',
- sr.Unit.DECIBEL_VOLT: 'dBV',
- # sr.Unit.UNITLESS
- sr.Unit.DECIBEL_SPL: 'dB',
- # sr.Unit.CONCENTRATION
- sr.Unit.REVOLUTIONS_PER_MINUTE: 'rpm',
- sr.Unit.VOLT_AMPERE: 'VA',
- sr.Unit.WATT: 'W',
- sr.Unit.WATT_HOUR: 'Wh',
- sr.Unit.METER_SECOND: 'm/s',
- sr.Unit.HECTOPASCAL: 'hPa',
- sr.Unit.HUMIDITY_293K: '%rF',
- sr.Unit.DEGREE: u'\u00B0',
- sr.Unit.HENRY: 'H'
- }
-
- return units.get(u, '')
-
- def format_mqflags(self, mqflags):
- if sr.QuantityFlag.AC in mqflags:
- s = 'AC'
- elif sr.QuantityFlag.DC in mqflags:
- s = 'DC'
- else:
- s = ''
-
- return s
-
- def format_mag(self, mag):
- if mag == self.inf:
- return u'\u221E'
- return '{:f}'.format(mag)
-
- def update(self, data):
- '''Updates the labels with new measurement values.'''
-
- device, mag, unit, mqflags = data
+ app = QtGui.QApplication([])
- unit_str = self.format_unit(unit)
- mqflags_str = self.format_mqflags(mqflags)
- mag_str = self.format_mag(mag)
- value = ' '.join([mag_str, unit_str, mqflags_str])
+ try:
+ import sigrok.core as sr
+ except Exception as e:
+ QtGui.QMessageBox.critical(None, 'Error starting sigrok-meter',
+ 'Unable to use the sigrok Python bindings:\n{}.'.format(e))
+ sys.exit(1)
- n = datetime.datetime.now().time()
- now = '{:02}:{:02}:{:02}.{:03}'.format(
- n.hour, n.minute, n.second, n.microsecond / 1000)
+ # Initialize modules that need a QApplication to exist.
+ import settings
+ settings.init()
+ import icons
+ icons.load_icons()
- self.lblValue.setText(value)
- self.lblDevName.setText(device)
- self.lblTime.setText(now)
+ context = sr.Context_create()
-if __name__ == '__main__':
- thread = SamplingThread(args['drivers'], args['loglevel'])
+ if args.loglevel != None:
+ try:
+ loglevel = sr.LogLevel.get(args.loglevel)
+ settings.logging.level.setValue(loglevel)
+ except:
+ sys.exit('Error: invalid log level.')
- app = QtGui.QApplication([])
- s = SigrokMeter(thread)
+ import mainwindow
+ s = mainwindow.MainWindow(context, args.drivers)
s.show()
- r = app.exec_()
- thread.stop()
- sys.exit(r)
+ sys.exit(app.exec_())