mirror of
https://github.com/gabrielkheisa/antares-esp8266-mqtt.git
synced 2025-08-21 11:31:09 +00:00
Pretty json print, added parsing functionality
This commit is contained in:
@@ -127,8 +127,16 @@ void AntaresESP8266MQTT::publish(String projectName, String deviceName) {
|
||||
String topic = "/oneM2M/req/" + _accessKey + "/antares-cse/json";
|
||||
String finalData;
|
||||
|
||||
if(_debug) {
|
||||
DynamicJsonBuffer jsonBuffer;
|
||||
JsonObject& object = jsonBuffer.parseObject(_jsonDataString);
|
||||
printDebug("[ANTARES] PUBLISH DATA:\n\n");
|
||||
object.prettyPrintTo(Serial);
|
||||
Serial.println("\n");
|
||||
}
|
||||
|
||||
_jsonDataString.replace("\"", "\\\"");
|
||||
Serial.println(_jsonDataString);
|
||||
|
||||
|
||||
finalData += "{";
|
||||
finalData += "\"m2m:rqp\": {";
|
||||
@@ -161,6 +169,30 @@ void AntaresESP8266MQTT::publish(String projectName, String deviceName) {
|
||||
client.publish(topicChar, finalDataChar);
|
||||
}
|
||||
|
||||
int AntaresESP8266MQTT::getInt(String key) {
|
||||
DynamicJsonBuffer jsonBuffer;
|
||||
JsonObject& object = jsonBuffer.parseObject(_jsonSubDataString);
|
||||
return object[key];
|
||||
}
|
||||
|
||||
float AntaresESP8266MQTT::getFloat(String key) {
|
||||
DynamicJsonBuffer jsonBuffer;
|
||||
JsonObject& object = jsonBuffer.parseObject(_jsonSubDataString);
|
||||
return object[key];
|
||||
}
|
||||
|
||||
double AntaresESP8266MQTT::getDouble(String key) {
|
||||
DynamicJsonBuffer jsonBuffer;
|
||||
JsonObject& object = jsonBuffer.parseObject(_jsonSubDataString);
|
||||
return object[key];
|
||||
}
|
||||
|
||||
String AntaresESP8266MQTT::getString(String key) {
|
||||
DynamicJsonBuffer jsonBuffer;
|
||||
JsonObject& object = jsonBuffer.parseObject(_jsonSubDataString);
|
||||
return object[key];
|
||||
}
|
||||
|
||||
void AntaresESP8266MQTT::setCallback(std::function<void(char*, uint8_t*, unsigned int)> callbackFunc) {
|
||||
client.setCallback(callbackFunc);
|
||||
}
|
||||
@@ -169,12 +201,28 @@ bool AntaresESP8266MQTT::setDebug(bool trueFalse) {
|
||||
_debug = trueFalse;
|
||||
}
|
||||
|
||||
String AntaresESP8266MQTT::byteToString(byte* payload, unsigned int length) {
|
||||
String AntaresESP8266MQTT::get(char* topic, byte* payload, unsigned int length) {
|
||||
_receivedTopic = String(topic);
|
||||
|
||||
String payloadString;
|
||||
for(int i = 0; i < length; i++) {
|
||||
payloadString += char(payload[i]);
|
||||
}
|
||||
return payloadString;
|
||||
|
||||
DynamicJsonBuffer jsonBuffer;
|
||||
JsonObject& object = jsonBuffer.parseObject(payloadString);
|
||||
String parsedString = object["m2m:rqp"]["pc"]["m2m:cin"]["con"];
|
||||
_jsonSubDataString = parsedString;
|
||||
|
||||
return _jsonSubDataString;
|
||||
}
|
||||
|
||||
String AntaresESP8266MQTT::getTopic() {
|
||||
return _receivedTopic;
|
||||
}
|
||||
|
||||
String AntaresESP8266MQTT::getPayload() {
|
||||
return _jsonSubDataString;
|
||||
}
|
||||
|
||||
String AntaresESP8266MQTT::ipToString(IPAddress ip) {
|
||||
|
@@ -17,7 +17,9 @@ private:
|
||||
char* _wifiPass;
|
||||
String _accessKey;
|
||||
String _jsonDataString = "{}";
|
||||
String _jsonSubDataString;
|
||||
String _subscriptionTopic;
|
||||
String _receivedTopic;
|
||||
|
||||
public:
|
||||
AntaresESP8266MQTT(String accessKey);
|
||||
@@ -33,11 +35,20 @@ public:
|
||||
/* Overloaded functions end */
|
||||
void printData();
|
||||
void publish(String projectName, String deviceName);
|
||||
/* Get subscription callback data*/
|
||||
int getInt(String key);
|
||||
float getFloat(String key);
|
||||
double getDouble(String key);
|
||||
String getString(String key);
|
||||
/* Get data end */
|
||||
|
||||
String getTopic();
|
||||
String getPayload();
|
||||
|
||||
void setMqttServer();
|
||||
void checkMqttConnection();
|
||||
void setCallback(std::function<void(char*, uint8_t*, unsigned int)> callbackFunc);
|
||||
String byteToString(byte* payload, unsigned int length);
|
||||
String get(char* topic, byte* payload, unsigned int length);
|
||||
void setSubscriptionTopic();
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user