public final class

Action.Localization

org.smartrobot.android.action.Action.Localization

Class Overview

내비게이션 패드 위에서 OID 코드 값을 위치 값으로 변환하는 액션의 모델 ID와 각 디바이스의 ID에 대한 상수 값을 정의한다.

Action.Localization은 1개의 센서 디바이스와 2개의 커맨드 디바이스로 구성되어 있으며, 각 디바이스의 데이터는 정수형 배열로 선언되어 있다.

종류 디바이스 ID 디바이스 이름 데이터 형 배열 크기 단위 값의 범위 초기 값
커맨드 COMMAND_PAD_SIZE "PadSize" int [ ] 2 0 ~ 40000 (0: 유효하지 않은 값) 0 (유효하지 않은 값)
커맨드 COMMAND_OID "OID" int [ ] 1 -1 ~ 65535 (-1: 유효하지 않은 값) -1 (유효하지 않은 값)
센서 SENSOR_POSITION "Position" int [ ] 2 -1 ~ 39999 (-1: 유효하지 않은 값) -1 (유효하지 않은 값)

  • COMMAND_PAD_SIZE
    내비게이션 패드의 크기를 나타낸다. 크기 2의 데이터 배열에서 첫 번째 값은 패드의 가로 크기, 두 번째 값은 패드의 세로 크기이다. 가로 크기와 세로 크기의 곱(면적)은 40000을 넘을 수 없다. 즉, 가로 크기가 1인 경우에는 세로 크기가 1 ~ 40000까지 가능하고, 가로 크기가 200인 경우에는 세로 크기가 1 ~ 200까지 가능하다.
  • COMMAND_OID
    내비게이션 패드의 OID 코드 값을 나타낸다.
  • SENSOR_POSITION
    내비게이션 패드 위에서 OID 코드 값에 해당하는 위치를 나타낸다. 크기 2의 데이터 배열에서 첫 번째 값은 X축 좌표, 두 번째 값은 Y축 좌표 값이다.

Action.Localization은 activate() 메소드로 시작하여 deactivate() 메소드로 중지할 때까지 실행된다.

 void someMethod(Action action)
 {
     Device devicePadSize = action.findDeviceById(Action.Localization.COMMAND_PAD_SIZE); // 패드 크기 커맨드 디바이스를 얻는다.
     devicePadSize.write(0, 108); // 패드의 폭 값을 쓴다.
     devicePadSize.write(1, 76); // 패드의 높이 값을 쓴다.

     Device deviceOID = action.findDeviceById(Action.Localization.COMMAND_OID); // OID 커맨드 디바이스를 얻는다.
     deviceOID.write(12345); // OID 값을 쓴다.

     Device devicePosition = action.findDeviceById(Action.Localization.SENSOR_POSITION); // 위치 센서 디바이스를 얻는다.
     int positionX = devicePosition.read(0); // 위치 데이터의 X 좌표 값을 읽는다.
     int positionY = devicePosition.read(1); // 위치 데이터의 Y 좌표 값을 읽는다.
 }

 public void onDeviceDataChanged(Device device, Object values, long timestamp)
 {
     int x, y;
     switch(device.getId())
     {
     case Action.Localization.SENSOR_POSITION: // 위치 값을 얻는다.
         x = ((int[])values)[0];
         y = ((int[])values)[1];
         break;
     }
 }

Summary

Constants
int COMMAND_OID OID 커맨드 디바이스의 ID를 나타내는 상수.
int COMMAND_PAD_SIZE 패드 크기 커맨드 디바이스의 ID를 나타내는 상수.
String ID Localization 액션의 모델 ID를 나타내는 상수.
int SENSOR_POSITION 위치 센서 디바이스의 ID를 나타내는 상수.

Constants

public static final int COMMAND_OID

라이브러리 버전 1.3.0부터

OID 커맨드 디바이스의 ID를 나타내는 상수.

OID 커맨드 디바이스의 데이터는 내비게이션 패드의 OID 코드 값을 나타낸다.

  • 상수 값: 0x40700001
  • 디바이스의 데이터 배열
    • 데이터 형: int [ ]
    • 배열 크기: 1
    • 값의 범위: -1 ~ 65535 (-1: 유효하지 않은 값)
    • 초기 값: -1 (유효하지 않은 값)

public static final int COMMAND_PAD_SIZE

라이브러리 버전 1.3.0부터

패드 크기 커맨드 디바이스의 ID를 나타내는 상수.

패드 크기 커맨드 디바이스의 데이터는 내비게이션 패드의 크기를 나타낸다. 크기 2의 데이터 배열에서 첫 번째 값은 패드의 가로 크기, 두 번째 값은 패드의 세로 크기이다. 가로 크기와 세로 크기의 곱(면적)은 40000을 넘을 수 없다. 즉, 가로 크기가 1인 경우에는 세로 크기가 1 ~ 40000까지 가능하고, 가로 크기가 200인 경우에는 세로 크기가 1 ~ 200까지 가능하다.

Action 클래스의 activate() 메소드를 호출하기 전에 설정해야 한다.

  • 상수 값: 0x40700000
  • 디바이스의 데이터 배열
    • 데이터 형: int [ ]
    • 배열 크기: 2
    • 값의 범위: 0 ~ 40000 (0: 유효하지 않은 값)
    • 초기 값: 0 (유효하지 않은 값)

public static final String ID

라이브러리 버전 1.3.0부터

Localization 액션의 모델 ID를 나타내는 상수.

  • 상수 값: "org.smartrobot.android.action.localization"

public static final int SENSOR_POSITION

라이브러리 버전 1.3.0부터

위치 센서 디바이스의 ID를 나타내는 상수.

위치 센서 디바이스의 데이터는 내비게이션 패드 위에서 OID 코드 값에 해당하는 위치를 나타낸다. 크기 2의 데이터 배열에서 첫 번째 값은 X축 좌표, 두 번째 값은 Y축 좌표 값이다.

  • 상수 값: 0x40700002
  • 디바이스의 데이터 배열
    • 데이터 형: int [ ]
    • 배열 크기: 2
    • 값의 범위: -1 ~ 39999 (-1: 유효하지 않은 값)
    • 초기 값: -1 (유효하지 않은 값)