mirror of
https://github.com/g4klx/MMDVMHost
synced 2025-12-24 09:35:40 +08:00
First go at a JSON schema for the MQTT data feed.
This commit is contained in:
138
schema.json
Normal file
138
schema.json
Normal file
@@ -0,0 +1,138 @@
|
||||
{
|
||||
"$defs" : {
|
||||
"dstar_callsign": {"type": "string", "minLength": 8, "maxLength": 8},
|
||||
"dstar_extension": {"type": "string", "minLength": 4, "maxLength": 4},
|
||||
"ysf_callsign": {"type": "string", "minLength": 10, "maxLength": 10},
|
||||
"m17_callsign": {"type": "string", "minLength": 9, "maxLength": 9},
|
||||
"dmr_id": {"type": "integer", "minimum": 1, "maximum": 16777215},
|
||||
"p25_id": {"type": "integer", "minimum": 1, "maximum": 65535},
|
||||
"nxdn_id": {"type": "integer", "minimum": 1, "maximum": 65535},
|
||||
"id_type": {"enum": ["group", "individual"]},
|
||||
"source": {"enum": ["rf", "network"]},
|
||||
"action": {"enum": ["start", "end", "lost"]},
|
||||
"duration": {"type": "number", "minimum": 0.0},
|
||||
"loss": {"type": "number", "minimum": 0.0},
|
||||
"ber": {"type": "number", "minimum": 0.0},
|
||||
"rssi": {"type": "number"},
|
||||
"timestamp": {"type": "string" }
|
||||
},
|
||||
|
||||
"MMDVM" : {
|
||||
"type": "object",
|
||||
"timestamp": {"$ref": "#/$defs/timestamp"},
|
||||
"description": {"type": "string"},
|
||||
"required": {"timestamp", "description"}
|
||||
},
|
||||
|
||||
"D-Star" : {
|
||||
"type": "object",
|
||||
"timestamp": {"$ref": "#/$defs/timestamp"},
|
||||
"source_callsign": {"$ref": "#/$defs/dstar_callsign"},
|
||||
"source_ext": {"$ref": "#/$defs/dstar_extension"},
|
||||
"destination_callsign": {"$ref": "#/$defs/dstar_callsign"},
|
||||
"source": {"$ref": "#/$defs/source"},
|
||||
"action": {"$ref": "#/$defs/action"},
|
||||
"duration": {"$ref": "#/$defs/duration"},
|
||||
"loss": {"$ref": "#/$defs/loss"},
|
||||
"ber": {"$ref": "#/$defs/ber"},
|
||||
"rssi": {
|
||||
"min_rssi": {"$ref": "#/$defs/rssi"},
|
||||
"max_rssi": {"$ref": "#/$defs/rssi"},
|
||||
"ave_rssi": {"$ref": "#/$defs/rssi"}
|
||||
},
|
||||
"required": {"timestamp", "source_callsign", "source_ext", "destination_callsign", "source", "action"}
|
||||
},
|
||||
|
||||
"DMR" : {
|
||||
"type": "object",
|
||||
"timestamp": {"$ref": "#/$defs/timestamp"},
|
||||
"source_id": {"$ref": "#/$defs/dmr_id"},
|
||||
"destination_id": {"$ref": "#/$defs/dmr_id"},
|
||||
"destination_type": {"$ref": "#/$defs/id_type"},
|
||||
"source": {"$ref": "#/$defs/source"},
|
||||
"action": {"$ref": "#/$defs/action"},
|
||||
"duration": {"$ref": "#/$defs/duration"},
|
||||
"loss": {"$ref": "#/$defs/loss"},
|
||||
"ber": {"$ref": "#/$defs/ber"},
|
||||
"rssi": {
|
||||
"min_rssi": {"$ref": "#/$defs/rssi"},
|
||||
"max_rssi": {"$ref": "#/$defs/rssi"},
|
||||
"ave_rssi": {"$ref": "#/$defs/rssi"}
|
||||
},
|
||||
"required": {"timestamp", "source_id", "destination_id", "destination_type", "source", "action"}
|
||||
},
|
||||
|
||||
"SystemFusion" : {
|
||||
"type": "object",
|
||||
"timestamp": {"$ref": "#/$defs/timestamp"},
|
||||
"source_callsign": {"$ref": "#/$defs/ysf_callsign"},
|
||||
"destination_callsign": {"$ref": "#/$defs/ysf_callsign"},
|
||||
"source": {"$ref": "#/$defs/source"},
|
||||
"action": {"$ref": "#/$defs/action"},
|
||||
"duration": {"$ref": "#/$defs/duration"},
|
||||
"loss": {"$ref": "#/$defs/loss"},
|
||||
"ber": {"$ref": "#/$defs/ber"},
|
||||
"rssi": {
|
||||
"min_rssi": {"$ref": "#/$defs/rssi"},
|
||||
"max_rssi": {"$ref": "#/$defs/rssi"},
|
||||
"ave_rssi": {"$ref": "#/$defs/rssi"}
|
||||
},
|
||||
"required": {"timestamp", "source_callsign", "destination_callsign", "source", "action"}
|
||||
},
|
||||
|
||||
"P25" : {
|
||||
"type": "object",
|
||||
"timestamp": {"$ref": "#/$defs/timestamp"},
|
||||
"source_id": {"$ref": "#/$defs/dmr_id"},
|
||||
"destination_id": {"$ref": "#/$defs/p25_id"},
|
||||
"destination_type": {"$ref": "#/$defs/id_type"},
|
||||
"source": {"$ref": "#/$defs/source"},
|
||||
"action": {"$ref": "#/$defs/action"},
|
||||
"duration": {"$ref": "#/$defs/duration"},
|
||||
"loss": {"$ref": "#/$defs/loss"},
|
||||
"ber": {"$ref": "#/$defs/ber"},
|
||||
"rssi": {
|
||||
"min_rssi": {"$ref": "#/$defs/rssi"},
|
||||
"max_rssi": {"$ref": "#/$defs/rssi"},
|
||||
"ave_rssi": {"$ref": "#/$defs/rssi"}
|
||||
},
|
||||
"required": {"timestamp", "source_id", "destination_id", "destination_type", "source", "action"}
|
||||
},
|
||||
|
||||
"NXDN" : {
|
||||
"type": "object",
|
||||
"timestamp": {"$ref": "#/$defs/timestamp"},
|
||||
"source_id": {"$ref": "#/$defs/nxdn_id"},
|
||||
"destination_id": {"$ref": "#/$defs/nxdn_id"},
|
||||
"destination_type": {"$ref": "#/$defs/id_type"},
|
||||
"source": {"$ref": "#/$defs/source"},
|
||||
"action": {"$ref": "#/$defs/action"},
|
||||
"duration": {"$ref": "#/$defs/duration"},
|
||||
"loss": {"$ref": "#/$defs/loss"},
|
||||
"ber": {"$ref": "#/$defs/ber"},
|
||||
"rssi": {
|
||||
"min_rssi": {"$ref": "#/$defs/rssi"},
|
||||
"max_rssi": {"$ref": "#/$defs/rssi"},
|
||||
"ave_rssi": {"$ref": "#/$defs/rssi"}
|
||||
},
|
||||
"required": {"timestamp", "source_id", "destination_id", "destination_type", "source", "action"}
|
||||
},
|
||||
|
||||
"M17" : {
|
||||
"type": "object",
|
||||
"timestamp": {"$ref": "#/$defs/timestamp"},
|
||||
"source_callsign": {"$ref": "#/$defs/m17_callsign"},
|
||||
"destination_callsign": {"$ref": "#/$defs/m17_callsign"},
|
||||
"source": {"$ref": "#/$defs/source"},
|
||||
"action": {"$ref": "#/$defs/action"},
|
||||
"duration": {"$ref": "#/$defs/duration"},
|
||||
"loss": {"$ref": "#/$defs/loss"},
|
||||
"ber": {"$ref": "#/$defs/ber"},
|
||||
"rssi": {
|
||||
"min_rssi": {"$ref": "#/$defs/rssi"},
|
||||
"max_rssi": {"$ref": "#/$defs/rssi"},
|
||||
"ave_rssi": {"$ref": "#/$defs/rssi"}
|
||||
},
|
||||
"required": {"timestamp", "source_callsign", "destination_callsign", "source", "action"}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user