steering-wheel/lib/FT18e_STW_DISPLAY/FT18e_STW_DISPLAY.cpp

149 lines
3.9 KiB
C++

#include "FT18e_STW_DISPLAY.h"
#include "Arduino.h"
#include "EDIPTFT.h"
#include "FT18e_STW_INIT.h"
#include "FT_2018e_STW_CAN.h"
EDIPTFT tft(true, false);
String bezeichnungen[] = {"Batterieleistung", "Moment", "Batterietemp"};
//"T_mot","T_oil","P_oil","% fa","U_batt","P_wat","T_air",
//"P_b_front","P_b_rear","Error Type","Speed_fl","Speed_fr","Speed"};
//"Drehzahl","P_fuel","Index"
int vergleichsindex;
int sizeaalt;
int sizeaneu;
int sizebalt;
int sizebneu;
int sizecalt;
int sizecneu;
int sizedalt;
int sizedneu;
int sizeealt;
int sizeeneu;
uint8_t clearcounter = 56;
uint8_t modealt = Stw_data.mode;
uint8_t trccounter; // = Stw_data.trc;
uint8_t modecounter; // = Stw_data.mode;
bool trctimer;
bool modetimer;
int led_s[] = {led1, led2, led3, led4, led5, led6, led7, led8,
led9, led10, led11, led12, led13, led14, led15, led16};
unsigned long poiltimer;
unsigned long tmottimer;
unsigned long toiltimer;
bool poilbool = true;
bool tmotbool = true;
bool toilbool = true;
void init_display() {
pinMode(writeprotect, OUTPUT);
digitalWrite(writeprotect, HIGH);
pinMode(reset, OUTPUT);
pinMode(disp_cs, OUTPUT);
pinMode(MOSI, OUTPUT);
pinMode(MISO, OUTPUT);
// pinMode(CLK, INPUT);
digitalWrite(disp_cs, HIGH);
digitalWrite(MOSI, HIGH);
digitalWrite(MISO, HIGH);
digitalWrite(reset, LOW);
// edip.smallProtoSelect(7);
// edip.setNewColor(EA_GREY, 0xe3, 0xe3,0xe3); // redefine r-g-b-values
// of EA_GREY edip.drawImage(0,50,FASTTUBE_LOGO_PNG);
digitalWrite(reset, HIGH);
tft.begin(115200); // start display communication
/*int h = 20;
char charh[2];
String strh = String(h);
strh.toCharArray(charh,2);
tft.DisplayLight(charh);*/
tft.cursorOn(false);
tft.terminalOn(false);
tft.setDisplayColor(EA_WHITE, EA_BLACK);
tft.setTextColor(EA_WHITE, EA_BLACK);
// tft.setTextFont('4');
tft.setTextSize(5, 8);
tft.clear();
// tft.displayLight('30');
tft.drawText(0, 14, 'C', "FaSTTUBe"); // draw some text
// tft.loadImage(0,0,1);
// delay(2000);
}
double get_value(int a) { return 0; }
void update_display() {
if (!tft.disconnected) {
tft.cursorOn(false);
if (modealt != Stw_data.mode || modetimer == true) {
display_mode();
} else {
if (clearcounter >= 56) {
tft.clear();
clearcounter = 0;
}
clearcounter += 1;
}
}
}
void display_mode() {
if (modealt != Stw_data.mode) {
tft.clear();
tft.setTextSize(6, 8);
tft.setDisplayColor(EA_WHITE, EA_RED);
tft.setTextColor(EA_WHITE, EA_RED);
char modeanzeige[7];
String str = String("MODE:");
str += String(Stw_data.mode);
str.toCharArray(modeanzeige, 7);
tft.drawText(0, 0, 'L', " ");
tft.drawText(0, 60, 'L', " ");
tft.drawText(0, 120, 'L', " ");
tft.drawText(0, 180, 'L', " ");
tft.drawText(15, 68, 'L', modeanzeige);
modecounter = 0;
modealt = Stw_data.mode;
modetimer = true;
} else if (modecounter >= 255) {
tft.setDisplayColor(EA_WHITE, EA_BLACK);
tft.setTextColor(EA_WHITE, EA_BLACK);
tft.clear();
modetimer = false;
} else {
modecounter += 1;
delay(5);
}
}
void alarm(String textstr) {
uint8_t x = 1;
;
char text[7];
textstr.toCharArray(text, 7);
tft.setTextSize(8, 8);
while (x == 1) {
if (!tft.disconnected) {
tft.setTextColor(EA_BLACK, EA_RED);
tft.fillDisplayColor(EA_RED);
tft.drawText(5, 68, 'L', text);
}
for (int j = 0; j < 16; j++) {
digitalWrite(led_s[j], HIGH);
}
delay(100);
if (!tft.disconnected) {
tft.setTextColor(EA_BLACK, EA_WHITE);
tft.fillDisplayColor(EA_WHITE);
tft.drawText(5, 68, 'L', text);
}
for (int j = 0; j < 16; j++) {
digitalWrite(led_s[j], LOW);
}
delay(100);
if (Stw_data.button_ll & Stw_data.button_rr) {
x = 0;
tft.setTextColor(EA_WHITE, EA_BLACK);
}
}
}