[chirp_devel] Implementing banks for Alinco DJ-G7EG
Mathias Weyland
Sun Nov 6 08:37:10 PST 2016
Hello everyone
I am working on adding support for the radio mentioned in the subject
because
the Alinco programming software is quite crusty and Windows only. I
currently
have basic support running, which means that I can reliably read from
and write
to the radio. I am now trying to tackle memory banks. I can read and
write the
memory bank allocation but I'm struggling with integrating that into
chirp. I
have studied a few examples of how this is implemented in chirp, in
particular
for the FT60. Yet I am not quite sure how to approach this and I am
looking for
general pointers (example code, documentation or hints of any kind are
welcome).
The radio in question has 50 user defined banks. Those banks do not
have names,
but the user can set the number of channels contained in each bank
dynamically.
The number of such channels must add up to 1000. It's kind of an
overlay to
struct { ...} memory[1000]. The bank assignment is implied by the sizes
of the
banks defined in another uint16_t[50]. A user could therefore decide to
set the first 10 banks to 100 channels each and set the remaining banks
to a
size of zero. Or have a first bank with 50 channels, then a second bank
with 150
channels and 8 more banks with 100 channels as before. A particular
channel
in a fixed memory position would be transferred from bank 1 to bank 2
if bank 1
is reduced in size and bank 2 is increased accordingly. There are a few
more
special banks of fixed size that I want to ignore for now. I do
understand how to
read and write the bank sizes from and to the radio, but what I do not
understand
is how to modify my current class to integrate the bank feature.
As far as I can see, I need to set the "has_bank" feature to true and I
need a
get_bank_model() method that returns an instance that inherits from
chirp_common.BankModel. I am however not entirely sure what methods
that custom
BankModel has to implement and how all the bits piece together. I'm
also
concerned that this doesn't quite fit the usual bank paradigm employed
in chirp.
I'd like to worry with the GUI in a follow-up step. I guess that would
be a new
tab where the bank sizes can be allocated. Any info on that is welcome
too
of course.
Best regards and thank you
Matt
More information about the chirp_devel
mailing list