diff --git a/bindings/python/test_rot.py b/bindings/python/test_rot.py index 3f148aaa8..b48a43e40 100644 --- a/bindings/python/test_rot.py +++ b/bindings/python/test_rot.py @@ -60,6 +60,8 @@ class TestClass: value = Hamlib.value_t() value.i = 3 assert rot.set_level(Hamlib.ROT_LEVEL_SPEED, value) is None + assert rot.get_level(Hamlib.ROT_LEVEL_NONE) is None + assert rot.get_level(Hamlib.ROT_LEVEL_SPEED) == 3 with raises(AttributeError): assert rot.status() is None assert rot.stop() is None diff --git a/bindings/rotator.swg b/bindings/rotator.swg index 53c7d2a0d..58160e55f 100644 --- a/bindings/rotator.swg +++ b/bindings/rotator.swg @@ -138,6 +138,20 @@ typedef struct Rot { return s; } + PyObject * get_level(setting_t level) + { + value_t val; + + self->error_status = rot_get_level(self->rot, level, &val); + if (self->error_status != RIG_OK) + return Py_None; + + if (ROT_LEVEL_IS_FLOAT(level)) + return PyFloat_FromDouble(val.f); + + return PyLong_FromLong(val.i); + } + /* TODO: get_conf_list, .. */ };