ciao a tutti
sto scrivendo un programma per collegarmi tramite porta seriale a diversi ruoter tra cui Cisco.
La connessione funziona perfettamente su router Aethra mentre con i Cisco la comunicazione risulta essere a senso unico, ossia trasmetto ma non ricevo nulla e non riesco a capirne il motivo.
Per la cronaca uso la libreria che ho trovato su questo sito www.cloudhopper.com/opensource/rxtx/
ora il codice che uso per la comunicazione
per l'invio
codice:
public boolean trasmetti(char c) {
try {
FileOutputStream fos = new FileOutputStream(serialPort.getName());
BufferedOutputStream buffer = new BufferedOutputStream(fos);
//buffer.write((""+c).getBytes());
buffer.write((byte) c);
fos.flush();
buffer.flush();
fos.flush();
fos.close();
return true;
} catch (Exception ex) {
return false;
}
}
per la ricezione
codice:
serialPort.addEventListener(new SerialPortEventListener() {
public void serialEvent(SerialPortEvent spe) {
if(spe.getEventType() == SerialPortEvent.DATA_AVAILABLE){
try {
InputStreamReader isr = new InputStreamReader(serialPort.getInputStream());
BufferedReader buffer = new BufferedReader(isr);
while (isConnected) {
char[] cbuf = new char[1];
buffer.read(cbuf);
if(ascoltatoreConnessione != null && (byte)cbuf[0] != 0x0)
ascoltatoreConnessione.eseguiConCarattere(cbuf[0]);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
});
aiutami please!!
ps: esiste un modo per trasmette le freccie direzionali??