C++#
Tài liệu tham khảo API VEX V5 C++ giải thích các lớp, đối tượng, hàm tạo, hàm thành viên và biến được sử dụng trong các dự án VEXcode V5 C++.
Hãy sử dụng tài liệu tham khảo này khi bạn muốn hiểu cách một thiết bị hoặc tính năng được tạo ra, kiểm tra xem nên sử dụng chữ ký hàm nào, hoặc so sánh các hàm thành viên liên quan trong một lớp.
Các lệnh C++ được sử dụng trong các dự án C++ của VEXcode V5. Thông tin API C++ cũng có thể hỗ trợ các dự án được viết bằng Visual Studio Code với tiện ích mở rộng VEX Visual Studio Code.
Cách đọc trang lớp C++#
Một trang lớp C++ thường tuân theo thứ tự sau:
Giới thiệu - Giải thích về ý nghĩa của lớp học và khi nào thì nó hữu ích.
Các lớp dẫn xuất - Liệt kê bất kỳ lớp nào được xây dựng dựa trên lớp này, nếu có.
Hàm tạo của lớp - Hiển thị cú pháp được sử dụng để tạo một đối tượng từ lớp.
Hàm hủy lớp - Hiển thị cú pháp được sử dụng để hủy đối tượng và giải phóng tài nguyên của nó, nếu có.
Tham số - Giải thích các tham số của hàm tạo được sử dụng khi tạo đối tượng.
Ví dụ - Minh họa cách tạo đối tượng trong mã lập trình.
Các hàm thành viên - Liệt kê các hàm thuộc về lớp, thường được nhóm theo mục đích.
Mục nhập hàm - Giải thích từng hàm thành viên, bao gồm các hàm có sẵn, tham số, giá trị trả về, ghi chú và ví dụ.
Không phải trang nào cũng có đầy đủ mọi phần. Ví dụ, một số trang không bao gồm các lớp dẫn xuất, và một số hàm không có tham số hoặc giá trị trả về.
Các thành phần API C++ thông dụng#
Yếu tố |
Ý nghĩa của nó là gì |
|---|---|
Lớp học |
Kiểu dữ liệu C++ cho một thiết bị hoặc tính năng, chẳng hạn như |
Sự vật |
Một thể hiện được đặt tên được tạo từ một lớp, chẳng hạn như |
Người xây dựng |
Đoạn mã được sử dụng để tạo một đối tượng từ một lớp. |
Chức năng thành viên |
Một lệnh được gọi trên một đối tượng, chẳng hạn như |
Chức năng khả dụng |
Chỉ có một chữ ký hàm duy nhất có thể được sử dụng cho một hàm thành viên. Một số hàm thành viên có nhiều hơn một chữ ký hàm khả dụng. |
Tham số |
Một giá trị được truyền vào hàm tạo hoặc hàm để điều khiển hoạt động của nó. |
Giá trị trả về |
Giá trị mà một hàm trả về, chẳng hạn như |
Từ vựng cơ bản của C++#
Thuật ngữ |
Ý nghĩa của nó là gì |
|---|---|
Biến số |
Một tên lưu trữ một giá trị, ví dụ như |
Kiểu |
Loại dữ liệu mà một thứ gì đó lưu trữ, chẳng hạn như |
Sợi dây |
Văn bản nằm trong dấu ngoặc kép, ví dụ như |
int |
Một loại số nguyên dương hoặc âm, chẳng hạn như |
gấp đôi |
Một kiểu số có thể bao gồm cả phần thập phân, chẳng hạn như |
boolean |
Một giá trị có thể là |
Lý lẽ |
Một giá trị được truyền vào hàm thành viên hoặc lời gọi hàm, chẳng hạn như |
Hàm tạo và Đối tượng#
Trước khi sử dụng các hàm thành viên từ nhiều lớp C++, đối tượng phải tồn tại. Hàm tạo (constructor) cho biết cách tạo ra đối tượng đó.
Ví dụ, một đối tượng động cơ có thể được tạo ra bằng cách cung cấp cho hàm tạo thông tin về cổng hoặc cấu hình cần thiết:
motor Motor1 = motor(PORT1, false);
Sau khi đối tượng được tạo, các hàm thành viên của nó có thể được gọi:
Motor1.spin(forward);
Trong VEXcode, cấu hình thiết bị thường được tạo tự động bởi Menu Thiết bị. Trong Visual Studio Code với tiện ích mở rộng VEX, các hàm tạo có thể cần phải được viết thủ công.
Lựa chọn chức năng phù hợp có sẵn#
Một số hàm thành viên có nhiều hơn một hàm khả dụng. Mỗi hàm sử dụng một tập hợp tham số khác nhau, vì vậy hãy chọn hàm phù hợp với các giá trị mà dự án của bạn cần cung cấp.
Ví dụ, một chức năng của hệ thống truyền động có thể có một phiên bản sử dụng vận tốc hiện tại và một phiên bản khác cho phép dự án tự chọn vận tốc:
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Cả hai hàm đều gọi drive, nhưng hàm thứ hai cung cấp nhiều quyền kiểm soát hơn vì nó bao gồm các tham số vận tốc.
Ví dụ về cách nhập hàm#
lái xe#
Chế độ drive cho phép robot di chuyển tiến hoặc lùi liên tục. Robot sẽ tiếp tục di chuyển cho đến khi nhận được lệnh khác, chẳng hạn như rẽ hoặc dừng lại. Đối với RPM hoặc DPS, giới hạn được thay đổi bởi tỷ số truyền của hệ thống truyền động.
Các chức năng khả dụng
void drive(directionType dir);
void drive(directionType dir, double velocity, velocityUnits units);
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Hướng di chuyển của robot: |
|
|
Tốc độ di chuyển từ 0% đến 100% khi sử dụng |
|
|
Đơn vị vận tốc: |
Giá trị trả về
Hàm này không trả về giá trị nào.
Ghi chú
drivekhông chờ; dự án sẽ tiếp tục thực thi dòng mã tiếp theo ngay sau khi gọi hàm.Hệ thống truyền động sẽ tiếp tục chuyển động cho đến khi lệnh
stopđược gọi hoặc một chức năng chuyển động hệ thống truyền động khác được thực thi.Các chức năng như
isDonevàisMovingkhông áp dụng chodrive, vì nó không sử dụng chuyển động dựa trên mục tiêu.
Ví dụ
// Drive forward and back
myDrivetrain.drive(forward);
wait(2, seconds);
myDrivetrain.drive(reverse, 25, rpm);
wait(2, seconds);
myDrivetrain.stop();
Hành vi chờ đợi và không chờ đợi#
Một số hàm di chuyển trong C++ chờ cho đến khi một hành động hoàn tất trước khi chương trình chuyển sang dòng mã tiếp theo. Các hàm khác bắt đầu một hành động và cho phép dòng mã tiếp theo chạy ngay lập tức.
Đang chờ - Dự án sẽ chờ cho đến khi hàm hoàn tất.
Không chờ đợi - Dự án bắt đầu hàm và ngay lập tức chuyển sang dòng tiếp theo.
Một số hàm bao gồm tham số như waitForCompletion để chọn hành vi này. Đối với những hàm đó, true thường khiến dự án chờ, trong khi false cho phép dòng tiếp theo chạy ngay lập tức.
Các lệnh trong các tiểu mục#
Các lệnh C++ được sắp xếp theo thiết bị hoặc chủ đề. Ví dụ, các lệnh dành cho các thiết bị Drivetrain, Motors, Controller, Brain, Smart Port, 3-Wire, Console, Logic và VEXlink được nhóm lại thành các tiểu mục riêng biệt.