Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IC-7300 some levels wrong #373

Closed
mdblack98 opened this issue Sep 9, 2020 · 16 comments · Fixed by #376, #379 or #381
Closed

IC-7300 some levels wrong #373

mdblack98 opened this issue Sep 9, 2020 · 16 comments · Fixed by #376, #379 or #381
Labels

Comments

@mdblack98
Copy link
Contributor

IC-7300 get/set level enumeration

Get level:
PREAMP(0..0/0) ok
ATT(0..0/0) ok
VOXDELAY(0..20/1) 1a 05 00 81 (LCD Background brightness) s/b 1a 05 01 91
AF(0..0/0) ok
RF(0..0/0) 1a 05 00 23 (Confirmation Beep) s/b 14 02
SQL(0..0/0) 1a 05 00 95 (Send/read time) s/b 14 03
NR(0..0/0) ok
PBT_IN(0..0/0) ok
PBT_OUT(0..0/0) ok
CWPITCH(300..900/1) ok
RFPOWER(0..0/0) ok
MICGAIN(0..0/0) ok
KEYSPD(6..48/1) ok
COMP(0..0/0) ok
AGC(0..0/0) ok
BKINDL(0..0/0) ok
VOXGAIN(0..0/0) ok
ANTIVOX(0..0/0) ok
RAWSTR(0..255/0) ok (Read S-meter)
SWR(0..0/0) ALC(0..0/0) ok
STRENGTH(0..0/0) ok
RFPOWER_METER(0..0/0) ok
COMP_METER(0..0/0) ok
VD_METER(0..0/0) ok
ID_METER(0..0/0) ok
NOTCHF_RAW(0..0/0) ok
MONITOR_GAIN(0..0/0) ok
NB(0..0/0) ok

Extra Get levels:
ANN Invalid parameter s/b 1a 05 00 91 ???
BACKLIGHT Invalid parameter s/b 1a 05 00 81
BEEP Invalid parameter s/b 1a 05 00 23
TIME Imvalid parameter s/b 1a 05 00 95

Set Level:
VOXDELAY see above s/b 1a 05 01 91 nn (00 to 20)
RF see above s/b 14 02 nn mm (0000 to 0255)
SQL see above s/b 14 03 nn mm
ANN see above s/b 1a 05 00 91 tt tt tt tt tt tt tt tt tt tt (up to 10 chars)
BACKLIGHT see above s/b 1a 05 00 81 nn mm (0000 to 0255)
BEEP see above s/b 1a 05 00 23 00/01
TIME see above s/b 1a 05 00 95 hh mm

@mdblack98 mdblack98 added the bug label Sep 9, 2020
@mdblack98
Copy link
Contributor Author

icom.c extlevels is colliding PARM and LEVEL values.
Have to separate them.

@mdblack98 mdblack98 modified the milestone: 4.0RC2 Sep 10, 2020
N0NB pushed a commit to N0NB/Hamlib that referenced this issue Sep 12, 2020
@mdblack98 mdblack98 linked a pull request Sep 13, 2020 that will close this issue
@mdblack98 mdblack98 reopened this Sep 14, 2020
@mdblack98
Copy link
Contributor Author

P TIME is broken

p ANN is broken (seg fault)

P ANN allows one param to be entered

L RF is sending the wrong command.

All else OK.

See below for details.

P TIME 68700 is broken

p TIME

rigctl_parse: cmd=p(70)

rigctl_parse: cmd==0x70

rigctl_parse: vfo_opt=0

rigctl_parse: debug1

rigctl_parse: debug3

rigctl_parse: debug4 c=20

rigctl_parse: debug5

rigctl_parse: debug10

rigctl_parse: vfo_opt=0

rig_parse_parm called

rig_has_get_parm called

rig_get_parm called

rig_has_get_parm called

icom_get_parm called

icom_get_parm: i=0

icom_get_parm: i=1

icom_get_parm: i=2

icom_get_cmd called

icom_get_raw_buf called

rig_flush: called for serial device

serial_flush called

serial_flush: tcflush

write_block called

