개요
로보이드를 구성하는 디바이스를 찾거나 콜백 함수를 등록 및 제거하는 메소드를 정의합니다.
상속 관계:
메소드
버전 1.3.0부터
add_device_data_changed_listener(listener)
디바이스의 데이터가 갱신되었을 때 호출되도록 콜백 함수 listener를 등록한다.
listener는 on_device_data_changed(device, values)의 형태를 가지는 함수여야 한다.
함수 이름이 on_device_data_changed일 필요는 없다.
여기서 device는 데이터가 갱신된 디바이스이고, values는 해당 디바이스(device)의 데이터 리스트를 튜플로 변환한 것이다.
파라미터:
from roboid import *
turtle = Turtle()
def on_device_data_changed(device, values):
if device.get_id() == Turtle.FLOOR:
value = values[0]
roboid = turtle.find_roboid_by_name('Turtle')
# 콜백 함수를 등록한다.
roboid.add_device_data_changed_listener(on_device_data_changed)
버전 1.3.0부터
clear_device_data_changed_listeners()
등록된 모든 콜백 함수를 제거한다.
버전 1.3.0부터
find_device_by_id(device_id)
ID가 device_id인 디바이스를 찾는다.
ID가 device_id인 디바이스가 없으면 None을 반환한다.
파라미터:
- device_id: 찾을 디바이스의 ID(정수)
반환 값:
디바이스(Device) 인스턴스의 참조 또는 None
from roboid import *
turtle = Turtle()
roboid = turtle.find_roboid_by_name('Turtle')
# 왼쪽 바퀴 디바이스를 찾는다.
device = roboid.find_device_by_id(Turtle.LEFT_WHEEL)
버전 1.3.0부터
find_device_by_name(name)
이름이 name인 디바이스를 찾는다.
이름이 name인 디바이스가 없으면 None을 반환한다.
이 때, 자식 로보이드에 포함된 디바이스의 이름은 '자식로보이드.디바이스'와 같이 '.'으로 구분된 형식을 사용한다. 예: 'Child.Button'
파라미터:
반환 값:
디바이스(Device) 인스턴스의 참조 또는 None
from roboid import *
turtle = Turtle()
roboid = turtle.find_roboid_by_name('Turtle')
# 버튼 디바이스를 찾는다.
device = roboid.find_device_by_name('Button')
버전 1.3.0부터
find_roboid_by_name(name)
이름이 name인 로보이드를 찾는다.
이름이 name인 로보이드가 없으면 None을 반환한다.
이 때, 자식 로보이드에 포함된 로보이드의 이름은 '자식로보이드.로보이드'와 같이 '.'으로 구분된 형식을 사용한다. 예: 'Child.Pen'
파라미터:
반환 값:
로보이드(Roboid) 인스턴스의 참조 또는 None
버전 1.3.0부터
get_id()
로보이드의 ID를 반환한다.
반환 값:
from roboid import *
turtle = Turtle()
roboid = turtle.find_roboid_by_name('Turtle')
# 로보이드의 ID를 얻는다.
id = roboid.get_id()
버전 1.3.0부터
get_name()
로보이드의 이름을 반환한다.
반환 값:
from roboid import *
turtle = Turtle()
roboid = turtle.find_roboid_by_name('Turtle')
# 로보이드의 이름을 얻는다.
name = roboid.get_name()
버전 1.3.0부터
remove_device_data_changed_listener(listener)
등록된 콜백 함수 목록에서 listener를 제거한다.
listener는 on_device_data_changed(device, values)의 형태를 가지는 함수여야 한다.
함수 이름이 on_device_data_changed일 필요는 없다.
여기서 device는 데이터가 갱신된 디바이스이고, values는 해당 디바이스(device)의 데이터 리스트를 튜플로 변환한 것이다.
파라미터:
from roboid import *
turtle = Turtle()
def on_device_data_changed(device, values):
if device.get_id() == Turtle.FLOOR:
value = values[0]
roboid = turtle.find_roboid_by_name('Turtle')
# 콜백 함수를 제거한다.
roboid.remove_device_data_changed_listener(on_device_data_changed)
버전 1.3.0부터
set_name(name)
로보이드의 이름을 name으로 설정한다.
파라미터:
from roboid import *
turtle = Turtle()
roboid = turtle.find_roboid_by_name('Turtle')
# 로보이드의 이름을 'Turtle'로 설정한다.
roboid.set_name('Turtle')
Copyright 로봇SW교육원 All rights reserved.
어려운 일이 있으면 광운대학교 로봇학부 박광현 교수(
akaii@kw.ac.kr)에게 연락하세요.