News Download Tutorial FAQ Reference Buy

자바 : 숙련자용 : Executable

개요
약 20msec마다 호출되는 메소드를 정의합니다.

작성한 프로그램과 로봇은 일정 주기마다 통신으로 데이터를 주고받습니다. 작성한 프로그램이 통신을 방해하면 안 되기 때문에 통신을 처리하는 부분은 별도의 쓰레드로 분리되어 있습니다. 따라서 아래와 같은 코드에서 왼쪽 바퀴의 속도 값을 설정한 후, 오른쪽 바퀴의 속도 값을 설정하기 전에 통신 패킷이 로봇으로 전송될 수도 있습니다. 로봇 쪽에서는 왼쪽 바퀴의 속도가 먼저 30으로 설정되고, 다음 패킷이 도착하면 오른쪽 바퀴의 속도가 30으로 설정되기 때문에 오른쪽 바퀴보다 왼쪽 바퀴가 먼저 움직이기 시작합니다.

Hamster hamster = new Hamster();
// 왼쪽 바퀴의 속도를 30으로 설정한다.
hamster.write(Hamster.LEFT_WHEEL, 30);
// 오른쪽 바퀴의 속도를 30으로 설정한다.
hamster.write(Hamster.RIGHT_WHEEL, 30);

execute 메소드 내에서 쓴 데이터는 모두 같은 패킷으로 전송되는 것이 보장됩니다. 로봇으로부터 센서 데이터를 받은 후 execute 메소드를 호출하고, 그 후에 로봇으로 통신 패킷을 전송합니다. execute 메소드는 약 20msec마다 호출되기 때문에 execute 메소드 내에서 구현된 부분은 반드시 20msec 내에 모두 처리가 되도록 하여야 합니다.

final Hamster hamster = new Hamster();
// Executable 객체를 등록한다.
Task.setExecutable(new Executable() {
    public void execute() {
        hamster.write(Hamster.LEFT_WHEEL, 30);
        hamster.write(Hamster.RIGHT_WHEEL, 30);
    }
});
퍼블릭 메소드
버전 1.1.0부터
public abstract void execute()
약 20ms마다 주기적으로 호출된다.
Copyright Robot Software Education Institute. All rights reserved.
Please contact prof. Kwang-Hyun Park (akaii@kw.ac.kr) if you have any problem.