Change the magic field of the header to uint32_t, as four bytes are sufficient to hold the identification string.
Extend the version field to uint32_t to provide space for the full major-minor-patch triplet.
Use an uint32_t to store the transmission power of each channel, expressed in mW. Max storable value is a bit less than 4.3MW.
Set the size of the channel infoblock field to a fixed value, like 16 bytes, to make room for future expansions without needing to resize the codeplug file (good when stored without a filesystem).
Use a single CAN in M17 channels, as there is no need for separate TX/RX CAN.
Compact the mode_encr and gps_mode fields of M17 channels into a single 8-bit field.
magic
field of the header touint32_t
, as four bytes are sufficient to hold the identification string.version
field touint32_t
to provide space for the full major-minor-patch triplet.uint32_t
to store the transmission power of each channel, expressed in mW. Max storable value is a bit less than 4.3MW.mode_encr
andgps_mode
fields of M17 channels into a single 8-bit field.