Skip to content

Exported channel names from m×n expansion overflow tight radio LCD limits #130

Description

@pskillen

Problem

When a logical channel expands into multiple CPS rows at export — multi-mode (#46, shipped) and multi-talkgroup (#36) — the generated channel name is composed from the operator's base channel name plus a mode suffix (-F/-D) and/or an appended talkgroup name, e.g. GB7AC Largs Scot West TS1 (25 chars).

Many target radios have very tight LCD name limits (often 11, 13, or 16 characters). The structurally-correct expanded export is therefore frequently unusable: the names are far too long for the radio, and at the tightest limits there is barely room for <callsign> + <place>, let alone an appended talkgroup. Operators currently have to hand-abbreviate names, which pollutes the canonical (vendor-neutral) channel name.

Today the export length limit is only used to emit a warning — names are never actually shortened — and the expanded names are also written verbatim into zone member references, so any shortening must stay consistent across channels and zones.

This is intended as a stop-gap ahead of export profiles (#122), which will own per-profile display-name overrides and profile-aware validation long term. Even after #122, the ability to auto-generate sensible short names for profiled export channels is desirable.

Impact

  • Expanded codeplugs cannot be flashed without manual editing on radios with short name limits.
  • Pressure to shorten the canonical channel name, undermining vendor neutrality.
  • A separate concern: once names are abbreviated/truncated at export, they no longer reverse cleanly on re-import, so the merge-collapse that relies on name stems breaks.

Potential solutions (to be explored, not prescriptive)

  • Automatic, generic name shortening to a fixed target length, applied at export inside the channel-expansion layer (so channels and zone members stay consistent). Possible techniques: a curated progressive abbreviation dictionary (e.g. Scotland → Scot → Sco), generic vowel-squeezing, and hard truncation as a last resort, with collision-safe disambiguation.
  • Component-level shortening that respects operator intent before generic heuristics, e.g. a first-class TalkGroup.abbreviation field and an amateur-radio callsign-suffix convention (GB7GL → GL).
  • Operator-selectable export-time options (target length, callsign-suffix, etc.), with preferences persisted locally.
  • Reusable shortening helpers so a future "Generate short name" action can apply the same rules once radio profiles (feat: export profiles on codeplug project #122) ship.
  • Relaxing/loosening re-import matching so abbreviated names still re-merge — potentially moving toward a score-based match across name, frequency, location, colour code, timeslot, and mode rather than name alone. (A thorough score-based matcher likely warrants its own ticket.)

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions