mirror of
https://github.com/g4klx/MMDVMHost
synced 2025-12-23 00:35:53 +08:00
Fix the top level JSON category.
This commit is contained in:
11
Log.cpp
11
Log.cpp
@@ -200,9 +200,14 @@ void Log(unsigned int level, const char* fmt, ...)
|
||||
}
|
||||
}
|
||||
|
||||
void WriteJSON(const std::string& json)
|
||||
void WriteJSON(const std::string& topLevel, nlohmann::json& json)
|
||||
{
|
||||
if (m_mqtt != NULL)
|
||||
m_mqtt->publish("json", json.c_str());
|
||||
if (m_mqtt != NULL) {
|
||||
nlohmann::json top;
|
||||
|
||||
top[topLevel] = json;
|
||||
|
||||
m_mqtt->publish("json", top.dump().c_str());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
4
Log.h
4
Log.h
@@ -21,6 +21,8 @@
|
||||
|
||||
#include <string>
|
||||
|
||||
#include <nlohmann/json.hpp>
|
||||
|
||||
#define LogDebug(fmt, ...) Log(1U, fmt, ##__VA_ARGS__)
|
||||
#define LogMessage(fmt, ...) Log(2U, fmt, ##__VA_ARGS__)
|
||||
#define LogInfo(fmt, ...) Log(3U, fmt, ##__VA_ARGS__)
|
||||
@@ -33,6 +35,6 @@ extern void Log(unsigned int level, const char* fmt, ...);
|
||||
extern bool LogInitialise(bool daemon, const std::string& filePath, const std::string& fileRoot, unsigned int fileLevel, unsigned int displayLevel, unsigned int mqttLevel, bool rotate);
|
||||
extern void LogFinalise();
|
||||
|
||||
extern void WriteJSON(const std::string& json);
|
||||
extern void WriteJSON(const std::string& topLevel, nlohmann::json& json);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -932,7 +932,7 @@ void CM17Control::writeJSON(const char* action, RPT_RF_STATE state, const std::s
|
||||
|
||||
writeJSON(json, action, state, source, dest);
|
||||
|
||||
WriteJSON(json.dump());
|
||||
WriteJSON("M17", json);
|
||||
}
|
||||
|
||||
void CM17Control::writeJSON(const char* action, RPT_RF_STATE state, const std::string& source, const std::string& dest, float duration, float ber)
|
||||
@@ -943,7 +943,7 @@ void CM17Control::writeJSON(const char* action, RPT_RF_STATE state, const std::s
|
||||
|
||||
writeJSON(json, action, state, source, dest, duration, ber);
|
||||
|
||||
WriteJSON(json.dump());
|
||||
WriteJSON("M17", json);
|
||||
}
|
||||
|
||||
void CM17Control::writeJSON(const char* action, RPT_RF_STATE state, const std::string& source, const std::string& dest, float duration, float ber, float minRSSI, float maxRSSI, float aveRSSI)
|
||||
@@ -955,13 +955,13 @@ void CM17Control::writeJSON(const char* action, RPT_RF_STATE state, const std::s
|
||||
writeJSON(json, action, state, source, dest, duration, ber);
|
||||
|
||||
nlohmann::json rssi;
|
||||
rssi["minimumm"] = minRSSI;
|
||||
rssi["maximumm"] = maxRSSI;
|
||||
rssi["average"] = aveRSSI;
|
||||
rssi["min"] = minRSSI;
|
||||
rssi["max"] = maxRSSI;
|
||||
rssi["ave"] = aveRSSI;
|
||||
|
||||
json["rssi"] = rssi;
|
||||
|
||||
WriteJSON(json.dump());
|
||||
WriteJSON("M17", json);
|
||||
}
|
||||
|
||||
void CM17Control::writeJSON(const char* action, RPT_NET_STATE state, const std::string& source, const std::string& dest)
|
||||
@@ -972,7 +972,7 @@ void CM17Control::writeJSON(const char* action, RPT_NET_STATE state, const std::
|
||||
|
||||
writeJSON(action, state, source, dest);
|
||||
|
||||
WriteJSON(json.dump());
|
||||
WriteJSON("M17", json);
|
||||
}
|
||||
|
||||
void CM17Control::writeJSON(const char* action, RPT_NET_STATE state, const std::string& source, const std::string& dest, float duration)
|
||||
@@ -985,7 +985,7 @@ void CM17Control::writeJSON(const char* action, RPT_NET_STATE state, const std::
|
||||
|
||||
json["duration"] = duration;
|
||||
|
||||
WriteJSON(json.dump());
|
||||
WriteJSON("M17", json);
|
||||
}
|
||||
|
||||
void CM17Control::writeJSON(nlohmann::json& json, const char* action, RPT_RF_STATE state, const std::string& source, const std::string& dest)
|
||||
@@ -994,8 +994,8 @@ void CM17Control::writeJSON(nlohmann::json& json, const char* action, RPT_RF_STA
|
||||
|
||||
json["timestamp"] = CUtils::createTimestamp();
|
||||
|
||||
json["source_callsign"] = source;
|
||||
json["destination_callsign"] = dest;
|
||||
json["source_cs"] = source;
|
||||
json["destination_cs"] = dest;
|
||||
|
||||
json["source"] = "rf";
|
||||
json["action"] = action;
|
||||
@@ -1032,8 +1032,8 @@ void CM17Control::writeJSON(nlohmann::json& json, const char* action, RPT_NET_ST
|
||||
|
||||
json["timestamp"] = CUtils::createTimestamp();
|
||||
|
||||
json["source_callsign"] = source;
|
||||
json["destination_callsign"] = dest;
|
||||
json["source_cs"] = source;
|
||||
json["destination_cs"] = dest;
|
||||
|
||||
json["source"] = "network";
|
||||
json["action"] = action;
|
||||
|
||||
57
schema.json
57
schema.json
@@ -38,26 +38,27 @@
|
||||
"D-Star": {
|
||||
"type": "object",
|
||||
"timestamp": {"$ref": "#/$defs/timestamp"},
|
||||
"source_callsign": {"$ref": "#/$defs/dstar_callsign"},
|
||||
"source_cs": {"$ref": "#/$defs/dstar_callsign"},
|
||||
"source_ext": {"$ref": "#/$defs/dstar_extension"},
|
||||
"destination_callsign": {"$ref": "#/$defs/dstar_callsign"},
|
||||
"destination_cs": {"$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"}
|
||||
"min": {"$ref": "#/$defs/rssi"},
|
||||
"max": {"$ref": "#/$defs/rssi"},
|
||||
"ave": {"$ref": "#/$defs/rssi"}
|
||||
},
|
||||
"required": ["timestamp", "source_callsign", "source_ext", "destination_callsign", "source", "action"]
|
||||
"required": ["timestamp", "source_cs", "source_ext", "destination_cs", "source", "action"]
|
||||
},
|
||||
|
||||
"DMR": {
|
||||
"type": "object",
|
||||
"timestamp": {"$ref": "#/$defs/timestamp"},
|
||||
"source_id": {"$ref": "#/$defs/dmr_id"},
|
||||
"source_info": {"type": "string"},
|
||||
"destination_id": {"$ref": "#/$defs/dmr_id"},
|
||||
"destination_type": {"$ref": "#/$defs/id_type"},
|
||||
"slot": {"$ref": "#/$defs/dmr_slot"},
|
||||
@@ -67,9 +68,9 @@
|
||||
"loss": {"$ref": "#/$defs/loss"},
|
||||
"ber": {"$ref": "#/$defs/ber"},
|
||||
"rssi": {
|
||||
"minimum": {"$ref": "#/$defs/rssi"},
|
||||
"maximum": {"$ref": "#/$defs/rssi"},
|
||||
"average": {"$ref": "#/$defs/rssi"}
|
||||
"min": {"$ref": "#/$defs/rssi"},
|
||||
"max": {"$ref": "#/$defs/rssi"},
|
||||
"ave": {"$ref": "#/$defs/rssi"}
|
||||
},
|
||||
"required": ["timestamp", "source_id", "destination_id", "destination_type", "slot", "source", "action"]
|
||||
},
|
||||
@@ -77,8 +78,8 @@
|
||||
"YSF": {
|
||||
"type": "object",
|
||||
"timestamp": {"$ref": "#/$defs/timestamp"},
|
||||
"source_callsign": {"$ref": "#/$defs/ysf_callsign"},
|
||||
"destination_callsign": {"$ref": "#/$defs/ysf_callsign"},
|
||||
"source_cs": {"$ref": "#/$defs/ysf_callsign"},
|
||||
"destination_cs": {"$ref": "#/$defs/ysf_callsign"},
|
||||
"source": {"$ref": "#/$defs/source"},
|
||||
"action": {"$ref": "#/$defs/action"},
|
||||
"mode": {"$ref": "#/$defs/ysf_mode"},
|
||||
@@ -86,17 +87,18 @@
|
||||
"loss": {"$ref": "#/$defs/loss"},
|
||||
"ber": {"$ref": "#/$defs/ber"},
|
||||
"rssi": {
|
||||
"minimum": {"$ref": "#/$defs/rssi"},
|
||||
"maximum": {"$ref": "#/$defs/rssi"},
|
||||
"average": {"$ref": "#/$defs/rssi"}
|
||||
"min": {"$ref": "#/$defs/rssi"},
|
||||
"max": {"$ref": "#/$defs/rssi"},
|
||||
"ave": {"$ref": "#/$defs/rssi"}
|
||||
},
|
||||
"required": ["timestamp", "source_callsign", "destination_callsign", "source", "action", "mode"]
|
||||
"required": ["timestamp", "source_cs", "destination_cs", "source", "action", "mode"]
|
||||
},
|
||||
|
||||
"P25": {
|
||||
"type": "object",
|
||||
"timestamp": {"$ref": "#/$defs/timestamp"},
|
||||
"source_id": {"$ref": "#/$defs/dmr_id"},
|
||||
"source_info": {"type": "string"},
|
||||
"destination_id": {"$ref": "#/$defs/p25_id"},
|
||||
"destination_type": {"$ref": "#/$defs/id_type"},
|
||||
"source": {"$ref": "#/$defs/source"},
|
||||
@@ -105,9 +107,9 @@
|
||||
"loss": {"$ref": "#/$defs/loss"},
|
||||
"ber": {"$ref": "#/$defs/ber"},
|
||||
"rssi": {
|
||||
"minimum": {"$ref": "#/$defs/rssi"},
|
||||
"maximum": {"$ref": "#/$defs/rssi"},
|
||||
"average": {"$ref": "#/$defs/rssi"}
|
||||
"min": {"$ref": "#/$defs/rssi"},
|
||||
"max": {"$ref": "#/$defs/rssi"},
|
||||
"ave": {"$ref": "#/$defs/rssi"}
|
||||
},
|
||||
"required": ["timestamp", "source_id", "destination_id", "destination_type", "source", "action"]
|
||||
},
|
||||
@@ -116,6 +118,7 @@
|
||||
"type": "object",
|
||||
"timestamp": {"$ref": "#/$defs/timestamp"},
|
||||
"source_id": {"$ref": "#/$defs/nxdn_id"},
|
||||
"source_info": {"type": "string"},
|
||||
"destination_id": {"$ref": "#/$defs/nxdn_id"},
|
||||
"destination_type": {"$ref": "#/$defs/id_type"},
|
||||
"source": {"$ref": "#/$defs/source"},
|
||||
@@ -124,9 +127,9 @@
|
||||
"loss": {"$ref": "#/$defs/loss"},
|
||||
"ber": {"$ref": "#/$defs/ber"},
|
||||
"rssi": {
|
||||
"minimum": {"$ref": "#/$defs/rssi"},
|
||||
"maximum": {"$ref": "#/$defs/rssi"},
|
||||
"average": {"$ref": "#/$defs/rssi"}
|
||||
"min": {"$ref": "#/$defs/rssi"},
|
||||
"max": {"$ref": "#/$defs/rssi"},
|
||||
"ave": {"$ref": "#/$defs/rssi"}
|
||||
},
|
||||
"required": ["timestamp", "source_id", "destination_id", "destination_type", "source", "action"]
|
||||
},
|
||||
@@ -167,18 +170,18 @@
|
||||
"M17": {
|
||||
"type": "object",
|
||||
"timestamp": {"$ref": "#/$defs/timestamp"},
|
||||
"source_callsign": {"$ref": "#/$defs/m17_callsign"},
|
||||
"destination_callsign": {"$ref": "#/$defs/m17_callsign"},
|
||||
"source_cs": {"$ref": "#/$defs/m17_callsign"},
|
||||
"destination_cs": {"$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"}
|
||||
"min": {"$ref": "#/$defs/rssi"},
|
||||
"max": {"$ref": "#/$defs/rssi"},
|
||||
"ave": {"$ref": "#/$defs/rssi"}
|
||||
},
|
||||
"required": ["timestamp", "source_callsign", "destination_callsign", "source", "action", "traffic_type"]
|
||||
"required": ["timestamp", "source_cs", "destination_cs", "source", "action", "traffic_type"]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user