Daniele Forsi IU5HKX
b2828881b6
Make output of the TCL test less verbose
...
Uses the function that gets only the error message corresponding to
the argument passed.
2025-08-18 07:47:12 -05:00
Daniele Forsi IU5HKX
a8a53124df
freq_skip is a configuration parameter, not a command
2025-08-18 12:21:11 +02:00
Daniele Forsi IU5HKX
c5668bf75a
Add value 0/1 to description of set_gpio
2025-08-18 12:11:13 +02:00
Daniele Forsi IU5HKX
55f575565c
Handle missing enums
2025-08-18 10:51:23 +02:00
Daniele Forsi IU5HKX
512f5f94d0
Put the switch cases in the same order as the enum
...
To see what is missing.
2025-08-18 10:49:53 +02:00
Daniele Forsi IU5HKX
b57f092236
Remove the executable bit from source files and documents
2025-08-17 22:38:25 +02:00
Daniele Forsi IU5HKX
fd7d69d24c
Fix output of dump_state
...
Fixes references to levels and properly handles strings.
Steps to reproduce:
tests/rigctl chk_vfo dump_state
2025-08-17 18:49:52 +02:00
Daniele Forsi IU5HKX
afda578d45
Fix typos
...
Founda by duck.ai.
2025-08-16 11:52:55 +02:00
Daniele Forsi IU5HKX
3c391a696d
Fix misleading order in comment and add UNKNOWN
2025-08-16 11:52:55 +02:00
Daniele Forsi IU5HKX
caf7346fc0
Fix typos
2025-08-16 11:52:55 +02:00
Nate Bargmann
ee03370cdf
Merge GitHub PR #1846
2025-08-14 08:11:27 -05:00
Nate Bargmann
98f6da8ae3
Merge GitHub PR #1845
2025-08-13 20:43:09 -05:00
Daniele Forsi IU5HKX
2f2b703ccf
Handle the question mark as second argument of set_parm KEYERTYPE in rigctl
...
Test case:
tests/rigctl -m 1 \
set_parm KEYERTYPE '?' \
set_parm BANDSELECT '?'
STRAIGHT BUG PADDLE
BANDUNUSED BAND70CM BAND33CM BAND23CM
2025-08-13 22:04:15 +02:00
Daniele Forsi IU5HKX
b5b9e136a1
Do not use strcmp() when we are going to get a RIG_PARM_* define anyway
2025-08-13 20:24:22 +02:00
Daniele Forsi IU5HKX
fb4d2c6455
Fix segfault when using the dummy driver
...
Steps to reproduce:
tests/rigctl -m 1 \
get_parm KEYERTYPE
Fixes:
Thread 1 "rigctl" received signal SIGSEGV, Segmentation fault.
0x0000556aff4f890d in rigctl_get_parm (rig=<optimized out>, fout=0x7f87517f25c0 <_IO_2_1_stdout_>, fin=<optimized out>, interactive=1, prompt=1, vfo_opt=<optimized out>, send_cmd_term=13 '\r', ext_resp=0, resp_sep=10 '\n',
cmd=0x556aff516050 <test_list+1520>, vfo=536870912, arg1=0x7ffc5985b5c0 "KEYERTYPE", arg2=0x556aff50cce8 "", arg3=0x556aff50cce8 "") at rigctl_parse.c:3947
3947 if (strcmp(val.s, "0") == 0) {s = "STRAIGHT";}
(gdb) bt
#0 0x0000556aff4f890d in rigctl_get_parm (rig=<optimized out>, fout=0x7f87517f25c0 <_IO_2_1_stdout_>, fin=<optimized out>, interactive=1, prompt=1, vfo_opt=<optimized out>, send_cmd_term=13 '\r', ext_resp=0, resp_sep=10 '\n',
cmd=0x556aff516050 <test_list+1520>, vfo=536870912, arg1=0x7ffc5985b5c0 "KEYERTYPE", arg2=0x556aff50cce8 "", arg3=0x556aff50cce8 "") at rigctl_parse.c:3947
#1 0x0000556aff5007f6 in rigctl_parse (my_rig=<optimized out>, fin=<optimized out>, fout=<optimized out>, argv=argv@entry=0x7ffc5985d788, argc=argc@entry=3, sync_cb=sync_cb@entry=0x0, interactive=<optimized out>, prompt=<optimized out>,
vfo_opt=<optimized out>, send_cmd_term=<optimized out>, ext_resp_ptr=<optimized out>, resp_sep_ptr=<optimized out>, use_password=<optimized out>) at rigctl_parse.c:1847
#2 0x0000556aff4eaadc in main (argc=<optimized out>, argv=0x7ffc5985d788) at rigctl.c:801
2025-08-13 20:23:57 +02:00
Daniele Forsi IU5HKX
3013912111
Make get_param read back the value passed to set_param
...
Test case:
tests/rigctl -m 1 \
set_parm KEYERTYPE BUG get_parm KEYERTYPE \
set_parm KEYERTYPE PADDLE get_parm KEYERTYPE \
set_parm KEYERTYPE STRAIGHT get_parm KEYERTYPE
BUG
PADDLE
STRAIGHT
2025-08-13 20:17:56 +02:00
George Baltz N3GB
7549f66aa1
Replace uthash.h(1.9.4) with latest release(2.3.0)
...
From https://troydhanson.github.io/uthash/
Fixes diagnostics from cppcheck and -fanalyzer
2025-08-13 13:21:40 -04:00
George Baltz N3GB
053178ccbd
Fix nits in serial.c
...
Squelch uninitialized variable from cppckeck
Remove duplicate close()s from -fanalyzer and unreachable breaks.
2025-08-13 13:03:25 -04:00
Daniele Forsi IU5HKX
12ba558343
Fix segfault with set_parm KEYERTYPE
...
Steps to reproduce:
tests/rigctl -m 1 \
set_parm KEYERTYPE BUG
Fixes:
Thread 1 "rigctl" received signal SIGSEGV, Segmentation fault.
__strlen_sse2 () at ../sysdeps/x86_64/multiarch/strlen-sse2.S:142
warning: 142 ../sysdeps/x86_64/multiarch/strlen-sse2.S: File o directory non esistente
(gdb) bt
#0 __strlen_sse2 () at ../sysdeps/x86_64/multiarch/strlen-sse2.S:142
#1 0x00007ffac346e300 in __printf_buffer (buf=buf@entry=0x7ffc3bcf40d0, format=0x7ffac38aef17 "%s", ap=0x7ffc3bcf4190, mode_flags=0) at ./stdio-common/vfprintf-process-arg.c:435
#2 0x00007ffac3491daf in __vsnprintf_internal (string=<optimized out>, maxlen=<optimized out>, format=<optimized out>, args=args@entry=0x7ffc3bcf4190, mode_flags=mode_flags@entry=0) at ./libio/vsnprintf.c:96
#3 0x00007ffac3469642 in __GI___snprintf (s=s@entry=0x7ffc3bcf4290 "", maxlen=maxlen@entry=32, format=format@entry=0x7ffac38aef17 "%s") at ./stdio-common/snprintf.c:31
#4 0x00007ffac370b7b9 in dummy_set_parm (rig=0x558fe1991b20, parm=2048, val=...) at dummy.c:1704
#5 0x0000558fb536afbe in rigctl_set_parm (rig=0x558fe1991b20, fout=0x7ffac35f25c0 <_IO_2_1_stdout_>, fin=<optimized out>, interactive=<optimized out>, prompt=<optimized out>, vfo_opt=<optimized out>, send_cmd_term=13 '\r', ext_resp=0,
resp_sep=10 '\n', cmd=0x558fb5388000 <test_list+1440>, vfo=536870912, arg1=0x7ffc3bcf4e10 "KEYERTYPE", arg2=0x558fb537fdb1 "1", arg3=0x558fb537ece8 "") at rigctl_parse.c:3829
#6 0x0000558fb53727d6 in rigctl_parse (my_rig=<optimized out>, fin=<optimized out>, fout=<optimized out>, argv=argv@entry=0x7ffc3bcf6fd8, argc=argc@entry=3, sync_cb=sync_cb@entry=0x0, interactive=<optimized out>, prompt=<optimized out>,
vfo_opt=<optimized out>, send_cmd_term=<optimized out>, ext_resp_ptr=<optimized out>, resp_sep_ptr=<optimized out>, use_password=<optimized out>) at rigctl_parse.c:1847
#7 0x0000558fb535cadc in main (argc=<optimized out>, argv=0x7ffc3bcf6fd8) at rigctl.c:801
2025-08-13 17:07:55 +02:00
Daniele Forsi IU5HKX
a81aab6e11
Return an error if the keyer type is unknown
...
Instead of quietly doing nothing.
2025-08-13 16:58:46 +02:00
Daniele Forsi IU5HKX
762caa85c0
Remove stray char after printing value of KEYERTYPE
...
Steps to reproduce:
tests/rigctl -m 1 get_parm KEYERTYPE
STRAIGHT
v <-- this 'v' shouldn't be there
2025-08-13 16:58:46 +02:00
Daniele Forsi IU5HKX
ff5500b2d9
Avoid segfaulting when val.cs is NULL
...
This is the case for BANDSELECT and KEYERTYPE.
Use SNPRINTF() which deals with NULLs printing (null) and it is
used with the other datatypes..
Steps to reproduce:
tests/rigctl -m 1 set_parm KEYERTYPE '?'
tests/rigctl -m 1 set_parm BANDSELECT 1
Fixes:
Thread 1 "rigctl" received signal SIGSEGV, Segmentation fault.
__strcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S:302
warning: 302 ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S: File o directory non esistente
(gdb) bt
#0 __strcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S:302
#1 0x00007f8ab4d0b7ab in dummy_set_parm (rig=0x55d19b6cab20, parm=2048, val=...) at dummy.c:1704
#2 0x000055d175b8c03d in rigctl_set_parm (rig=0x55d19b6cab20, fout=0x7f8ab4bf25c0 <_IO_2_1_stdout_>, fin=<optimized out>, interactive=<optimized out>, prompt=<optimized out>, vfo_opt=<optimized out>, send_cmd_term=13 '\r', ext_resp=0,
resp_sep=10 '\n', cmd=0x55d175ba9000 <test_list+1440>, vfo=536870912, arg1=0x7ffd730281e0 "KEYERTYPE", arg2=0x7ffd730283e0 "'?'", arg3=0x55d175b9fce8 "") at rigctl_parse.c:3828
#3 0x000055d175b93756 in rigctl_parse (my_rig=<optimized out>, fin=<optimized out>, fout=<optimized out>, argv=argv@entry=0x7ffd7302a3a8, argc=argc@entry=3, sync_cb=sync_cb@entry=0x0, interactive=<optimized out>, prompt=<optimized out>,
vfo_opt=<optimized out>, send_cmd_term=<optimized out>, ext_resp_ptr=<optimized out>, resp_sep_ptr=<optimized out>, use_password=<optimized out>) at rigctl_parse.c:1847
#4 0x000055d175b7dadc in main (argc=<optimized out>, argv=0x7ffd7302a3a8) at rigctl.c:801
2025-08-13 16:58:26 +02:00
George Baltz N3GB
0e36d4faa4
Mangle names of structure members to avoid clash with perl keywords.
2025-08-13 09:30:59 -04:00
George Baltz N3GB
74558224a9
More cppcheck style hints
2025-08-13 09:30:59 -04:00
George Baltz N3GB
2e5696b7e3
Fix an analyzer complaint
2025-08-13 09:30:59 -04:00
Nate Bargmann
4b6b5415f5
Merge GitHub PR #1844
2025-08-13 07:06:43 -05:00
Daniele Forsi IU5HKX
663fd4f738
Fix compiler warnings
...
Fixes:
hamlibpy_wrap.c: In function 'Rig_send_raw':
hamlibpy_wrap.c:4668:30: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
4668 | send = PyUnicode_AsUTF8AndSize(send_obj, &send_len);
| ^
hamlibpy_wrap.c:4679:30: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
4679 | term = PyUnicode_AsUTF8AndSize(term_obj, NULL);
| ^
Thanks to @GeoBaltz
2025-08-13 11:33:40 +02:00
Daniele Forsi IU5HKX
9904747358
Handle the question mark as second argument of set_level in ampctl
...
Test command:
tests/ampctl -m 1 \
set_level FAULT '?' \
set_level NH '?' \
set_level PF '?' \
set_level PWRFORWARD '?' \
set_level PWRINPUT '?' \
set_level PWRPEAK '?' \
set_level PWRREFLECTED '?' \
set_level SWR '?'
2025-08-12 23:31:11 +02:00
Daniele Forsi IU5HKX
2a2f33673e
Handle the question mark as second argument of set_level in rotctl
...
Test command:
tests/rotctl -m 1 \
set_level MGC '?' \
set_level MGF '?' \
set_level MGL '?' \
set_level SPEED '?'
2025-08-12 20:38:53 +02:00
Daniele Forsi IU5HKX
4187e9f4a3
Handle the question mark as second argument of set_level in rigctl
...
Closes #720 .
Test command:
tests/rigctl -m 1 \
set_level AF '?' set_level AGC '?' set_level AGC_TIME '?' \
set_level ANTIVOX '?' set_level APF '?' set_level ATT '?' \
set_level BAL '?' set_level BAND_SELECT '?' set_level BKINDL '?' \
set_level BKIN_DLYMS '?' set_level COMP '?' set_level CWPITCH '?' \
set_level IF '?' set_level KEYSPD '?' set_level METER '?' \
set_level MGC '?' set_level MGF '?' set_level MGL '?' \
set_level MICGAIN '?' set_level MONITOR_GAIN '?' set_level NB '?' \
set_level NOTCHF '?' set_level NOTCHF_RAW '?' set_level NR '?' \
set_level PBT_IN '?' set_level PBT_OUT '?' set_level PREAMP '?' \
set_level RF '?' set_level RFPOWER '?' set_level SLOPE_HIGH '?' \
set_level SLOPE_LOW '?' set_level SPECTRUM_ATT '?' set_level SPECTRUM_AVG '?' \
set_level SPECTRUM_EDGE_HIGH '?' set_level SPECTRUM_EDGE_LOW '?' set_level SPECTRUM_MODE '?' \
set_level SPECTRUM_REF '?' set_level SPECTRUM_SPAN '?' set_level SPECTRUM_SPEED '?' \
set_level SQL '?' set_level USB_AF '?' set_level USB_AF_INPUT '?' \
set_level VOXDELAY '?' set_level VOXGAIN '?'
2025-08-12 20:38:11 +02:00
Nate Bargmann
f32b744ac9
Update Segfault-award for netrigctl_open() fix
...
Congrats, Daniele!
2025-08-12 11:59:33 -05:00
Nate Bargmann
84fbe1df4a
Merge GitHub PR #1842
2025-08-12 07:50:53 -05:00
Daniele Forsi IU5HKX
9e6ff6edcc
Fix segfault when executing the dump_caps command
...
Need to convert the level number 0..63 to the level bit mask.
Steps to reproduce
tests/rigctld -m 1 &
tests/rigctl -m 2 dump_caps
Fixes:
Thread 1 "rigctl" received signal SIGSEGV, Segmentation fault.
[..]
(gdb) bt
#0 __strlen_sse2 () at ../sysdeps/x86_64/multiarch/strlen-sse2.S:174
#1 0x00007f532c46e300 in __printf_buffer (buf=buf@entry=0x7ffc320ad970, format=0x7f532c8aba22 "%s(%s) ", ap=0x7ffc320ada30, mode_flags=0) at ./stdio-common/vfprintf-process-arg.c:435
#2 0x00007f532c491daf in __vsnprintf_internal (string=<optimized out>, maxlen=<optimized out>, format=<optimized out>, args=args@entry=0x7ffc320ada30, mode_flags=mode_flags@entry=0) at ./libio/vsnprintf.c:96
#3 0x00007f532c469642 in __GI___snprintf (
s=s@entry=0x7ffc320aec94 "BANDSELECT(00000..0.000000/0.000000) NR(0.000000..0.000000/0.000000) PBT_IN(0.000000..0.000000/0.000000) PBT_OUT(0.000000..0.000000/0.000000) CWPITCH(0..0/10) RFPOWER(0.050000..1.000000/0.001957) MICG"...,
maxlen=maxlen@entry=3948, format=format@entry=0x7f532c8aba22 "%s(%s) ") at ./stdio-common/snprintf.c:31
#4 0x00007f532c6dc14a in rig_sprintf_parm_gran (
str=str@entry=0x7ffc320aec00 "ANN(0..0/0) APO(0..0/0) BACKLIGHT(0..0/0) BEEP(0..1316880384/1315832322) TIME(0..0/0) BAT(0..0/0) KEYLIGHT(0..0/0) SCREENSAVER(0..4/0) AFIF(0..0/0) BANDSELECT(00000..0.000000/0.000000) NR(0.000000..0."...,
nlen=nlen@entry=4096, parm=9223372036854775807, gran=gran@entry=0x55f1f3cac338) at sprintflst.c:646
#5 0x000055f1eb6cd487 in dumpstate (rig=rig@entry=0x55f1f3ca5b20, fout=fout@entry=0x7f532c5f25c0 <_IO_2_1_stdout_>) at dumpstate.c:408
#6 0x000055f1eb6b4b81 in rigctl_dump_caps (rig=0x55f1f3ca5b20, fout=0x7f532c5f25c0 <_IO_2_1_stdout_>, fin=<optimized out>, interactive=<optimized out>, prompt=<optimized out>, vfo_opt=<optimized out>, send_cmd_term=13 '\r', ext_resp=0,
resp_sep=10 '\n', cmd=0x55f1eb6dc0e0 <test_list+5760>, vfo=536870912, arg1=0x0, arg2=0x55f1eb6d1ce8 "", arg3=0x55f1eb6d1ce8 "") at rigctl_parse.c:4622
#7 0x000055f1eb6c65f6 in rigctl_parse (my_rig=<optimized out>, fin=<optimized out>, fout=<optimized out>, argv=argv@entry=0x7ffc320b2138, argc=argc@entry=3, sync_cb=sync_cb@entry=0x0, interactive=<optimized out>, prompt=<optimized out>,
vfo_opt=<optimized out>, send_cmd_term=<optimized out>, ext_resp_ptr=<optimized out>, resp_sep_ptr=<optimized out>, use_password=<optimized out>) at rigctl_parse.c:1847
#8 0x000055f1eb6b0adc in main (argc=<optimized out>, argv=0x7ffc320b2138) at rigctl.c:801
2025-08-12 14:07:23 +02:00
Nate Bargmann
c51357388c
Merge GitHub PR #1841
2025-08-12 07:04:50 -05:00
Daniele Forsi IU5HKX
3b79b13f6d
Make the tests for set_conf() and get_conf() more meaningful
2025-08-11 23:41:39 +02:00
Daniele Forsi IU5HKX
e2feb1d1d0
Fix "val_len" paramenter for rot_get_conf2() and amp_get_conf2()
...
Thanks to @GeoBaltz.
2025-08-11 23:40:01 +02:00
Daniele Forsi IU5HKX
19dce9dc32
Remove deprecated functions and methods from the bindings
2025-08-11 15:50:10 +02:00
Nate Bargmann
5e13d102af
Merge merge GitHub PR #1840
2025-08-11 08:31:20 -05:00
Daniele Forsi IU5HKX
6dec579144
Replace library functions deprecated in Hamlib
2025-08-11 15:09:49 +02:00
Daniele Forsi IU5HKX
65439c6719
Fix typo
2025-08-11 15:09:37 +02:00
Daniele Forsi IU5HKX
e16f4077e7
Implement the Python bindings and the tests for rig_send_raw()
...
Allows to send either string or bytes and to receive a response
converted to the same datatype. Also the "term" argument can be
of either type (but it can't contain NULs, it's a single char
or byte anyway).
Closes #1624 .
2025-08-11 12:33:49 +02:00
Daniele Forsi IU5HKX
289a3952ce
Change the dummy implementation of rig_send_raw()
...
Makes it more similar to the regular version handling also
the reply and term arguments.
2025-08-11 12:18:50 +02:00
Daniele Forsi IU5HKX
12ec55c3d7
Add missing set_transaction_inactive()
...
Otherwise no other command will be executed afterwards.
2025-08-10 21:39:15 +02:00
Daniele Forsi IU5HKX
5e336b90c1
Improve Doxygen comments
2025-08-10 21:39:09 +02:00
Nate Bargmann
0d1481d86f
Update W32 and W64 build scripts
...
Renaming the lib\gcc directory to lib\gcc-mingw broke the build of
WSJT-X. See (yes, the archive sucks):
https://sourceforge.net/p/hamlib/mailman/message/59215755/
2025-08-10 10:39:54 -05:00
Nate Bargmann
c1aaeba5ac
Merge GitHub PR #1837
2025-08-09 18:43:57 -05:00
Daniele Forsi IU5HKX
221cc512bc
Fix setting antenna number 3 for Yaesu FTDX3000
...
The argument ant_t ant is a bit mask, not a scalar.
Also use the defines instead of magic numbers.
2025-08-09 22:34:12 +02:00
Daniele Forsi IU5HKX
10303d5803
Fix function signature of spectrum_callback()
2025-08-09 18:09:17 +02:00
Daniele Forsi IU5HKX
81cb260670
Fix ptt_callback()
2025-08-09 17:57:18 +02:00
Daniele Forsi IU5HKX
e2214fd2f1
Change .ptt_type to RIG_PTT_RIG for RIG_MODEL_DUMMY
...
With the old value of RIG_PTT_NONE, dummy_get_ptt() and dummy_set_ptt()
were never called because rig_get_ptt() and rig_set_ptt() do check
.ptt_type and return -RIG_ENAVAIL in that case.
Do not change .ptt_type for RIG_MODEL_DUMMY_NOVFO so that both cases
can be tested if needed.
2025-08-09 15:57:45 +02:00