Added debug prints to some classes
This commit is contained in:
+11
-4
@@ -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";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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
@@ -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,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
@@ -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() {
|
||||||
|
|||||||
@@ -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,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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user