Problem
DM32 CPS exports a separate Scan.csv (scan lists) with channel Scan List FK columns. The internal codeplug model has no ScanList entity today — zones serve as the scan unit on OpenGD77 only.
#67 (DM32 import/export) deliberately defers scan lists so the first DM32 slice can ship channels, zones, contacts, talk groups, and RX group lists.
Intended outcome
Add a vendor-neutral ScanList entity and wire it through import/export for DM32 (and future formats with separate scan-list files).
Internal model (proposed)
interface ScanList {
id: string;
name: string;
memberChannelIds: string[];
priorityChannel1Id: string | null;
priorityChannel2Id: string | null;
designedTxChannelId: string | null; // resume channel on scan stop
hangTimeMs: number | null;
prioritySweepTimeMs: number | null;
talkback: boolean;
digitalScanMode: 'talkgroup' | 'time-slot' | 'carrier';
analogScanMode: string; // TBA
scanTxMode: 'current-channel' | 'last-activated-channel' | 'designated-channel' | ;
meta?: EntityMeta;
}
// Channel addition
scanListId: string | null;
DM32 wire
| File |
Role |
Scan.csv |
Scan list definitions (11 columns, 16-member cap) |
Channels.csv Scan List column |
FK to scan list name |
Reference: dmr-programming dm32-codeplug-csv skill.
Deliverables
Dependencies
- Blocks full verbatim round-trip of DM32
Scan.csv on #67
- Related: #67
Out of scope
- OpenGD77 scan semantics (zone = scan on 1701)
- Scan list policy / layout automation in
dmr-programming
Problem
DM32 CPS exports a separate
Scan.csv(scan lists) with channelScan ListFK columns. The internal codeplug model has noScanListentity today — zones serve as the scan unit on OpenGD77 only.#67 (DM32 import/export) deliberately defers scan lists so the first DM32 slice can ship channels, zones, contacts, talk groups, and RX group lists.
Intended outcome
Add a vendor-neutral
ScanListentity and wire it through import/export for DM32 (and future formats with separate scan-list files).Internal model (proposed)
DM32 wire
Scan.csvChannels.csvScan ListcolumnReference:
dmr-programmingdm32-codeplug-csv skill.Deliverables
Zonemember pattern)ImportEntityKind: 'scanLists'+ adapterparseScanLists?Scan.csv+ channelScan Listcolumndocs/reference/dm32/scan-lists.mdScan.csv+ channelScan Listcolumn indm32RoundTrip.system.test.tsDependencies
Scan.csvon #67Out of scope
dmr-programming