Add diagnosis module via HTTP.
This commit is contained in:
26
include/diagnosis.h
Normal file
26
include/diagnosis.h
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
#ifndef DIAGNOSIS_H
|
||||||
|
#define DIAGNOSIS_H
|
||||||
|
|
||||||
|
#include <Arduino.h>
|
||||||
|
#include "led_matrix.h"
|
||||||
|
#include "udp_logger.h"
|
||||||
|
|
||||||
|
class Diagnosis
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Diagnosis(); // constructor
|
||||||
|
Diagnosis(UDPLogger *logger, LEDMatrix *matrix); // constructor
|
||||||
|
|
||||||
|
String handle_command(const String &command);
|
||||||
|
String print_device_info();
|
||||||
|
String print_sketch_info();
|
||||||
|
String print_last_reset_details();
|
||||||
|
String print_matrix_fps();
|
||||||
|
|
||||||
|
private:
|
||||||
|
UDPLogger *_logger;
|
||||||
|
LEDMatrix * _matrix;
|
||||||
|
void print(const String &s);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // DIAGNOSIS_H
|
||||||
93
src/connectivity/diagnosis.cpp
Normal file
93
src/connectivity/diagnosis.cpp
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
#include "diagnosis.h"
|
||||||
|
|
||||||
|
Diagnosis::Diagnosis()
|
||||||
|
{
|
||||||
|
_logger = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
Diagnosis::Diagnosis(UDPLogger *logger, LEDMatrix *matrix) // constructor
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
_matrix = matrix;
|
||||||
|
}
|
||||||
|
|
||||||
|
String Diagnosis::handle_command(const String &command)
|
||||||
|
{
|
||||||
|
if (command == "device_info")
|
||||||
|
{
|
||||||
|
return print_device_info();
|
||||||
|
}
|
||||||
|
else if (command == "sketch_info")
|
||||||
|
{
|
||||||
|
return print_sketch_info();
|
||||||
|
}
|
||||||
|
else if (command == "reset_info")
|
||||||
|
{
|
||||||
|
return print_last_reset_details();
|
||||||
|
}
|
||||||
|
else if (command == "matrix_fps")
|
||||||
|
{
|
||||||
|
return print_matrix_fps();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Handle unknown command
|
||||||
|
String unknown_command = "Diagnosis: Unknown command!\n";
|
||||||
|
print(unknown_command);
|
||||||
|
return unknown_command;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String Diagnosis::print_device_info()
|
||||||
|
{
|
||||||
|
// Retrieve and print device information
|
||||||
|
String device_info = "Device Information:\n";
|
||||||
|
device_info += "Chip ID: " + String(ESP.getChipId()) + "\n";
|
||||||
|
device_info += "Flash Chip ID: " + String(ESP.getFlashChipId()) + "\n";
|
||||||
|
device_info += "Flash Chip Size: " + String(ESP.getFlashChipSize()) + " bytes\n";
|
||||||
|
device_info += "Free Heap Size: " + String(ESP.getFreeHeap()) + " bytes\n";
|
||||||
|
device_info += "Free Sketch Space: " + String(ESP.getFreeSketchSpace()) + " bytes\n";
|
||||||
|
device_info += "SDK Version: " + String(ESP.getSdkVersion()) + "\n";
|
||||||
|
print(device_info);
|
||||||
|
return device_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
String Diagnosis::print_sketch_info()
|
||||||
|
{
|
||||||
|
// Retrieve and print sketch information
|
||||||
|
String sketch_info = "Sketch Information:\n";
|
||||||
|
sketch_info += "Sketch Size: " + String(ESP.getSketchSize()) + " bytes\n";
|
||||||
|
sketch_info += "Sketch MD5: " + String(ESP.getSketchMD5()) + "\n";
|
||||||
|
print(sketch_info);
|
||||||
|
return sketch_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
String Diagnosis::print_last_reset_details()
|
||||||
|
{
|
||||||
|
// Retrieve and print last reset details
|
||||||
|
String reset_info = "Last Reset Details:\n";
|
||||||
|
reset_info += "Reset Reason: " + String(ESP.getResetReason()) + "\n";
|
||||||
|
reset_info += "Reset Info: " + String(ESP.getResetInfo()) + "\n";
|
||||||
|
print(reset_info);
|
||||||
|
return reset_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
String Diagnosis::print_matrix_fps()
|
||||||
|
{
|
||||||
|
// Retrieve and print matrix FPS
|
||||||
|
String matrix_fps = "Matrix FPS: " + String(_matrix->get_fps()) + "\n";
|
||||||
|
print(matrix_fps);
|
||||||
|
return matrix_fps;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Diagnosis::print(const String &s)
|
||||||
|
{
|
||||||
|
if (_logger != nullptr)
|
||||||
|
{
|
||||||
|
_logger->log_string(s);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Serial.println(s);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user