jancoow 11 лет назад
Родитель
Сommit
49fe959640
1 измененных файлов с 64 добавлено и 0 удалено
  1. 64 0
      GUIboard.java

+ 64 - 0
GUIboard.java

@@ -0,0 +1,64 @@
+package weerstation;
+
+public class GUIboard {
+	
+
+	public static void writeUpperDigits(double number){
+		writeDigits(number, 0x10, 0x18);
+	}
+	
+	public static void writeLeftDigits(double number){
+		writeDigits(number, 0x20, 0x24);
+	}
+	
+	public static void writeRightDigits(double number){
+		writeDigits(number, 0x30, 0x34);
+	}
+	
+	private static void writeDigits(double number, int firstSegment, int lastSegment){
+		
+		//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 | segF | 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;
+		IO.writeShort(0x10, 0); 						//default value
+		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;
+			}
+		}
+	}
+}