write_block(): TX 9 bytes

0000 fe fe 94 e0 1a 05 00 95 fd .........

read_string called

read_string(): RX 11 characters

0000 fe fe e0 94 1a 05 00 95 00 15 fd ...........

icom_get_raw_buf: 2

from_bcd_be called

from_bcd_be called

Parm Value: 900

rigctl_parse: vfo_opt=0

rigctl_parse: retcode=0

rigctl_parse: called, interactive=1

Rig command: rigctl_parse: cmd==0x0a

P TIME

rigctl_parse: cmd=P(50)

rigctl_parse: cmd==0x50

rigctl_parse: vfo_opt=0

rigctl_parse: debug1

rigctl_parse: debug3

rigctl_parse: debug4 c=20

rigctl_parse: debug5

rigctl_parse: debug6

rigctl_parse: debug7

rigctl_parse: debug8

Parm Value: 68700

rigctl_parse: debug10

rigctl_parse: vfo_opt=0

rig_parse_parm called

rig_has_set_parm called

rig_set_parm called

rig_has_set_parm called

icom_set_parm called

icom_set_cmd called

to_bcd_be called

rig_flush: called for serial device

serial_flush called

serial_flush: tcflush

write_block called

write_block(): TX 11 bytes

0000 fe fe 94 e0 1a 05 00 95 00 00 fd ...........

read_string called

read_string(): RX 6 characters

0000 fe fe e0 94 fb fd ......

rigctl_parse: vfo_opt=0

rigctl_parse: retcode=0

rigctl_parse: called, interactive=1

Rig command: rigctl_parse: cmd==0x0a

p TIME

rigctl_parse: cmd=p(70)

rigctl_parse: cmd==0x70

rigctl_parse: vfo_opt=0

rigctl_parse: debug1

rigctl_parse: debug3

rigctl_parse: debug4 c=20

rigctl_parse: debug5

rigctl_parse: debug10

rigctl_parse: vfo_opt=0

rig_parse_parm called

rig_has_get_parm called

rig_get_parm called

rig_has_get_parm called

icom_get_parm called

icom_get_parm: i=0

icom_get_parm: i=1

icom_get_parm: i=2

icom_get_cmd called

icom_get_raw_buf called

rig_flush: called for serial device

serial_flush called

serial_flush: tcflush

write_block called

write_block(): TX 9 bytes

0000 fe fe 94 e0 1a 05 00 95 fd .........

read_string called

read_string(): RX 11 characters

0000 fe fe e0 94 1a 05 00 95 00 00 fd ...........

icom_get_raw_buf: 2

from_bcd_be called

from_bcd_be called

Parm Value: 0

rigctl_parse: vfo_opt=0

rigctl_parse: retcode=0

rigctl_parse: called, interactive=1

Rig command: rigctl_parse: cmd==0x0a687001

Param p ANN yields Segmentation fault after long string of reporting.

p ANN

rigctl_parse: cmd=p(70)

rigctl_parse: cmd==0x70

rigctl_parse: vfo_opt=0

rigctl_parse: debug1

rigctl_parse: debug3

rigctl_parse: debug4 c=20

rigctl_parse: debug5

rigctl_parse: debug10

rigctl_parse: vfo_opt=0

rig_parse_parm called

rig_has_get_parm called

rig_get_parm called

rig_has_get_parm called

icom_get_parm called

icom_get_parm: i=0

icom_get_parm: i=1

icom_get_parm: i=2

icom_get_parm: i=3

rig_get_parm called

rig_has_get_parm called

icom_get_parm called

icom_get_parm: i=0

icom_get_parm: i=1

icom_get_parm: i=2

icom_get_parm: i=3

rig_get_parm called

rig_has_get_parm called

icom_get_parm called

icom_get_parm: i=0

icom_get_parm: i=1

icom_get_parm: i=2

icom_get_parm: i=3

rig_get_parm called

Segmentation fault

P ANN asks for one param

ig command: P ANN

rigctl_parse: cmd=P(50)

rigctl_parse: cmd==0x50

rigctl_parse: vfo_opt=0

