마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

외부에서 받은 값을 안드로이드 내에서 정수값으로 추출2

0 추천

현재 아두이노라는 장치에 압력센서를 연결한후 안드로이드에서 그 값을 받아 정수값으로 추출하는 작업을 하고있습니다.

아두이노 코딩으로는

 

void setup(){
Serial.begin(9600);
}
 
void loop(){
int val;
int vol;
val = analogRead(0);
vol = analogRead(0);
Serial.println(val.DEC);
Serial.println(vol.DEC);
delay(100);
}
 
원리는 아두이노 코딩에서 Serial.println 되는 값을 받아 프린트하는것이더군요
 
안드로이드 코딩입니다.
CommunicatorActivity.java

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);
            //byte->int transfer
            ByteBuffer buff = ByteBuffer.allocate(4);
            buff=ByteBuffer.wrap(newTransferedData);
            buff.order(ByteOrder.BIG_ENDIAN);
            
            buff.getInt();
            ddd=IntSource;
            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 (DEBUG) Log.d(TAG, "onReceive() " + action);

            if (ArduinoCommunicatorService.DATA_RECEIVED_INTENT.equals(action)) {
                handleTransferedData(intent, true);
            } else if (ArduinoCommunicatorService.DATA_SENT_INTERNAL_INTENT.equals(action)) {
                handleTransferedData(intent, false);
            }
        }
    };

 

위 코드에서

intent.getByteArrayExtra(ArduinoCommunicatorService.DATA_EXTRA); 가 아두이노에서 입력받는 데이터를 어떤 형태로 받아오는지, 그리고 어떻게해야 정수형으로 받아오는지가 알고싶은데 쉽지않습니다.(현재 위의 형변환 코드는 getInt()에서 애러가 생기는것같습니다 ㅠㅠ)

dnflrkwhr888 (130 포인트) 님이 2013년 10월 7일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...