Implement Amp.get_level

Daniele Forsi IU5HKX 2025-05-24 20:51:01 +02:00
rodzic 84b7f4dc3a
commit cfc19fc42b
2 zmienionych plików z 40 dodań i 0 usunięć

Wyświetl plik

@ -135,6 +135,37 @@ typedef struct Amp {
return s;
}
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;
switch (level)
{
case AMP_LEVEL_SWR:
case AMP_LEVEL_PF:
return PyFloat_FromDouble(val.f);
case AMP_LEVEL_NH:
case AMP_LEVEL_PWR_INPUT:
case AMP_LEVEL_PWR_FWD:
case AMP_LEVEL_PWR_REFLECTED:
case AMP_LEVEL_PWR_PEAK:
return PyLong_FromLong(val.i);
case AMP_LEVEL_FAULT:
return PyUnicode_FromString(val.s);
default:
self->error_status = -RIG_EINVAL;
}
return Py_None;
}
AMPMETHOD1GET(get_powerstat, powerstat_t)
};

Wyświetl plik

@ -48,6 +48,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