rigctl_parse: debug1

rigctl_parse: debug3

rigctl_parse: debug4 c=20

rigctl_parse: debug5

rigctl_parse: debug6

rigctl_parse: debug7

rigctl_parse: debug8

Parm Value: 1

rigctl_parse: debug10

rigctl_parse: vfo_opt=0

rig_parse_parm called

rig_has_set_parm called

rig_set_parm called

rig_has_set_parm called

icom_set_parm called

icom_set_raw called

rig_flush: called for serial device

serial_flush called

serial_flush: tcflush

write_block called

write_block(): TX 7 bytes

0000 fe fe 94 e0 13 01 fd .......

read_string called

read_string(): RX 6 characters

0000 fe fe e0 94 fb fd ......

rigctl_parse: vfo_opt=0

rigctl_parse: retcode=0

rigctl_parse: called, interactive=1

BEEP seems to work fine!

VOXDELAY works fine.

L RF is sending the wrong command.

L RF 0

rigctl_parse: cmd=L(4c)

rigctl_parse: cmd==0x4c

rigctl_parse: vfo_opt=0

rigctl_parse: debug1

rigctl_parse: debug3

rigctl_parse: debug4 c=20

rigctl_parse: debug5

rigctl_parse: debug6

rigctl_parse: debug7

rigctl_parse: debug8

Level Value: rigctl_parse: debug10

rigctl_parse: vfo_opt=0

rig_parse_level called

rig_set_level called

icom_set_level called

icom_set_cmd called

to_bcd_be called

rig_flush: called for serial device

serial_flush called

serial_flush: tcflush

write_block called

write_block(): TX 10 bytes

0000 fe fe 94 e0 1a 05 00 23 00 fd .......#..

read_string called

read_string(): RX 6 characters

0000 fe fe e0 94 fb fd ......

rigctl_parse: vfo_opt=0

rigctl_parse: retcode=0

rigctl_parse: called, interactive=1

l RF

rigctl_parse: cmd=l(6c)

rigctl_parse: cmd==0x6c

rigctl_parse: vfo_opt=0

rigctl_parse: debug1

rigctl_parse: debug3

rigctl_parse: debug4 c=20

rigctl_parse: debug5

rigctl_parse: debug10

rigctl_parse: vfo_opt=0

rig_parse_level called

icom_get_level called

icom_get_level: i=0

icom_get_level: i=1

icom_get_level: i=2

icom_get_level: i=3

icom_get_level: no extcmd found

rig_flush: called for serial device

serial_flush called

serial_flush: tcflush

write_block called

write_block(): TX 7 bytes

0000 fe fe 94 e0 14 02 fd .......

read_string called

read_string(): RX 9 characters

0000 fe fe e0 94 14 02 02 55 fd .......U.

from_bcd_be called

icom_get_level: 2 255 1065353216 1.000000

Level Value: 1.000000

rigctl_parse: vfo_opt=0

rigctl_parse: retcode=0

rigctl_parse: called, interactive=1

Rig command: rigctl_parse: cmd==0x0a

From: Black Michael [mailto:mdblack98@yahoo.com]
Sent: Saturday, September 12, 2020 9:38 PM
To: Howard Nurse hlnurse@cmmsft.com
Subject: Re: VNC logon

TIME is seconds since midnight.

That's why you'll see it jump 60 seconds every minute.

Seems to me everything is working now so please double check me.

Mike

On Saturday, September 12, 2020, 05:22:18 PM CDT, Howard Nurse hlnurse@cmmsft.com wrote:

BEEP works. TIME looks funny. ANN doesn’t work.

Rig command: rigctl_parse: cmd==0x0a

p BEEP

rigctl_parse: cmd=p(70)

rigctl_parse: cmd==0x70

rigctl_parse: vfo_opt=0

rigctl_parse: debug1

rigctl_parse: debug3

rigctl_parse: debug4 c=20

rigctl_parse: debug5

rigctl_parse: debug10

rigctl_parse: vfo_opt=0

rig_parse_parm called

rig_has_get_parm called

