dmitryelj / SoapyICR8600

Icom ICR8600 SoapySDR driver
MIT License
4 stars 3 forks source link

Handle antenna selection based on frequency #8

Closed robojay closed 3 years ago

robojay commented 3 years ago

The R8600 has three antenna ports, ANT 1, ANT 2, and ANT 3 When operating in HF mode (frequency < 30MHz), any antenna may be selected, and the antenna control commands are accepted by the radio.

Outside of the HF range, ANT 1 is automatically selected by the radio and any antenna control command is rejected.

The driver has been modified to better match the radio's operation:

When the frequency has been set less than 30MHz, getAntenna() and setAntenna() work as expected.

When greater than or equal to 30MHz, getAntenna() always returns ANT 1, and setAntenna() will log an error if the desired antenna is not ANT 1. Additionally, neither function actually sends a control command to the radio.

One outstanding question is if listAntennas() should modify its return based on the frequency selected. Applications may not expect the antenna list to be a dynamic item. At this point, listAntennas() always returns the three options.