From 49fe9596405da7fc647ec915dec3418f0e989975 Mon Sep 17 00:00:00 2001 From: jancoow Date: Thu, 2 Oct 2014 22:57:25 +0200 Subject: [PATCH] GUI board toegevoegd --- GUIboard.java | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100755 GUIboard.java diff --git a/GUIboard.java b/GUIboard.java new file mode 100755 index 0000000..1ee0078 --- /dev/null +++ b/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; + } + } + } +}