118 lines
3.1 KiB
C++
118 lines
3.1 KiB
C++
void PopBoardDisplayTable() {
|
|
//Set Values
|
|
int CurrRows = 0;
|
|
int CurrCols = 0;
|
|
float LogFloat = GetBoardValue(1);
|
|
float XValFloat = GetBoardValue(2);
|
|
float YValFloat = GetBoardValue(3);
|
|
Prog_LogFloatVal = false;
|
|
Prog_XFloat = false;
|
|
Prog_YFloat = false;
|
|
|
|
//Set Log Float
|
|
if (Prog_Log_Value >= 2 && Prog_Log_Value <= 7) {
|
|
Prog_LogFloatVal = true;
|
|
}
|
|
|
|
//Set X Float
|
|
if (Prog_Log_Value == 5) {
|
|
Prog_XFloat = true;
|
|
}
|
|
|
|
//Set Y Float
|
|
if (Prog_Log_Value == 5) {
|
|
YValFloat = Display_TPS;
|
|
Prog_YFloat = true;
|
|
}
|
|
|
|
//Get Rows Area
|
|
for (int i=0; i <= Prog_Rows-1; i++){
|
|
float Range = float(Prog_YMax - Prog_YMin);
|
|
float Add = (Range/(Prog_Rows -1));
|
|
float CurrVal = Prog_YMin + (Add * i);
|
|
float MinVal = 0;
|
|
float MaxVal = 0;
|
|
//Set Min Val
|
|
if (i == 0) {
|
|
MinVal = -9999;
|
|
} else {
|
|
float LastVal = Prog_YMin + (Add * (i-1));
|
|
MinVal = LastVal + ((CurrVal - LastVal)/2);
|
|
}
|
|
//Set Max Val
|
|
if (i == Prog_Rows-1) {
|
|
MaxVal = 9999;
|
|
} else {
|
|
float NextVal = Prog_YMin + (Add * (i+1));
|
|
MaxVal = CurrVal + ((NextVal - CurrVal)/2);
|
|
}
|
|
//Set Current Rows
|
|
if (YValFloat > MinVal && YValFloat <= MaxVal) {
|
|
CurrRows = Prog_Rows - (i + 1);
|
|
}
|
|
}
|
|
|
|
//Get Cols Area
|
|
for (int i=0; i <= Prog_Cols-1; i++){
|
|
float Range = float(Prog_XMax - Prog_XMin);
|
|
float Add = (Range/(Prog_Cols -1));
|
|
float CurrVal = Prog_XMin + (Add * i);
|
|
float MinVal = 0;
|
|
float MaxVal = 0;
|
|
//Set Min Val
|
|
if (i == 0) {
|
|
MinVal = -9999;
|
|
} else {
|
|
float LastVal = Prog_XMin + (Add * (i-1));
|
|
MinVal = LastVal + ((CurrVal - LastVal)/2);
|
|
}
|
|
//Set Max Val
|
|
if (i == Prog_Cols-1) {
|
|
MaxVal = 9999;
|
|
} else {
|
|
float NextVal = Prog_XMin + (Add * (i+1));
|
|
MaxVal = CurrVal + ((NextVal - CurrVal)/2);
|
|
}
|
|
//Set Current Cols
|
|
if (XValFloat > MinVal && XValFloat <= MaxVal) {
|
|
CurrCols = i + 1;
|
|
}
|
|
}
|
|
|
|
//Set the Value
|
|
int XPos = 14;
|
|
int YPos = 20;
|
|
int TextXpos = (((300 / Prog_Cols) * CurrCols) + XPos) - 29;
|
|
int TextYpos = (((200 / Prog_Rows) * CurrRows) + YPos);
|
|
myGLCD.setColor(0, 0, 0);
|
|
myGLCD.fillRect(TextXpos, TextYpos, TextXpos + 30, TextYpos + 9);
|
|
myGLCD.setColor(255, 255, 255);
|
|
myGLCD.setFont(SmallFont);
|
|
if (Prog_LogFloatVal) {
|
|
int Rounded = round(LogFloat * 10);
|
|
String RoundedStr = String(Rounded);
|
|
String UnRounded = String(round(Rounded / 10));
|
|
String LastNumber = RoundedStr.substring(RoundedStr.length() - 1, RoundedStr.length());
|
|
String EndStr = UnRounded + "." + LastNumber;
|
|
myGLCD.print(EndStr, TextXpos, TextYpos);
|
|
} else {
|
|
myGLCD.print(String(int(ceil(LogFloat))), TextXpos, TextYpos);
|
|
}
|
|
|
|
//Set Middle Lines
|
|
if (Prog_BoardType == 1) {
|
|
myGLCD.setColor(255, 255, 255);
|
|
for (int i=1; i <= Prog_Rows-1; i++){
|
|
int RowYpos = ((200 / Prog_Rows) * i) + YPos;
|
|
myGLCD.drawLine(14, RowYpos, 314, RowYpos);
|
|
}
|
|
for (int i=1; i <= Prog_Cols-1; i++){
|
|
int ColXpos = ((300 / Prog_Cols) * i) + XPos;
|
|
myGLCD.drawLine(ColXpos, 20, ColXpos, 220);
|
|
}
|
|
}
|
|
|
|
//Draw Background Rect
|
|
myGLCD.drawRect(14, 20, 314, 220);
|
|
}
|