Skip to content
Snippets Groups Projects
Verified Commit 1f7f284a authored by Zoe Michaela Dietmar Pfister's avatar Zoe Michaela Dietmar Pfister :gay_pride_flag:
Browse files

Close connection after request, add default constructors, add LineProtocol Utility

parent d50f6c0e
No related branches found
No related tags found
1 merge request!39Merge Develop into Main
......@@ -76,6 +76,11 @@ Message::Message(ClientDataPackage data) : clientDataPackage(data) {
get_host_mac(recipient);
}
Message::Message() {
// check for existing host mac address, use broadcast otherwise
get_host_mac(recipient);
}
Message::Message(Measurement const &data,
const SensorInformation &information,
unsigned long timestamp)
......
......@@ -15,6 +15,7 @@
// if more things are sent from the host the name might not be accurate anymore
class Message {
public:
Message();
explicit Message(ClientDataPackage data);
Message(Measurement const &data,
......
......@@ -101,9 +101,14 @@ std::string ConnectionManager::connect(RequestInformation requestInformation) {
throw LTEConnectionException("Failed to connect to host");
}
esp_log_write(ESP_LOG_DEBUG, TAG_GSM, "Connected to host\n");
String request = requestInformation.buildRequest();
client.print(request);
client.println("Connection: close");
client.println();
esp_log_write(ESP_LOG_DEBUG, TAG_GSM, "Request sent, waiting for response\n");
String line;
// print response
......
......@@ -282,11 +282,26 @@ void turnOffLEDs() { // Set LED OFF
digitalWrite(PWR_PIN, LOW);
}
String dataPackageToLineProtocolString(const ClientDataPackage &dataPackage, const String &clientMacAddress) {
String measurementType = dataPackage.getMeasurementData().getMeasurementTypeString().c_str();
String hardwareName = dataPackage.getSensorInformation().getHardwareNameString().c_str();
String timestamp = String(dataPackage.getTimestamp());
String protocol = dataPackage.getSensorInformation().getProtocolString().c_str();
String ic2address = String(dataPackage.getMeasurementData().getI2CAddress());
String value = String(dataPackage.getMeasurementData().getValue());
String channel = String(dataPackage.getMeasurementData().getChannel());
String lineData = hardwareName + ",clientMac=" + clientMacAddress + ",protocol=" + protocol + ",channel=" + channel
+ " " + measurementType + "=" + value + " " + timestamp;
return lineData;
}
String documentToLineProtocolString(const DynamicJsonDocument &doc) {
String measurementType = doc["measurementType"].as<String>();
String sensorName = doc["sensorName"].as<String>();
String sensorName = doc["hardwareName"].as<String>();
String timestamp = doc["timestamp"].as<String>();
String protocol = doc["protocol"].as<String>();
String protocol = doc["protocolAddress"].as<String>();
String ic2address = doc["ic2Address"].as<String>();
String value = doc["value"].as<String>();
String channel = doc["channel"].as<String>();
String clientMac = doc["clientMac"].as<String>();
......@@ -342,6 +357,7 @@ String dataPackageToServerReadableString(ClientDataPackage clientDataPackage, co
serverDoc["protocolAddress"] = clientDataPackage.getMeasurementData().getChannel();
serverDoc["i2cAddress"] = clientDataPackage.getMeasurementData().getI2CAddress();
serverDoc["hardwareName"] = clientDataPackage.getSensorInformation().getHardwareNameString();
serverDoc["error"] = clientDataPackage.getMeasurementData().getErrorTypeString();
// each value is a element in the readigs array
JsonArray readings = serverDoc.createNestedArray("readings");
JsonObject reading = readings.createNestedObject();
......
......@@ -42,6 +42,7 @@ namespace ESPUtilities {
void turnOffLEDs();
String getMacAddressAsString(const uint8_t *mac);
String documentToLineProtocolString(const DynamicJsonDocument &doc);
String dataPackageToLineProtocolString(const ClientDataPackage &dataPackage, const String &clientMacAddress);
DynamicJsonDocument parseReceivedJsonData(char *data);
String documentToServerReadableString(const DynamicJsonDocument &doc);
String dataPackageToServerReadableString(ClientDataPackage clientDataPackage, const String &clientMacAddress);
......
......@@ -31,6 +31,14 @@ public:
errorType = ErrorType::DATA_OK;
}
Measurement() {
value = ERROR_VALUE;
measurementType = MeasurementType::NULL_MEASUREMENT;
channel = NO_CHANNEL;
i2cAddress = NO_I2C_ADDRESS;
errorType = ErrorType::NULL_MESSAGE;
}
[[nodiscard]] double getValue() const { return value; }
[[nodiscard]] const MeasurementType &
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment