AjirdoanksrcVeloz.java Untuk Java Source Code

menu xmlns:android=http:schemas.android.comapkresandroid -- this script written by achmad muhajir ajirdoank -- item android:id=+idaboutMe android:title=stringabout_me item android:id=+idsetting android:title=stringsetting item android:id=+idinstruct android:title=stringinstrux item android:id=+idexit android:title=stringextButton menu

2.2 Untuk Java Source Code

2.2.1 AjirdoanksrcVeloz.java

package com.ajirdoank.velozity; script untuk menerima dan mengirimkan byte ke Arduino ditulis oleh achmad muhajir ajirdoank import java.io.IOException; import java.io.FileDescriptor; import java.io.FileInputStream; import java.io.FileOutputStream; import java.text.DecimalFormat; import com.ajirdoank.velozity.Prefs; import android.os.Bundle; import android.os.ParcelFileDescriptor; import android.preference.PreferenceManager; import android.app.Activity; Universitas Sumatera Utara import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Intent; import android.content.IntentFilter; import android.content.Context; import android.content.SharedPreferences; import android.util.Log; import android.widget.Button; import android.widget.TextView; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import com.android.future.usb.UsbAccessory; import com.android.future.usb.UsbManager; public class Veloz extends Activity { private static final String tag = Veloz.class.getSimpleName; private PendingIntent mPermissionIntent; private static final String ACTION_USB_PERMISSION = com.android.example.USB_PERMISSION; private boolean mPermissionRequestPending; private UsbManager mUsbManager; private UsbAccessory mAccessory; private ParcelFileDescriptor mFileDescriptor; private FileInputStream mInputStream; private FileOutputStream mOutputStream; private static final byte perintah = 0x1; private static final byte targetTerima = 0x2; private static final byte comAtur = 0x3; private static final byte tarAtur = 0x4; private static final byte koma = 0x5; public TextView SenSD, time, vizcouz; Universitas Sumatera Utara public double waktux, var1, BDy, BMy, LDy, SDy, TDy, GRy, visc, DB, CF; Override public void onCreateBundle savedInstanceState { super.onCreatesavedInstanceState; mUsbManager = UsbManager.getInstancethis; mPermissionIntent = PendingIntent.getBroadcastthis, 0, new Intent ACTION_USB_PERMISSION, 0; IntentFilter filter = new IntentFilterACTION_USB_PERMISSION; filter.addActionUsbManager.ACTION_USB_ACCESSORY_DETACHED; registerReceivermUsbReceiver, filter; setContentViewR.layout.main; SharedPreferences pengaturan = PreferenceManager.getDefaultSharedPreferencesgetBaseContext; ini bagian untuk setting variable bagian di preference yg uda dibuat dan dishare ke mainActivity String BDx = pengaturan.getStringBD, 0; String BMx = pengaturan.getStringBM, 0; String LDx = pengaturan.getStringLD, 0; String SDx = pengaturan.getStringSD, 0; String TDx = pengaturan.getStringTD, 0; String GRx = pengaturan.getStringGRV, 0; konversi BDy = Double.valueOfBDx; BMy = Double.valueOfBMx; LDy = Double.valueOfLDx; SDy = Double.valueOfSDx; TDy = Double.valueOfTDx; GRy = Double.valueOfGRx; massa jenis bola atau Density of Ball Universitas Sumatera Utara DB = BMy 4.0 3.0 Math.PIMath.powBDy2.0, 3; variable tetap sebelum perhitungan viskositas var1 = 2.0 9.0 GRy Math.powBDy2.0, 2DB - LDySDy; untuk faktor koreksi CF = 1.0 - 2.104 BDyTDy + 2.09 Math.powBDyTDy, 3 - 0.95 Math.powBDyTDy, 5; pengaturan teks yang muncul pada mainActivity SenSD = TextViewfindViewByIdR.id.SensSD; SenSD.setTextString.valueOfSDy; vizcouz = TextViewfindViewByIdR.id.viscText; time = TextViewfindViewByIdR.id.timeVal; Button reset = ButtonfindViewByIdR.id.button1; reset.setOnClickListenernew OnClickListener { Override public void onClickView v { TODO Auto-generated method stub time.setText0; vizcouz.setText0; byte[] buffer = new byte[3]; buffer[0] = comAtur; buffer[1] = tarAtur; buffer[2] = koma; try{ mOutputStream.writebuffer; }catchIOException e{ Log.etag, pesan tidak dikenal, e; } } }; } Universitas Sumatera Utara cek broadcast data streaming yang masuk private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver { Override public void onReceiveContext context, Intent intent { String action = intent.getAction; if ACTION_USB_PERMISSION.equalsaction { synchronized this { sinkron dan baca apa usb tersamsubung atau tidak UsbAccessory accessory = UsbManager.getAccessoryintent; if intent.getBooleanExtraUsbManager.EXTRA_PERMISSION_GRANTED, false { openAccessoryaccessory; } else { Log.dtag, sambungan ditolak + accessory; } mPermissionRequestPending = false; } } else if UsbManager.ACTION_USB_ACCESSORY_DETACHED.equalsaction { jika sambungan Usb dicabut UsbAccessory accessory = UsbManager.getAccessoryintent; if accessory = null accessory.equalsmAccessory { closeAccessory; } } } }; ketika meresume aplikasi Override public void onResume{ super.onResume; if mInputStream = null mOutputStream = null { return; } UsbAccessory[] accessories = mUsbManager.getAccessoryList; Universitas Sumatera Utara UsbAccessory accessory = accessories == null ? null : accessories[0]; if accessory = null { if mUsbManager.hasPermissionaccessory { openAccessoryaccessory; } else { synchronized mUsbReceiver { if mPermissionRequestPending { mUsbManager.requestPermissionaccessory, mPermissionIntent; mPermissionRequestPending = true; } } } } else { Log.dtag, android tak tersambung; } } ketika aplikasi dipause Override public void onPause{ super.onPause; closeAccessory; } ketika data streaming tidak ada Override public void onDestroy{ super.onDestroy; unregisterReceivermUsbReceiver; } untuk menutup aplikasi private void closeAccessory { TODO Auto-generated method stub try{ ifmFileDescriptor = null{ mFileDescriptor.close; } Universitas Sumatera Utara }catchIOException e{ }finally{ mFileDescriptor = null; mAccessory = null; } } inisialisasi ketika USB di insert private void openAccessoryUsbAccessory accessory { TODO Auto-generated method stub mFileDescriptor = mUsbManager.openAccessoryaccessory; if mFileDescriptor = null{ mAccessory = accessory; FileDescriptor fd = mFileDescriptor.getFileDescriptor; mInputStream = new FileInputStreamfd; mOutputStream = new FileOutputStreamfd; Thread thread = new Threadnull, jalankan, tag; thread.start; Log.dtag, handphone tersambung; }else{ Log.dtag, sambungan gagal; } } proses penerimaan data straming via USB Runnable jalankan = new Runnable { Override public void run { TODO Auto-generated method stub int ret = 0; final byte buffer[] = new byte[6]; while ret = 0{ try{ ret = mInputStream.readbuffer; }catchIOException e{ break; } switchbuffer[0]{ Universitas Sumatera Utara case perintah: ifbuffer[1] == targetTerima{ final int waktu = buffer[2] 0xFF 24 +buffer[3] 0xFF 16 + buffer[4] 0xFF 8 + buffer[5] 0xFF; if waktu 0{ runOnUiThreadnew Runnable { Override public void run { perhitungan viskositas time.setTextString.valueOfwaktu; waktux = Double.valueOfwaktu; viskositas akhir double x = var1 waktux 1000.0; hasil akhir dari perhitungan vizcouz.setTextnew DecimalFormat..formatx; } }; } } break; default: Log.dtag, no data found + buffer[0]; break; } } } }; script untuk menu option Override public boolean onCreateOptionsMenuandroid.view.Menu menu { TODO Auto-generated method stub super.onCreateOptionsMenumenu; MenuInflater muncul = getMenuInflater; muncul.inflateR.menu.veloz, menu; return true; Universitas Sumatera Utara } script ketika item dari menu option dipilih Override public boolean onOptionsItemSelectedMenuItem item { TODO Auto-generated method stub switchitem.getItemId{ case R.id.aboutMe: Intent a = new Intentcom.ajirdoank.velozity.ABOUT; startActivitya; return true; case R.id.setting: Intent s = new Intentcom.ajirdoank.velozity.PREFS; startActivitys; return true; case R.id.instruct: Intent i = new Intentcom.ajirdoank.velozity.INSTR; startActivityi; return true; case R.id.exit: finish; } return false; } the end of this application from ajirdoank }

2.2.2 VelozitysrcPrefs.java