rig_get_parm called

rig_has_get_parm called

icom_get_parm called

icom_get_cmd called

icom_get_raw_buf called

rig_flush: called for serial device

serial_flush called

serial_flush: tcflush

write_block called

write_block(): TX 9 bytes

0000 fe fe 94 e0 1a 05 00 23 fd .......#.

read_string called

read_string(): RX 10 characters

0000 fe fe e0 94 1a 05 00 23 00 fd .......#..

icom_get_raw_buf: 1

from_bcd_be called

Parm Value: 0

rigctl_parse: vfo_opt=0

rigctl_parse: retcode=0

rigctl_parse: called, interactive=1

Rig command: rigctl_parse: cmd==0x0a

p ANN

rigctl_parse: cmd=p(70)

rigctl_parse: cmd==0x70

rigctl_parse: vfo_opt=0

rigctl_parse: debug1

rigctl_parse: debug3

rigctl_parse: debug4 c=20

rigctl_parse: debug5

rigctl_parse: debug10

rigctl_parse: vfo_opt=0

rig_parse_parm called

rig_has_get_parm called

rig_get_parm called

rig_has_get_parm called

icom_get_parm called

rig_strparm called

rig_strparm called

icom_get_parm: unsupported get_parm ANNrigctl_parse: vfo_opt=0

get_parm: error = Invalid parameter

rigctl_parse: retcode=-1

rigctl_parse: called, interactive=1

Rig command: rigctl_parse: cmd==0x0a

p TIME

rigctl_parse: cmd=p(70)

rigctl_parse: cmd==0x70

rigctl_parse: vfo_opt=0

rigctl_parse: debug1

rigctl_parse: debug3

rigctl_parse: debug4 c=20

rigctl_parse: debug5

rigctl_parse: debug10

rigctl_parse: vfo_opt=0

rig_parse_parm called

rig_has_get_parm called

rig_get_parm called

rig_has_get_parm called

icom_get_parm called

icom_get_cmd called

icom_get_raw_buf called

rig_flush: called for serial device

serial_flush called

serial_flush: tcflush

write_block called

write_block(): TX 9 bytes

0000 fe fe 94 e0 1a 05 00 95 fd .........

read_string called

read_string(): RX 11 characters

0000 fe fe e0 94 1a 05 00 95 01 01 fd ...........

icom_get_raw_buf: 2

from_bcd_be called

from_bcd_be called

Parm Value: 3660

rigctl_parse: vfo_opt=0

rigctl_parse: retcode=0

rigctl_parse: called, interactive=1

Rig command: rigctl_parse: cmd==0x0a

From: Black Michael [mailto:mdblack98@yahoo.com]
Sent: Saturday, September 12, 2020 3:11 PM
To: Howard Nurse hlnurse@cmmsft.com
Subject: Re: VNC logon

That's a PARM -- not a LEVEL.

So use the p/P command.

Mike

On Saturday, September 12, 2020, 04:56:10 PM CDT, Howard Nurse hlnurse@cmmsft.com wrote:

Extras still not working. Should they?

i@rigpi5:~/Downloads/Hamlib-master $ rigctl -m 3073 -s 115200 -r /dev/ttyUSB0 -vvvvv

rigctl Hamlib 4.1~git

Last commit was Sat Sep 12 16:21:33 2020 +0000 SHA=83667f

Report bugs to hamlib-developer@lists.sourceforge.net

rig_init called

initrigs4_icom: _init called

rig_register called

rig_register: rig_register (3055)

rig_register called

rig_register: rig_register (3085)

rig_register called

rig_register: rig_register (3009)

rig_register called

rig_register: rig_register (3010)

rig_register called

rig_register: rig_register (3011)

rig_register called

rig_register: rig_register (3013)

rig_register called

rig_register: rig_register (3014)

rig_register called

rig_register: rig_register (3015)

rig_register called

rig_register: rig_register (3019)

rig_register called

rig_register: rig_register (3020)

rig_register called

rig_register: rig_register (3021)

rig_register called

rig_register: rig_register (3022)

rig_register called

