Files
MMDVMHost/schema.json
2022-12-29 15:44:00 +00:00

185 lines
6.6 KiB
JSON

{
"$defs": {
"mmdvm_state": {"enum": ["lockout", "idle", "d-star", "dmr", "ysf", "nxdn", "pocsag", "fm", "ax,25", "m17"]},
"dstar_callsign": {"type": "string", "minLength": 8, "maxLength": 8},
"dstar_extension": {"type": "string", "minLength": 4, "maxLength": 4},
"ysf_callsign": {"type": "string", "minLength": 10, "maxLength": 10},
"ax25_callsign": {"type": "string", "minLength": 1, "maxLength": 9},
"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},
"pocsag_ric": {"type": "integer"},
"id_type": {"enum": ["group", "individual"]},
"ysf_mode": {"enum": ["v/d_1", "v/d_2", "voice_fr", "data_fr"]},
"ax25_type": {"enum": ["sabm", "disc", "ui", "ua", "rr", "rnr", "rej", "frmr", "i"]},
"dmr_slot": {"enum": [1, 2]},
"source": {"enum": ["rf", "network"]},
"fm_state": {"enum": ["waiting_rf", "waiting_network"]},
"m17_traffic_type": {"enum": ["audio", "audio_data", "data"]},
"ax25_pid": {"type": "string"},
"pocsag_source": {"enum": ["local", "network"]},
"pocsag_function": {"enum": ["numeric", "alphanumeric", "alert_1", "alert_2"]},
"action": {"enum": ["invalid", "rejected", "header", "late_entry", "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"},
"state": {"$ref": "#/$defs/mmdvm_state"},
"required": ["timestamp"]
},
"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": {
"minimum": {"$ref": "#/$defs/rssi"},
"maximum": {"$ref": "#/$defs/rssi"},
"average": {"$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"},
"slot": {"$ref": "#/$defs/dmr_slot"},
"source": {"$ref": "#/$defs/source"},
"action": {"$ref": "#/$defs/action"},
"duration": {"$ref": "#/$defs/duration"},
"loss": {"$ref": "#/$defs/loss"},
"ber": {"$ref": "#/$defs/ber"},
"rssi": {
"minimum": {"$ref": "#/$defs/rssi"},
"maximum": {"$ref": "#/$defs/rssi"},
"average": {"$ref": "#/$defs/rssi"}
},
"required": ["timestamp", "source_id", "destination_id", "destination_type", "slot", "source", "action"]
},
"YSF": {
"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"},
"mode": {"$ref": "#/$defs/ysf_mode"},
"duration": {"$ref": "#/$defs/duration"},
"loss": {"$ref": "#/$defs/loss"},
"ber": {"$ref": "#/$defs/ber"},
"rssi": {
"minimum": {"$ref": "#/$defs/rssi"},
"maximum": {"$ref": "#/$defs/rssi"},
"average": {"$ref": "#/$defs/rssi"}
},
"required": ["timestamp", "source_callsign", "destination_callsign", "source", "action", "mode"]
},
"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": {
"minimum": {"$ref": "#/$defs/rssi"},
"maximum": {"$ref": "#/$defs/rssi"},
"average": {"$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": {
"minimum": {"$ref": "#/$defs/rssi"},
"maximum": {"$ref": "#/$defs/rssi"},
"average": {"$ref": "#/$defs/rssi"}
},
"required": ["timestamp", "source_id", "destination_id", "destination_type", "source", "action"]
},
"POCSAG": {
"type": "object",
"timestamp": {"$ref": "#/$defs/timestamp"},
"ric": {"$ref": "#/$defs/pocsag_ric"},
"function": {"$ref": "#/$defs/pocsag_function"},
"source": {"$ref": "#/$defs/pocsag_source"},
"data": {"type": "string"},
"required": ["timestamp", "ric", "function", "source", "data"]
},
"FM": {
"type": "object",
"timestamp": {"$ref": "#/$defs/timestamp"},
"state": {"$ref": "#/$defs/fm_state"},
"required": ["timestamp", "state"]
},
"AX.25": {
"type": "object",
"timestamp": {"$ref": "#/$defs/timestamp"},
"source": {"$ref": "#/$defs/ax25_callsign"},
"destination": {"$ref": "#/$defs/ax25_callsign"},
"digipeaters": {
"type": "array",
"callsign": {"$ref": "#/$defs/ax25_callsign"},
"repeated": {"type": "boolean"}
},
"type": {"$ref": "#/$defs/ax25_type"},
"pid": {"$ref": "#/$defs/ax25_pid"},
"data": {"type": "string"},
"required": ["timestamp", "source", "destination", "source", "type"]
},
"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"},
"traffic_type": {"$ref": "#/$defs/m17_traffic_type"},
"duration": {"$ref": "#/$defs/duration"},
"ber": {"$ref": "#/$defs/ber"},
"rssi": {
"minimum": {"$ref": "#/$defs/rssi"},
"maximum": {"$ref": "#/$defs/rssi"},
"average": {"$ref": "#/$defs/rssi"}
},
"required": ["timestamp", "source_callsign", "destination_callsign", "source", "action", "traffic_type"]
}
}