Files
Jérôme Delacotte 7b30d6e298 first commit
2025-03-06 11:15:32 +01:00

49 lines
1.1 KiB
C++

#ifndef Graph_h
#define Graph_h
#include <Arduino.h>
#include "Ecran.h"
#include "common.h"
// Max series in graph
#define MAX_SERIES 2
enum SCALE {ONE_SCALE, TWO_SCALES};
enum SCALE_MODE {DYNAMIC_SCALE, FIXED_SCALE};
enum CHART_TYPE {TYPE_BARCHART, TYPE_LINE, TYPE_FILL_LINE};
typedef struct {
CHART_TYPE chart_type;
uint16_t color;
float data[max_readings];
int thickness; // if not barchart mode
int readings;
} Serie;
typedef struct {
String title;
String x_title;
String y_title;
SCALE_MODE auto_scale;
SCALE show_2_scales;
float Y_Min[MAX_SERIES];
float Y_Max[MAX_SERIES];
int auto_scale_margin; // Sets the autoscale increment, so axis steps up in units of e.g. 3
int y_minor_axis; // 5 y-axis division markers
//Draw the Y-axis scale
int number_of_dashes;
int nb_series;
Serie series[MAX_SERIES];
} Graph_Param;
class Graph {
public:
Graph(Ecran * ecran, Graph_Param gp);
void draw(int readings, int x_pos, int y_pos, int gwidth, int gheight); //float DataArray[], int readings);
public:
Ecran * ecran;
Graph_Param gp;
};
#endif