1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| @Override
public void run() {
while (run) {
try {
char caractere = '0';
//StringBuilder sb = new StringBuilder();
//String caracs = "";
Log.d("dbg","1");
while ((caractere = (char) bufferedReader.read()) != -1) {
Log.d("dbg","2");
if (caractere == '\n' || caractere == '\r')
{
Log.d("Recu",messagePart);
continue;
}
if (caractere != ']') {
message += caractere;
messagePart += caractere;
}
if (caractere == '>') {
messagePart = messagePart.trim();
if (!messagePart.contains("<ER>") && !messagePart.contains("<commande hydraulique. ('CTRL+C' ou 'C' pour arreter, 'S' pour status)>")) {
//Log.d("socket sent", "Partie de message reçue : " + messagePart);
Message m = new Message();
Bundle b = new Bundle();
b.putInt("type", 0);
b.putString("recu", messagePart);
if(!commandes.isEmpty())
{
b.putString("commande", commandes.getFirst());
}
else
{
b.putString("commande","");
}
m.setData(b);
handlerThreadUI.sendMessage(m);
}
messagePart = "";
}
if (caractere == ']')
{
message = message.trim();
if (message.equals("<ER>"))
{
if(!commandes.isEmpty())
{
String commande = commandes.getFirst();
_send(commande);
}
} else if(message.contains("<commande hydraulique. ('CTRL+C' ou 'C' pour arreter, 'S' pour status)>"))
{
Log.d("socket","j'ai recu <commande hydraulique...> je l'ignore");
} else {
//Log.d("socket sent", "Message reçu : " + message);
Message m = new Message();
Bundle b = new Bundle();
b.putInt("type", 1);
if(!commandes.isEmpty())
{
b.putString("commande", commandes.getFirst());
}
else
{
b.putString("commande","");
}
b.putString("recu", message);
m.setData(b);
handlerThreadUI.sendMessage(m);
}
message = "";
}
}
Thread.sleep(10);
} catch (InterruptedException e) {
Log.e("InterruptedException", e.toString());
} catch (IndexOutOfBoundsException e) {
Log.e("IndexOutOfBoundsException",e.toString());
} catch (IOException e) {
Log.e("MyIOException", e.toString());
try {
socket.connect();
} catch (IOException e1) {
// TODO Auto-generated catch block
Log.e("IOException",e1.toString());
}
}
}
} |
Partager