저는 지금 핸드폰의 기울기를 블루투스를 통해 ATmega128을 제어하는 어플을 만들고 있습니다.
지금 Maincontroller핸드폰 기울기에서 구한 값을 sendToque에서 처리후 TankConService의 Toque에서 기울기 값에 따라 전송을 합니다
저는 이때 핸드폰 화면에 기울기 값에 따라서 원의 위치가 변하게 하려고 합니다.
그런데 화면에는 onDraw에 대한 내용이 전혀 표시가 되지 않습니다.
values에 따라서 원의 위치가 변하게끔 했는데 전혀 아에 표시가 되지 않습니다.
어떻게 하면 좋을지 알려주시면 감사하겠습니다...
public class TickHandler extends Handler {
// 핸들 메시지
@Override
public void handleMessage(Message msg) {
sendToque((int)values[0], (int)values[1]); //values[0] : left, values[1] : right
if (tickHandler!=null) tickHandler.sleep(200);
}
// 대기
public void sleep(long delayMills) {
removeMessages(0);
sendMessageDelayed(obtainMessage(0),delayMills);
}
}
private void sendToque(int left, int right) {
if (mTankConService.getState() != TankConService.STATE_CONNECTED) {
}
mTankConService.toque(left, right);
}
protected void onDraw(Canvas canvas) {
// 그리기 객체 형성
Paint paint=new Paint();
paint.setAntiAlias(true);
//원 그리기
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.argb(255,0,0,0));
canvas.drawCircle(240,350,180,paint); // 제일 바깥 원
canvas.drawCircle(240,350,120,paint); // 중간원
canvas.drawCircle(240,350,60,paint); // 제일 안쪽 원
if(values[0] == 0) {
// 세로 첫번 째------------------------------------------------------------------
if(values[1] == 10){
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.argb(255,255,0,0));
canvas.drawCircle(240,170,20,paint); // 세로 첫번째
}
if(values[1] == 9){
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.argb(255,255,0,0));
canvas.drawCircle(240,170,20,paint); // 세로 첫번째
}
if(values[1] == 8){
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.argb(255,255,0,0));
canvas.drawCircle(240,170,20,paint); // 세로 첫번째
}
}
public void toque(int left, int right) {
// Create temporary object
ConnectedThread r;
// Synchronize a copy of the ConnectedThread
synchronized (this) {
if (mState != STATE_CONNECTED) return;
r = mConnectedThread;
}
// Perform the write unsynchronized
r.toque(left, right);
}
public void toque(int left, int right) {
try {
String data = "#M";
if (0 < left) data += 'F';
else if (0 > left) {data += 'B'; left = -left;}
else data +='H';
if (0 < right) data += 'F';
else if (0 > right) {data += 'B'; right = -right;}
else data +='H';
if (left != 0) data += (char)(left&0xff);
if (right != 0) data += (char)(right&0xff);
mmOutStream.write(data.getBytes());
} catch (IOException e) {
Log.e(TAG, "Exception during write", e);
}
}