aboutsummaryrefslogtreecommitdiff
path: root/share/contrib/chirp_memory.rnc
blob: ad7ee2e498ec9a04b8c265ed6cd4ee64ec6d58be (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
memoryType =
  attribute location { xsd:nonNegativeInteger }?,
  shortName,
  longName?,
  frequency,
  SquelchList,
  squelchSetting?,
  duplex,
  offset,
  mode,
  tuningStep,
  skip?,
  bank?,
  dv?

shortName = element shortName { xsd:string { pattern = "[A-Z0-9/ >\-]{0,6}" } }

frequencyType = 
   attribute units { "Hz" | "kHz" | "MHz" | "GHz" },
   xsd:decimal

longName = element longName { xsd:string { pattern = "[.A-Za-z0-9/ >\-]{0,16}" } }

frequency = element frequency { frequencyType }

SquelchList = 
   element squelch { squelchType }?, 
   element squelch { squelchType }?, 
   element squelch { squelchType }?

squelchType =
   element tone { xsd:decimal { minInclusive = "67.0" maxInclusive = "254.1" } }?,  # could also use enumeration
   element code { xsd:positiveInteger }?,
   element polarity { xsd:string { pattern = "[RN]{2}" } }?,
   attribute id { text }?,
   attribute type { text }?

offset = element offset { frequencyType }

tuningStep = element tuningStep { frequencyType }

squelchSetting = element squelchSetting { xsd:string }

duplex = element duplex { "positive" | "negative" | "none" }

mode = element mode { "FM" | "NFM" | "WFM" | "AM" | "NAM" | "DV" }

dv = element dv {
  element urcall { callsignType },
  element rpt1call { callsignType },
  element rpt2call { callsignType },
  element digitalCode { digitalCodeType }?
}

callsignType = xsd:string { pattern = "[A-Z0-9/ ]*" }

digitalCodeType = xsd:integer { minInclusive = "0" }

skip = element skip { "S" | "P" | "" }

bank = element bank {
  attribute bankId { xsd:nonNegativeInteger },
  attribute bankIndex { xsd:nonNegativeInteger }?
}