kopia lustrzana https://github.com/Hamlib/Hamlib
Merge 1eeb59e50c
into 623ff17f61
commit
4bb9069611
|
@ -0,0 +1,30 @@
|
|||
"""Tests of the Python bindings for Hamlib
|
||||
"""
|
||||
import pytest
|
||||
|
||||
def pytest_addoption(parser):
|
||||
# using long options only because short options conflict with pytest's
|
||||
parser.addoption('--model', type=int, default=1,
|
||||
metavar='ID', help='select radio model number')
|
||||
parser.addoption('--rig-file', default=None,
|
||||
metavar='DEVICE', help='set device of the radio to operate on')
|
||||
parser.addoption('--serial-speed', type=int, default=0,
|
||||
metavar='BAUD', help='set serial speed of the serial port')
|
||||
parser.addoption('--hamlib-verbose', action='count', default=0,
|
||||
help='set verbose mode, cumulative')
|
||||
|
||||
@pytest.fixture
|
||||
def model(request):
|
||||
return request.config.getoption("--model")
|
||||
|
||||
@pytest.fixture
|
||||
def rig_file(request):
|
||||
return request.config.getoption("--rig-file")
|
||||
|
||||
@pytest.fixture
|
||||
def serial_speed(request):
|
||||
return request.config.getoption("--serial-speed")
|
||||
|
||||
@pytest.fixture
|
||||
def hamlib_verbose(request):
|
||||
return request.config.getoption("--hamlib-verbose")
|
|
@ -5,20 +5,18 @@ Running this script directly will use the installed bindings.
|
|||
For an in-tree run use "make check", or set PYTHONPATH to point to
|
||||
the directories containing Hamlib.py and _Hamlib.so.
|
||||
"""
|
||||
from pytest import raises
|
||||
import pytest
|
||||
|
||||
import Hamlib
|
||||
|
||||
Hamlib.rig_set_debug(Hamlib.RIG_DEBUG_NONE)
|
||||
|
||||
RIG_MODEL = Hamlib.RIG_MODEL_DUMMY
|
||||
|
||||
class TestClass:
|
||||
"""Container class for tests"""
|
||||
|
||||
def test_without_open(self):
|
||||
def test_without_open(self, model):
|
||||
"""Call all the methods that do not depend on open()"""
|
||||
rig = Hamlib.Rig(RIG_MODEL)
|
||||
rig = Hamlib.Rig(model)
|
||||
assert rig is not None
|
||||
assert rig.do_exception == 0
|
||||
assert rig.error_status == Hamlib.RIG_OK
|
||||
|
@ -35,34 +33,42 @@ class TestClass:
|
|||
assert isinstance(conf, str)
|
||||
assert rig.set_conf("mcfg", "foo") is None
|
||||
conf = rig.get_conf("mcfg")
|
||||
assert conf == "foo"
|
||||
if model == Hamlib.RIG_MODEL_DUMMY:
|
||||
assert conf == "foo"
|
||||
else:
|
||||
assert conf == ""
|
||||
|
||||
assert rig.token_lookup("") is None
|
||||
|
||||
|
||||
def test_with_open(self):
|
||||
def test_with_open(self, model, rig_file, serial_speed):
|
||||
"""Call all the methods that depend on open()"""
|
||||
rig = Hamlib.Rig(RIG_MODEL)
|
||||
rig = Hamlib.Rig(model)
|
||||
assert rig is not None
|
||||
|
||||
assert rig.state.comm_state == 0
|
||||
rig.state.rigport.pathname = rig_file # FIXME should use rig.set_conf(Hamlib.TOK_PATHNAME, rig_file)
|
||||
rig.state.rigport.parm.serial.rate = serial_speed # FIXME should use rig.set_conf(TOK_SERIAL_SPEED, serial_speed)
|
||||
assert rig.open() is None
|
||||
assert rig.state.comm_state == 1
|
||||
info = rig.get_info()
|
||||
assert isinstance(info, str)
|
||||
|
||||
assert rig.set_split_vfo(-600000, Hamlib.RIG_VFO_A) is None
|
||||
assert rig.get_split_vfo(Hamlib.RIG_VFO_TX) == [-600000, 1]
|
||||
assert rig.set_split_vfo(5000000, Hamlib.RIG_VFO_B) is None
|
||||
assert rig.get_split_vfo(Hamlib.RIG_VFO_TX) == [5000000, 2]
|
||||
assert rig.set_split_vfo(5000000, Hamlib.RIG_VFO_CURR) is None
|
||||
assert rig.get_split_vfo() == [5000000, 1]
|
||||
assert rig.get_split_vfo(Hamlib.RIG_VFO_CURR) == [5000000, 1]
|
||||
assert rig.set_split_vfo(Hamlib.RIG_SPLIT_OFF, Hamlib.RIG_VFO_A) is None
|
||||
assert rig.get_split_vfo(Hamlib.RIG_VFO_TX) == [Hamlib.RIG_SPLIT_OFF, Hamlib.RIG_VFO_A]
|
||||
assert rig.set_split_vfo(Hamlib.RIG_SPLIT_ON, Hamlib.RIG_VFO_B) is None
|
||||
assert rig.get_split_vfo(Hamlib.RIG_VFO_TX) == [Hamlib.RIG_SPLIT_ON, Hamlib.RIG_VFO_B]
|
||||
assert rig.set_split_vfo(Hamlib.RIG_SPLIT_OFF, Hamlib.RIG_VFO_CURR) is None
|
||||
assert rig.get_split_vfo() == [Hamlib.RIG_SPLIT_OFF, Hamlib.RIG_VFO_B]
|
||||
assert rig.get_split_vfo(Hamlib.RIG_VFO_CURR) == [Hamlib.RIG_SPLIT_OFF, Hamlib.RIG_VFO_B]
|
||||
|
||||
# FIXME should use a RIG_ANT_* constant but it isn't available in the bindings
|
||||
# FIXME should use a RIG_ANT_* constant but they aren't available in the bindings
|
||||
RIG_ANT_1 = 1<<0
|
||||
RIG_ANT_UNKNOWN = 1<<30
|
||||
assert rig.get_ant(Hamlib.RIG_VFO_A) == [RIG_ANT_UNKNOWN, RIG_ANT_UNKNOWN, Hamlib.RIG_VFO_A, 0]
|
||||
assert rig.get_ant(Hamlib.RIG_VFO_A, Hamlib.RIG_VFO_A) == [RIG_ANT_UNKNOWN, RIG_ANT_UNKNOWN, Hamlib.RIG_VFO_A, 0]
|
||||
RIG_ANT_CURR = 1<<31
|
||||
expected = [RIG_ANT_UNKNOWN, RIG_ANT_UNKNOWN, RIG_ANT_1, 0]
|
||||
assert rig.get_ant(RIG_ANT_CURR) == expected
|
||||
assert rig.get_ant(RIG_ANT_CURR, Hamlib.RIG_VFO_A) == expected
|
||||
|
||||
assert rig.close() is None
|
||||
assert rig.state.comm_state == 0
|
||||
|
@ -70,9 +76,10 @@ class TestClass:
|
|||
assert info is None
|
||||
|
||||
|
||||
def test_misc(self):
|
||||
@pytest.mark.skipif('config.getoption("model") != Hamlib.RIG_MODEL_DUMMY')
|
||||
def test_misc(self, model):
|
||||
"""Just call all the methods"""
|
||||
rig = Hamlib.Rig(RIG_MODEL)
|
||||
rig = Hamlib.Rig(model)
|
||||
assert rig is not None
|
||||
|
||||
assert rig.close() is None
|
||||
|
@ -147,33 +154,43 @@ class TestClass:
|
|||
assert rig.lookup_mem_caps(0) is None
|
||||
assert isinstance(rig.mem_count(), int)
|
||||
assert rig.open() is None
|
||||
assert rig.passband_narrow(0) is None
|
||||
assert rig.passband_normal(0) is None
|
||||
assert rig.passband_wide(0) is None
|
||||
assert rig.passband_narrow(Hamlib.RIG_MODE_CW) is None # FIXME should return passband
|
||||
assert rig.passband_normal(Hamlib.RIG_MODE_CW) is None # FIXME should return passband
|
||||
assert rig.passband_wide(Hamlib.RIG_MODE_CW) is None # FIXME should return passband
|
||||
assert isinstance(rig.recv_dtmf(), str)
|
||||
assert isinstance(rig.recv_dtmf(0), str)
|
||||
assert isinstance(rig.recv_dtmf(Hamlib.RIG_VFO_CURR), str)
|
||||
assert rig.reset(Hamlib.RIG_RESET_NONE) is None
|
||||
assert rig.scan(0, 0) is None
|
||||
assert rig.scan(0, 0, 0) is None
|
||||
assert rig.send_dtmf(0, "") is None
|
||||
assert rig.send_morse(0, "") is None
|
||||
channel = 0
|
||||
assert rig.scan(Hamlib.RIG_SCAN_VFO, channel) is None
|
||||
assert rig.scan(Hamlib.RIG_SCAN_VFO, channel, Hamlib.RIG_VFO_CURR) is None
|
||||
assert rig.send_dtmf("*0123456789#ABCD") is None
|
||||
assert rig.send_dtmf("*0123456789#ABCD", Hamlib.RIG_VFO_CURR) is None
|
||||
assert rig.send_morse("73") is None
|
||||
assert rig.send_morse("73", Hamlib.RIG_VFO_CURR) is None
|
||||
# FIXME should use a RIG_ANT_* constant but it isn't available in the bindings
|
||||
RIG_ANT_1 = 1<<0
|
||||
option = Hamlib.value_t()
|
||||
option.i = 0
|
||||
assert rig.set_ant(Hamlib.RIG_VFO_CURR, option) is None
|
||||
assert rig.set_ant(Hamlib.RIG_VFO_CURR, option, RIG_ANT_1) is None
|
||||
assert rig.set_bank(0, 0) is None
|
||||
bank = 0
|
||||
assert rig.set_bank(bank) is None
|
||||
assert rig.set_bank(bank, Hamlib.RIG_VFO_CURR) is None
|
||||
channel = Hamlib.channel()
|
||||
channel = Hamlib.channel(0)
|
||||
channel = Hamlib.channel(0, 0)
|
||||
channel = Hamlib.channel(0, Hamlib.RIG_VFO_CURR)
|
||||
assert rig.set_channel(channel) is None
|
||||
assert rig.set_conf("", "") is None
|
||||
assert rig.set_ctcss_sql(0, 0) is None
|
||||
assert rig.set_ctcss_tone(0, 0) is None
|
||||
assert rig.set_dcs_code(0, 0) is None
|
||||
assert rig.set_dcs_sql(0) is None
|
||||
assert rig.set_dcs_sql(0, 0) is None
|
||||
tone = 0
|
||||
assert rig.set_ctcss_sql(tone) is None
|
||||
assert rig.set_ctcss_sql(tone, Hamlib.RIG_VFO_CURR) is None
|
||||
assert rig.set_ctcss_tone(tone) is None
|
||||
assert rig.set_ctcss_tone(tone, Hamlib.RIG_VFO_CURR) is None
|
||||
code = 0
|
||||
assert rig.set_dcs_code(code) is None
|
||||
assert rig.set_dcs_code(code, Hamlib.RIG_VFO_CURR) is None
|
||||
assert rig.set_dcs_sql(code) is None
|
||||
assert rig.set_dcs_sql(code, Hamlib.RIG_VFO_CURR) is None
|
||||
assert rig.set_ext_func(0, 0) is None
|
||||
assert rig.set_ext_func(0, 0, 0) is None
|
||||
level = 0
|
||||
|
@ -182,20 +199,28 @@ class TestClass:
|
|||
assert rig.set_ext_level(level, value, Hamlib.RIG_VFO_CURR) is None
|
||||
value = Hamlib.value_t()
|
||||
assert rig.set_ext_parm(0, value) is None
|
||||
assert rig.set_freq(0, 0) is None
|
||||
freq = 0
|
||||
assert rig.set_freq(freq) is None
|
||||
assert rig.set_freq(freq, Hamlib.RIG_VFO_CURR) is None
|
||||
assert rig.set_func(0, 0, 0) is None
|
||||
assert rig.set_level(0, 0, 0) is None
|
||||
assert rig.set_mem(0, 0) is None
|
||||
assert rig.set_mem(0) is None
|
||||
assert rig.set_mem(0, Hamlib.RIG_VFO_CURR) is None
|
||||
assert rig.set_mode(0) is None
|
||||
assert rig.set_mode(0, 0) is None
|
||||
assert rig.set_mode(0, 0, 0) is None
|
||||
assert rig.set_mode(0, 0, Hamlib.RIG_VFO_CURR) is None
|
||||
assert rig.set_parm(0, 0) is None
|
||||
assert rig.set_powerstat(0) is None
|
||||
assert rig.set_ptt(0, 0) is None
|
||||
assert rig.set_rit(0, 0) is None
|
||||
assert rig.set_rptr_offs(0, 0) is None
|
||||
assert rig.set_rptr_shift(0, 0) is None
|
||||
assert rig.set_split_freq(0, 0) is None
|
||||
assert rig.set_ptt(0) is None
|
||||
assert rig.set_ptt(0, Hamlib.RIG_VFO_CURR) is None
|
||||
assert rig.set_rit(0) is None
|
||||
assert rig.set_rit(0, Hamlib.RIG_VFO_CURR) is None
|
||||
assert rig.set_rptr_offs(0) is None
|
||||
assert rig.set_rptr_offs(0, Hamlib.RIG_VFO_CURR) is None
|
||||
assert rig.set_rptr_shift(0) is None
|
||||
assert rig.set_rptr_shift(0, Hamlib.RIG_VFO_CURR) is None
|
||||
assert rig.set_split_freq(0) is None
|
||||
assert rig.set_split_freq(0, Hamlib.RIG_VFO_CURR) is None
|
||||
assert rig.set_split_freq_mode(0, 0) is None
|
||||
assert rig.set_split_freq_mode(0, 0, 0) is None
|
||||
assert rig.set_split_freq_mode(0, 0, 0, 0) is None
|
||||
|
@ -205,17 +230,21 @@ class TestClass:
|
|||
assert rig.set_split_vfo(0, 0) is None
|
||||
assert rig.set_split_vfo(0, 0, 0) is None
|
||||
assert rig.set_trn(0) is None # deprecated
|
||||
assert rig.set_ts(0, 0) is None
|
||||
assert rig.set_ts(0) is None
|
||||
assert rig.set_ts(0, Hamlib.RIG_VFO_CURR) is None
|
||||
assert rig.set_vfo(0) is None
|
||||
assert rig.set_vfo_opt(0) is None
|
||||
assert rig.set_xit(0, 0) is None
|
||||
assert rig.set_xit(0) is None
|
||||
assert rig.set_xit(0, Hamlib.RIG_VFO_CURR) is None
|
||||
assert rig.token_lookup("") is None
|
||||
assert rig.vfo_op(0, 0) is None
|
||||
assert rig.vfo_op(0) is None
|
||||
assert rig.vfo_op(0, Hamlib.RIG_VFO_CURR) is None
|
||||
|
||||
|
||||
def test_object_creation(self):
|
||||
@pytest.mark.skipif('config.getoption("model") != Hamlib.RIG_MODEL_DUMMY')
|
||||
def test_object_creation(self, model):
|
||||
"""Create all objects available"""
|
||||
rig = Hamlib.Rig(RIG_MODEL)
|
||||
rig = Hamlib.Rig(model)
|
||||
assert rig is not None
|
||||
|
||||
assert isinstance(rig.caps, Hamlib.rig_caps)
|
||||
|
|
|
@ -33,7 +33,7 @@ class TestClass:
|
|||
assert my_rig.error_status == Hamlib.RIG_OK
|
||||
assert Hamlib.rigerror(my_rig.error_status) == "Command completed successfully\n"
|
||||
|
||||
assert my_rig.set_freq(Hamlib.RIG_VFO_B, 5700000000) is None
|
||||
assert my_rig.set_freq(5700000000, Hamlib.RIG_VFO_B) is None
|
||||
assert my_rig.set_vfo(Hamlib.RIG_VFO_B) is None
|
||||
assert my_rig.get_freq() == 5700000000
|
||||
|
||||
|
@ -83,7 +83,7 @@ class TestClass:
|
|||
#(freq, width, mode, split) = my_rig.get_vfo_info(Hamlib.RIG_VFO_A,freq,width,mode,split)
|
||||
#print("Rig vfo_info:\t\tfreq=%s, mode=%s, width=%s, split=%s" % (freq, mode, width, split))
|
||||
|
||||
assert my_rig.send_morse(Hamlib.RIG_VFO_A, "73") is None
|
||||
assert my_rig.send_morse("73", Hamlib.RIG_VFO_A) is None
|
||||
assert my_rig.close() is None
|
||||
|
||||
# Some static functions
|
||||
|
|
|
@ -88,8 +88,6 @@ typedef channel_t * const_channel_t_p;
|
|||
{ self->error_status = rig_##f(self->rig _VFO_ARG, _##t1##_1, _##t2##_2); }
|
||||
#define METHOD2_INIT(f, t1, t2, i2) void f (t1 _##t1##_1, t2 _##t2##_2 = i2 _VFO_DECL) \
|
||||
{ self->error_status = rig_##f(self->rig _VFO_ARG, _##t1##_1, _##t2##_2); }
|
||||
#define METHOD3(f, t1) void f ( vfo_t vfo, t1 _##t1) \
|
||||
{ self->error_status = rig_##f(self->rig _VFO_ARG, _##t1); }
|
||||
#define METHOD3_INIT(f, t1, t2, t3, i3) void f (t1 _##t1##_1, t2 _##t2##_2, t3 _##t3##_3 = i3 _VFO_DECL) \
|
||||
{ self->error_status = rig_##f(self->rig _VFO_ARG, _##t1##_1, _##t2##_2, _##t3##_3); }
|
||||
#define METHOD4(f, t1) void f ( vfo_t vfo, t1 _##t1) \
|
||||
|
@ -363,30 +361,30 @@ typedef channel_t * const_channel_t_p;
|
|||
#define _VFO_ARG ,vfo
|
||||
#define _VFO_DECL ,vfo_t vfo = RIG_VFO_CURR
|
||||
|
||||
METHOD3(set_freq, freq_t)
|
||||
METHOD1(set_freq, freq_t)
|
||||
METHOD2_INIT(set_mode, rmode_t, pbwidth_t, RIG_PASSBAND_NORMAL)
|
||||
METHOD3(set_ptt, ptt_t)
|
||||
METHOD3(set_rptr_shift, rptr_shift_t)
|
||||
METHOD3(set_rptr_offs, shortfreq_t)
|
||||
METHOD3(set_ctcss_tone, tone_t)
|
||||
METHOD3(set_dcs_code, tone_t)
|
||||
METHOD3(set_ctcss_sql, tone_t)
|
||||
METHOD1(set_ptt, ptt_t)
|
||||
METHOD1(set_rptr_shift, rptr_shift_t)
|
||||
METHOD1(set_rptr_offs, shortfreq_t)
|
||||
METHOD1(set_ctcss_tone, tone_t)
|
||||
METHOD1(set_dcs_code, tone_t)
|
||||
METHOD1(set_ctcss_sql, tone_t)
|
||||
METHOD1(set_dcs_sql, tone_t)
|
||||
METHOD3(set_split_freq, freq_t)
|
||||
METHOD1(set_split_freq, freq_t)
|
||||
METHOD2_INIT(set_split_mode, rmode_t, pbwidth_t, RIG_PASSBAND_NORMAL)
|
||||
METHOD3_INIT(set_split_freq_mode, freq_t, rmode_t, pbwidth_t, RIG_PASSBAND_NORMAL)
|
||||
METHOD2(set_split_vfo, split_t, vfo_t)
|
||||
METHOD3(set_rit, shortfreq_t)
|
||||
METHOD3(set_xit, shortfreq_t)
|
||||
METHOD3(set_ts, shortfreq_t)
|
||||
METHOD1(set_rit, shortfreq_t)
|
||||
METHOD1(set_xit, shortfreq_t)
|
||||
METHOD1(set_ts, shortfreq_t)
|
||||
METHOD2(set_ant, ant_t, value_t)
|
||||
METHOD2(set_func, setting_t, int)
|
||||
METHOD2(set_ext_func, hamlib_token_t, int)
|
||||
METHOD3(set_bank, int)
|
||||
METHOD3(set_mem, int)
|
||||
METHOD3(send_dtmf, const_char_string)
|
||||
METHOD3(send_morse, const_char_string)
|
||||
METHOD3(vfo_op, vfo_op_t)
|
||||
METHOD1(set_bank, int)
|
||||
METHOD1(set_mem, int)
|
||||
METHOD1(send_dtmf, const_char_string)
|
||||
METHOD1(send_morse, const_char_string)
|
||||
METHOD1(vfo_op, vfo_op_t)
|
||||
METHOD2(scan, scan_t, int)
|
||||
METHODSIMPLESET(level, int, i, RIG_LEVEL_IS_FLOAT(stg))
|
||||
METHODSIMPLESET(level, float, f, !RIG_LEVEL_IS_FLOAT(stg))
|
||||
|
|
|
@ -637,7 +637,7 @@ AS_IF([test "x$enable_pytest" = "xyes"],
|
|||
)]
|
||||
)
|
||||
|
||||
# "check" is replaced by the rsult ("yes" or "no")
|
||||
# "check" is replaced by the result ("yes" or "no")
|
||||
enable_pytest=$have_pytest
|
||||
|
||||
AC_SUBST([enable_pytest])
|
||||
|
|
|
@ -2785,7 +2785,7 @@ struct rig_state {
|
|||
int twiddle_timeout; /*!< timeout to resume from twiddling */
|
||||
// uplink allows gpredict to behave better by no reading the uplink VFO
|
||||
int uplink; /*!< uplink=1 will not read Sub, uplink=2 will not read Main */
|
||||
struct rig_cache_deprecated cache; // Only here for backward compatability
|
||||
struct rig_cache_deprecated cache; // Only here for backward compatibility
|
||||
int vfo_opt; /*!< Is -o switch turned on? */
|
||||
int auto_power_on; /*!< Allow Hamlib to power on rig
|
||||
automatically if supported */
|
||||
|
|
|
@ -196,7 +196,7 @@ static void init_chan(RIG *rig, vfo_t vfo, channel_t *chan)
|
|||
chan->rit = 0;
|
||||
chan->xit = 0;
|
||||
chan->tuning_step = 0;
|
||||
chan->ant = 0;
|
||||
chan->ant = RIG_ANT_1;
|
||||
|
||||
chan->funcs = (setting_t)0;
|
||||
memset(chan->levels, 0, RIG_SETTING_MAX * sizeof(value_t));
|
||||
|
@ -1114,7 +1114,7 @@ static int dummy_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo)
|
|||
|
||||
if (tx_vfo == RIG_VFO_CURR || tx_vfo == RIG_VFO_TX) { tx_vfo = vfo_fixup(rig, vfo, CACHE(rig)->split); }
|
||||
|
||||
priv->split = split;
|
||||
priv->split = split ? RIG_SPLIT_ON : RIG_SPLIT_OFF;
|
||||
priv->tx_vfo = tx_vfo;
|
||||
|
||||
RETURNFUNC(RIG_OK);
|
||||
|
@ -1819,6 +1819,7 @@ static int dummy_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
|
|||
case RIG_ANT_2:
|
||||
case RIG_ANT_3:
|
||||
case RIG_ANT_4:
|
||||
case RIG_ANT_5:
|
||||
curr->ant = ant;
|
||||
break;
|
||||
|
||||
|
@ -1856,6 +1857,7 @@ static int dummy_get_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t *option,
|
|||
case RIG_ANT_2:
|
||||
case RIG_ANT_3:
|
||||
case RIG_ANT_4:
|
||||
case RIG_ANT_5:
|
||||
*ant_curr = ant;
|
||||
break;
|
||||
|
||||
|
@ -2459,14 +2461,14 @@ struct rig_caps dummy_caps =
|
|||
.agc_levels = { RIG_AGC_OFF, RIG_AGC_SUPERFAST, RIG_AGC_FAST, RIG_AGC_MEDIUM, RIG_AGC_SLOW, RIG_AGC_AUTO, RIG_AGC_USER },
|
||||
.rx_range_list1 = { {
|
||||
.startf = kHz(150), .endf = MHz(1500), .modes = DUMMY_MODES,
|
||||
.low_power = -1, .high_power = -1, DUMMY_VFOS, RIG_ANT_1 | RIG_ANT_2 | RIG_ANT_3 | RIG_ANT_4,
|
||||
.low_power = -1, .high_power = -1, DUMMY_VFOS, RIG_ANT_1 | RIG_ANT_2 | RIG_ANT_3 | RIG_ANT_4 | RIG_ANT_5,
|
||||
.label = "Dummy#1"
|
||||
},
|
||||
RIG_FRNG_END,
|
||||
},
|
||||
.tx_range_list1 = { {
|
||||
.startf = kHz(150), .endf = MHz(1500), .modes = DUMMY_MODES,
|
||||
.low_power = W(5), .high_power = W(100), DUMMY_VFOS, RIG_ANT_1 | RIG_ANT_2 | RIG_ANT_3 | RIG_ANT_4,
|
||||
.low_power = W(5), .high_power = W(100), DUMMY_VFOS, RIG_ANT_1 | RIG_ANT_2 | RIG_ANT_3 | RIG_ANT_4 | RIG_ANT_5,
|
||||
.label = "Dummy#1"
|
||||
},
|
||||
RIG_FRNG_END,
|
||||
|
|
Ładowanie…
Reference in New Issue