Implement Amp.get_level

pull/1726/head
Daniele Forsi IU5HKX 2025-05-24 20:51:01 +02:00
rodzic 4e415f412b
commit f7d38f92ca
2 zmienionych plików z 26 dodań i 0 usunięć

Wyświetl plik

@ -147,4 +147,21 @@ typedef struct Amp {
}
AMPMETHOD1GET(get_powerstat, powerstat_t)
PyObject * get_level(setting_t level)
{
value_t val;
self->error_status = amp_get_level(self->amp, level, &val);
if (self->error_status != RIG_OK)
return Py_None;
if (AMP_LEVEL_IS_FLOAT(level))
return PyFloat_FromDouble(val.f);
else if (AMP_LEVEL_IS_STRING(level))
return PyUnicode_FromString(val.s);
return PyLong_FromLong(val.i);
}
};

Wyświetl plik

@ -92,6 +92,15 @@ class TestClass:
assert amp.set_freq(0) is None
assert amp.set_freq(123.45) is None
assert amp.get_freq() == 123.45
assert amp.get_level(Hamlib.AMP_LEVEL_NONE) is None
level = amp.get_level(Hamlib.AMP_LEVEL_SWR)
assert isinstance(level, float)
level = amp.get_level(Hamlib.AMP_LEVEL_PWR_REFLECTED)
assert isinstance(level, int)
level = amp.get_level(Hamlib.AMP_LEVEL_FAULT)
assert isinstance(level, str)
level = amp.get_level(123456)
assert level is None
assert amp.set_powerstat(Hamlib.RIG_POWER_ON) is None
assert amp.get_powerstat() == Hamlib.RIG_POWER_ON
assert amp.close() is None