신호탑#

소개#

signaltower 급은 신호등을 변경하고 CTE 신호탑과의 상호 작용을 감지하는 데 사용됩니다.

클래스 생성자#

signaltower( 
  int32_t  index );

클래스 소멸자#

signaltower 객체를 파괴하고 관련 리소스를 해제합니다.

virtual ~signaltower();

매개변수#

매개변수

유형

설명

index

int32_t

신호탑이 연결된 스마트 포트는 PORTx형식으로 표기되며, 여기서 x 은 포트 번호입니다(예: PORT1).

예시#

// Create a signal tower instance in Port 1
signaltower SignalTower = signaltower(PORT1);

회원 기능#

signaltower 클래스는 다음과 같은 멤버 함수를 제공합니다.

  • setColor - 다양한 입력 방식을 사용하여 신호탑의 LED 색상 및 상태를 제어합니다.

  • setColors - 신호탑의 모든 LED의 상태를 개별적으로 설정합니다.

  • setBlink - LED ID로 신호탑의 LED의 깜빡임 상태를 설정합니다.

  • setBlinkTime - 신호탑의 LED 깜빡임 간격을 설정합니다.

  • enableBlink - 신호탑의 여러 LED를 ID로 깜빡이도록 활성화합니다.

  • disableBlink - ID로 신호탑의 여러 LED의 깜빡임을 비활성화합니다.

  • pressing - 신호탑 범퍼가 현재 눌려 있는지 여부를 반환합니다.

  • pressed - 신호탑 범퍼가 눌렸을 때 호출될 함수를 등록합니다.

  • released - 신호탑 범퍼가 해제될 때 호출될 함수를 등록합니다.

setColor#

다양한 입력 방식을 사용하여 신호탑의 LED 색상과 상태를 제어합니다. 이 표시등은 프로젝트에서 로봇의 위치를 ​​추적하거나 특정 조건이 충족되었음을 나타내는 데 사용할 수 있습니다.

Available Functions

1 — vex::color를 사용하여 신호탑의 색상을 설정합니다.

void setColor( 
  vex::color         color, 
  signaltower::state state = signaltower::state::on );

2 — 32비트 RGB 및 YW 값을 사용하여 LED 색상을 설정합니다.

void setColor( 
  uint32_t rgb, 
  uint32_t yw );

3 — LED ID별로 각 LED의 밝기를 설정합니다.

void setColor( 
  ledId id, 
  uint32_t value );

4 — 모든 LED의 밝기 수준을 개별적으로 설정합니다.

void setColor( 
  uint8_t r, 
  uint8_t y, 
  uint8_t g, 
  uint8_t b, 
  uint8_t w );

Parameters

매개변수

유형

설명

color

vex::color

사용할 색상:

  • red
  • yellow
  • green
  • blue
  • white
  • all

state

signaltower::state

LED의 상태:

  • on (기본값) – LED를 켠다.
  • off – LED를 끈다.
  • blink – LED를 깜빡이게 한다.

rgb

uint32_t

빨강, 초록, 파랑 ​​LED의 밝기는 32비트 값으로 표현됩니다(예: 빨강 켜짐 = 0xFF0000, 초록 켜짐 = 0x00FF00, 파랑 켜짐 = 0x0000FF).

yw

uint32_t

노란색 및 흰색 LED의 밝기는 32비트 값으로 표현됩니다(예: 노란색 켜짐 = 0xFF00 , 흰색 켜짐 = 0x00FF).

id

ledId

제어할 LED의 인덱스:

  • 0 – 빨간색
  • 1 – 녹색
  • 2 – 파란색
  • 3 – 흰색
  • 4 – 노란색

value

uint32_t

LED의 밝기는 0에서 255까지 조절 가능하며, 0은 꺼짐, 255는 최대 밝기입니다.

r

uint8_t

빨간색 LED의 밝기는 0에서 255까지 조절 가능하며, 0은 꺼짐, 255는 최대 밝기입니다.

y

uint8_t

노란색 LED의 밝기는 0에서 255까지 조절 가능하며, 0은 꺼짐, 255는 최대 밝기입니다.

g

uint8_t

녹색 LED의 밝기는 0에서 255까지 조절 가능하며, 0은 꺼짐, 255는 최대 밝기입니다.

b

uint8_t

파란색 LED의 밝기는 0에서 255까지 조절 가능하며, 0은 꺼짐, 255는 최대 밝기입니다.

w

uint8_t

백색 LED의 밝기는 0에서 255까지 조절 가능하며, 0은 꺼짐, 255는 최대 밝기입니다.

Return Values

이 함수는 값을 반환하지 않습니다.

