]> sigrok.org Git - sigrok-meter.git/blobdiff - sigrok-meter
doc: update IRC reference to Libera.Chat
[sigrok-meter.git] / sigrok-meter
index 7ded2865cda5d5defaf3d1be2e4f137555ad3176..b2f60070d5442d284d76a58aa74b814599e458f6 100755 (executable)
 ## GNU General Public License for more details.
 ##
 ## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+## along with this program; if not, see <http://www.gnu.org/licenses/>.
 ##
 
 import argparse
-import sigrok.core as sr
 import sys
 import textwrap
 import signal
 
 default_drivers = [('demo:analog_channels=4', 'samplerate=4')]
-default_loglevel = 2
 
 def parse_cli():
     parser = argparse.ArgumentParser(
@@ -63,7 +60,7 @@ def parse_cli():
         help='Specify device configuration options')
     parser.add_argument('-l', '--loglevel',
         type=int,
-        default=default_loglevel,
+        default=None,
         help='Set loglevel (5 is most verbose)')
     parser.add_argument('--pyside',
         action='store_true',
@@ -96,20 +93,32 @@ if __name__ == '__main__':
     qtcompat.load_modules(args.pyside)
     QtCore = qtcompat.QtCore
     QtGui = qtcompat.QtGui
-    import mainwindow
-
-    context = sr.Context_create()
-    try:
-        loglevel = sr.LogLevel.get(args.loglevel)
-        context.log_level = loglevel
-    except:
-        sys.exit('Error: invalid log level.')
 
     app = QtGui.QApplication([])
 
+    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)
+
+    # Initialize modules that need a QApplication to exist.
+    import settings
+    settings.init()
     import icons
     icons.load_icons()
 
+    context = sr.Context_create()
+
+    if args.loglevel != None:
+        try:
+            loglevel = sr.LogLevel.get(args.loglevel)
+            settings.logging.level.setValue(loglevel)
+        except:
+            sys.exit('Error: invalid log level.')
+
+    import mainwindow
     s = mainwindow.MainWindow(context, args.drivers)
     s.show()