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); 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) { void DebugMqtt::init(PubSubClient *client, Loglevel loglevel) {
DebugMqtt::client = client; DebugMqtt::client = client;
DebugMqtt::loglevel = loglevel; DebugMqtt::loglevel = loglevel;
@@ -46,13 +53,13 @@ void DebugMqtt::changeLoglevel(Loglevel loglevel) {
String DebugMqtt::enum_to_string(Loglevel loglevel) { String DebugMqtt::enum_to_string(Loglevel loglevel) {
switch(loglevel){ switch(loglevel){
case Loglevel::error : case Loglevel::error :
return "/Rover/Error"; return "Rover/Error";
case Loglevel::warn : case Loglevel::warn :
return "/Rover/Warn"; return "Rover/Warn";
case Loglevel::info : case Loglevel::info :
return "/Rover/Info"; return "Rover/Info";
case Loglevel::debug : case Loglevel::debug :
return "/Rover/Debug"; return "Rover/Debug";
default: default:
return "INVALID ENUM"; return "INVALID ENUM";
} }
+1
View File
@@ -18,6 +18,7 @@ class DebugMqtt {
void sendMsg(Loglevel loglevel, String msg); void sendMsg(Loglevel loglevel, String msg);
void sendData(Loglevel loglevel, String topic, String data); void sendData(Loglevel loglevel, String topic, String data);
void sendData(Loglevel loglevel, 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 init(PubSubClient *client, Loglevel loglevel);
static void changeLoglevel(Loglevel loglevel); static void changeLoglevel(Loglevel loglevel);
-1
View File
@@ -31,7 +31,6 @@ IPAddress mqtt_server(MQTT_SERVER);
WiFiClient wifi_client; WiFiClient wifi_client;
PubSubClient mqtt_client(wifi_client); PubSubClient mqtt_client(wifi_client);
uint64_t last_millis = 0; uint64_t last_millis = 0;
int controller_battery = -1; int controller_battery = -1;
+10 -4
View File
@@ -5,10 +5,12 @@
#include "config.h" #include "config.h"
MotorControl::MotorControl() { 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) { 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_pin = pwm_pin;
this->pwm_channel = pwm_channel; this->pwm_channel = pwm_channel;
this->direction_pin_1 = direction_pin_1; 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); ledcSetup(this->pwm_channel, PWM_FREQ, PWM_RES);
ledcAttachPin(this->pwm_pin, this->pwm_channel); ledcAttachPin(this->pwm_pin, this->pwm_channel);
ledcWrite(this->pwm_channel, 0); ledcWrite(this->pwm_channel, 0);
debug->sendMsg(Loglevel::info, "Init finished!");
} }
void MotorControl::runMotorControl() { void MotorControl::runMotorControl() {
@@ -77,16 +81,17 @@ void MotorControl::runMotorControl() {
} }
void MotorControl::setTargetPower(int8_t power) { void MotorControl::setTargetPower(int8_t power) {
//TODO: Exceptionhandling
if (power <= 100 && power >= -100) { if (power <= 100 && power >= -100) {
this->target_power = power; this->target_power = power;
debug->writeToInflux("motorControl", "target_power_ASIDE", power);
} else { } else {
Serial.println("Invalid Argument in MotorControl::setTargetPower"); debug->sendMsg(Loglevel::error, "Invalid Argument in setTargetPower!");
} }
} }
void MotorControl::stop() { void MotorControl::stop() {
this->target_power = 0; this->target_power = 0;
debug->writeToInflux("motorControl", "target_power_ASIDE", this->target_power);
} }
void MotorControl::emergencyStop() { void MotorControl::emergencyStop() {
@@ -128,7 +133,7 @@ void MotorControl::setRealPower(int8_t power) {
if (power <= 100 || power <= -100) { if (power <= 100 || power <= -100) {
this->power = power; this->power = power;
} else { } else {
Serial.println("Invalid Argument in MotorControl::setRealPower"); debug->sendMsg(Loglevel::error, "Invalid Argument in setRealPower!");
return; return;
} }
@@ -153,6 +158,7 @@ void MotorControl::setRealPower(int8_t power) {
} }
ledcWrite(this->pwm_channel, pwm_val); ledcWrite(this->pwm_channel, pwm_val);
debug->writeToInflux("motorControl", "real_power_ASIDE", power);
// Serial.printf("pwm_val: %d, ", pwm_val); // Serial.printf("pwm_val: %d, ", pwm_val);
} }
+4
View File
@@ -4,6 +4,8 @@
#include <cstdint> #include <cstdint>
#include <string> #include <string>
#include "debugMqtt.h"
class MotorControl { class MotorControl {
public: public:
MotorControl(); MotorControl();
@@ -24,6 +26,8 @@ class MotorControl {
void setRealPower(int8_t power); void setRealPower(int8_t power);
void increasePower(int8_t power); void increasePower(int8_t power);
DebugMqtt *debug;
int8_t target_power = 0; int8_t target_power = 0;
int8_t power = 0; int8_t power = 0;
uint8_t direction = 0; // 0 = stop, 1 = forward, 2 = backward uint8_t direction = 0; // 0 = stop, 1 = forward, 2 = backward
+5 -1
View File
@@ -3,15 +3,17 @@
#include <Arduino.h> #include <Arduino.h>
MoveControl::MoveControl() { MoveControl::MoveControl() {
this->debug = new DebugMqtt("MoveControl");
} }
void MoveControl::init(MotorControl *left_motor, MotorControl *right_motor, void MoveControl::init(MotorControl *left_motor, MotorControl *right_motor,
Speedometer *left_speedometer, Speedometer *right_speedometer) { Speedometer *left_speedometer, Speedometer *right_speedometer) {
debug->sendMsg(Loglevel::info, "Init...");
this->left_motor = left_motor; this->left_motor = left_motor;
this->right_motor = right_motor; this->right_motor = right_motor;
this->left_speedometer = left_speedometer; this->left_speedometer = left_speedometer;
this->right_speedometer = right_speedometer; this->right_speedometer = right_speedometer;
debug->sendMsg(Loglevel::info, "Init finished!");
} }
void MoveControl::runMoveControl() { 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_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); 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() { void MoveControl::regulateMotors() {
+3
View File
@@ -6,6 +6,7 @@
#include "motorControl.h" #include "motorControl.h"
#include "speedometer.h" #include "speedometer.h"
#include "config.h" #include "config.h"
#include "debugMqtt.h"
enum DrivingStatus {stop, enum DrivingStatus {stop,
straightForward, straightForward,
@@ -36,6 +37,8 @@ class MoveControl {
void calcWheelSpeed(); void calcWheelSpeed();
void regulateMotors(); void regulateMotors();
DebugMqtt *debug;
MotorControl *left_motor; MotorControl *left_motor;
MotorControl *right_motor; MotorControl *right_motor;
Speedometer *left_speedometer; Speedometer *left_speedometer;
+4
View File
@@ -4,12 +4,15 @@ Speedometer::Speedometer() {
for (int i = 0; i < BUF_SIZE; i++) { for (int i = 0; i < BUF_SIZE; i++) {
this->buf[i] = 0; this->buf[i] = 0;
} }
this->debug = new DebugMqtt("Speedometer");
} }
void Speedometer::init(uint8_t pinA, uint8_t pinB) { void Speedometer::init(uint8_t pinA, uint8_t pinB) {
debug->sendMsg(Loglevel::info, "Init...");
ESP32Encoder::useInternalWeakPullResistors=DOWN; ESP32Encoder::useInternalWeakPullResistors=DOWN;
this->encoder.attachFullQuad(pinA, pinB); this->encoder.attachFullQuad(pinA, pinB);
this->encoder.setFilter(ENC_FILTER); this->encoder.setFilter(ENC_FILTER);
debug->sendMsg(Loglevel::info, "Init finished!");
} }
void Speedometer::runSpeedometer() { void Speedometer::runSpeedometer() {
@@ -46,6 +49,7 @@ void Speedometer::runSpeedometer() {
} else { } else {
this->speed = 0; this->speed = 0;
} }
debug->writeToInflux("speedometer", "speed_ASIDE", this->speed);
// Serial.printf("time: %d, ", time); // Serial.printf("time: %d, ", time);
// Serial.printf("count: %d, ",count); // Serial.printf("count: %d, ",count);
+2
View File
@@ -6,6 +6,7 @@
#include <math.h> #include <math.h>
#include "config.h" #include "config.h"
#include "debugMqtt.h"
class Speedometer { class Speedometer {
public: public:
@@ -21,6 +22,7 @@ class Speedometer {
int16_t getAverage(); int16_t getAverage();
ESP32Encoder encoder; ESP32Encoder encoder;
DebugMqtt *debug;
double speed = 0; double speed = 0;
uint32_t last_millis = 0; uint32_t last_millis = 0;