Examples
// Set the Signal Tower to start blinking blue
SignalTower.setColor(vex::color::blue, signaltower::blink);

// Set the red, blue and white LEDs using hex values
SignalTower.setColor(0xFF00FF, 0x00FF);

// Set the green LED to full brightness by ID
SignalTower.setColor(1, 255);

// Set all LEDs to full brightness
SignalTower.setColor(255, 255, 255, 255, 255);

setColors#

시그널 타워의 모든 LED 상태를 개별적으로 설정합니다. 이 LED는 로봇이 프로젝트에서 현재 어디에 있는지 추적하거나 특정 조건이 충족되었음을 나타내는 데 사용할 수 있습니다.

Available Functions
void setColors( 
  signaltower::state rs, 
  signaltower::state ys, 
  signaltower::state gs, 
  signaltower::state bs, 
  signaltower::state ws );

Parameters

매개변수

유형

설명

rs

signaltower::state

빨간색 LED의 상태:

  • on – LED를 켠다.
  • off – LED를 끈다.
  • blink – LED를 깜빡이게 한다.

ys

signaltower::state

노란색 LED의 상태:

  • on – LED를 켠다.
  • off – LED를 끈다.
  • blink – LED를 깜빡이게 한다.

gs

signaltower::state

녹색 LED의 상태:

  • on – LED를 켠다.
  • off – LED를 끈다.
  • blink – LED를 깜빡이게 한다.

bs

signaltower::state

파란색 LED의 상태:

  • on – LED를 켠다.
  • off – LED를 끈다.
  • blink – LED를 깜빡이게 한다.

ws

signaltower::state

흰색 LED의 상태:

  • on – LED를 켠다.
  • off – LED를 끈다.
  • blink – LED를 깜빡이게 한다.

Return Values

이 함수는 값을 반환하지 않습니다.

Examples
// Turn on all LEDs
SignalTower.setColors(signaltower::on, signaltower::on, signaltower::on, signaltower::on, signaltower::on);

setBlinkTime#

신호탑 LED의 깜빡임 간격을 설정합니다.

Available Functions
void setBlinkTime( 
  uint32_t onTime, 
  uint32_t offTime = 0 );

Parameters

매개변수

유형

설명

onTime

uint32_t

LED가 깜빡일 때 켜져 있어야 하는 시간(밀리초)입니다. 최대값은 2500ms입니다. 0으로 설정하면 기본값인 500ms가 사용됩니다.

offTime

uint32_t

LED가 깜빡일 때 꺼져 있어야 하는 시간(밀리초)입니다. 최대값은 2500ms입니다. 값이 0이면 onTime 값이 사용됩니다. 기본값은 0입니다.

Return Values

이 함수는 값을 반환하지 않습니다.

pressing#

신호탑의 범퍼가 현재 눌려 있는지 여부를 반환합니다. 이는 비상 정지용으로 사용할 수 있습니다.

Available Functions
bool pressing();

Parameters

이 함수는 매개변수를 받지 않습니다.

Return Values

신호탑의 범퍼가 현재 눌러져 있는지 여부를 나타내는 부울 값을 반환합니다.

  • true — 신호탑의 범퍼가 현재 눌러지고 있습니다.

  • false — 신호탑의 범퍼가 눌리지 않았습니다.

pressed#

신호탑 범퍼 버튼을 눌렀을 때 호출될 함수를 등록합니다.

Available Functions
void pressed( void (* callback)(void) );

Parameters

매개변수

유형

설명

callback

void (*)(void)

범퍼 버튼을 눌렀을 때 호출될 함수에 대한 포인터입니다.

Return Values

이 함수는 값을 반환하지 않습니다.

Examples

콜백 함수를 정의하십시오( int main() 외부).

// Display a message when bumper is pressed
void towerBumperPressed() {
  Brain.Screen.print("tower bumper pressed");
}

int main() 내부에 콜백을 등록합니다.

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Run towerBumperPressed when the tower bumper 
  // is pressed
  SignalTower.pressed(towerBumperPressed);
}

released#

신호탑 범퍼를 놓았을 때 호출될 함수를 등록합니다.

Available Functions
void released( void (* callback)(void) );

Parameters

매개변수

유형

설명

callback

void (*)(void)

범퍼를 놓았을 때 호출될 함수에 대한 포인터입니다.

Return Values

이 함수는 값을 반환하지 않습니다.

Examples

콜백 함수를 정의하십시오( int main() 외부).

// Display a message when bumper is pressed
void towerBumperReleased() {
  Brain.Screen.print("tower bumper pressed");
}

int main() 내부에 콜백을 등록합니다.

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Run towerBumperReleased when the tower bumper 
  // is released
  SignalTower.released(towerBumperReleased);
}