diff --git a/src/debugMqtt.cpp b/src/debugMqtt.cpp index c960098..1a0a398 100644 --- a/src/debugMqtt.cpp +++ b/src/debugMqtt.cpp @@ -33,6 +33,13 @@ void DebugMqtt::sendData(Loglevel loglevel, String data){ this->sendData(loglevel, "", data); } +void DebugMqtt::writeToInflux(String measurement_name, String field_set, float measurement) { + // Example String: "weather temperature=82 1465839830100400200"; + unsigned long int nanos = millis() * 1000000; + snprintf(DebugMqtt::msg, MQTT_BUFFER_SITE, "%s %s=%f %lu", measurement_name.c_str(), field_set.c_str(), measurement, nanos); + this->sendData(Loglevel::debug, DebugMqtt::msg); +} + void DebugMqtt::init(PubSubClient *client, Loglevel loglevel) { DebugMqtt::client = client; DebugMqtt::loglevel = loglevel; @@ -46,13 +53,13 @@ void DebugMqtt::changeLoglevel(Loglevel loglevel) { String DebugMqtt::enum_to_string(Loglevel loglevel) { switch(loglevel){ case Loglevel::error : - return "/Rover/Error"; + return "Rover/Error"; case Loglevel::warn : - return "/Rover/Warn"; + return "Rover/Warn"; case Loglevel::info : - return "/Rover/Info"; + return "Rover/Info"; case Loglevel::debug : - return "/Rover/Debug"; + return "Rover/Debug"; default: return "INVALID ENUM"; } diff --git a/src/debugMqtt.h b/src/debugMqtt.h index fe26cde..decdcb9 100644 --- a/src/debugMqtt.h +++ b/src/debugMqtt.h @@ -18,6 +18,7 @@ class DebugMqtt { void sendMsg(Loglevel loglevel, String msg); void sendData(Loglevel loglevel, String topic, String data); void sendData(Loglevel loglevel, String data); + void writeToInflux(String measurement_name, String field_set, float measurement); static void init(PubSubClient *client, Loglevel loglevel); static void changeLoglevel(Loglevel loglevel); diff --git a/src/main.cpp b/src/main.cpp index 7839cfb..bda8dd7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -31,7 +31,6 @@ IPAddress mqtt_server(MQTT_SERVER); WiFiClient wifi_client; PubSubClient mqtt_client(wifi_client); - uint64_t last_millis = 0; int controller_battery = -1; diff --git a/src/motorControl.cpp b/src/motorControl.cpp index 8d72137..cde41e9 100644 --- a/src/motorControl.cpp +++ b/src/motorControl.cpp @@ -5,10 +5,12 @@ #include "config.h" MotorControl::MotorControl() { - + this->debug = new DebugMqtt("MotorControl"); } void MotorControl::init(uint8_t pwm_pin, uint8_t pwm_channel, uint8_t direction_pin_1, uint8_t direction_pin_2) { + debug->sendMsg(Loglevel::info, "Init..."); + this->pwm_pin = pwm_pin; this->pwm_channel = pwm_channel; this->direction_pin_1 = direction_pin_1; @@ -23,6 +25,8 @@ void MotorControl::init(uint8_t pwm_pin, uint8_t pwm_channel, uint8_t direction_ ledcSetup(this->pwm_channel, PWM_FREQ, PWM_RES); ledcAttachPin(this->pwm_pin, this->pwm_channel); ledcWrite(this->pwm_channel, 0); + + debug->sendMsg(Loglevel::info, "Init finished!"); } void MotorControl::runMotorControl() { @@ -77,16 +81,17 @@ void MotorControl::runMotorControl() { } void MotorControl::setTargetPower(int8_t power) { - //TODO: Exceptionhandling if (power <= 100 && power >= -100) { this->target_power = power; + debug->writeToInflux("motorControl", "target_power_ASIDE", power); } else { - Serial.println("Invalid Argument in MotorControl::setTargetPower"); + debug->sendMsg(Loglevel::error, "Invalid Argument in setTargetPower!"); } } void MotorControl::stop() { this->target_power = 0; + debug->writeToInflux("motorControl", "target_power_ASIDE", this->target_power); } void MotorControl::emergencyStop() { @@ -128,7 +133,7 @@ void MotorControl::setRealPower(int8_t power) { if (power <= 100 || power <= -100) { this->power = power; } else { - Serial.println("Invalid Argument in MotorControl::setRealPower"); + debug->sendMsg(Loglevel::error, "Invalid Argument in setRealPower!"); return; } @@ -153,6 +158,7 @@ void MotorControl::setRealPower(int8_t power) { } ledcWrite(this->pwm_channel, pwm_val); + debug->writeToInflux("motorControl", "real_power_ASIDE", power); // Serial.printf("pwm_val: %d, ", pwm_val); } diff --git a/src/motorControl.h b/src/motorControl.h index f44ea75..a7c8fe7 100644 --- a/src/motorControl.h +++ b/src/motorControl.h @@ -4,6 +4,8 @@ #include #include +#include "debugMqtt.h" + class MotorControl { public: MotorControl(); @@ -24,6 +26,8 @@ class MotorControl { void setRealPower(int8_t power); void increasePower(int8_t power); + DebugMqtt *debug; + int8_t target_power = 0; int8_t power = 0; uint8_t direction = 0; // 0 = stop, 1 = forward, 2 = backward diff --git a/src/moveControl.cpp b/src/moveControl.cpp index a45ba9d..e5a5ed3 100644 --- a/src/moveControl.cpp +++ b/src/moveControl.cpp @@ -3,15 +3,17 @@ #include MoveControl::MoveControl() { - + this->debug = new DebugMqtt("MoveControl"); } void MoveControl::init(MotorControl *left_motor, MotorControl *right_motor, Speedometer *left_speedometer, Speedometer *right_speedometer) { + debug->sendMsg(Loglevel::info, "Init..."); this->left_motor = left_motor; this->right_motor = right_motor; this->left_speedometer = left_speedometer; this->right_speedometer = right_speedometer; + debug->sendMsg(Loglevel::info, "Init finished!"); } void MoveControl::runMoveControl() { @@ -50,6 +52,8 @@ void MoveControl::calcWheelSpeed() { this->wheelspeed_right_target = (A * this->x_speed + B * this->rotation_speed) * (WHEEL_DIAMETER / 2); this->wheelspeed_left_target = (A * this->x_speed + (-B) * this->rotation_speed) * (WHEEL_DIAMETER / 2); + debug->writeToInflux("moveControl", "wheelspeed_right_target", this->wheelspeed_right_target); + debug->writeToInflux("moveControl", "wheelspeed_left_target", this->wheelspeed_left_target); } void MoveControl::regulateMotors() { diff --git a/src/moveControl.h b/src/moveControl.h index a817e80..3bcab16 100644 --- a/src/moveControl.h +++ b/src/moveControl.h @@ -6,6 +6,7 @@ #include "motorControl.h" #include "speedometer.h" #include "config.h" +#include "debugMqtt.h" enum DrivingStatus {stop, straightForward, @@ -36,6 +37,8 @@ class MoveControl { void calcWheelSpeed(); void regulateMotors(); + DebugMqtt *debug; + MotorControl *left_motor; MotorControl *right_motor; Speedometer *left_speedometer; diff --git a/src/speedometer.cpp b/src/speedometer.cpp index 3a0243e..836a6fe 100644 --- a/src/speedometer.cpp +++ b/src/speedometer.cpp @@ -4,12 +4,15 @@ Speedometer::Speedometer() { for (int i = 0; i < BUF_SIZE; i++) { this->buf[i] = 0; } + this->debug = new DebugMqtt("Speedometer"); } void Speedometer::init(uint8_t pinA, uint8_t pinB) { + debug->sendMsg(Loglevel::info, "Init..."); ESP32Encoder::useInternalWeakPullResistors=DOWN; this->encoder.attachFullQuad(pinA, pinB); this->encoder.setFilter(ENC_FILTER); + debug->sendMsg(Loglevel::info, "Init finished!"); } void Speedometer::runSpeedometer() { @@ -46,6 +49,7 @@ void Speedometer::runSpeedometer() { } else { this->speed = 0; } + debug->writeToInflux("speedometer", "speed_ASIDE", this->speed); // Serial.printf("time: %d, ", time); // Serial.printf("count: %d, ",count); diff --git a/src/speedometer.h b/src/speedometer.h index c0edc47..37408f9 100644 --- a/src/speedometer.h +++ b/src/speedometer.h @@ -6,6 +6,7 @@ #include #include "config.h" +#include "debugMqtt.h" class Speedometer { public: @@ -21,6 +22,7 @@ class Speedometer { int16_t getAverage(); ESP32Encoder encoder; + DebugMqtt *debug; double speed = 0; uint32_t last_millis = 0;