Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
foobar hat gesagt.:
japetos hat gesagt.:Guten morgen.
Ich habe einen USB-Infrarot Dongle und möchte etwas von einem Pocket-PC/Handy an ein Programm mit einem Textfeld schicken (ganz simpel).
Wie muß ich vorgehen? Wie ist das mit dem USB (COM,seriell) überhaupt so mit Java?
USB ist doch keine Schnittstelle.
import java.io.*;
import javax.comm.*;
import java.awt.*;
import java.awt.event.*;
public class GetDataFromComm extends Frame{
/**
*
*/
private static final long serialVersionUID = 1L;
static CommPortIdentifier portID;
InputStream ins;
OutputStream out;
static SerialPort serss;
TextArea ausgabe;
TextField tfe;
Button bt;
public static void main(String[] args){
try{portID = CommPortIdentifier.getPortIdentifier("COM1");
serss = (SerialPort) portID.open("mein_programm",2000);
GetDataFromComm f = new GetDataFromComm();
f.setSize(330,250);
f.show();
}
catch(Exception exc){System.out.println("Fehler :" + exc);}
}
public GetDataFromComm() {
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
System.exit(0);
}
});
setLayout(new FlowLayout());
add(tfe=new TextField(40));
tfe.addActionListener(new sendeListener());
add(bt=new Button("Senden"));
bt.addActionListener(new sendeListener());
add(ausgabe=new TextArea("Port COM1 geöffnet\n",7,40));
try {
ins = serss.getInputStream();
out = serss.getOutputStream();
serss.addEventListener(new commListener());
}
catch (Exception e) { System.out.println("Fehler: " + e);}
// ein Eventlistener für zu empfangende Daten erzeugt und aktiviert.
// Schließlich wird die Schnittstelle mit den gewünschten Parametern
// für die Übertragungsrate e.t.c durch den Methodenaufruf
serss.notifyOnDataAvailable(true);
try {serss.setSerialPortParams(2400,
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(tfe.getText());
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);
ausgabe.append(nachricht);
}
catch (IOException e) {System.out.println("Fehler: " + e);}
}
}
}
} // @jve:decl-index=0:visual-constraint="10,10"
japetos hat gesagt.:im Gerätemanager wird der USB-IrDA-Dongle nicht unter Anschlüsse(Seriell/COM) angezeigt, sondern unter Infrarotgeräte.
Aber wie kann ich den Port ermitteln?