Die Oberfläche besteht aus folgenden Elementen:
Die Elemente kommen an folgende Position
Das schließen des Fensters
//Schließen des Fensters addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); |
Das logfile zum Aufzeichnen wird geöffnet:
try { logfile = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( "Logfile.txt" ) ) ); logfile.write("logfile.txt"); logfile.newLine(); } catch( IOException ex ) { System.out.println( ex ); try{ logfile.write(ex.toString()); logfile.newLine(); }catch(Exception exp){ } } |
Die serielle Schnittstelle COM4 wird mit einer Bautrate 9600 geöffnet
//Die serielle Schnittstelle wird parametriert. Der COMPort 4 wird gewält. Die Bautrate ist 9600. try{ SerialPort serialPort = new SerialPort(); Parameters parameters = new Parameters(); parameters.setPort("COM4"); parameters.setBaudRate("9600"); com = new Com(parameters); } catch (Exception e) { e.printStackTrace(); } |
Der Servo bekommt einen Sollwert (S) zwischen 0...120 Grad. Der String "S90" gibt die Stellung des Servos vor.
if ((event.target == servoButton)){ String servoString=new String(); servoString="S"+servoField.getText(); sendData(servoString); return true; } |
Wenn ein anderer Port gewählt wird kann dieser Eingestellt werden.
else if ((event.target == connectButton)){ try{ Parameters parameters = new Parameters(); parameters.setPort(connectField.getText()); logfile.write("Port: "+connectField.getText()); logfile.newLine(); System.out.println(connectField.getText()); parameters.setBaudRate("9600"); logfile.write("Baurate: 9600"); logfile.newLine(); com = new Com(parameters); } catch (Exception e) { e.printStackTrace(); try{ logfile.write(e.toString()); logfile.newLine(); }catch(Exception exp){ } } return true } |
Es wird "A"(Analogwert) an den Prozessor gesendet. Der Distanzsensor wird ausgelesen und sendet einen String zurück.
else if ((event.target == distanzButton)){ String serielEingang=new String(); String input; sendData("A"); serielEingang=receiveData('A'); input=serielEingang.substring(1); distanzField.setText(input); return true; } |
Die Led wird an oder aus geschalten, wenn der ledButton gedrückt wurde
else if ((event.target == ledButton)){//Bei Drücken des ledButton if(led.getState()==true)sendData("D5");//Schalte Led an else sendData("D6");//Schalte Led aus return true; } |
Die beiden Taster werden abgefragt, wenn der tasterButton gedrückt wird.
else if ((event.target == tasterButton)){ sendData("D2");//Taster 2 soll ausgelesen werden String tasterString1=receiveData('D');//Zustand des Tasters 2 if(tasterString1.charAt(1)=='0') taster1.setState(true);//Checkbox wird markiert else taster1.setState(false);//Keine Markierung des Checkbox sendData("D3");//Taster 3 soll ausgelesen werden //String tasterString2=receiveData('D');//Zustand des Tasters 3 //if(tasterString2.charAt(1)=='0') taster2.setState(true);//Checkbox wird markiert else taster2.setState(false);//Keine Markierung des Checkbox return true; } |
Senden eines Strings an den Mikrocontroller
public void sendData(String data){ try{ for (int i = 0; i < data.toCharArray().length; i++) {//Sende den Sting com.sendSingleData(data.toCharArray()[i]);//Buchstabe für Buchstabe wird gesendet } com.sendSingleData(13);//Der String endet mit Zeilenumbruch logfile.write("Sende:"+data);//Im logfile wird gespeichert logfile.newLine(); } catch(Exception e){//Wenn nicht gesendet werden kann e.printStackTrace();//Bei Consolenanwendungen wird auf die Konsole gescrieben try{ logfile.write(e.toString());//Fehler wird ins Logfile geschrieben logfile.newLine(); }catch(Exception exp){ } } } |
Empfangen eines Strings vom Mikrocontroller
public String receiveData(char kommand){ String buchstabe=new String(); try{ serialString.delete(0, serialString.length());//Der String wird gelöscht while(!buchstabe.equalsIgnoreCase("\n")){//Solange kein Zeilenumbruch kommt buchstabe=com.receiveSingleString();//Neuer Buchstabe wird empfangen if(buchstabe.length()>0) {//Wenn der String Buchstabe nicht leer ist serialString.append(buchstabe);//Buchstabe wird angehängt } } logfile.write("Empfangen:"+serialString.toString());//Empfangener String } catch(Exception e){ e.printStackTrace();//Fehler wird auf Console geschrieben try{ logfile.write(e.toString());//In die logfile Datei wird geschrieben logfile.newLine(); }catch(Exception exp){ } } return serialString.toString(); } |
Die Appliation wird initiert
public static void main(String[] args) { HMI hmi=new HMI(); hmi.init(); } |