|
|
@@ -3,68 +3,110 @@
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
public class GUIboard {
|
|
|
-
|
|
|
+
|
|
|
|
|
|
- public static void writeUpperDigits(double number){
|
|
|
- clearTop();
|
|
|
- writeDigits(number, 0x10, 0x18);
|
|
|
- }
|
|
|
-
|
|
|
- public static void writeLeftDigits(double number){
|
|
|
- clearLeft();
|
|
|
- writeDigits(number, 0x20, 0x24);
|
|
|
- }
|
|
|
-
|
|
|
- public static void writeRightDigits(double number){
|
|
|
- clearRight();
|
|
|
- writeDigits(number, 0x30, 0x34);
|
|
|
- }
|
|
|
-
|
|
|
- private static void writeDigits(double number, int firstSegment, int lastSegment){
|
|
|
- number = Math.round(number * 100.0) / 100.0;
|
|
|
- //Segments
|
|
|
- int segA = 0x01;
|
|
|
- int segB = 0x02;
|
|
|
- int segC = 0x04;
|
|
|
- int segD = 0x08;
|
|
|
- int segE = 0x10;
|
|
|
- int segF = 0x20;
|
|
|
- int segG = 0x40;
|
|
|
- int segDP = 0x80;
|
|
|
-
|
|
|
- //Digits
|
|
|
- int[] digits = {
|
|
|
- segA | segB | segC | segD | segE | segF, //0
|
|
|
- segB | segC, //1
|
|
|
- segA | segB | segG | segE | segD, //2
|
|
|
- segA | segB | segC | segG | segD, //3
|
|
|
- segB | segC | segF | segG | segC, //4
|
|
|
- segA | segF | segG | segC | segD, //5
|
|
|
- segA | segF | segG | segC | segD | segE, //6
|
|
|
- segA | segB | segC, //7
|
|
|
- segDP - 1, //8
|
|
|
- segA | segF | segG | segC | segD | segB, //9
|
|
|
- };
|
|
|
-
|
|
|
- int digit = firstSegment;
|
|
|
- String numberString = String.valueOf(number);;
|
|
|
- char numberSplit[] = numberString.toCharArray();
|
|
|
-
|
|
|
- for(int i = numberSplit.length-1; i >= 0; i--){
|
|
|
- if(numberSplit[i] == '.'){
|
|
|
- IO.writeShort(digit, digits[(Character.getNumericValue(numberSplit[i - 1]))]|0x180); //display a . with the next number
|
|
|
- i--;
|
|
|
- }else if(numberSplit[i] == '-'){
|
|
|
- IO.writeShort(digit, 0x140); //will display a -
|
|
|
- }else{
|
|
|
- IO.writeShort(digit, Character.getNumericValue(numberSplit[i]));
|
|
|
- }
|
|
|
- digit += 2; //Next digits screen
|
|
|
- if(digit > lastSegment){ //If there are more then max digits needed, it will stop.
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ public static void writeUpperDigits(double number){
|
|
|
+ clearTop();
|
|
|
+
|
|
|
+ int checkNumber = String.valueOf(Math.round(number)).length();
|
|
|
+
|
|
|
+ if(checkNumber <= 5){
|
|
|
+ checkNumber = 5 - checkNumber > 0 ? 5 - checkNumber : 0;
|
|
|
+ number = number * Math.pow(10, checkNumber);
|
|
|
+ number = Math.round(number);
|
|
|
+ number = number / Math.pow(10, checkNumber);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ number = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ writeDigits(number, 0x10, 0x18);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void writeLeftDigits(double number){
|
|
|
+ clearLeft();
|
|
|
+
|
|
|
+ int checkNumber = String.valueOf(Math.round(number)).length();
|
|
|
+
|
|
|
+ if(checkNumber <= 3){
|
|
|
+ checkNumber = 3 - checkNumber > 0 ? 3 - checkNumber : 0;
|
|
|
+ number = number * Math.pow(10, checkNumber);
|
|
|
+ number = Math.round(number);
|
|
|
+ number = number / Math.pow(10, checkNumber);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ number = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ writeDigits(number, 0x20, 0x24);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void writeRightDigits(double number){
|
|
|
+ clearRight();
|
|
|
+
|
|
|
+ int checkNumber = String.valueOf(Math.round(number)).length();
|
|
|
+
|
|
|
+ if(checkNumber <= 3){
|
|
|
+ checkNumber = 3 - checkNumber > 0 ? 3 - checkNumber : 0;
|
|
|
+ number = number * Math.pow(10, checkNumber);
|
|
|
+ number = Math.round(number);
|
|
|
+ number = number / Math.pow(10, checkNumber);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ number = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ writeDigits(number, 0x30, 0x34);
|
|
|
+ }
|
|
|
+
|
|
|
+ private static void writeDigits(double number, int firstSegment, int lastSegment){
|
|
|
+ number = Math.round(number * 100.0) / 100.0;
|
|
|
+ //Segments
|
|
|
+ int segA = 0x01;
|
|
|
+ int segB = 0x02;
|
|
|
+ int segC = 0x04;
|
|
|
+ int segD = 0x08;
|
|
|
+ int segE = 0x10;
|
|
|
+ int segF = 0x20;
|
|
|
+ int segG = 0x40;
|
|
|
+ int segDP = 0x80;
|
|
|
+
|
|
|
+ //Digits
|
|
|
+ int[] digits = {
|
|
|
+ segA | segB | segC | segD | segE | segF, //0
|
|
|
+ segB | segC, //1
|
|
|
+ segA | segB | segG | segE | segD, //2
|
|
|
+ segA | segB | segC | segG | segD, //3
|
|
|
+ segB | segC | segF | segG | segC, //4
|
|
|
+ segA | segF | segG | segC | segD, //5
|
|
|
+ segA | segF | segG | segC | segD | segE, //6
|
|
|
+ segA | segB | segC, //7
|
|
|
+ segDP - 1, //8
|
|
|
+ segA | segF | segG | segC | segD | segB, //9
|
|
|
+ };
|
|
|
+
|
|
|
+ int digit = firstSegment;
|
|
|
+ String numberString = String.valueOf(number);;
|
|
|
+ char numberSplit[] = numberString.toCharArray();
|
|
|
+
|
|
|
+ for(int i = numberSplit.length-1; i >= 0; i--){
|
|
|
+ if(numberSplit[i] == '.'){
|
|
|
+ IO.writeShort(digit, digits[(Character.getNumericValue(numberSplit[i - 1]))]|0x180); //display a . with the next number
|
|
|
+ i--;
|
|
|
+ }else if(numberSplit[i] == '-'){
|
|
|
+ IO.writeShort(digit, 0x140); //will display a -
|
|
|
+ }else{
|
|
|
+ IO.writeShort(digit, Character.getNumericValue(numberSplit[i]));
|
|
|
+ }
|
|
|
+ digit += 2; //Next digits screen
|
|
|
+ if(digit > lastSegment){ //If there are more then max digits needed, it will stop.
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
public static boolean writePageToMatrix(String regel1, String regel2, String regel3)
|
|
|
@@ -75,10 +117,10 @@ public class GUIboard {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- String nav = "< > S"; //creates the navigation and will center it out to the right
|
|
|
+ String nav = "< > S"; //creates the navigation and will center it out to the right
|
|
|
|
|
|
for(int i=0; i < (12-regel3.length()); i++){
|
|
|
- nav = " " + nav;
|
|
|
+ nav = " " + nav;
|
|
|
}
|
|
|
char[] regel1CharArray = regel1.toCharArray();
|
|
|
char[] regel2CharArray = regel2.toCharArray();
|