rig_register: rig_register (3067)

rig_register called

rig_register: rig_register (3023)

rig_register called

rig_register: rig_register (3046)

rig_register called

rig_register: rig_register (3024)

rig_register called

rig_register: rig_register (3028)

rig_register called

rig_register: rig_register (3030)

rig_register called

rig_register: rig_register (3026)

rig_register called

rig_register: rig_register (3027)

rig_register called

rig_register: rig_register (3047)

rig_register called

rig_register: rig_register (3057)

rig_register called

rig_register: rig_register (3063)

rig_register called

rig_register: rig_register (3029)

rig_register called

rig_register: rig_register (3062)

rig_register called

rig_register: rig_register (3045)

rig_register called

rig_register: rig_register (3056)

rig_register called

rig_register: rig_register (3075)

rig_register called

rig_register: rig_register (3060)

rig_register called

rig_register: rig_register (3070)

rig_register called

rig_register: rig_register (3061)

rig_register called

rig_register: rig_register (3073)

rig_register called

rig_register: rig_register (3078)

rig_register called

rig_register: rig_register (3031)

rig_register called

rig_register: rig_register (3012)

rig_register called

rig_register: rig_register (3016)

rig_register called

rig_register: rig_register (3032)

rig_register called

rig_register: rig_register (3034)

rig_register called

rig_register: rig_register (3044)

rig_register called

rig_register: rig_register (3068)

rig_register called

rig_register: rig_register (3035)

rig_register called

rig_register: rig_register (3081)

rig_register called

rig_register: rig_register (3069)

rig_register called

rig_register: rig_register (3077)

rig_register called

rig_register: rig_register (3036)

rig_register called

rig_register: rig_register (3058)

rig_register called

rig_register: rig_register (3080)

rig_register called

rig_register: rig_register (3037)

rig_register called

rig_register: rig_register (3038)

rig_register called

rig_register: rig_register (3039)

rig_register called

rig_register: rig_register (3040)

rig_register called

rig_register: rig_register (3041)

rig_register called

rig_register: rig_register (3042)

rig_register called

rig_register: rig_register (3079)

rig_register called

rig_register: rig_register (3043)

rig_register called

rig_register: rig_register (3066)

rig_register called

rig_register: rig_register (3003)

rig_register called

rig_register: rig_register (3004)

rig_register called

rig_register: rig_register (3006)

rig_register called

rig_register: rig_register (3007)

rig_register called

rig_register: rig_register (3002)

rig_register called

rig_register: rig_register (3052)

rig_register called

rig_register: rig_register (3053)

rig_register called

rig_register: rig_register (3051)

rig_register called

rig_register: rig_register (3064)

rig_register called

rig_register: rig_register (3065)

rig_register called

rig_register: rig_register (3054)

rig_register called

rig_register: rig_register (3083)

rig_register called

rig_register: rig_register (3084)

rig_register called

rig_register: rig_register (3082)

rig_register called

rig_register: rig_register (3071)

rig_register called

rig_register: rig_register (3072)

rig_register called

rig_register: rig_register (3074)

rig_register called

rig_register: rig_register (3076)

icom_init called

icom_init: done

rig_open called

port_open called

serial_open called

serial_setup called

serial_setup: tcgetattr

serial_setup: cfmakeraw

serial_setup: cfsetispeed=115200,0x1002

serial_setup: cfsetospeed=115200,0x1002

serial_setup: data_bits=8

serial_setup: parity=0

serial_setup: tcsetattr TCSANOW

serial_flush called

serial_flush: tcflush

icom_rig_open 744

icom_rig_open: IC-7300 v20200911.0

icom_get_usb_echo_off called

icom_get_usb_echo_off: retry temp set to 1

rig_flush: called for serial device

serial_flush called

serial_flush: tcflush

write_block called

write_block(): TX 6 bytes

0000 fe fe 94 e0 03 fd ......

read_string called

read_string(): RX 11 characters

0000 fe fe e0 94 03 00 30 32 50 00 fd ......02P..

rig_flush: called for serial device

serial_flush called

