package aaa.gg;
import java.io.*;
import java.util.*;
import lejos.nxt.*;
import android.app.Activity;
import android.bluetooth.*;
import android.os.Bundle;
public class ddd extends Activity {
private BluetoothAdapter mBtAdapter;
private BluetoothSocket mmSocket;
private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mBtAdapter = BluetoothAdapter.getDefaultAdapter();
BluetoothDevice device = mBtAdapter.getRemoteDevice("00:16:53:05:93:0E");
while(true){
try {
mmSocket = device.createRfcommSocketToServiceRecord(MY_UUID);
mmSocket.connect();
OutputStream mmOutStream = mmSocket.getOutputStream();
Motor.A.setSpeed(700);
Motor.A.forward();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
이렇게 source를 짜봤습니다. 휴대폰과 nxt는 이미 페어링 시켰구요...그리고 휴대폰의 블루투스는 켜놓았습니다.
그런상태에서 nxt의 mac주소를 알아내어서 소켓을 생성했습니다.
그리고 나서 UUID 값을 통해 소켓 코넥트 소스 가지 구현했습니다...이 정보까지는
어느님의 블로그를 통해 알아냈구요
이제 소켓을 코넥트 시키면
outputstream을 써서 값을 보내려구 합니다.
Motor.A.setSpeed(700);
Motor.A.forward();
보시는 바와 같이 저 두줄의 명령어가 nxt를 앞으로 가게 한다구 하는데요...이 명령어를 nxt에 보내줄려면
outputstream을 써서 해야되나요.......
어떤 식으로 보내면 좋을 까요 방법을 좀 알려주세요...
소켓 connect도 사실 제대로 안되있는것 같구 ...정보를 얻긴 얻었는데 아직 활용을 잘 하지 못하겠습니다.
그럼 답변 기다리겠습니다.
그렇게 하려면 NXT에 이진수 Direct Cmd를 보내야 합니다. 정확히는 모르겠지만 다음과 같은 방법이 통하면 올리겠습니다.
(띠리리링 소리내기 명령어를 보내시려면 (LASM: "plays 5")
보낼 데이터는 16진수 55FF 0051 AE05 FA56 A9 <- 이 데이터를 byte[] 변수(byte 배열)에 저장해서 OutputStream 에 보내시면 될 것 같습니다.)
혹시 저도 그 앱 소스좀 얻을 수 있을까요?
그걸 그대로 쓰는건 아니고요. 단지 소스좀 보고 참고하려고요.
출처는 확실히 해드리겠습니다.
염치없긴 하지만.... bbiuyy@naver.com으로 보내주시면 감사하겠습니다.




사실 try catch문과 아직 문법적으로 많이 부족하지만 좀 도와주세요..
while문을 돌려서 일단 계속 앞으로 나가게 해볼려고 하는데...
부탁드립니다.