G3xDDC Memory File Format

The memory storage of G3xDDC receivers is divided into groups. Each group can contain memory items to store frequencies and other groups - sub-groups.

The memory file starts with a file header followed by the root group content. The memory file uses the little endian ordering system.

Memory file

 File offset
(bytes)
Field nameField size
(bytes)
Description
File header0Signature4File format signature (0xE651B291).
4Version4File format version 1.2 (0x00010002).
8Next group identifier4Identifier which will be used for next group which will be stored to the memory file.
12Next memory item identifier4Identifier which will be used for next memory item which will be stored to the memory file.
16Reserved4Reserved, must be zero.
Root group20Group identifier4Root group identifier (0x00000000)
24Item count4Number of memory items stored directly in root group. This number does not include memory items stored in sub-groups.
28Sub-group count4Number of sub-groups stored directly in the root group.
Root group
contents
32Memory itemsVariableSequence of memory items stored directly in root group. Number of the items in the sequence is given by the Item count field. If the root group does not contain any memory item, sub-groups start at this place.
VariableSub-groupsVariableSequence of sub-groups (with their contents) of the root group. Number of the groups in the sequence is given by the Sub-group count field.

Memory item

Offset
(bytes)
Field nameField size
(bytes)
Description
0Identifier4Memory item identifier. It must be unique, no other memory item in memory file can have the same identifier.
4Flags4Memory item flags (it is a set of bit flags).

BitDescription
0If it is set, Mode field is valid, otherwise it is unused.
1If it is set, Bandwidth field is valid, otherwise it is unused.
2Reserved, must be zero.
3If it is set, squelch fields are valid, otherwise they are unused.
4If it is set, audio filter fields are valid, otherwise they are unused.
5If it is set, DDC bandwidth field is valid, otherwise it is unused.
6If it is set, Attenuator field is valid, otherwise it is unused.
7If it is set, Preamp field is valid, otherwise it is unused.
8If it is set, memory item is excluded from memory scanning.
9If it is set, DDC2 bandwidth field is valid, otherwise it is unused.
10 - 31Reserved, must be zero.

8Priority4Priority which can be used for memory scanning.
12Callsign64Null-terminated 16 bit Unicode string which contains memory item callsign. If the callsign consists of 32 characters, the string does not contain null-terminator
76Description128Null-terminated 16 bit Unicode string which contains memory item description. If the description consists of 64 characters, the string does not contain null-terminator.
204Frequency8Frequency in Hz.
212Mode4Demodulator mode. It can be one of the following:

ValueDescription
0CW (Continuous wave)
1AM (Amplitude modulation)
2FM (Frequency modulation)
3FMW (Wide FM)
4LSB (Lower sideband)
5USB (Upper sideband)
8AMS (Synchronous AM)
13DSB (Double sideband)
14ISB (Independent sideband)
18DRM (Digital Radio Mondiale)
20UDM (User defined mode)

216Bandwidth4Demodulator filter bandwidth in Hz.
220Reserved4Reserved, must be zero.
224DDC bandwidth4Useful bandwidth of primary DDC in Hz.
228Attenuator4Attenuator level in dB.
232Preamp4Preamp state, non-zero if the preamp is enabled, zero if preamp is disabled.
236DDC2 bandwidth4Useful bandwidth of secondary DDC in Hz.
240Reserved4Reserved, must be zero.
244Squelch/Flags1A set of bit flags.

BitDescription
0If it is set, squelch is enabled.
1If it is set, level squelch is enabled.
2If it is set, noise squelch is enabled.
3If it is set, voice squelch is enabled.
4If it is set, DCS squelch is enabled.
5If it is set, CTCSS squelch is enabled.
6 - 7Reserved, must be zero.

245Squelch/Level2Level squelch in dB (signed integer).
247Squelch/Noise2Noise squelch in %.
249Squelch/Voice2Voice squelch in %.
251Squelch/DCS2DCS squelch code (signed integer). Reverse code if it is negative.
253Squelch/CTCSS2CTCSS tone in Hz.
255Audio filter/Enabled1Non-zero if audio filter is enabled, zero if it is disabled.
256Audio filter/Cut-off low4Cut-off low frequency of the audio filter in Hz.
260Audio filter/Cut-off high4Cut-off high frequency of the audio filter in Hz.
264Audio filter/Deemphasis4Deemphasis * 10 (signed integer).
268Hot key4Hot key used by the application to recall memory.

Memory group

Offset
(bytes)
Field nameField size
(bytes)
Description
0Name64Null-terminated 16 bit Unicode string which contains group name. If the name consists of 32 characters, the string does not contain a null-terminator.
64Identifier4Group identifier. It must be unique; no other group in memory file can have the same identifier.
68Item count4Number of memory items stored in the group.
72Sub-group count4Number of sub-groups stored in the group.
76Reserved4Reserved, must be zero.
80Memory itemsVariableSequence of memory items stored in the group. Number of the items is given by the Item count field. If the group does not contain any memory item, a sub-group starts at this place.
VariableSub-groupsVariableSequence of sub-groups stored in the group. Number of the sub-groups is given by the Sub-group count field.