serial_flush: tcflush

write_block called

write_block(): TX 6 bytes

0000 fe fe 94 e0 03 fd ......

read_string called

read_string(): RX 11 characters

0000 fe fe e0 94 03 00 30 32 50 00 fd ......02P..

icom_transaction: failed: Protocol error

icom_get_usb_echo_off: ack_len=80

icom_get_usb_echo_off 713

rig_flush: called for serial device

serial_flush called

serial_flush: tcflush

write_block called

write_block(): TX 7 bytes

0000 fe fe 94 e0 19 00 fd .......

read_string called

read_string(): RX 8 characters

0000 fe fe e0 94 19 00 94 fd ........

icom_get_usb_echo_off: USB echo off detected

rig_get_vfo called

rig_get_vfo: no get_vfo

rig_open: Icom rig so default vfo = currVFO

Opened rig model 3073, 'IC-7300'

Backend version: 20200911.0, Status: Stable

rigctl_parse: called, interactive=1

Rig command: l ANN

rigctl_parse: cmd=l(6c)

rigctl_parse: cmd==0x6c

rigctl_parse: vfo_opt=0

rigctl_parse: debug1

rigctl_parse: debug3

rigctl_parse: debug4 c=20

rigctl_parse: debug5

rigctl_parse: debug10

rigctl_parse: vfo_opt=0

rig_parse_level called

rig_ext_lookup called

rigctl_parse: vfo_opt=0

get_level: error = Invalid parameter

rigctl_parse: retcode=-1

rigctl_parse: called, interactive=1

Rig command: rigctl_parse: cmd==0x0a

l BEEP

rigctl_parse: cmd=l(6c)

rigctl_parse: cmd==0x6c

rigctl_parse: vfo_opt=0

rigctl_parse: debug1

rigctl_parse: debug3

rigctl_parse: debug4 c=20

rigctl_parse: debug5

rigctl_parse: debug10

rigctl_parse: vfo_opt=0

rig_parse_level called

rig_ext_lookup called

rigctl_parse: vfo_opt=0

get_level: error = Invalid parameter

rigctl_parse: retcode=-1

rigctl_parse: called, interactive=1

Rig command: rigctl_parse: cmd==0x0a

l TIME

rigctl_parse: cmd=l(6c)

rigctl_parse: cmd==0x6c

rigctl_parse: vfo_opt=0

rigctl_parse: debug1

rigctl_parse: debug3

rigctl_parse: debug4 c=20

rigctl_parse: debug5

rigctl_parse: debug10

rigctl_parse: vfo_opt=0

rig_parse_level called

rig_ext_lookup called

rigctl_parse: vfo_opt=0

get_level: error = Invalid parameter

rigctl_parse: retcode=-1

rigctl_parse: called, interactive=1

Rig command: rigctl_parse: cmd==0x0a

@mikaelnousiainen
Copy link
Contributor

mikaelnousiainen commented Sep 14, 2020

@mdblack98 Thanks for working on fixing these.

I've noticed some issues as well, even after applying your latest fixes regarding the collisions:

  • RF GAIN level (get or set) doesn't work on any Icom rig I've tested (7300, 7600, 756Pro3)
  • Squelch level (get or set) doesn't work on any Icom rig I've tested (7300, 7600, 756Pro3)
  • DRIVE GAIN level (get and set) is broken on 7600 -- this is a custom level, but nevertheless it was working (I added it last year)

All of these used to work late last year.

EDIT: I've pretty much tested all other levels / funcs and other basic features on those three rigs and they seem to be working OK.

@mikaelnousiainen
Copy link
Contributor

mikaelnousiainen commented Sep 14, 2020

@mdblack98 One more thing on IC-7300: it doesn't support setting or getting repeater offset -- something probably got mixed in the caps, as 3.3 had these settings set to NULL (which is correct):

.set_rptr_shift =  NULL,
.get_rptr_shift =  NULL,
.set_rptr_offs =  NULL,
.get_rptr_offs =  NULL,

And yes, these should be NULL for 7300 only, as 9700 and 705 should support them for repeater access.

