Hallo
Ich bin neu hier und auch neu in der JavaME Programmierung.
Ich habe einen Code geschrieben, welcher mir ausgibt, welcher Port verfügbar ist und anschließend öffne ich diesen Port. Allerdings funktioniert das nur manchmal, d.h. ich kann nur manchmal den Port erfolgreich öffnen und manchmal (leider öfters) wirft er mir eine „IllegalArgumentException“, obwohl ich zwischenzeitlich nichts an dem entsprechenden Code ändere.
Kann sich das jemand erklären?
import java.io.*;
import javax.microedition.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
public class SerialComm extends MIDlet implements CommandListener
{
private CommConnection serialConnection = null;
private final Command exitCommand = new Command("Exit", Command.EXIT, 1);
private final Command openCommand = new Command("Open", Command.OK, 3);
private final Command portCommand = new Command("Port", Command.OK, 1);
private final Command statusCommand = new Command("Status", Command.OK, 2);
private final TextBox textBox = new TextBox("(^_^)", "Hallo!", 25, TextField.ANY);
// private final Command transmitCommand = new Command("Transmit", Command.OK, 4);
public SerialComm()
{
textBox.addCommand(exitCommand);
textBox.addCommand(openCommand);
textBox.addCommand(portCommand);
textBox.addCommand(statusCommand);
textBox.setCommandListener(this);
}
private void close()
{
try
{
serialConnection.close();
serialConnection = null;
}
catch (final IOException ioException)
{
}
textBox.setString("Exit");
}
public void commandAction(final Command command, final Displayable displayable)
{
if (command == exitCommand)
{
destroyApp(false);
notifyDestroyed();
}
if (command == openCommand)
{
open();
}
if (command == portCommand)
{
getPort();
}
if (command == statusCommand)
{
status();
}
}
protected void destroyApp(final boolean unconditional)
{
close();
}
private void getPort()
{
textBox.setString("Port: " + System.getProperty("microedition.commports"));
}
private void open()
{
textBox.setString("open");
//String Parameter = "comm:COM0;baudrate=9600;bitsperchar=8;stopbits=1;parity=none;blocking=off";
try
{
serialConnection= (CommConnection)Connector.open("comm:com0");
textBox.setString("Success");
}
catch (final IOException e)
{
textBox.setString("Failure" + e);
}
}
protected void pauseApp()
{
}
private void status()
{
textBox.setString("status");
textBox.setString("status: opened? " + (serialConnection != null));
}
protected void startApp()
{
Display.getDisplay(this).setCurrent(textBox);
textBox.setString("Hello World!");
}
}
Vielen Dank!
Liebe Grüße,
Sannchen