]> sigrok.org Git - libsigrok.git/blobdiff - bindings/python/sigrok/core/classes.py
python: Add a Log class to control libsigrok logging.
[libsigrok.git] / bindings / python / sigrok / core / classes.py
index ba52e7830591ba1a3f272af51e4ff15d69e8c915..89049cc4a15b94f993209fd6e196ff84260ad632 100644 (file)
@@ -23,7 +23,7 @@ from .lowlevel import *
 from . import lowlevel
 import itertools
 
-__all__ = ['Error', 'Context', 'Driver', 'Device', 'Session', 'Packet']
+__all__ = ['Error', 'Context', 'Driver', 'Device', 'Session', 'Packet', 'Log']
 
 class Error(Exception):
 
@@ -152,7 +152,7 @@ class Device(object):
         try:
             check(sr_config_get(self.driver.struct, key, data, self.struct))
         except Error as error:
-            if error.errno == SR_ERR_ARG:
+            if error.errno == SR_ERR_NA:
                 raise NotImplementedError(
                     "Device does not implement %s" % name)
             else:
@@ -275,6 +275,31 @@ class Analog(object):
             self._data = float_array.frompointer(self.struct.data)
         return self._data
 
+class Log(object):
+
+    NONE = SR_LOG_NONE
+    ERR = SR_LOG_ERR
+    WARN = SR_LOG_WARN
+    INFO = SR_LOG_INFO
+    DBG = SR_LOG_DBG
+    SPEW = SR_LOG_SPEW
+
+    @property
+    def level(self):
+        return sr_log_loglevel_get()
+
+    @level.setter
+    def level(self, l):
+        check(sr_log_loglevel_set(l))
+
+    @property
+    def domain(self):
+        return sr_log_logdomain_get()
+
+    @domain.setter
+    def domain(self, d):
+        check(sr_log_logdomain_set(d))
+
 for symbol_name in dir(lowlevel):
     prefix = 'SR_DF_'
     if symbol_name.startswith(prefix):