msp4301611을 이용하여 앱과 통신을 하려고 하는데요
/////////////////////////////////////////////////////////
open_data = getchar();
putchar(open_data);
if(open_data == 't')
{
for(y=0; y<100; y++)
putchar('t');
}
else if(open_data == '1')
{
set=1;
mode=1;
putchar('1');
}
else if(open_data == '2')
{
set=1;
mode=2;
for(y=0; y<100; y++)
putchar('2');
}
//////////////////////////////////////////////////////
if(sw1 | sw2 )
{
set=1;
}
if(mode==1) // window on
{
if(set)
{
P5OUT = 0x00;
}
}
if(mode==2) // window off
{
if(set)
{
P5OUT = 0x01;
}
}
////////////////////////////////////////////////////////// 위에 이클립스로 보낸 데이터 값을 1,2로 putchar함수로 받아 모드 1,2로 설정을 했는데요
이클립스로
public void toque(int left, int right) {
try {
String data = "";
if (0 < left) data += '1';
else if (0 > left) {data += '0'; left = -left;}
else data +='3';
if (0 < right) data += '2';
else if (0 > right) {data += '0'; right = -right;}
else data +='3';
if (left != 0) data += (char)(left&0xff);
if (right != 0) data += (char)(right&0xff);
String str = new String(data.getBytes(), "UTF-8");
mmOutStream.write(str.getBytes());
} catch (IOException e) {
Log.e(TAG, "Exception during write", e);
}
}
////////////////////////////////////////////////////////////////////////////////////// 이 부분이 이클립스에서 데이터 값을 보내는것 같은데
해석이 잘 안되네요ㅠㅠㅠ 어떻게 1,2,3 이라는 값을 보낸다는 것이 저렇게 설명 되는 거죠 ?ㅠㅠㅠ
부탁드립니다 고수님들 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
본문 아래 부분은 안드로이드 블루투스 소켓을 이용해서 바이트스트림을 보내는 부분(안드로이드->msp430 장치로의 송신)인 것 같네요.
본문 윗 부분은 msp430 에서 데이터를 수신한 후 데이터 수신 확인(ack) 을 위해 다시 재송신하는 펌웨어의 일부분인 것 같은데요.
보통 msp430 과 같은 마이크로콘트롤러가 블루투스 송수신 모듈과 uart 직렬포트를 통해 연결되어 직렬통신 방법을 주로 사용합니다.
그러니까 msp430 펌웨어에서는 블루투스 모듈과 연결된 직렬포트를 초기화한 후 데이터를 수신하거나 송신하면 블루투스 모듈을 거쳐 안드로이드 장치로 전송되는 거죠.