Added debug prints to some classes

This commit is contained in:
2021-05-09 16:13:07 +02:00
parent b5f2288db2
commit 5a772449c6
9 changed files with 40 additions and 10 deletions
+11 -4
View File
@@ -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";
}
+1
View File
@@ -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);
-1
View File
@@ -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;
+10 -4
View File
@@ -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);
}
+4
View File
@@ -4,6 +4,8 @@
#include <cstdint>
#include <string>
#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
+5 -1
View File
@@ -3,15 +3,17 @@
#include <Arduino.h>
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() {
+3
View File
@@ -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;
+4
View File
@@ -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);
+2
View File
@@ -6,6 +6,7 @@
#include <math.h>
#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;