@mdblack98 mdblack98 linked a pull request Sep 14, 2020 that will close this issue
@mdblack98
Copy link
Contributor Author

mdblack98 commented Sep 14, 2020 via email

@mikaelnousiainen
Copy link
Contributor

@mdblack98 RF and SQL work now, but DRIVE GAIN is still failing (both get and set):

Hamlib (:20001) command '+\set_level drive_gain 105' failed: Invalid parameter (error code -1)

@mikaelnousiainen
Copy link
Contributor

@mdblack98 I suspect there is still something wrong with icom_set|get_ext_level or icom_set|get_ext_cmd regarding matching of the tokens... Couldn't immediately see what yet, though...

@mdblack98
Copy link
Contributor Author

mdblack98 commented Sep 15, 2020 via email

N0NB pushed a commit that referenced this issue Sep 15, 2020
N0NB pushed a commit that referenced this issue Sep 15, 2020
@mikaelnousiainen
Copy link
Contributor

mikaelnousiainen commented Sep 15, 2020

@mdblack98 icom_set_ext_cmd and icom_get_ext_cmd cannot find drive_gain in IC-7600 extcmds -- which is true. So just confirming: the new extcmds list should have a command for the existing extlevels list?

Rig command: \set_level drive_gain 130
rigctl_parse: input_line: \set_level drive_gain 130
rigctl_parse: vfo_opt=0
rig_parse_level called
rig_ext_lookup called
rig_set_ext_level called
icom_set_ext_level called
icom_set_ext_cmd called
rigctl_parse: vfo_opt=0
set_level: error = Invalid parameter
rigctl_parse: retcode=-1
rigctl_parse: called, interactive=1

Rig command: \get_level drive_gain
rigctl_parse: input_line: \get_level drive_gain
rigctl_parse: vfo_opt=0
rig_parse_level called
rig_ext_lookup called
rig_get_ext_level called
icom_get_ext_level called
icom_get_ext_cmd called
rigctl_parse: vfo_opt=0
get_level: error = Invalid parameter
rigctl_parse: retcode=-1
rigctl_parse: called, interactive=1

@mikaelnousiainen
Copy link
Contributor

@mdblack98 I can try to fix the extcmds implementation, there are some bugs there still.

One question though: now that it's possible to set the cmdparam type in the Icom extcmds, is there any need to have a separate list of tokens in ext_tokens in icom_priv_caps? It seems very redundant to me, as the support for an ext level token can be detected from the extcmds list too.

I think I'll end up removing ext_tokens as it's not even widely used anywhere.

@mikaelnousiainen
Copy link
Contributor

@mdblack98 Ok, I get now why ext_tokens was added. Some of the rigs use the common list of extlevels / extcmds that is shared, so list then determines which ones are actually supported by the rig, right?

This gets a bit complicated. I'll see if there could be a way to simplify it a bit.

@mikaelnousiainen
Copy link
Contributor

@mdblack98 And it would be nice to be able to share some parts of the extcmds between the rigs and make some of them rig-specific -- just to deal with the Icom madness of always introducing rig-specific commands with every model.

@mdblack98
Copy link
Contributor Author

mdblack98 commented Sep 16, 2020 via email

@mikaelnousiainen
Copy link
Contributor

@mdblack98 Agreed, I won't be removing anything -- but only fixing issues. I've got a PR coming soon (once I get to test it) for you to review, which will hopefully fix a bunch of things with the extcmds handling! So no radical changes, only improvements.

@mdblack98
Copy link
Contributor Author

mdblack98 commented Sep 16, 2020 via email

@mikaelnousiainen
Copy link
Contributor

@mdblack98 Possibly. I'll try to fix conflicts. There was an issue with ext_tokens not being defined and icom_set_ext_cmd searching for something else than tokens in the list. I'll push out a PR later today. I've also cleaned up Icom code to use more extcmds and some other minor changes.

@mdblack98 mdblack98 reopened this Sep 16, 2020
@mdblack98 mdblack98 linked a pull request Sep 16, 2020 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
2 participants