News Download Tutorial FAQ Reference Buy

안드로이드 : org.roboid.robot : Robot

public interface
Robot
org.roboid.robot.Robot
개요
로봇을 구성하는 디바이스를 찾거나 리스너를 등록 및 제거하는 메소드를 정의합니다.

상속 관계
상수 값
버전 1.0.0부터
public static final int STATE_CONNECTED
하드웨어 로봇과 블루투스 통신이 연결되었음을 나타내는 상수

상수 값:
    2
버전 1.0.0부터
public static final int STATE_CONNECTING
하드웨어 로봇과 블루투스 통신을 연결 중임을 나타내는 상수

상수 값:
    1
버전 1.0.0부터
public static final int STATE_CONNECTION_LOST
하드웨어 로봇과 블루투스 통신 연결이 비정상적으로 끊어졌음을 나타내는 상수

상수 값:
    3
버전 1.0.0부터
public static final int STATE_DISCONNECTED
하드웨어 로봇과 블루투스 통신이 정상적으로 종료되었음을 나타내는 상수

상수 값:
    4
퍼블릭 메소드
버전 1.0.0부터
public abstract void addDeviceDataChangedListener(DeviceDataChangedListener listener)
포함된 모든 디바이스에 대해 디바이스의 데이터가 갱신되었을 때 호출되도록 listener를 등록한다.

파라미터:
  • listener: 등록할 리스너

DeviceDataChangedListener listener = new DeviceDataChangedListener() {
    public void onDeviceDataChanged(Robot robot, Device device, Object values, long timestamp) {
        int leftProximity = 0;
        if(device.getId() == Hamster.LEFT_PROXIMITY)
            leftProximity = ((int[])values)[0];
    }
};

// 리스너를 등록한다.
robot.addDeviceDataChangedListener(listener);
버전 1.0.0부터
public abstract void clearDeviceDataChangedListeners()
포함된 모든 디바이스에 대해 등록된 모든 리스너를 제거한다.
버전 1.0.0부터
public abstract Device findDeviceById(int deviceId)
자식 디바이스 중에서 ID가 deviceId인 디바이스를 찾아 객체를 반환한다.

ID가 deviceId인 자식 디바이스가 없으면 null을 반환한다.

파라미터:
  • deviceId: 찾을 디바이스의 ID

반환 값:
    Device 객체 또는 null

// 왼쪽 바퀴 이펙터 디바이스의 객체를 얻는다.
Device device = robot.findDeviceById(Hamster.LEFT_WHEEL);
버전 1.0.0부터
public abstract int getCode()
로봇의 모델 코드를 반환한다.

반환 값:
    로봇의 모델 코드

// 로봇의 모델 코드를 얻는다.
int code = robot.getCode();
버전 1.0.0부터
public abstract String getId()
로봇의 모델 ID를 반환한다.

반환 값:
    로봇의 모델 ID

// 로봇의 모델 ID를 얻는다.
String id = robot.getId();
버전 1.0.0부터
public abstract int getIcon()
로봇의 아이콘 인덱스를 반환한다.

론처에서 로봇의 아이콘을 변경할 수 있는데, 사용할 수 있는 아이콘의 종류는 로봇마다 다르다. 로봇 별로 선택할 수 있는 아이콘의 인덱스를 반환한다.

반환 값:
    로봇의 아이콘 인덱스

// 로봇의 아이콘 인덱스를 얻는다.
int icon = robot.getIcon();
버전 1.0.0부터
public abstract int getIndex()
몇 번째 로봇인지를 나타내는 인덱스를 반환한다.

로봇의 인덱스는 론처에서 로봇이 등록된 순서대로 0부터 시작하는 일련 번호이다.
론처에서 '사용하지 않음'으로 설정한 로봇은 제외하고, 사용 중인 로봇들을 모델 기준으로 그룹핑하여 각 그룹 별로 순서대로 일련 번호가 부여된다. 즉, 로봇의 모델이 다르면 인덱스는 0부터 새로 시작한다.
따라서 로봇의 모델 ID와 인덱스, 또는 모델 코드와 인덱스를 사용하여 각각의 로봇을 구분할 수 있다.

예를 들어 햄스터 로봇 3대와 거북이 로봇 2대를 사용 중이라면, 햄스터 로봇 3대가 등록된 순서대로 0, 1, 2의 일련 번호(인덱스)를 가지고, 거북이 로봇 2대가 0, 1의 일련 번호(인덱스)를 가진다.

반환 값:
    몇 번째 로봇인지를 나타내는 인덱스

// 첫 번째 로봇임을 확인한다.
if(robot.getIndex() == 0)
        ...
버전 1.0.0부터
public abstract String getName()
로봇의 이름을 반환한다.

반환 값:
    이름을 나타내는 문자열. 항상 null이 아니다.

// 로봇의 이름을 얻는다.
String name = robot.getName();
버전 1.0.0부터
public abstract void removeDeviceDataChangedListener(DeviceDataChangedListener listener)
포함된 모든 디바이스에 대해 등록된 리스너 목록에서 listener를 제거한다.

파라미터:
  • listener: 제거할 리스너

DeviceDataChangedListener listener = new DeviceDataChangedListener() {
    private int leftProximity;

    public void onDeviceDataChanged(Robot robot, Device device, Object values, long timestamp) {
        if(device.getId() == Hamster.LEFT_PROXIMITY)
            leftProximity = ((int[])values)[0];
    }
};

// 리스너를 제거한다.
robot.removeDeviceDataChangedListener(listener);
버전 1.0.0부터
public abstract void setName(String name)
로봇의 이름을 name으로 설정한다.

파라미터:
  • name: 설정할 이름. null을 입력한 경우에는 이름이 ""로 설정된다.

// 로봇의 이름을 "Hamster"로 설정한다.
robot.setName("Hamster");
Copyright Robot Software Education Institute. All rights reserved.
Please contact prof. Kwang-Hyun Park (akaii@kw.ac.kr) if you have any problem.