@Override public void run() { int i, len; double ondo1; // [FTDriver] Create Read Buffer byte[] rbuf = new byte[128]; // 1byte <--slow-- [Transfer Speed] --fast--> 4096 byte while (mLooper != null) { // [FTDriver] Read from USB Serial len = mSerial.read(rbuf); String str1 = new String(rbuf); // String new_str1 = str1.substring(43, 45); if (len > 0) { if (SHOW_LOGCAT) { Log.i(TAG, "Read Length : " + len + ",buf: " + str1); } // Message msg = new Message(); //非推奨 Message msg = Message.obtain(); // 推奨 // Message msg = mHandler.obtainMessage(); //推奨 msg.obj = str1; // ハンドラへのメッセージ送信 mHandler.sendMessage(msg); // //@todo mText1 = (String) mY.getText(); // try { //エラーが出そうな処理 // //String x; // //int a; // //x = new_str1.toLowerCase(Locale.ENGLISH); // //a = Integer.parseInt(x, 16); // for (i = 0; i < len; ++i) { // if (SHOW_LOGCAT) { // Log.i(TAG, "Read Data[" + i + "] : " + rbuf[i]); // } // // if (rbuf[i] == 0x0A) { // if (!(new_str1.equals("FF"))) { // ondo1 = ((Integer.parseInt(new_str1, 16)) * 16); // ondo1 = (ondo1 / 10) - 60; // if (ondo1 > 0) { // //@todo mText1 = "" + String.format("%.1f", ondo1) // + "\n"; // } // } // // } // // } // } catch (NumberFormatException nfe) { // // } // mHandler.post(new Runnable() { // public void run() { //// TextView dateText = (TextView) findViewById(R.id.date_id); //// Time time = new Time("Asia/Tokyo"); //// time.setToNow(); //// String date = time.year + "年" + (time.month + 1) + "月" + // time.monthDay + "日 " //// + time.hour + "時" + time.minute + "分" + time.second // + "秒"; //// dateText.setText(date); // //mX.setText(String.valueOf(time.second)); // //@todo mY.setText(mText1); // } // }); } try { Thread.sleep(50); } catch (InterruptedException e) { e.printStackTrace(); } if (mStop) { mRunningMainLoop = false; return; } } };
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ezydine); // [FTDriver] setPermissionIntent() before begin() mSerial = new FTDriver((UsbManager) getSystemService(Context.USB_SERVICE)); // [FTDriver] setPermissionIntent() before begin() PendingIntent permissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0); mSerial.setPermissionIntent(permissionIntent); if (mSerial.begin(SERIAL_BAUDRATE)) { // mainloop(); } // リソースに準備した画像ファイルからBitmapを作成しておく image_amber = BitmapFactory.decodeResource(getResources(), R.drawable.amber_32); image_black = BitmapFactory.decodeResource(getResources(), R.drawable.black_32); image_green = BitmapFactory.decodeResource(getResources(), R.drawable.green_32); image_red = BitmapFactory.decodeResource(getResources(), R.drawable.red_32); image_white = BitmapFactory.decodeResource(getResources(), R.drawable.white_32); image_blue = BitmapFactory.decodeResource(getResources(), R.drawable.blue_32); image_gray = BitmapFactory.decodeResource(getResources(), R.drawable.gray_32); // データの作成 List<CustomData> objects = new ArrayList<CustomData>(); item1 = new CustomData(); item2 = new CustomData(); item3 = new CustomData(); item4 = new CustomData(); item5 = new CustomData(); item6 = new CustomData(); item7 = new CustomData(); item8 = new CustomData(); item9 = new CustomData(); item10 = new CustomData(); initView(); objects.add(item1); objects.add(item2); objects.add(item3); objects.add(item4); objects.add(item5); objects.add(item6); objects.add(item7); objects.add(item8); objects.add(item9); objects.add(item10); item1.setImagaData(image_green); item9.setImagaData(image_blue); item1.setTextColor(true); item10.setImagaData(image_red); CustomAdapter customAdapater = new CustomAdapter(this, 0, objects); ListView listView = (ListView) findViewById(R.id.list); listView.setAdapter(customAdapater); // リスト項目がクリックされた時の処理 listView.setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ListView listView = (ListView) parent; Log.d(TAG, "onItemClick: " + position); // String item = (String) listView.getItemAtPosition(position); // Toast.makeText(getApplicationContext(), item + " clicked", // Toast.LENGTH_LONG).show(); } }); listView.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() { // リスト項目が選択された時の処理 @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { ListView listView = (ListView) parent; Log.d(TAG, "onItemSelected: " + position); // String item = (String) listView.getItemAtPosition(position); // Toast.makeText(getApplicationContext(), item + " selected", // Toast.LENGTH_LONG).show(); } // リスト項目がなにも選択されていない時の処理 @Override public void onNothingSelected(AdapterView<?> parent) { Log.d(TAG, "onNothingSelected"); // Toast.makeText(getApplicationContext(), "no item selected", // Toast.LENGTH_LONG).show(); } }); // リスト項目が長押しされた時の処理 listView.setOnItemLongClickListener( new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { ListView listView = (ListView) parent; Log.d(TAG, "onItemLongClick: " + position); // String item = (String) listView.getItemAtPosition(position); // Toast.makeText(getApplicationContext(), item + " long clicked", // Toast.LENGTH_LONG).show(); return false; } }); mHandler = new Handler() { // メッセージ受信 public void handleMessage(Message message) { // メッセージの表示 textView = (TextView) findViewById(R.id.textView); textView.setText((String) message.obj); Log.d(TAG, "mag: " + (String) message.obj); // メッセージの種類に応じてswitch文で制御すれば // イベント制御に利用できます }; }; }