현재 아두이노라는 장치를 이용하여 압력센서를 연결한후 안드로이드에서 그 값을 받아 정수값으로 추출하는 작업을 하고있습니다.
현재 아두이노 코딩으로는
void setup(){
Serial.begin(9600);
int val;
int vol;
val = analogRead(0);
vol = analogRead(0);
Serial.println(val.DEC);
Serial.println(vol.DEC);
delay(100);
}
이렇게 코딩을 하였습니다.
원리는 아두이노 코딩에서 Serial.println 되는 값을 받아 프린트하는것이더군요
아래 코딩은 안드로이드 코딩입니다.
AndroidCommunicatorActivity.java
public void onCreate(Bundle savedInstanceState) {
UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
UsbDevice usbDevice = null;
HashMap<String, UsbDevice> usbDeviceList = usbManager.getDeviceList();
Iterator<UsbDevice> deviceIterator = usbDeviceList.values().iterator();
super.onCreate(savedInstanceState);
IntentFilter filter = new IntentFilter();
filter.addAction(ArduinoCommunicatorService.DATA_RECEIVED_INTENT);
filter.addAction(ArduinoCommunicatorService.DATA_SENT_INTERNAL_INTENT);
registerReceiver(mReceiver, filter);//Print Arduino Data on screen
mDataAdapter = new ArrayAdapter<ByteArray>(this, android.R.layout.simple_list_item_1, mTransferedDataList); setListAdapter(mDataAdapter); findDevice();
}
//Receive Arduino Data
BroadcastReceiver mReceiver = new BroadcastReceiver() {
private void handleTransferedData(Intent intent, boolean receiving) {
if (mIsReceiving == null || mIsReceiving != receiving) {
mIsReceiving = receiving;
mTransferedDataList.add(new ByteArray());
}
final byte[] newTransferedData = intent.getByteArrayExtra(ArduinoCommunicatorService.DATA_EXTRA);
ByteArray transferedData = mTransferedDataList.get(mTransferedDataList.size() - 1);
transferedData.add(newTransferedData);
mTransferedDataList.set(mTransferedDataList.size() - 1, transferedData);
mDataAdapter.notifyDataSetChanged();
}
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (ArduinoCommunicatorService.DATA_RECEIVED_INTENT.equals(action)) {
handleTransferedData(intent, true);
} else if (ArduinoCommunicatorService.DATA_SENT_INTERNAL_INTENT.equals(action)) {
handleTransferedData(intent, false);
}
}
};
}
이렇게 입니다.
그냥 봤을때는 setListAdapter(mDataAdapter); 이 코딩이 Display 에 Data 값을 뿌려주겠구나 해서 봤는데..
(프로그래밍 초보다보니...)
여기서 나오는 숫자들을 int 값으로 뽑아내는게 난감하더군요 ㅠㅠ(어째 배열값에 들어가있는것같아서)
꼭좀 부탁드립니다.