aboutsummaryrefslogtreecommitdiff
path: root/share/contrib
diff options
context:
space:
mode:
authorMatthew Poletiek <matthew.poletiek@gmail.com>2020-12-08 21:03:16 -0600
committerMatthew Poletiek <matthew.poletiek@gmail.com>2020-12-08 21:03:16 -0600
commite99416456afd4aa8bde42016826f9a345291cbf3 (patch)
treea7a95639cd1cb5dbe2d91a2ca8e8defafac4296d /share/contrib
parent194cf4e5e0b6a2811103a9b739a72b9afe2b886c (diff)
downloadchirp-e99416456afd4aa8bde42016826f9a345291cbf3.tar.gz
chirp-e99416456afd4aa8bde42016826f9a345291cbf3.tar.xz
Initial Commit
Diffstat (limited to 'share/contrib')
-rw-r--r--share/contrib/chirp.rnc28
-rw-r--r--share/contrib/chirp.rng58
-rw-r--r--share/contrib/chirp_banks.rnc3
-rw-r--r--share/contrib/chirp_banks.rng11
-rw-r--r--share/contrib/chirp_memory.rnc64
-rw-r--r--share/contrib/chirp_memory.rng193
6 files changed, 357 insertions, 0 deletions
diff --git a/share/contrib/chirp.rnc b/share/contrib/chirp.rnc
new file mode 100644
index 0000000..6ea2715
--- /dev/null
+++ b/share/contrib/chirp.rnc
@@ -0,0 +1,28 @@
+#
+# CHIRP XML Schema
+# Copyright 2008 Dan Smith <dsmith@danplanet.com>
+#
+
+include "chirp_memory.rnc"
+include "chirp_banks.rnc"
+
+start = radio
+
+radio = element radio {
+ attribute version { chirpSchemaVersionType }?,
+ comment?,
+ memories,
+ banks
+}
+
+comment = element comment { xsd:string }?
+
+memories = element memories {
+ element memory { memoryType }*
+}
+
+banks = element banks {
+ element bank { bankType }*
+}
+
+chirpSchemaVersionType = xsd:string { pattern = "[0-9][0-9]*.[0-9][0-9]*.[0-9]{1,4}" }
diff --git a/share/contrib/chirp.rng b/share/contrib/chirp.rng
new file mode 100644
index 0000000..d6020e5
--- /dev/null
+++ b/share/contrib/chirp.rng
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <!--
+
+ CHIRP XML Schema
+ Copyright 2008 Dan Smith <dsmith@danplanet.com>
+
+ -->
+ <include href="chirp_memory.rng"/>
+ <include href="chirp_banks.rng"/>
+ <start>
+ <ref name="radio"/>
+ </start>
+ <define name="radio">
+ <element name="radio">
+ <optional>
+ <attribute name="version">
+ <ref name="chirpSchemaVersionType"/>
+ </attribute>
+ </optional>
+ <optional>
+ <ref name="comment"/>
+ </optional>
+ <ref name="memories"/>
+ <ref name="banks"/>
+ </element>
+ </define>
+ <define name="comment">
+ <optional>
+ <element name="comment">
+ <data type="string"/>
+ </element>
+ </optional>
+ </define>
+ <define name="memories">
+ <element name="memories">
+ <zeroOrMore>
+ <element name="memory">
+ <ref name="memoryType"/>
+ </element>
+ </zeroOrMore>
+ </element>
+ </define>
+ <define name="banks">
+ <element name="banks">
+ <zeroOrMore>
+ <element name="bank">
+ <ref name="bankType"/>
+ </element>
+ </zeroOrMore>
+ </element>
+ </define>
+ <define name="chirpSchemaVersionType">
+ <data type="string">
+ <param name="pattern">[0-9][0-9]*.[0-9][0-9]*.[0-9]{1,4}</param>
+ </data>
+ </define>
+</grammar>
diff --git a/share/contrib/chirp_banks.rnc b/share/contrib/chirp_banks.rnc
new file mode 100644
index 0000000..d832539
--- /dev/null
+++ b/share/contrib/chirp_banks.rnc
@@ -0,0 +1,3 @@
+bankType =
+ attribute id { xsd:nonNegativeInteger },
+ attribute label { xsd:string }
diff --git a/share/contrib/chirp_banks.rng b/share/contrib/chirp_banks.rng
new file mode 100644
index 0000000..fa25081
--- /dev/null
+++ b/share/contrib/chirp_banks.rng
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <define name="bankType">
+ <attribute name="id">
+ <data type="nonNegativeInteger"/>
+ </attribute>
+ <attribute name="label">
+ <data type="string"/>
+ </attribute>
+ </define>
+</grammar>
diff --git a/share/contrib/chirp_memory.rnc b/share/contrib/chirp_memory.rnc
new file mode 100644
index 0000000..ad7ee2e
--- /dev/null
+++ b/share/contrib/chirp_memory.rnc
@@ -0,0 +1,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 }?
+}
diff --git a/share/contrib/chirp_memory.rng b/share/contrib/chirp_memory.rng
new file mode 100644
index 0000000..0d88eac
--- /dev/null
+++ b/share/contrib/chirp_memory.rng
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <define name="memoryType">
+ <optional>
+ <attribute name="location">
+ <data type="nonNegativeInteger"/>
+ </attribute>
+ </optional>
+ <ref name="shortName"/>
+ <optional>
+ <ref name="longName"/>
+ </optional>
+ <ref name="frequency"/>
+ <ref name="SquelchList"/>
+ <optional>
+ <ref name="squelchSetting"/>
+ </optional>
+ <ref name="duplex"/>
+ <ref name="offset"/>
+ <ref name="mode"/>
+ <ref name="tuningStep"/>
+ <optional>
+ <ref name="skip"/>
+ </optional>
+ <optional>
+ <ref name="bank"/>
+ </optional>
+ <optional>
+ <ref name="dv"/>
+ </optional>
+ </define>
+ <define name="shortName">
+ <element name="shortName">
+ <data type="string">
+ <param name="pattern">[A-Z0-9/ &gt;\-]{0,6}</param>
+ </data>
+ </element>
+ </define>
+ <define name="frequencyType">
+ <attribute name="units">
+ <choice>
+ <value>Hz</value>
+ <value>kHz</value>
+ <value>MHz</value>
+ <value>GHz</value>
+ </choice>
+ </attribute>
+ <data type="decimal"/>
+ </define>
+ <define name="longName">
+ <element name="longName">
+ <data type="string">
+ <param name="pattern">[.A-Za-z0-9/ &gt;\-]{0,16}</param>
+ </data>
+ </element>
+ </define>
+ <define name="frequency">
+ <element name="frequency">
+ <ref name="frequencyType"/>
+ </element>
+ </define>
+ <define name="SquelchList">
+ <optional>
+ <element name="squelch">
+ <ref name="squelchType"/>
+ </element>
+ </optional>
+ <optional>
+ <element name="squelch">
+ <ref name="squelchType"/>
+ </element>
+ </optional>
+ <optional>
+ <element name="squelch">
+ <ref name="squelchType"/>
+ </element>
+ </optional>
+ </define>
+ <define name="squelchType">
+ <optional>
+ <element name="tone">
+ <data type="decimal">
+ <param name="minInclusive">67.0</param>
+ <param name="maxInclusive">254.1</param>
+ </data>
+ </element>
+ </optional>
+ <optional>
+ <!-- could also use enumeration -->
+ <element name="code">
+ <data type="positiveInteger"/>
+ </element>
+ </optional>
+ <optional>
+ <element name="polarity">
+ <data type="string">
+ <param name="pattern">[RN]{2}</param>
+ </data>
+ </element>
+ </optional>
+ <optional>
+ <attribute name="id"/>
+ </optional>
+ <optional>
+ <attribute name="type"/>
+ </optional>
+ </define>
+ <define name="offset">
+ <element name="offset">
+ <ref name="frequencyType"/>
+ </element>
+ </define>
+ <define name="tuningStep">
+ <element name="tuningStep">
+ <ref name="frequencyType"/>
+ </element>
+ </define>
+ <define name="squelchSetting">
+ <element name="squelchSetting">
+ <data type="string"/>
+ </element>
+ </define>
+ <define name="duplex">
+ <element name="duplex">
+ <choice>
+ <value>positive</value>
+ <value>negative</value>
+ <value>none</value>
+ </choice>
+ </element>
+ </define>
+ <define name="mode">
+ <element name="mode">
+ <choice>
+ <value>FM</value>
+ <value>NFM</value>
+ <value>WFM</value>
+ <value>AM</value>
+ <value>NAM</value>
+ <value>DV</value>
+ </choice>
+ </element>
+ </define>
+ <define name="dv">
+ <element name="dv">
+ <element name="urcall">
+ <ref name="callsignType"/>
+ </element>
+ <element name="rpt1call">
+ <ref name="callsignType"/>
+ </element>
+ <element name="rpt2call">
+ <ref name="callsignType"/>
+ </element>
+ <optional>
+ <element name="digitalCode">
+ <ref name="digitalCodeType"/>
+ </element>
+ </optional>
+ </element>
+ </define>
+ <define name="callsignType">
+ <data type="string">
+ <param name="pattern">[A-Z0-9/ ]*</param>
+ </data>
+ </define>
+ <define name="digitalCodeType">
+ <data type="integer">
+ <param name="minInclusive">0</param>
+ </data>
+ </define>
+ <define name="skip">
+ <element name="skip">
+ <choice>
+ <value>S</value>
+ <value>P</value>
+ <value/>
+ </choice>
+ </element>
+ </define>
+ <define name="bank">
+ <element name="bank">
+ <attribute name="bankId">
+ <data type="nonNegativeInteger"/>
+ </attribute>
+ <optional>
+ <attribute name="bankIndex">
+ <data type="nonNegativeInteger"/>
+ </attribute>
+ </optional>
+ </element>
+ </define>
+</grammar>