nach mehreren stunden herumprobieren muss ich jetzt aufgeben
ich hab mein handy per kabel am serial port angeschlossen, kann jedoch über java nichts rausschicken bzw empfangen
zur erklärung des codes:
zuerst wird der entsprechende port geöffnet, dann werden die enstprechenden einstellungen gesetzt
alle messages, die auftreten können, werden abgefangen, tatsächlich treten im beispiel nur zweimal die "output buffer empty" msgs auf.
eigentlich sollte die message AT "OK" als rückmeldung liefern, tatsächlich kommt aber nichts zurück, av steht immer auf 0.
mit einem normalen terminal funktioniert das ganze, sprich es muss irgendwo an der verbindung zwischen java und dem port liegen.
die einstellungen (19200 baud usw) sollten auch passen, das hyperterminal funkt mit diesen einstellungen, sind auch die, die von siemens empfohlen werden.
Code:
Enumeration en = CommPortIdentifier.getPortIdentifiers();
while (en.hasMoreElements())
{
CommPortIdentifier current = (CommPortIdentifier)en.nextElement();
if (current.getPortType() == CommPortIdentifier.PORT_SERIAL && current.getName().equals ("COM1"))
{
m_port = (SerialPort)current.open("PortConnector", 1000);
m_port.setSerialPortParams(19200, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
m_port.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
System.out.println ("serial prot connected");
}
}
m_port.addEventListener(this);
m_port.notifyOnDataAvailable(true);
m_port.notifyOnOutputEmpty(true);
m_port.notifyOnBreakInterrupt(true);
m_port.notifyOnCarrierDetect(true);
m_port.notifyOnCTS(true);
m_port.notifyOnDSR(true);
m_port.notifyOnFramingError(true);
m_port.notifyOnOverrunError(true);
m_port.notifyOnParityError(true);
m_port.notifyOnRingIndicator(true);
String msg = "AT";
OutputStream out = m_port.getOutputStream();
InputStream in =m_port.getInputStream();
try{
out.write(msg.getBytes());
out.write(13); // <CR>
} catch (IOException e)
{
System.out.println("writing failed");
}
out.flush();
out.close();
System.out.println("writing finished");
int av = in.available();
System.out.println (av);
der output:
serial prot connected
output empty // wird vom event listener ausgegeben
output empty
ready
0 // da sollte eigentlich 2 stehen, weil ja OK zurückkommt
ich hoff irgendwer kann mir weiterhelfen, weil ich sitz schon den ganzen nachmittag und programmier ins blinde, weil ich keine rückmeldungen krieg und keine ahnung hab ob überhaupt beim handy was ankommt.