Variablen Main Klasse soll auf eine andere Klasse zugreifen

Antimatt3r

Neues Mitglied
Hallo alle zusammen,
ich bin zwar relativ neu was java angeht, habe aber schon etwas Erfahrung.
Mein Plan ist es ein Arduino CNC-Board mithilfe eines Computers zu steuern.
Die CNC Maschine soll eine Bewegung machen und dann auf das Signal eines zweiten Arduinos warten, an dem ein Taster angeschlossen ist. Also habe ich mir gedacht, dass man dies mit einer seriellen Verbindung hinbekommen könnte.
Hierzu habe ich 2 Java Klassen, die eine liest das Signal vom Taster 1 oder 0 und die andere sendet den G-code an das CNC-Board.
Ich verwende als IDE Eclips und die Libary RXTX.
Die einzelnen Klassen funktionieren
Klasse zum Senden:

Java:
import gnu.io.*;

import java.io.IOException;
//import java.io.InputStream;
import java.inutputStream;
import java.util.Enumeration;
//import java.util.TooManyListenersException;

//import OeffnenUndSenden.serialPortEventListener;



public class senden implements Runnable {

   /**
    * @param args
    */
   public static void main(String[] args)
   {
       lesen lesen = new lesen();
       Runnable runnable = new senden();
       new Thread(runnable).start();
       System.out.println("main finished");
   }
 
   /**
    *
    */

   CommPortIdentifier serialPortId;
   Enumeration enumComm;
   SerialPort serialPort;
   OutputStream outputStream;
   // InputStream inputStream;
   Boolean serialPortGeoeffnet = false;

   int baudrate = 115200;
   int dataBits = SerialPort.DATABITS_8;
   int stopBits = SerialPort.STOPBITS_1;
   int parity = SerialPort.PARITY_NONE;
   String portName = "COM3";
 
   int secondsRuntime = 99999;

   public senden()
   {
       System.out.println("Konstruktor: senden");
   }
 
    public void run()
    {
        Integer secondsRemaining = secondsRuntime;
        if (oeffneSerialPort(portName) != true)
           return;
     
   while (secondsRemaining > 0) {
       System.out.println("Sekunden verbleiben: " + secondsRemaining.toString() );
       secondsRemaining--;
       try {
           Thread.sleep(1000);
       } catch(InterruptedException e) { }
       sendeSerialPort("G1 X10 F250\n");
       }
   schliesseSerialPort();
}
 
   boolean oeffneSerialPort(String portName)
   {
       Boolean foundPort = false;
       if (serialPortGeoeffnet != false) {
           System.out.println("Serialport bereits geöffnet");
           return false;
       }
       System.out.println("Öffne Serialport");
       enumComm = CommPortIdentifier.getPortIdentifiers();
       while(enumComm.hasMoreElements()) {
           serialPortId = (CommPortIdentifier) enumComm.nextElement();
           if (portName.contentEquals(serialPortId.getName())) {
               foundPort = true;
               break;
           }
       }
       if (foundPort != true) {
           System.out.println("Serialport nicht gefunden: " + portName);
           return false;
       }
       try {
           serialPort = (SerialPort) serialPortId.open("Öffnen und Senden", 500);
       } catch (PortInUseException e) {
           System.out.println("Port belegt");
       }
       try {
           outputStream = serialPort.getOutputStream();
       } catch (IOException e) {
           System.out.println("Keinen Zugriff auf OutputStream");
       }
/*
       try {
           inputStream = serialPort.getInputStream();
       } catch (IOException e) {
           System.out.println("Keinen Zugriff auf InputStream");
       }
       try {
           serialPort.addEventListener(new serialPortEventListener());
       } catch (TooManyListenersException e) {
           System.out.println("TooManyListenersException für Serialport");
       }
       serialPort.notifyOnDataAvailable(true);
*/
       try {
           serialPort.setSerialPortParams(baudrate, dataBits, stopBits, parity);
       } catch(UnsupportedCommOperationException e) {
           System.out.println("Konnte Schnittstellen-Paramter nicht setzen");
       }
     
       serialPortGeoeffnet = true;
       return true;
   }

   void schliesseSerialPort()
   {
       if ( serialPortGeoeffnet == true) {
           System.out.println("Schließe Serialport");
           serialPort.close();
           serialPortGeoeffnet = false;
       } else {
           System.out.println("Serialport bereits geschlossen");
       }
   }
 
