Hallo zusammen,
also ich kann zwar mit dem Code der hier steht den Com-Port öffnen, aber bekomme es nicht hin, dass ich dieses Prog so umschreibe, dass ich es aus einem anderen heraus starte und die Daten übergebe...
Hauptklasse
die klasse zum öffenen der schnittstelle
was muss ich tun, damit ein wert übergeben wird?
hatte es schon versucht
mit einzubinden, aber klappt auch nich so recht...
jemand ne idee?
danke im voraus!
also ich kann zwar mit dem Code der hier steht den Com-Port öffnen, aber bekomme es nicht hin, dass ich dieses Prog so umschreibe, dass ich es aus einem anderen heraus starte und die Daten übergebe...
Hauptklasse
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ForeCastServer extends JPanel implements ActionListener
{
TextArea ausgabe = new TextArea("Port COM1 geöffnet\nBeginn Datensatz 1\n");
Icon header = new ImageIcon("xyz.jpg");
JLabel headerLabel = new JLabel ();
public ForeCastServer()
{
headerLabel.setBounds(10,10,171,120);
headerLabel.setIcon(header);
ausgabe.setBounds(50,150,700,400);
setBackground(Color.WHITE);
setLayout(null);
add(headerLabel);
add(ausgabe);
Timer oneSec = new Timer(1000,this);
oneSec.start();
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
}
public void actionPerformed(ActionEvent e)
{
//hier muss die ComMC gestartet werden und n wert ausgelesen werden und als returnwert zurückgelesen werden...
ausgabe.setText("\n");//hier soll nachher das ausgelesene element eingetragen werden
}
public static void main(String arg[])
throws InterruptedException {
JFrame ServerFrame = new JFrame("ForeCastServer");
ServerFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ServerFrame.getContentPane().add(new ForeCastServer());
ServerFrame.setResizable(false);
ServerFrame.setSize(800,600);
ServerFrame.setLocation(100,100);
ServerFrame.setVisible(true);
}
}
die klasse zum öffenen der schnittstelle
Code:
import java.io.*;
import javax.comm.*;
import java.awt.event.*;
public class ComMC
{
static CommPortIdentifier portID;
InputStream ins;
OutputStream out;
static SerialPort serss;
public ComMC() {
try {ins = serss.getInputStream();
out = serss.getOutputStream();
serss.addEventListener(new commListener());
}
catch (Exception e) { System.out.println("Fehler: "+e);}
serss.notifyOnDataAvailable(true);
try {serss.setSerialPortParams(19200,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1 ,
SerialPort.PARITY_NONE);}
catch (UnsupportedCommOperationException e) {}
}
public class sendeListener implements ActionListener
{
public void actionPerformed(ActionEvent e){
PrintWriter aus = new PrintWriter(out);
aus.println("D");
aus.flush();
aus.close();
}
}
public class commListener implements SerialPortEventListener{
public void serialEvent(SerialPortEvent event) {
if(event.getEventType()==SerialPortEvent.DATA_AVAILABLE){
byte[] readBuffer = new byte[20];
try {
while (ins.available() > 0) {int numBytes = ins.read(readBuffer);}
String nachricht = new String(readBuffer);
}
catch (IOException e) {System.out.println("Fehler: "+e);}
}
}
}
}
was muss ich tun, damit ein wert übergeben wird?
hatte es schon versucht
Code:
String getDaten(){
return nachricht;
}
mit einzubinden, aber klappt auch nich so recht...
jemand ne idee?
danke im voraus!