Skip to main content

Metadata Editing

BitEdit 2 allows you to inspect and modify the structural properties of maps, axes, and other entities without re-importing the entire map pack. This is useful for correcting addresses, adjusting transforms, renaming maps, or fine-tuning data formats.

Property Grid

The Property Grid tool is the primary interface for metadata editing. Open it from Main → Tools → Properties on the Ribbon, or press F4 while a map zone is selected in the 2D editor.

The Ribbon Properties command is context-aware:

  • In 2D and HEX editors, it opens properties for the object under the current caret position.
  • In Map Group editor, it opens properties for the currently displayed map.

The Property Grid dynamically shows all editable properties of the selected entity. Changes are applied immediately and tracked in the undo stack.

Map Properties

Name and Units

Every map has a Name (displayed in the Map Tree and editor tabs) and an optional Units string (displayed in the grid header and axis labels). Both can be changed at any time via the Property Grid.

Start Address

The StartAddress property defines where the map data begins in the dump. Changing it repositions which bytes the map reads and writes. Use this when you discover a map definition points to the wrong offset.

Tip: Use the 2D editor to visually locate the correct address, then update the map's StartAddress in the Property Grid.

Data Format

Maps store values using a binary data format that determines how bytes are interpreted:

FormatSizeRange
UInt81 byte0 – 255
Int81 byte−128 – 127
UInt162 bytes0 – 65,535
Int162 bytes−32,768 – 32,767
UInt324 bytes0 – 4,294,967,295
Int324 bytes−2,147,483,648 – 2,147,483,647
Float4 bytesIEEE 754 single-precision
Double8 bytesIEEE 754 double-precision

Additionally, multi-byte formats have a byte order setting:

  • Little-endian (default) — least significant byte first (Intel convention)
  • Big-endian — most significant byte first (Motorola convention)

Value Transforms

Transforms convert between the raw binary value stored in the dump and the display value shown to the user. BitEdit 2 supports two transform types:

Linear Transformdisplay = raw × factor + offset

  • Factor: multiplication coefficient (default 1.0)
  • Offset: additive constant (default 0.0)
  • Example: raw byte 0–255 → display 0–5.0V with factor=0.0196, offset=0

Reciprocal Transformdisplay = postFactor / (preFactor × raw + preOffset) + postOffset

  • Inverse formula used when writing values back to dump: raw = (postFactor / (display - postOffset) - preOffset) / preFactor
  • Useful for reciprocal-style calibrations (for example, period/frequency style conversions).

Dimensions

Map dimensions are set at creation time and define the shape of the data:

  • Scalar — single value (no axes)
  • 1D / Curve — one-dimensional array with one axis
  • 2D / Surface — two-dimensional matrix with two axes

After creation, you can change the count source for each dimension:

  • Hard-coded — fixed dimension size stored in the map pack
  • In-dump — dimension size read from a specific address in the dump (variable-length maps)

Count source string parsing in Property Grid

When editing an ICountSource value as text in Property Grid, BitEdit parses these formats:

  • Hard-coded count: =16 or 16
    (positive integer only)
  • In-dump count: @0010ABCD[1]
    (@<hexAddress>[<length>], where length must be 1, 2, or 4)

Notes:

  • Spaces are ignored.
  • Address is parsed as hex (1 to 8 hex digits, no 0x prefix).
  • In-dump source is accepted only when the parsed address range is valid for the current dump.
  • IsBigEndian and Maximum are not encoded in the string form and are edited as nested properties.

Axis Properties

Each axis has its own metadata:

  • Name and Units — descriptive labels
  • Transform — linear transform for axis display values (factor and offset)
  • User-editable — whether the axis values can be modified by the user
  • Data source — where axis values come from:
    • Simple — sequential integer indices (0, 1, 2, …)
    • Dump — values read from a specific dump address with configurable format and step

Axis Sharing

Multiple maps can share the same axis object. When an axis is linked, changing its values or properties affects all maps that reference it. Use Unlink to create an independent copy for a specific map.

DTC Properties

DTC (Diagnostic Trouble Code) entries have:

  • Codes — one or more numeric identifiers
  • Patches — byte-level modifications that toggle the DTC on or off

Each patch specifies an address, the original bytes, and the patched bytes. You can add or remove patches to control which dump regions are modified when a DTC is toggled.

String Values

String values represent ASCII text stored at fixed addresses in the dump:

  • Address — dump offset where the string begins
  • Length — maximum character count
  • Fill character — padding character for shorter strings (default: space)

Bit Fields

Bit fields represent individual bits at specific byte addresses:

  • Address — the byte address in the dump
  • Bit number — which bit (0–7) within that byte
  • Description — human-readable label

Flags

Flags are similar to DTC patches — they represent named on/off modifications to the dump. Each flag can have multiple patches, and its state (Set / Not Set / Unknown) is determined by comparing the dump's current values against the defined patch bytes.

Folders and Map Groups

Folders

Folders organize maps, flags, strings, and other entities into a tree hierarchy. You can:

  • Create new folders
  • Rename existing folders
  • Move items between folders via drag-and-drop or the Move command
  • Delete folders (children are moved to the parent)

Map Groups

Map groups link multiple maps that share a semantic purpose (e.g., fuel maps for different operating modes). Maps in a group always share the same data format and dimensions. The group editor displays all member maps side by side for synchronized editing.