@Override public void handleMessage(Message myMessage) { int message; switch (message = myMessage.getData().getInt("message")) { case MOTOR_A: case MOTOR_B: case MOTOR_C: changeMotorSpeed(message, myMessage.getData().getInt("value1")); break; case MOTOR_B_ACTION: rotateTo(MOTOR_B, myMessage.getData().getInt("value1")); break; case MOTOR_RESET: reset(myMessage.getData().getInt("value1")); break; case START_PROGRAM: startProgram(myMessage.getData().getString("name")); break; case STOP_PROGRAM: stopProgram(); break; case GET_PROGRAM_NAME: getProgramName(); break; case DO_BEEP: doBeep(myMessage.getData().getInt("value1"), myMessage.getData().getInt("value2")); break; case DO_ACTION: doAction(myMessage.getData().getInt("value1")); break; case READ_MOTOR_STATE: readMotorState(myMessage.getData().getInt("value1")); break; case GET_FIRMWARE_VERSION: getFirmwareVersion(); break; case FIND_FILES: findFiles( myMessage.getData().getInt("value1") == 0, myMessage.getData().getInt("value2")); break; case DISCONNECT: // send stop messages before closing changeMotorSpeed(MOTOR_A, 0); changeMotorSpeed(MOTOR_B, 0); changeMotorSpeed(MOTOR_C, 0); waitSomeTime(500); try { destroyNXTconnection(); } catch (IOException e) { } break; } }
/** * Creates and starts the a thread for communication via bluetooth to the NXT robot. * * @param mac_address The MAC address of the NXT robot. */ private void startBTCommunicator(String mac_address) { connected = false; connectingProgressDialog = ProgressDialog.show( this, "", getResources().getString(R.string.connecting_please_wait), true); if (myBTCommunicator != null) { try { myBTCommunicator.destroyNXTconnection(); } catch (IOException e) { } } createBTCommunicator(); myBTCommunicator.setMACAddress(mac_address); myBTCommunicator.start(); updateButtonsAndMenu(); }