steering-wheel/lib/FT18e_STW_DISPLAY/FT18e_STW_DISPLAY.cpp

171 lines
3.9 KiB
C++

#include "Arduino.h"
#include "EDIPTFT.h"
#include "FT_2018e_STW_CAN.h"
#include "FT18e_STW_INIT.h"
#include "FT18e_STW_DISPLAY.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._displaybool)
{
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._displaybool)
{
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._displaybool)
{
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);
}
}
}