Hamlib / Hamlib

Ham radio control library for rigs, rotators, tuners, and amplifiers
Other
610 stars 210 forks source link

IC-7300 some levels wrong #373

Closed mdblack98 closed 4 years ago

mdblack98 commented 4 years ago

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 commented 4 years ago

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

mdblack98 commented 4 years ago

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 commented 4 years ago

@mdblack98 Thanks for working on fixing these.

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

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 commented 4 years ago

@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 commented 4 years ago

RF and SQL should be fixed. Can you test DRIVE GAIN? Mike

On Monday, September 14, 2020, 01:37:33 AM CDT, Mikael Nousiainen <notifications@github.com> wrote:  

@mdblack98 Thanks for working on fixing these.

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

All of these used to work late last year.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub, or unsubscribe.

mikaelnousiainen commented 4 years ago

@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 commented 4 years ago

@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 commented 4 years ago

Please send debug info. Mike W9MDB

On Tuesday, September 15, 2020, 02:20:29 AM CDT, Mikael Nousiainen <notifications@github.com> wrote:  

@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...

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub, or unsubscribe.

mikaelnousiainen commented 4 years ago

@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 commented 4 years ago

@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 commented 4 years ago

@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 commented 4 years ago

@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 commented 4 years ago

Please don't touch this section of code without a LOT of thought.  There are 3 levels of such things....it's just that there was a collision between LEVEL and PARM values going on that had to be fixed and I figured that change would break something...which it did.    There are global levels/parms, Icom levels/parms, and rig levels/parms.   The RigPi testing is pointing out some of these things now as Howard is actively improving the interface. If you can think of some way to simplify this we can discuss.

Mike W9MDB

On Wednesday, September 16, 2020, 02:21:27 AM CDT, Mikael Nousiainen <notifications@github.com> wrote:  

@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.

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub, or unsubscribe.

mikaelnousiainen commented 4 years ago

@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 commented 4 years ago

I was just finishing up fixing the drive_gain bug which would fix all the other ext_cmds. Sounds like it might collide with what you're doing. Mike

On Wednesday, September 16, 2020, 09:17:51 AM CDT, Mikael Nousiainen <notifications@github.com> wrote:  

@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.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

mikaelnousiainen commented 4 years ago

@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.