Giusto.
ecco qui le parti sospette
Grazie in anticipo.
QUESTO E' IL THREAD
codice:
public void run() {
boolean firstTime = true;
boolean lastIdle = true;
String textToDisplay = null;
textToDisplay = "* ciao *" +
"* ciao 2 *" +
"*ciao 3 *" +
"* ciao 4 *" ;
while (true) {
try {
if (serialCommRS232.verificaDSR() == true) {
// se DTR / DSR off comunico che sono in IDLE
if ((firstTime) || (lastIdle == true)) {
firstTime = false;
lastIdle = false;
notifyIdleSerialDisplayListeners(false);
notifyTextSerialDisplayListeners(textToDisplay);
}
/**/ System.out.println("[Thread su seriale]");
textToDisplay = caricaTesto();
if (textToDisplay.length() >0){
notifyTextSerialDisplayListeners(textToDisplay);
}
} else { // DSR OFF
if ((firstTime) || (lastIdle == false)) {
firstTime = false;
lastIdle = true;
notifyIdleSerialDisplayListeners(true);
}
}
} catch (SerialConnectionException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
QUESTA E' LA FUNZ.
codice:
private String caricaTesto(){
String stringView = "";
String miaString = null;
short retCode = 0;
int i = 0;
while (retCode >= 0) {
retCode = serialCommRS232.botRx(0,0,0); // retries, rxTimeout, wt
if (retCode < 0)
break;
/* Ricevuto caratteri */
if (serialCommRS232.strBufferRicevuto.length()>0) {
miaString = serialCommRS232.strBufferRicevuto.toString();
for (i=0; i < miaString.length(); i++){
switch (miaString.charAt(i)){
case 0x02: //STX
case 0x03: //ETX
case 0x04: //EOT
case 0x40: //@
case 0x7F: //
break;
case 0x1B: //ESC seguito da A@ o B@...etc, devo scartare la lettera A,B,C,@
i=i+1;
break;
default:
stringView = stringView+ Character.toString(miaString.charAt(i));
break;
}
}
}
System.out.println("retCode=["+retCode+"]");
} // endwhile
return stringView;
}