private void beginListenForData(){
final Handler handler = new Handler();
final byte delimiter = 10 ;
stopWorker = false ;
readBufferPosition = 0 ;
readBuffer = new byte[1024];
@Override
public void run(){
while(!Thread.
currentThread().
isInterrupted()&&!stopWorker
) { try {
int bytesAvailable = mmInputStream.available();
if (bytesAvailable > 0) {
byte[] packetBytes = new byte[bytesAvailable];
mmInputStream.read(packetBytes);
for (int i = 0; i < bytesAvailable; i++) {
byte b = packetBytes[i];
readBufferPosition++;
if (b == delimiter) {
byte[] encodedBytes = new byte[readBufferPosition];
System.
arraycopy(readBuffer,i
-readBufferPosition,
0, encodedBytes,
0, encodedBytes.
length); PMvalue = 0;
for (int j = 0; j < encodedBytes.length - 1; j++) {
PMvalue = PMvalue * 10 + encodedBytes[j] - 48;
}
Log.d("value", tmp1);
readBufferPosition = 0;
@Override
public void run() {
long date
= System.
currentTimeMillis(); TextView tvDisplayDate = (TextView) findViewById(R.id.DATE);
String dateString
= sdf.
format(date
); tvDisplayDate.setText("Update Time: " + dateString);
if (PMvalue < 36) {
if (PMvalue > 23)
a = BitmapFactory.decodeResource(res, R.drawable.a03);
else if (PMvalue > 11)
a = BitmapFactory.decodeResource(res, R.drawable.a02);
else if (PMvalue > 0)
a = BitmapFactory.decodeResource(res, R.drawable.a01);
image.setImageBitmap(a);
DangerText.setText("良好");
show_data.setText(data);
} else if (PMvalue < 54) {
if (PMvalue > 47)
a = BitmapFactory.decodeResource(res, R.drawable.a04);
else if (PMvalue > 41)
a = BitmapFactory.decodeResource(res, R.drawable.a05);
else if (PMvalue > 35)
a = BitmapFactory.decodeResource(res, R.drawable.a06);
image.setImageBitmap(a);
DangerText.setText("警戒");
show_data.setText(data);
} else if (PMvalue < 71) {
if (PMvalue > 64)
a = BitmapFactory.decodeResource(res, R.drawable.a09);
else if (PMvalue > 58)
a = BitmapFactory.decodeResource(res, R.drawable.a08);
else if (PMvalue > 53)
a = BitmapFactory.decodeResource(res, R.drawable.a07);
image.setImageBitmap(a);
DangerText.setText("過量");
show_data.setText(data);
} else if (PMvalue > 70) {
a = BitmapFactory.decodeResource(res, R.drawable.a10);
image.setImageBitmap(a);
DangerText.setText("危險");
show_data.setText(data);
}
} //沒
});
//有
} else
{
readBuffer[readBufferPosition++] = b;
}
}
}
stopWorker = true;
}
}
});
workerThread.start();
//投影片裡面有}
}
ICAgcHJpdmF0ZSB2b2lkIGJlZ2luTGlzdGVuRm9yRGF0YSgpewogICAgICAgIGZpbmFsIEhhbmRsZXIgaGFuZGxlciA9IG5ldyBIYW5kbGVyKCk7CiAgICAgICAgZmluYWwgYnl0ZSBkZWxpbWl0ZXIgPSAxMCA7CgogICAgICAgIHN0b3BXb3JrZXIgPSBmYWxzZSA7CiAgICAgICAgcmVhZEJ1ZmZlclBvc2l0aW9uID0gMCA7CiAgICAgICAgcmVhZEJ1ZmZlciA9IG5ldyBieXRlWzEwMjRdOwogICAgICAgIHdvcmtlclRocmVhZCA9IG5ldyBUaHJlYWQobmV3IFJ1bm5hYmxlKCl7CiAgICAgICAgICAgIEBPdmVycmlkZQoKICAgICAgICAgICAgcHVibGljIHZvaWQgcnVuKCl7CiAgICAgICAgICAgIHdoaWxlKCFUaHJlYWQuY3VycmVudFRocmVhZCgpLmlzSW50ZXJydXB0ZWQoKSYmIXN0b3BXb3JrZXIpIHsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgaW50IGJ5dGVzQXZhaWxhYmxlID0gbW1JbnB1dFN0cmVhbS5hdmFpbGFibGUoKTsKICAgICAgICAgICAgICAgICAgICBpZiAoYnl0ZXNBdmFpbGFibGUgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVbXSBwYWNrZXRCeXRlcyA9IG5ldyBieXRlW2J5dGVzQXZhaWxhYmxlXTsKICAgICAgICAgICAgICAgICAgICAgICAgbW1JbnB1dFN0cmVhbS5yZWFkKHBhY2tldEJ5dGVzKTsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBieXRlc0F2YWlsYWJsZTsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlIGIgPSBwYWNrZXRCeXRlc1tpXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRCdWZmZXJQb3NpdGlvbisrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGIgPT0gZGVsaW1pdGVyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZVtdIGVuY29kZWRCeXRlcyA9IG5ldyBieXRlW3JlYWRCdWZmZXJQb3NpdGlvbl07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLmFycmF5Y29weShyZWFkQnVmZmVyLGktcmVhZEJ1ZmZlclBvc2l0aW9uLDAsIGVuY29kZWRCeXRlcywgMCwgZW5jb2RlZEJ5dGVzLmxlbmd0aCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIGRhdGEgPSBuZXcgU3RyaW5nKGVuY29kZWRCeXRlcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE12YWx1ZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBlbmNvZGVkQnl0ZXMubGVuZ3RoIC0gMTsgaisrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBNdmFsdWUgPSBQTXZhbHVlICogMTAgKyBlbmNvZGVkQnl0ZXNbal0gLSA0ODsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyB0bXAxID0gU3RyaW5nLnZhbHVlT2YoUE12YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9nLmQoInZhbHVlIiwgdG1wMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZEJ1ZmZlclBvc2l0aW9uID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyLnBvc3QobmV3IFJ1bm5hYmxlKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAT3ZlcnJpZGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgcnVuKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkYXRlID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0VmlldyB0dkRpc3BsYXlEYXRlID0gKFRleHRWaWV3KSBmaW5kVmlld0J5SWQoUi5pZC5EQVRFKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbXBsZURhdGVGb3JtYXQgc2RmID0gbmV3IFNpbXBsZURhdGVGb3JtYXQoIk1NTSBNTSBkZCwgeXl5eSBoOm1tIGEiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkYXRlU3RyaW5nID0gc2RmLmZvcm1hdChkYXRlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR2RGlzcGxheURhdGUuc2V0VGV4dCgiVXBkYXRlIFRpbWU6ICIgKyBkYXRlU3RyaW5nKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChQTXZhbHVlIDwgMzYpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoUE12YWx1ZSA+IDIzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gQml0bWFwRmFjdG9yeS5kZWNvZGVSZXNvdXJjZShyZXMsIFIuZHJhd2FibGUuYTAzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChQTXZhbHVlID4gMTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBCaXRtYXBGYWN0b3J5LmRlY29kZVJlc291cmNlKHJlcywgUi5kcmF3YWJsZS5hMDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKFBNdmFsdWUgPiAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gQml0bWFwRmFjdG9yeS5kZWNvZGVSZXNvdXJjZShyZXMsIFIuZHJhd2FibGUuYTAxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZS5zZXRJbWFnZUJpdG1hcChhKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYW5nZXJUZXh0LnNldFRleHQoIuiJr+WlvSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dfZGF0YS5zZXRUZXh0KGRhdGEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChQTXZhbHVlIDwgNTQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoUE12YWx1ZSA+IDQ3KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gQml0bWFwRmFjdG9yeS5kZWNvZGVSZXNvdXJjZShyZXMsIFIuZHJhd2FibGUuYTA0KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChQTXZhbHVlID4gNDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBCaXRtYXBGYWN0b3J5LmRlY29kZVJlc291cmNlKHJlcywgUi5kcmF3YWJsZS5hMDUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKFBNdmFsdWUgPiAzNSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IEJpdG1hcEZhY3RvcnkuZGVjb2RlUmVzb3VyY2UocmVzLCBSLmRyYXdhYmxlLmEwNik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2Uuc2V0SW1hZ2VCaXRtYXAoYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGFuZ2VyVGV4dC5zZXRUZXh0KCLorabmiJIiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X2RhdGEuc2V0VGV4dChkYXRhKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoUE12YWx1ZSA8IDcxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFBNdmFsdWUgPiA2NCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IEJpdG1hcEZhY3RvcnkuZGVjb2RlUmVzb3VyY2UocmVzLCBSLmRyYXdhYmxlLmEwOSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoUE12YWx1ZSA+IDU4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gQml0bWFwRmFjdG9yeS5kZWNvZGVSZXNvdXJjZShyZXMsIFIuZHJhd2FibGUuYTA4KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChQTXZhbHVlID4gNTMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBCaXRtYXBGYWN0b3J5LmRlY29kZVJlc291cmNlKHJlcywgUi5kcmF3YWJsZS5hMDcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlLnNldEltYWdlQml0bWFwKGEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhbmdlclRleHQuc2V0VGV4dCgi6YGO6YePIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd19kYXRhLnNldFRleHQoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFBNdmFsdWUgPiA3MCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBCaXRtYXBGYWN0b3J5LmRlY29kZVJlc291cmNlKHJlcywgUi5kcmF3YWJsZS5hMTApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlLnNldEltYWdlQml0bWFwKGEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhbmdlclRleHQuc2V0VGV4dCgi5Y2x6ZqqIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd19kYXRhLnNldFRleHQoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAvL+aykgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+aciQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRCdWZmZXJbcmVhZEJ1ZmZlclBvc2l0aW9uKytdID0gYjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZXgpIHsKICAgICAgICAgICAgICAgICAgICBzdG9wV29ya2VyID0gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB3b3JrZXJUaHJlYWQuc3RhcnQoKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+aKleW9seeJh+ijoemdouaciX0KICAgICAgICB9Cg==