3.8  Reserved button numbers  .... buttons that have a hard coded function.

References are to buttons and catcodes tables.
All of the following discussion is also applicable to buttonsciv and catcodesciv for Icom.

Every button (including the 24 buttons on the popup window) has a unique numeric identifier.

See Button and Slider numbering

In code module, buttons.js the button number are assigned text labels, eg:

       const BTN_6M                = 12;

const BTN_4M                = 13;

const BTN_2M                = 14;

const BTN_70CM        = 15;

const BTN_VFOA        = 16;

const BTN_VFOB        = 17;

const BTN_DNR        = 18;

const BTN_NB                 = 19;

const BTN_NOTCH        = 20;


These labels refer to button usage in my initial FTdx101D configuration.
They are purely internal references in the software for design convenience.

You can configure the system without being aware of them.

Most buttons (and sliders) can be configured to a function, caption and colour of your choice.

However, some buttons have hard-coded dedicated functions. These are detailed below.

The buttons table data is loaded to the client at startup.

The catcodes table data is read from the data  'on the fly' by PHP server code.
The primary link between the buttons record and the catcodes record is the code field.

Most code field items can be your choice. However some are fixed for use by the software.

The other important links is the buttons vx and the catcodes abx field ...
See next section:  vx and abx         

(Note that a code field is also in the sliders table.
With sliders, both client and server  are in a singe table, but the use of code, vx, abx is the same.)

Fixed button numbers:

VFO control buttons:

16        VFO A                Use  code = VFO

17        VFO B                Use  coded = VFO

79        Swap A/B        No direct server action   ... software link to VFO A and B buttons.

The intended configuration with the two receivers or two independent VFOs is as
my FTdx101d example:

Firstly, note that VFO selection is not a function of the separate VFOs
It selects the VFOs . It uses vx = X and abx = X.

We configure buttons 16 and 17 as a group of two (action = G) and use code = VFO.

The buttons each send the data for their specific VFO selection to a single catcodes record

on the server. This generates the VFO switching commands using the button data.

Button 79 action is interception in software and toggles between buttons 16 and 17 action.
Thus we have two ways of doing the same switching job, ie click the VFO A or B buttons or
toggle them with the Swap button.

For this to work, the radio's CAT controls need to have read and write VFO selector commands.
The FT920 doesn't appear to have this  (contrary to what the manual says.)
 I therefore just have a SWAP button .... and it cannot be button 79 with its built in toggling action.

 I simply choose another button as Swap and disable buttons 16, 17 and 97.

Tx meter buttons.
These are:

61        Tx meter A        eg: power                code = PWRM

62        Tx meter B        eg: ALC                        code = ALCM

63        Tx meter C        eg: Compression        code = CMPM

64        Tx meter D        eg: IDD                        code = IDDM

65        Tx meter E        eg: SWR                code = SWRM

These buttons do not communicate with the radio,
They select which metering command shall be sent to the radios on transmit.

They all must have code = TXME.
Their captions are specified in the meter table.

The button number (61, 62 etc) is the link to the meter table  (not the code)

Band buttons  (not fixed in the code)

These in groups on the right of the window.

A group is defined by all its buttons having action = G and the same value for the code field.
The code field must be BAND  (see below)

The buttons numbers are not actually fixed ... but it is suggested that you use my original allocation.

(but you can rearrange them if you wish)

2 = 160m

3 = 80m

4 = 60m

5 = 40m

6 = 30m

7 = 20m

8 = 17m

9 = 15m

10 - 12m

11 = 10m

12 = 6m

13 = 4m

14 = 2m

15 = 70cm

Mode buttons (not fixed in the code)

These in groups on the right of the window.

A group is defined by all its buttons having action = G and the same value for the code field.
The code field must be MODE  (see below)

The button numbers are NOT fixed.
On a 160m - 6m rig, band buttons 13, 14 and 15 are not used and so could used for extra modes.
(Change the colour to navy to match the other other mode buttons)