fork download
  1. private void beginListenForData(){
  2. final Handler handler = new Handler();
  3. final byte delimiter = 10 ;
  4.  
  5. stopWorker = false ;
  6. readBufferPosition = 0 ;
  7. readBuffer = new byte[1024];
  8. workerThread = new Thread(new Runnable(){
  9. @Override
  10.  
  11. public void run(){
  12. while(!Thread.currentThread().isInterrupted()&&!stopWorker) {
  13. try {
  14. int bytesAvailable = mmInputStream.available();
  15. if (bytesAvailable > 0) {
  16. byte[] packetBytes = new byte[bytesAvailable];
  17. mmInputStream.read(packetBytes);
  18. for (int i = 0; i < bytesAvailable; i++) {
  19. byte b = packetBytes[i];
  20. readBufferPosition++;
  21. if (b == delimiter) {
  22. byte[] encodedBytes = new byte[readBufferPosition];
  23. System.arraycopy(readBuffer,i-readBufferPosition,0, encodedBytes, 0, encodedBytes.length);
  24. final String data = new String(encodedBytes);
  25. PMvalue = 0;
  26. for (int j = 0; j < encodedBytes.length - 1; j++) {
  27. PMvalue = PMvalue * 10 + encodedBytes[j] - 48;
  28. }
  29.  
  30. String tmp1 = String.valueOf(PMvalue);
  31. Log.d("value", tmp1);
  32. readBufferPosition = 0;
  33. handler.post(new Runnable() {
  34. @Override
  35. public void run() {
  36. long date = System.currentTimeMillis();
  37. TextView tvDisplayDate = (TextView) findViewById(R.id.DATE);
  38. SimpleDateFormat sdf = new SimpleDateFormat("MMM MM dd, yyyy h:mm a");
  39. String dateString = sdf.format(date);
  40. tvDisplayDate.setText("Update Time: " + dateString);
  41. if (PMvalue < 36) {
  42. if (PMvalue > 23)
  43. a = BitmapFactory.decodeResource(res, R.drawable.a03);
  44. else if (PMvalue > 11)
  45. a = BitmapFactory.decodeResource(res, R.drawable.a02);
  46. else if (PMvalue > 0)
  47. a = BitmapFactory.decodeResource(res, R.drawable.a01);
  48. image.setImageBitmap(a);
  49. DangerText.setText("良好");
  50. show_data.setText(data);
  51. } else if (PMvalue < 54) {
  52. if (PMvalue > 47)
  53. a = BitmapFactory.decodeResource(res, R.drawable.a04);
  54. else if (PMvalue > 41)
  55. a = BitmapFactory.decodeResource(res, R.drawable.a05);
  56. else if (PMvalue > 35)
  57. a = BitmapFactory.decodeResource(res, R.drawable.a06);
  58. image.setImageBitmap(a);
  59. DangerText.setText("警戒");
  60. show_data.setText(data);
  61. } else if (PMvalue < 71) {
  62. if (PMvalue > 64)
  63. a = BitmapFactory.decodeResource(res, R.drawable.a09);
  64. else if (PMvalue > 58)
  65. a = BitmapFactory.decodeResource(res, R.drawable.a08);
  66. else if (PMvalue > 53)
  67. a = BitmapFactory.decodeResource(res, R.drawable.a07);
  68. image.setImageBitmap(a);
  69. DangerText.setText("過量");
  70. show_data.setText(data);
  71. } else if (PMvalue > 70) {
  72. a = BitmapFactory.decodeResource(res, R.drawable.a10);
  73. image.setImageBitmap(a);
  74. DangerText.setText("危險");
  75. show_data.setText(data);
  76. }
  77. } //沒
  78. });
  79. //有
  80. } else
  81. {
  82. readBuffer[readBufferPosition++] = b;
  83. }
  84. }
  85. }
  86. } catch (IOException ex) {
  87. stopWorker = true;
  88. }
  89. }
  90. });
  91. workerThread.start();
  92.  
  93. //投影片裡面有}
  94. }
  95.  
Success #stdin #stdout 0.06s 27484KB
stdin
Standard input is empty
stdout
Standard output is empty