Previously, we used the tuning step of 12.5 to determine if the
multiplier was 5.0 or 6.25. However, you can actually get a frequency
in a channel that is encoded at 5.0 but with a tuning step of 12.5.
There is an additional flag that tells us which multiplier to use.
Partially fixes ticket:1
The 9x driver will never be like the mobile radios, but this patch
attempts to clean it up in a similar way. The ic9x_ll module contains
the low-level routines for talking to the radio, which includes the
various frame formats and helper functions to stage a request frame and
get a response. The ic9x module implements the IcomRadio interface and
provides much-needed caching to prevent us from hitting the radio
unnecessarily.
This has undergone only minor testing, so further scrutiny is definitely
required.
Changes 5-Mar-2009 16:28 PST:
- Fixed reversal of RPT2 and URCALL fields
- Fixed bank and bank_index decoding
Changes 4-Mar-2009 21:14 PST:
- Return a full callsign list, per previous changes for the editor
- Fix off-by-one callsign index, which didn't show up until the
above change where we started caring about non-empty callsigns
0 is highest. Modify the submit method to take a priority argument,
assuming highest.
In MemoryEditor, use this in the following ways:
In MemoryEditor::__init__(), start a background load of all the
radio's memories (prio 10) so that they can be loaded from cache instead
of fetched from the radio. Start the background load at the upper limit
of the UI control, which will cause us to only load the ones higher than
their preference setting for initial loading.
In MemoryEditor::prefill() load memories at prio 2. All others (such as
a write following a user's modification to a channel) are sent at prio
0.
This means that the memories loading in the background take absolute
lowest priority. While loading memories for the main display, an edit
gets sent to the radio immediately. Switching to the D-STAR tab loads
the callsigns at prio 0 since the user clearly just asked for them.
- Change to using KeyedListWidget
- Remove add/del/move buttons on the editor widget
- Display callsign slot number in a column
- Make callsign editable in-place
- Trigger CallsignEditor's changed signal when an item is edited
- Don't connect the changed signal until after we load the box the first
time (otherwise a signal storm occurs since item-set will get fired a
for each new callsign as it comes in from the radio driver)
Changes 5-Mar-2009:
- Update handler for item-set signal
- Ignore the first callsign slot if specified by the radio model