C++#

VEX IQ(2세대) C++ API 참조서는 VEXcode IQ C++ 프로젝트에서 사용되는 클래스, 객체, 생성자, 멤버 함수 및 변수에 대해 설명합니다.

이 참조 자료는 장치 또는 기능이 어떻게 생성되는지 이해하거나, 어떤 함수 시그니처를 사용해야 하는지 확인하거나, 클래스 내의 관련 멤버 함수를 비교하려는 경우에 사용하십시오.

VEXcode IQ C++ 프로젝트에서는 C++ 명령어가 사용됩니다. C++ API 정보는 VEX Visual Studio Code 확장 프로그램을 사용하여 Visual Studio Code로 작성된 프로젝트에서도 활용될 수 있습니다.

C++ 클래스 페이지를 읽는 방법#

C++ 클래스 페이지는 일반적으로 다음과 같은 순서를 따릅니다.

  1. 소개 - 이 클래스가 무엇을 나타내는지, 그리고 언제 유용한지 설명합니다.

  2. 파생 클래스 - 이 클래스를 기반으로 하는 클래스가 있는 경우 해당 클래스 목록을 표시합니다.

  3. 클래스 생성자 또는 생성자들 - 클래스로부터 객체를 생성하는 데 사용되는 구문을 보여줍니다.

  4. 클래스 소멸자 - 객체를 파괴하고 필요한 경우 해당 객체의 리소스를 해제하는 데 사용되는 구문을 보여줍니다.

  5. 매개변수 - 객체를 생성할 때 사용되는 생성자 매개변수에 대해 설명합니다.

  6. 예시 - 코드로 객체를 생성하는 방법을 보여줍니다.

  7. 멤버 함수 - 클래스에 속하는 함수들을 나열하며, 종종 용도별로 그룹화됩니다.

  8. 함수 항목 - 각 멤버 함수에 대한 설명으로, 사용 가능한 함수, 매개변수, 반환 값, 참고 사항 및 예제를 포함합니다.

모든 페이지에 모든 섹션이 포함되어 있는 것은 아닙니다. 예를 들어, 일부 페이지에는 파생 클래스가 포함되어 있지 않고, 일부 함수에는 매개변수나 반환 값이 없습니다.

일반적인 C++ API 요소#

요소

그것이 의미하는 바는

수업

motor 또는 drivetrain 과 같은 장치 또는 기능에 대한 C++ 유형입니다.

물체

클래스에서 생성된 명명된 인스턴스(예: motor Motor1 또는 drivetrain myDrivetrain.

건설자

클래스로부터 객체를 생성하는 데 사용되는 코드입니다.

회원 기능

객체에 대해 호출되는 명령(예: myDrivetrain.drive(…).

사용 가능한 기능

멤버 함수에 사용할 수 있는 정확한 함수 시그니처 하나입니다. 일부 멤버 함수는 사용 가능한 함수가 둘 이상 있을 수 있습니다.

매개변수

생성자나 함수에 전달되는 값으로, 해당 함수의 동작을 제어합니다.

반환 값

함수가 반환하는 값(예: bool, int32_t또는 double 입니다.

기초 C++ 용어#

용어

그것이 의미하는 바는

변하기 쉬운

int speed = 50; 와 같이 값을 저장하는 이름입니다.

유형

어떤 것이 저장하는 데이터의 종류는 int, double또는 bool 와 같습니다.

끈

따옴표 안의 텍스트, 예: “Hello”.

int

90 과 같은 양수 또는 음수 정수 유형입니다.

더블

25.5 과 같이 소수점을 포함할 수 있는 숫자 유형입니다.

불

true 또는 false 중 하나의 값입니다.

논쟁

멤버 함수 또는 함수 호출에 전달되는 값(예: forward in myDrivetrain.drive(forward).

생성자와 객체#

많은 C++ 클래스의 멤버 함수를 사용하기 전에 먼저 객체가 존재해야 합니다. 생성자는 해당 객체를 생성하는 방법을 보여줍니다.

예를 들어, 장치 객체는 생성자에 필요한 포트 또는 구성 정보를 제공하여 생성할 수 있습니다.

motor Motor1 = motor(PORT1, false);

객체가 생성된 후에는 해당 객체의 멤버 함수를 호출할 수 있습니다.

Motor1.spin(forward);

VEXcode에서는 장치 메뉴에서 장치 구성이 자동으로 생성되는 경우가 많습니다. 하지만 Visual Studio Code에서 VEX 확장 프로그램을 사용하는 경우에는 생성자를 수동으로 작성해야 할 수도 있습니다.

사용 가능한 기능 중 적절한 기능 선택하기#

일부 멤버 함수는 여러 개의 사용 가능한 함수를 가지고 있습니다. 각 함수는 서로 다른 매개변수 세트를 사용하므로 프로젝트에서 필요한 값에 맞는 함수를 선택하십시오.

예를 들어, 구동계 기능에는 현재 속도를 사용하는 버전과 프로젝트가 속도를 선택하도록 하는 버전이 있을 수 있습니다.

void drive(directionType dir);

void drive(directionType dir, double velocity, velocityUnits units);

두 함수 모두 drive호출하지만, 두 번째 함수는 속도 매개변수를 포함하므로 더 많은 제어 기능을 제공합니다.

예시 함수 입력#

운전하다#

drive 로봇을 전진 또는 후진으로 무한히 이동시킵니다. 로봇은 방향 전환이나 정지와 같은 다른 동작이 주어질 때까지 계속 움직입니다.

사용 가능한 기능

void drive(directionType dir);

void drive(directionType dir, double velocity, velocityUnits units);

매개변수

유형

설명

dir

directionType

로봇의 이동 방향: forward 또는 reverse.

velocity

double

velocityUnits::pct사용할 경우 주행 속도는 0%에서 100%까지, rpm사용할 경우 0에서 120 rpm까지, 또는 dps를 사용할 경우 0에서 720도/초까지 설정할 수 있습니다. 속도가 제공되지 않으면 로봇은 현재 주행 속도로 주행합니다.

units

velocityUnits

속도 단위: velocityUnits::pct (퍼센트), rpm (분당 회전수), 또는 dps (초당 도수).

반환 값

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

참고 사항

  • drive 대기 모드가 아닙니다. 프로젝트는 다음 코드 줄을 즉시 실행합니다.

  • 로봇은 stop 명령이 호출되거나 다른 구동계 이동 기능이 실행될 때까지 계속 움직입니다.

  • isDone 이동, isMoving drive 와 함께 사용되지 않습니다. 왜냐하면 drive 목표 거리가 없기 때문입니다.

예

// Drive forward and back.
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();

대기 행동과 대기하지 않는 행동#

일부 C++ 이동 함수는 작업이 완료될 때까지 기다린 후 다음 코드 줄로 이동합니다. 반면 다른 함수들은 작업을 시작하고 바로 다음 코드 줄이 실행되도록 합니다.

  • 대기 중 - 프로젝트는 함수 실행이 완료될 때까지 기다립니다.

  • 대기 없음 - 프로젝트가 함수를 시작하고 즉시 다음 줄로 넘어갑니다.

Some functions include a parameter such as waitForCompletion to choose this behavior. For those functions, true usually makes the project wait, while false lets the next line run right away.

하위 섹션의 명령#

C++ 명령어는 장치 또는 주제별로 정리되어 있습니다. 예를 들어, 구동계, 모션, 브레인, 컨트롤러, 스마트 포트 장치, 관성 센서, 콘솔 및 로직에 대한 명령어는 각각 별도의 하위 섹션으로 그룹화되어 있습니다.