   void sendeSerialPort(String nachricht)
   {
       System.out.println("Sende: " + nachricht);
       if (serialPortGeoeffnet != true)
           return;
       try {
           outputStream.write(nachricht.getBytes());
       } catch (IOException e) {
           System.out.println("Fehler beim Senden");
       }
   }
}
Klasse zum lesen:
Java:
import gnu.io.*;

import java.io.IOException;
import java.io.InputStream;
//import java.io_OutputStream;
import java.util.Enumeration;
import java.util.TooManyListenersException;

//import OeffnenUndSenden.serialPortEventListener;



public class lesen implements Runnable {
   String ergebnis;

   /**
    * @param args
    */
   public static void main(String[] args)
   {
       Runnable runnable = new lesen();
       new Thread(runnable).start();
       System.out.println("main finished");
   }
  
   /**
    *
    */

   CommPortIdentifier serialPortId;
   Enumeration enumComm;
   SerialPort serialPort;
   //OutputStream outputStream;
   InputStream inputStream;
   Boolean serialPortGeoeffnet = false;

   int baudrate = 9600;
   int dataBits = SerialPort.DATABITS_8;
   int stopBits = SerialPort.STOPBITS_1;
   int parity = SerialPort.PARITY_NONE;
   String portName = "COM4";
  
   int secondsRuntime = 99999;

   public lesen()
   {
       //System.out.println("Konstruktor: EinfachSenden");
   }
  
    public void run()
    {
        Integer secondsRemaining = secondsRuntime;
        if (oeffneSerialPort(portName) != true)
           return;
      
       while (secondsRemaining > 0) {
           //System.out.println("Sekunden verbleiben: " + secondsRemaining.toString() );
           secondsRemaining--;
           try {
               Thread.sleep(1000);
           } catch(InterruptedException e) { }
       }
       schliesseSerialPort();
      
    }
  
   boolean oeffneSerialPort(String portName)
   {
       Boolean foundPort = false;
       if (serialPortGeoeffnet != false) {
           System.out.println("Serialport bereits geöffnet");
           return false;
       }
       System.out.println("Öffne Serialport");
       enumComm = CommPortIdentifier.getPortIdentifiers();
       while(enumComm.hasMoreElements()) {
           serialPortId = (CommPortIdentifier) enumComm.nextElement();
           if (portName.contentEquals(serialPortId.getName())) {
               foundPort = true;
               break;
           }
       }
       if (foundPort != true) {
           System.out.println("Serialport nicht gefunden: " + portName);
           return false;
       }
       try {
           serialPort = (SerialPort) serialPortId.open("Öffnen und Senden", 500);
       } catch (PortInUseException e) {
           System.out.println("Port belegt");
       }
/*
       try {
           outputStream = serialPort.getOutputStream();
       } catch (IOException e) {
           System.out.println("Keinen Zugriff auf OutputStream");
       }
*/
       try {
           inputStream = serialPort.getInputStream();
       } catch (IOException e) {
           System.out.println("Keinen Zugriff auf InputStream");
       }
       try {
           serialPort.addEventListener(new serialPortEventListener());
       } catch (TooManyListenersException e) {
           System.out.println("TooManyListenersException für Serialport");
       }
       serialPort.notifyOnDataAvailable(true);
       try {
           serialPort.setSerialPortParams(baudrate, dataBits, stopBits, parity);
       } catch(UnsupportedCommOperationException e) {
           System.out.println("Konnte Schnittstellen-Paramter nicht setzen");
       }
      
       serialPortGeoeffnet = true;
       return true;
   }

   void schliesseSerialPort()
   {
       if ( serialPortGeoeffnet == true) {
           System.out.println("Schließe Serialport");
           serialPort.close();
           serialPortGeoeffnet = false;
       } else {
           System.out.println("Serialport bereits geschlossen");
       }
   }
  
   void serialPortDatenVerfuegbar() {
       try {
           byte[] data = new byte[150];
           int num;
           while(inputStream.available() > 0) {
               num = inputStream.read(data, 0, data.length);
               System.out.println( ergebnis);
               ergebnis= new String(data, 0, num);
           }
       } catch (IOException e) {
           System.out.println("Fehler beim Lesen empfangener Daten");
       }
   }

   class serialPortEventListener implements SerialPortEventListener {
       public void serialEvent(SerialPortEvent event) {
           System.out.println("serialPortEventlistener");
           switch (event.getEventType()) {
           case SerialPortEvent.DATA_AVAILABLE:
               serialPortDatenVerfuegbar();
               break;
           case SerialPortEvent.BI:
           case SerialPortEvent.CD:
           case SerialPortEvent.CTS:
           case SerialPortEvent.DSR:
           case SerialPortEvent.FE:
           case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
           case SerialPortEvent.PE:
           case SerialPortEvent.RI:
           default:
           }
       }
   }  
}
Mein Problem ist nun, wie ich die Variable ergebnis in der senden Klasse verwenden kann.
Mir ist klar, das dies beide main Klassen sind und genau deshalb brauche ich eure Hilfe wie ich das ändern kann.
 
