From c6c976a7ca152773af38771729b2e8bbf50af51c Mon Sep 17 00:00:00 2001 From: Daniele Forsi IU5HKX Date: Sun, 25 May 2025 22:15:09 +0200 Subject: [PATCH] Implement Rot.get_level() --- bindings/python/test_rot.py | 2 ++ bindings/rotator.swg | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/bindings/python/test_rot.py b/bindings/python/test_rot.py index 0cfb14d07..9508668c9 100755 --- a/bindings/python/test_rot.py +++ b/bindings/python/test_rot.py @@ -49,6 +49,8 @@ class TestClass: assert rot.set_position(0.0, 0.0) is None assert rot.get_position() == [0.0, 0.0] assert rot.move(0, 0) is None + assert rot.get_level(Hamlib.ROT_LEVEL_NONE) is None + assert rot.get_level(Hamlib.ROT_LEVEL_SPEED) == 0 assert rot.stop() is None assert rot.park() is None assert rot.reset(Hamlib.ROT_RESET_ALL) is None diff --git a/bindings/rotator.swg b/bindings/rotator.swg index bbf2a637a..25949ba9d 100644 --- a/bindings/rotator.swg +++ b/bindings/rotator.swg @@ -131,6 +131,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, .. */ };