새 소식 다운로드 교육자료 문제해결 레퍼런스 구입방법

파이썬 : 숙련자용 : Roboid

바로가기
함수

열거형 상수

클래스
개요
로보이드를 구성하는 디바이스를 찾거나 콜백 함수를 등록 및 제거하는 메소드를 정의합니다.

상속 관계:
메소드
버전 1.3.0부터
add_device_data_changed_listener(listener)
디바이스의 데이터가 갱신되었을 때 호출되도록 콜백 함수 listener를 등록한다.

listener는 on_device_data_changed(device, values)의 형태를 가지는 함수여야 한다. 함수 이름이 on_device_data_changed일 필요는 없다. 여기서 device는 데이터가 갱신된 디바이스이고, values는 해당 디바이스(device)의 데이터 리스트를 튜플로 변환한 것이다.

파라미터:
  • listener: 등록할 콜백 함수

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'

파라미터:
  • name: 찾을 디바이스의 이름(문자열)

반환 값:
    디바이스(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'

파라미터:
  • name: 찾을 로보이드의 이름(문자열)

반환 값:
    로보이드(Roboid) 인스턴스의 참조 또는 None
버전 1.3.0부터
get_id()
로보이드의 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)의 데이터 리스트를 튜플로 변환한 것이다.

파라미터:
  • listener: 제거할 콜백 함수

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으로 설정한다.

파라미터:
  • 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)에게 연락하세요.