Zuletzt bearbeitet von einem Moderator:

Meeresgott

Bekanntes Mitglied
Hallo, es ist sehr schwer zu lesen was du gepostet hast.

kannst du den Code erneut schicken mit der entsprechenden Formatierung?
unter 'Einfügen' -> 'Code'.
Auf dem Fenster Java auswählen und deinen Code für eine Klasse dort hinzufügen.

oder mit [code=java] Hier klasse einfügen [/code]
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
J Compiler-Fehler Java findet main Klasse nicht Java Basics - Anfänger-Themen 16
M Maven Main-Methode Interface und Klasse Java Basics - Anfänger-Themen 2
U Klassen IntelliJ14.1.1 Ultimate startet eine Main-Klasse NICHT MEHR Java Basics - Anfänger-Themen 0
AssELAss Klassen Java Klasse in main-methode ausführen Java Basics - Anfänger-Themen 7
M Klassen Main Methode in einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 13
D String aus Main in Klasse übergeben Java Basics - Anfänger-Themen 4
R window-Klasse, main-loop und unausschaltbares anti-aliasing Java Basics - Anfänger-Themen 0
B Klassen Eigene "non static" Klasse in Main verwenden! Java Basics - Anfänger-Themen 12
V wie kann ich eine laufende Klasse zum "stopen" bringen und zur main zurückkehren? Java Basics - Anfänger-Themen 11
V Arrays aus eigener Klasse erstellt, zuweisung aber spuckt Fehler in verbindung mit main Methode aus. Java Basics - Anfänger-Themen 3
S Klassen Array: Übergabe von Klasse zur Main Java Basics - Anfänger-Themen 8
B Klassen über Main Klasse in einer anderen Klasse ein Objekt erstellen Java Basics - Anfänger-Themen 5
T Klasse in Main Methode Java Basics - Anfänger-Themen 3
J Zugriff von main-Klasse auf externe Klassen Java Basics - Anfänger-Themen 51
L main-Klasse kann nicht gefunden werden Java Basics - Anfänger-Themen 5
B Vererbung Zugriff auf in der main erzeugten Distanz aus dritter Klasse Java Basics - Anfänger-Themen 5
F Instanziierung der Main - Klasse Java Basics - Anfänger-Themen 2
S Main-Methode aus anderer Klasse heraus starten Java Basics - Anfänger-Themen 8
L Main Klasse Java Basics - Anfänger-Themen 3
B Mehrere Klassen in der Main Klasse? Java Basics - Anfänger-Themen 4
B Klasse von main aus starten Java Basics - Anfänger-Themen 16
S OOP Wie muss meine Klasse zu dieser main aussehen? Java Basics - Anfänger-Themen 5
H Arraygröße einer Klasse von der Main aus vorgeben Java Basics - Anfänger-Themen 3
G Netbeans: Klasse wird bei Run der Main Klasse nicht gefunden Java Basics - Anfänger-Themen 2
A Var von Main Klasse von einer zweiten Klasse nutzen? Java Basics - Anfänger-Themen 10
B Wie aus instanzierter Klasse eine Methode der Main-Klasse Java Basics - Anfänger-Themen 9
Y Main Klasse in Konsole ausführen klappt nicht Java Basics - Anfänger-Themen 7
M Verzeichnis der main Klasse herausfinden Java Basics - Anfänger-Themen 7
L Netbeans GUI-Builder Kontakt zur Main Klasse Java Basics - Anfänger-Themen 3
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
N Throw an Main Methode übergeben Java Basics - Anfänger-Themen 7
J Die statische Main-Methode ändert Instanzvariable? Java Basics - Anfänger-Themen 10
I Jetty starten von Programm (Main) Java Basics - Anfänger-Themen 27
Denix The public type Main must be defined in its own fileJava(16777541) Java Basics - Anfänger-Themen 13
G jButton führt Main Methode nicht richtig aus Java Basics - Anfänger-Themen 3
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
C60 Methoden Main-Methode erkennt meine Arrays nicht. Java Basics - Anfänger-Themen 7
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
S Array über ein Ausgabemethode in main ausgeben Java Basics - Anfänger-Themen 31
C Kein Zugriff auf Klassenmethoden in Main Methode Java Basics - Anfänger-Themen 23
N Wozu nutzt man in der Main Methode das args Array? Java Basics - Anfänger-Themen 10
NaZuRe Geld(Wert) von der public static void main in die public static void Blackjack Java Basics - Anfänger-Themen 2
H Warum kann man keine Parameter in die main-Methode packen? Java Basics - Anfänger-Themen 4
J In main() Datei geöffnet, von anderer Funktion beschreiben Java Basics - Anfänger-Themen 3
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
KogoroMori21 Methode in der main ausgeben Java Basics - Anfänger-Themen 2
s_1895 zu viele Zeilen in der Main Methode Java Basics - Anfänger-Themen 4
C Methodenrückgabe wird in der main nicht berücksichtigt Java Basics - Anfänger-Themen 2
B Wie kann ich etwas vor der Main-Methode ausführen? Java Basics - Anfänger-Themen 21
K Übergabe des Wertes einer Variable aus main() in eine Klassenmethode Java Basics - Anfänger-Themen 8
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
T Main startet nicht bei vorgegebenen Code Java Basics - Anfänger-Themen 41
G main Methode Java Basics - Anfänger-Themen 5
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
1 main-Methode erweitern, Nachfrage nach wiedeholung Java Basics - Anfänger-Themen 2
J main methode Java Basics - Anfänger-Themen 1
B No Main Classes Found Java Basics - Anfänger-Themen 7
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
E Was kommt in ein Objekt und was in die Main Methode? Java Basics - Anfänger-Themen 8
D java main methode kann nicht kompiliert werden (Erstellen eines Objekts) Java Basics - Anfänger-Themen 6
M String außerhalb der main-Methode Java Basics - Anfänger-Themen 4
scratchy1 ArrayOutOfBoundException in main-Methode Java Basics - Anfänger-Themen 17
B File öffnen in src/main/webapp Java Basics - Anfänger-Themen 4
P Parameterübergabe, von Methode zu Methode zu main Java Basics - Anfänger-Themen 4
J Kapselung Array in Set ändern und in Main ausgeben lassen Java Basics - Anfänger-Themen 4
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
V Collections Objekte einer ArrayList in der main() ausgeben Java Basics - Anfänger-Themen 9
D Compiler-Fehler Aufrufen einer Methode von Main Java Basics - Anfänger-Themen 4
G Was als main Method Java Basics - Anfänger-Themen 6
M Methode mit Array als Parameter an Main übergeben Java Basics - Anfänger-Themen 1
W Exception in Main abfangen oder in der Methode? Java Basics - Anfänger-Themen 10
J Timer bauen, Main Methode immer wieder neu starten Java Basics - Anfänger-Themen 13
B Parameterübergabe in main Java Basics - Anfänger-Themen 1
I java.lang.ArrayIndexOutOfBoundsException at lösung.main Java Basics - Anfänger-Themen 3
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
J Frage zu: public static void main (String[]args) Java Basics - Anfänger-Themen 1
J Parameter in main verwenden Java Basics - Anfänger-Themen 3
M Methodenaufruf in der Main Datei funzt nicht Java Basics - Anfänger-Themen 13
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
G Instanzvariable in main-Methode verboten? Java Basics - Anfänger-Themen 3
M Objekt starten von der main-Methode Java Basics - Anfänger-Themen 1
S Fehler: Editor does not contain a main type Java Basics - Anfänger-Themen 3
G Programm wird nicht ausgeführt: Editor does not contain a main type Java Basics - Anfänger-Themen 10
A Methode aufrufen in main-Methode Java Basics - Anfänger-Themen 5
B Linux - Error: Could not find or load main class application.Main Java Basics - Anfänger-Themen 28
C Erste Schritte (Netbeans) no main classes found Java Basics - Anfänger-Themen 5
P Methoden private int[] in main Java Basics - Anfänger-Themen 16
W JLabel in Main aus Thread verändern. Java Basics - Anfänger-Themen 4
R Methoden Nicht statische Methode aus Main aufrufen Java Basics - Anfänger-Themen 2
P could not find main class obwohl da Java Basics - Anfänger-Themen 17
J Methode in main-Methode aufrufen Java Basics - Anfänger-Themen 5
B OOP Wie benutze ich die Main Funktion richtig? Java Basics - Anfänger-Themen 10
TheMenox Methoden Auslagerung von Code aus der "main" Methode sinnvoll? Java Basics - Anfänger-Themen 70
quecksilver if-Abfrage in main ausführen Java Basics - Anfänger-Themen 4
J Exception in thread "main" Java Basics - Anfänger-Themen 1
S Methode auf Main zugreifen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben