Màn hình#

Giới thiệu#

Lớp màn hình screen được kế thừa từ lớp cơ sở brain. Nó kiểm soát cách V5 Brain hiển thị văn bản, số và đồ họa trên màn hình cảm ứng của nó và cách nó phản hồi với đầu vào cảm ứng.

Mặc định, phông chữ dùng để in lên Brain là phông chữ đơn cách nhỏ với 12 hàng và 48 cột.

Đối với việc vẽ, độ phân giải của Brain là 480 x 240 pixel.

Màn hình V5 Brain với các đường lưới màu đỏ hiển thị bố cục gồm tổng cộng 12 hàng và 48 cột. Kích thước pixel là 479 chiều rộng x 239 chiều cao. Góc trên bên trái bắt đầu tại (0,0) pixel và hàng 1, cột 1, trong khi góc dưới bên phải kết thúc tại (479, 239) pixel và hàng 12, cột 48.

Truy cập#

Lớp screen có thể được truy cập bằng cách:

Brain.Screen

Ghi chú#

  • Đối tượng màn hình screen được cung cấp bởi Bộ não. Nó không được tạo ra trực tiếp.

  • Projects use a single global Brain object, so screen functions are called using Brain.Screen.

Ví dụ#

/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */

// Create the V5 Brain
brain Brain = brain();

// Print text to the Brain screen
Brain.Screen.print("Hello!");

Chức năng thành viên#

Lớp màn hình screen bao gồm các hàm thành viên sau:

  • print — In văn bản, số hoặc giá trị Boolean được định dạng lên màn hình Brain.

  • setCursor — Di chuyển con trỏ văn bản đến hàng và cột được chỉ định.

  • newLine — Xóa phần còn lại của dòng hiện tại và di chuyển con trỏ đến dòng tiếp theo.

  • clearLine — Xóa phần còn lại của dòng hiện tại hoặc xóa một dòng được chỉ định.

  • row — Trả về hàng mà văn bản sẽ được in.

  • column — Trả về cột mà văn bản sẽ được in.

  • getStringHeight — Trả về chiều cao của một chuỗi tính bằng pixel sử dụng phông chữ hiện tại.

  • getStringWidth — Trả về chiều rộng của một chuỗi tính bằng pixel sử dụng phông chữ hiện tại.

  • printAt — In văn bản được định dạng tại vị trí pixel x, y.

  • clearScreen — Xóa tất cả hình vẽ và văn bản khỏi màn hình Brain.

  • setFont — Đặt phông chữ được sử dụng để in trên màn hình.

  • setPenWidth — Đặt độ dày của các đường vẽ và đường viền hình dạng.

  • setPenColor — Đặt màu cho văn bản, pixel, đường kẻ và đường viền hình dạng.

  • setFillColor — Đặt màu tô cho các hình vẽ và nền văn bản in.

  • setOrigin — Đặt gốc được sử dụng cho tọa độ màn hình.

  • setClipRegion — Giới hạn đầu ra màn hình thành một vùng hình chữ nhật.

  • drawPixel — Vẽ một pixel tại tọa độ.

  • drawLine — Vẽ một đường thẳng giữa hai điểm.

  • drawRectangle — Vẽ một hình chữ nhật tại vị trí x, y với kích thước được chỉ định.

  • drawCircle — Vẽ một hình tròn tại vị trí x, y với bán kính được chỉ định.

  • drawImageFromFile — Vẽ một hình ảnh từ tệp trên thẻ SD lên màn hình.

  • render — Cho phép đệm kép hoặc hiển thị bộ đệm phía sau lên màn hình.

  • pressing — Trả về trạng thái hiện tại của màn hình đang được nhấn.

  • xPosition — Trả về tọa độ x của lần nhấn màn hình gần đây nhất.

  • yPosition — Trả về tọa độ y của lần nhấn màn hình gần đây nhất.

  • pressed — Đăng ký một hàm gọi lại để chạy khi màn hình được nhấn.

  • released — Đăng ký một hàm gọi lại để chạy khi màn hình được nhả ra sau khi được nhấn.

Before calling any screen member functions, a brain instance must be created, as shown below:

// Create the V5 Brain
brain Brain = brain();

print#

Hiển thị văn bản, số hoặc giá trị Boolean trên màn hình V5 Brain.

Available Functions

1 — In văn bản được định dạng bằng cách sử dụng chuỗi ký tự hoặc chuỗi kiểu C chỉ đọc.

void print(
    const char* format,
    ... );

2 — In văn bản được định dạng bằng cách sử dụng mảng ký tự có thể chỉnh sửa.

void print(
    char* format,
    ... );

Parameters

Tham số

Kiểu

Sự miêu tả

format

const char*

Chuỗi định dạng được cung cấp dưới dạng chuỗi ký tự hoặc chuỗi kiểu C chỉ đọc (ví dụ: “Score: %d”).

format

char*

Chuỗi định dạng được cung cấp dưới dạng mảng ký tự có thể chỉnh sửa.

…

Một hoặc nhiều giá trị bổ sung được chèn vào chuỗi định dạng, phân cách nhau bằng dấu phẩy.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Quá trình xuất dữ liệu bắt đầu từ vị trí con trỏ hiện tại trên màn hình.

  • Văn bản in sử dụng phông chữ màn hình hiện tại là .

  • Văn bản in sử dụng màu bút hiện tại là và màu.

  • Văn bản được in với print luôn được in kèm nền, và màu nền được xác định bởi current fill color.

  • Khi sử dụng chuỗi định dạng, số lượng và loại giá trị được truyền phải khớp với định dạng chỉ định trong chuỗi.

Examples
// Display a message at the starting cursor
Brain.Screen.print("Hello, Robot!");

Ảnh chụp màn hình của V5 Brain hiển thị dòng chữ "Hello, Robot!" được in trên màn hình ở góc trên bên trái bằng chữ trắng.

setCursor#

Di chuyển con trỏ đến một hàng và cột cụ thể trên màn hình V5 Brain. Lệnh print tiếp theo sẽ bắt đầu in tại vị trí đó.

Available Functions
void setCursor(
  int32_t row, 
  int32_t col );

Parameters

Tham số

Kiểu

Sự miêu tả

row

int32_t

Hàng cần di chuyển con trỏ đến.

col

int32_t

Cột cần di chuyển con trỏ đến.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Ảnh hưởng đến vị trí bắt đầu xuất văn bản tiếp theo khi sử dụng print.

  • Hàng và cột dựa trên phông chữ màn hình hiện đang được đặt.

  • Phông chữ mặc định (mono20) sử dụng 12 hàng và 48 cột.

  • Việc gọi hàm setCursor chỉ ảnh hưởng đến vị trí của đoạn văn bản được xuất ra sau đó.

Examples
// Display text starting at Row 3 Column 12
Brain.Screen.setCursor(3, 12);
Brain.Screen.print("Row 3, Column 12");

Ảnh chụp màn hình của V5 Brain hiển thị Hàng 3 Cột 12 được in ở phần trên gần giữa màn hình, tại vị trí đó.

newLine#

Di chuyển con trỏ đến đầu hàng tiếp theo trên màn hình Brain.

Available Functions
void newLine();

Parameters

Hàm này không chấp nhận bất kỳ tham số nào.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Nếu con trỏ nằm ở giữa câu, lệnh newLine sẽ xóa phần còn lại của hàng sau con trỏ trước khi chuyển sang hàng tiếp theo.

  • Sau khi gọi lệnh newLine, con trỏ được đặt tại cột đầu tiên của dòng tiếp theo.

  • Vị trí con trỏ và số hàng được thiết lập bằng cách sử dụng setCursor.

Examples
// Display two lines of text
Brain.Screen.print("Line 1");
Brain.Screen.newLine();
Brain.Screen.print("Line 2");

Ảnh chụp màn hình màn hình V5 Brain hiển thị hai dòng chữ màu trắng ở góc trên bên trái. Dòng trên cùng ghi là Dòng 1, và dòng thứ hai ngay bên dưới ghi là Dòng 2.

clearLine#

Xóa văn bản khỏi một hàng trên màn hình V5 Brain.

Available Functions

1 — Xóa phần còn lại của dòng hiện tại từ vị trí con trỏ.

void clearLine();

2 — Clears the specified row using the currently configured fill color.

void clearLine(
    int number );

3 — Xóa hàng được chỉ định bằng cách sử dụng đối tượng được xác định trước hoặc màu tùy chỉnh.

void clearLine(
    int          number,
    const color& color );

4 — Xóa hàng được chỉ định bằng cách sử dụng giá trị màu thập lục phân.

void clearLine(
    int         number,
    const char* color );

5 — Xóa hàng được chỉ định bằng cách sử dụng giá trị màu sắc.

void clearLine(
    int number,
    int hue );

Parameters

Tham số

Kiểu

Sự miêu tả

number

int

Số hàng cần xóa. Số hàng bắt đầu từ 1.

color

const color&

Xóa hàng bằng cách sử dụng đối tượng màu color Các màu được xác định trước bao gồm:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Điều này cũng có thể sử dụng đối tượng màu tùy chỉnh.

color

const char*

Xóa hàng bằng cách sử dụng giá trị màu thập lục phân (ví dụ: “#000000”).

hue

int

Xóa hàng bằng cách sử dụng giá trị sắc độ nguyên trong phạm vi 0–359, biểu thị độ xung quanh vòng tròn màu.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Xóa một dòng không làm thay đổi vị trí con trỏ hiện tại.

  • Vị trí con trỏ và số hàng được thiết lập bằng cách sử dụng setCursor.

  • Giá trị tham số hue dựa trên một vòng tròn màu sắc, như hình bên dưới, trong đó các giá trị biểu thị độ xung quanh vòng tròn (ví dụ: màu đỏ gần 0°, màu xanh lá cây gần 120° và màu xanh lam gần 240°).

Một vòng tròn màu hiển thị phạm vi màu từ 0 đến 359, trong đó màu đỏ là 0, màu xanh lá cây là 120 và màu xanh lam là 240.

Examples
// Display text on two rows
Brain.Screen.print("This text stays");
Brain.Screen.newLine();
Brain.Screen.print("This disappears");

// Wait 3 seconds before clearing row 2
wait(3, seconds);
Brain.Screen.clearLine(2);

row#

Trả về dòng chứa văn bản sẽ được in trên màn hình V5 Brain.

Available Functions
int32_t row();

Parameters

Hàm này không chấp nhận bất kỳ tham số nào.

Return Values

Trả về một giá trị int32_t biểu thị dòng sẽ in văn bản.

Số thứ tự hàng bắt đầu từ 1.

Notes
  • Vị trí con trỏ dựa trên phông chữ màn hình hiện tại .

  • Giá trị trả về cho biết vị trí hiển thị của thông tin in tiếp theo.

  • Giá trị hàng thay đổi khi văn bản được in hoặc khi setCursor được gọi.

Examples
// Display the cursor's current row
Brain.Screen.setCursor(3, 12);
Brain.Screen.print(Brain.Screen.row());

Ảnh chụp màn hình màn hình V5 Brain hiển thị văn bản 3 màu trắng ở góc trên bên trái màn hình, tại vị trí hàng 3 cột 12.

column#

Trả về cột chứa văn bản sẽ được in trên màn hình V5 Brain.

Available Functions
int32_t column();

Parameters

Hàm này không chấp nhận bất kỳ tham số nào.

Return Values

Trả về một giá trị int32_t biểu thị cột sẽ in văn bản.

Số thứ tự cột bắt đầu từ 1.

Notes
  • Vị trí con trỏ dựa trên phông chữ màn hình hiện tại .

  • Giá trị trả về cho biết vị trí hiển thị của thông tin in tiếp theo.

  • Giá trị cột thay đổi khi văn bản được in hoặc khi setCursor được gọi.

Examples
// Display the cursor's current column
Brain.Screen.setCursor(5, 15);
Brain.Screen.print(Brain.Screen.column());

Ảnh chụp màn hình màn hình V5 Brain hiển thị văn bản 15 màu trắng ở góc trên bên trái của màn hình, tại vị trí hàng 3 cột 15.

getStringHeight#

Trả về chiều cao, tính bằng pixel, của một chuỗi khi được hiển thị trên màn hình V5 Brain.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

Tham số

Kiểu

Sự miêu tả

cstr

const char*

Văn bản cần đo được cung cấp dưới dạng chuỗi kiểu C (ví dụ: “Hello”).

Return Values

Trả về một giá trị int32_t biểu thị chiều cao của chuỗi ký tự tính bằng pixel khi được hiển thị trên màn hình Brain.

Notes
  • The returned height depends on the currently selected screen font.

  • Chức năng này đo chiều dài chuỗi mà không cần vẽ nó lên màn hình.

  • Chiều cao trả về phản ánh cách chuỗi ký tự sẽ hiển thị khi được in ra.

getStringWidth#

Trả về chiều rộng, tính bằng pixel, của một chuỗi khi được hiển thị trên màn hình V5 Brain.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

Tham số

Kiểu

Sự miêu tả

cstr

const char*

Văn bản cần đo được cung cấp dưới dạng chuỗi kiểu C (ví dụ: “Hello”).

Return Values

Trả về một giá trị int32_t biểu thị chiều rộng của chuỗi ký tự tính bằng pixel khi được hiển thị trên màn hình Brain.

Notes
  • The returned width depends on the currently selected screen font.

  • Chức năng này đo chiều dài chuỗi mà không cần vẽ nó lên màn hình.

  • Độ rộng trả về phản ánh cách chuỗi ký tự sẽ hiển thị khi được in ra.

printAt#

In văn bản, số hoặc giá trị Boolean tại một tọa độ cụ thể trên màn hình V5 Brain.

Available Functions

1 — In ra kết quả đã định dạng tại vị trí pixel được chỉ định.

void printAt(
    int32_t    x,
    int32_t    y,
    const char* format,
    ... );

2 — In ra kết quả được định dạng tại vị trí pixel được chỉ định và thiết lập xem nền văn bản là mờ hay trong suốt.

void printAt(
    int32_t    x,
    int32_t    y,
    bool       bOpaque,
    const char* format,
    ... );

Parameters

Tham số

Kiểu

Sự miêu tả

x

int32_t

Vị trí x cần in, được tham chiếu đến gốc tọa độ màn hình.

y

int32_t

Vị trí trục y để in, được tham chiếu đến gốc tọa độ màn hình.

bOpaque

bool

Điều khiển xem văn bản in được vẽ mờ hay trong suốt:

  • true — Nền của văn bản in được tô bằng màu tô hiện tại.
  • false — Văn bản được vẽ trong suốt và nền không được tô.

format

const char*

Chuỗi định dạng kiểm soát nội dung được in trên màn hình (ví dụ: “Score: %d”).

…

Một hoặc nhiều giá trị bổ sung được chèn vào chuỗi định dạng, phân cách nhau bằng dấu phẩy.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Tọa độ x và y là tương đối so với gốc tọa độ màn hình hiện tại, có thể được thay đổi bằng cách sử dụng setOrigin.

  • Văn bản in sử dụng phông chữ màn hình hiện tại là .

  • Văn bản in sử dụng màu bút hiện tại là và màu.

  • Khi sử dụng chuỗi định dạng, số lượng và loại giá trị được truyền phải khớp với định dạng chỉ định trong chuỗi.

Examples
// Print "Center" at the center of the screen
Brain.Screen.printAt(220, 120, "Center");

Ảnh chụp màn hình màn hình V5 Brain với văn bản màu trắng có nội dung Center, được căn giữa trên màn hình.

clearScreen#

Xóa tất cả hình vẽ và văn bản khỏi màn hình Brain và đặt lại vị trí con trỏ về hàng 1, cột 1.

Available Functions

1 — Xóa màn hình thành màu đen.

void clearScreen();

2 — Xóa màn hình bằng cách sử dụng đối tượng được xác định trước hoặc màu tùy chỉnh.

void clearScreen(
    const color& color );

3 — Xóa màn hình bằng giá trị màu thập lục phân.

void clearScreen(
    const char* color );

4 — Xóa màn hình bằng cách sử dụng giá trị màu sắc.

void clearScreen(
    int hue );

Parameters

Tham số

Kiểu

Sự miêu tả

color

const color&

Xóa màn hình bằng cách sử dụng đối tượng màu color Các màu được xác định trước bao gồm:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Điều này cũng có thể sử dụng đối tượng màu tùy chỉnh.

color

const char*

Xóa màn hình bằng cách sử dụng giá trị màu thập lục phân được biểu diễn dưới dạng chuỗi (ví dụ: “#000000”).

hue

int

Xóa màn hình bằng cách sử dụng giá trị màu sắc nguyên trong phạm vi 0–359, biểu thị độ xung quanh vòng tròn màu.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Giá trị tham số hue dựa trên một vòng tròn màu sắc, như hình bên dưới, trong đó các giá trị biểu thị độ xung quanh vòng tròn (ví dụ: màu đỏ gần 0°, màu xanh lá cây gần 120° và màu xanh lam gần 240°).

Một vòng tròn màu hiển thị phạm vi màu từ 0 đến 359, trong đó màu đỏ là 0, màu xanh lá cây là 120 và màu xanh lam là 240.

Examples
// Clear screen after 2 seconds
Brain.Screen.print("VEXcode");
wait(2, seconds);
Brain.Screen.clearScreen();


// Clear screen to blue after 2 seconds
Brain.Screen.print("VEXcode");
wait(2, seconds);
Brain.Screen.clearScreen(blue);

Ảnh chụp màn hình màn hình V5 Brain với toàn bộ khu vực in được hiển thị màu xanh lam sáng.

setFont#

Thiết lập phông chữ được sử dụng cho văn bản hiển thị trên màn hình V5 Brain.

Điều này kiểm soát phông chữ được áp dụng cho đầu ra văn bản tiếp theo khi sử dụng các chức năng văn bản màn hình như print.

Available Functions
void setFont(
  fontType font );

Parameters

Tham số

Kiểu

Sự miêu tả

font

fontType

Sets the font to one of the following:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop20
  • prop30
  • prop40
  • prop60
  • fontType::cjk16 — Can print Chinese, Japanese, and Korean characters.
    • Simplified Chinese — Can be seen up to column 28.
    • Traditional Chinese — Can be seen up to column 28.
    • Japanese (Kanji) — Can be seen up to column 28.
    • Korean (Hangul) — Can be seen up to column 30.
These options are shown below.

Ảnh chụp màn hình V5 Brain với các số và chữ cái được in màu trắng ở góc trên bên trái bằng phông chữ MONO 12. Nó hiển thị AZ trên một dòng, trải dài khoảng một phần tư chiều rộng màn hình. Ở góc dưới bên trái, nó hiển thị 80 cột và 20 hàng.
mono12

Hình ảnh giống như hình trước, với phông chữ Mono 15. Nó hiển thị AZ trên một dòng, trải dài gần một nửa chiều rộng màn hình. Ở góc dưới bên trái, nó ghi 68 cột và 16 hàng.
mono15

Hình ảnh giống như hình trước, với phông chữ Mono 20. Nó hiển thị AZ trên một dòng, trải dài gần hai phần ba chiều rộng màn hình. Ở góc dưới bên trái, nó ghi 48 cột và 12 hàng.
mono20

Hình ảnh giống như hình trước, với phông chữ Mono 30. Nó hiển thị AZ trên một dòng, trải rộng gần như toàn bộ chiều rộng màn hình. Ở góc dưới bên trái, nó ghi 32 cột và 8 hàng.
mono30

Hình ảnh giống như hình trước, với phông chữ Mono 40. Nó hiển thị AX trên một dòng, trải rộng hết chiều rộng màn hình. Ở góc dưới bên trái, nó ghi 24 cột và 6 hàng.
mono40

Hình ảnh giống như hình trước, với phông chữ Mono 60. Nó hiển thị AP trên một dòng, trải rộng hết chiều rộng màn hình. Ở phía dưới, nó chỉ ra 16 cột và 4 hàng.
mono60

Hình ảnh giống như hình trước, với phông chữ Prop 20. Nó hiển thị AZ trên một dòng, trải dài gần hai phần ba chiều rộng màn hình. Ở góc dưới bên trái, nó ghi 48 cột và 12 hàng.
prop20

Hình ảnh giống như hình trước, với phông chữ Prop 30. Nó hiển thị AZ trên một dòng, trải rộng gần hết chiều rộng màn hình. Ở góc dưới bên trái, nó ghi 32 cột và 8 hàng.
prop30

Hình ảnh giống như hình trước, với phông chữ Prop 40. Nó hiển thị AU trên một dòng, trải rộng hết chiều rộng màn hình. Ở góc dưới bên trái, nó ghi 24 cột và 6 hàng.
prop40

Hình ảnh giống như hình trước, với phông chữ Prop 60. Nó hiển thị AN trên một dòng, trải rộng hết chiều rộng màn hình. Phía dưới ghi 15 cột và 4 hàng.
prop60

Hình ảnh giống như hình trước, với phông chữ CJK 16. Nó hiển thị AZ trên một dòng, trải dài khoảng hai phần ba màn hình. Các dòng tiếp theo đọc mã VEX bằng tiếng Trung giản thể, tiếng Trung phồn thể, tiếng Hàn và tiếng Nhật. Ở phía dưới, nó đọc 43 cột và 12 hàng.
fontType::cjk16

Return Values

Hàm này không trả về giá trị nào.

Examples
// Print larger text
Brain.Screen.setFont(mono40);
Brain.Screen.print("VEX");

Ảnh chụp màn hình màn hình V5 Brain hiển thị văn bản màu trắng có nội dung VEX với phông chữ lớn hơn mặc định ở góc trên bên trái.


// Print in Chinese
Brain.Screen.setFont(fontType::cjk16);
Brain.Screen.print("VEX机器人");

Ảnh chụp màn hình màn hình V5 Brain hiển thị dòng chữ "VEX机器人" bằng phông chữ tiếng Trung ở góc trên bên trái.

setPenWidth#

Thiết lập độ dày của các đường vẽ và đường viền hình dạng.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

Tham số

Kiểu

Sự miêu tả

width

uint32_t

Độ rộng của bút, tính bằng pixel, từ 0 đến 32.

Return Values

Hàm này không trả về giá trị nào.

Notes Examples
// Draw a rectangle with a pen width of 10
Brain.Screen.setPenWidth(10);
Brain.Screen.drawRectangle(50, 50, 130, 60);

Ảnh chụp màn hình màn hình V5 Brain hiển thị một hình chữ nhật có viền dày được in ở góc trên bên trái của màn hình.

setPenColor#

Thiết lập màu sắc cho văn bản, pixel, đường kẻ và đường viền hình dạng.

Available Functions

1 — Đặt màu bút bằng cách sử dụng đối tượng được xác định trước hoặc màu tùy chỉnh.

void setPenColor(
    const color& color );

2 — Đặt màu bút bằng giá trị màu thập lục phân.

void setPenColor(
    const char* color );

3 — Đặt màu bút bằng cách sử dụng giá trị sắc độ.

void setPenColor(
    int hue );

Parameters

Tham số

Kiểu

Sự miêu tả

color

const color&

Thiết lập màu bút bằng cách sử dụng đối tượng color Các màu được xác định trước bao gồm:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent

color

const char*

Thiết lập màu bút bằng cách sử dụng giá trị màu thập lục phân được biểu diễn dưới dạng chuỗi (ví dụ: “#FF0000”).

hue

int

Thiết lập màu bút bằng cách sử dụng giá trị sắc độ số nguyên trong phạm vi 0–359, biểu thị độ xung quanh vòng tròn màu (ví dụ: 0 là màu đỏ, 120 là màu xanh lá cây và 240 là màu xanh lam).

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Màu bút mặc định khi bắt đầu dự án là white.

  • Màu bút được sử dụng cho đường viền của các hình dạng (chẳng hạn như với drawCircle hoặc drawRectangle), văn bản và đầu ra số (với print và printAt) và các pixel riêng lẻ được vẽ bằng drawPixel.

  • Giá trị tham số hue dựa trên một vòng tròn màu sắc, như hình bên dưới, trong đó các giá trị biểu thị độ xung quanh vòng tròn (ví dụ: màu đỏ gần 0°, màu xanh lá cây gần 120° và màu xanh lam gần 240°).

Một vòng tròn màu hiển thị phạm vi màu từ 0 đến 359, trong đó màu đỏ là 0, màu xanh lá cây là 120 và màu xanh lam là 240.

Examples
// Draw a rectangle with orange borders
Brain.Screen.setPenColor(orange);
Brain.Screen.drawRectangle(50, 50, 130, 60);

Ảnh chụp màn hình màn hình V5 Brain hiển thị một hình chữ nhật được vẽ màu cam ở góc trên bên trái của màn hình.

setFillColor#

Thiết lập màu nền được sử dụng khi vẽ các hình dạng.

Available Functions

1 — Đặt màu tô bằng cách sử dụng đối tượng được xác định trước hoặc màu tùy chỉnh.

void setFillColor(
    const color& color );

2 — Đặt màu tô bằng giá trị màu thập lục phân.

void setFillColor(
    const char* color );

3 — Đặt màu tô bằng cách sử dụng giá trị sắc độ.

void setFillColor(
    int hue );

Parameters

Tham số

Kiểu

Sự miêu tả

color

const color&

Thiết lập màu nền bằng cách sử dụng đối tượng color Các màu được xác định trước bao gồm:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent

color

const char*

Thiết lập màu nền bằng cách sử dụng giá trị màu thập lục phân được biểu diễn dưới dạng chuỗi (ví dụ: “#00FF00”).

hue

int

Thiết lập màu nền bằng cách sử dụng giá trị sắc độ số nguyên trong phạm vi 0–359, biểu thị độ xung quanh vòng tròn màu (ví dụ: 0 là màu đỏ, 120 là màu xanh lá cây và 240 là màu xanh lam).

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Màu nền mặc định khi bắt đầu dự án là black.

  • Màu tô được sử dụng cho phần bên trong của các hình dạng (chẳng hạn như với drawCircle hoặc drawRectangle).

  • Màu tô được sử dụng làm màu nền cho văn bản in (chẳng hạn như với print và printAt).

    • Nếu sử dụng transparent với văn bản in, nền sẽ là black.

  • Giá trị tham số hue dựa trên một vòng tròn màu sắc, như hình bên dưới, trong đó các giá trị biểu thị độ xung quanh vòng tròn (ví dụ: màu đỏ gần 0°, màu xanh lá cây gần 120° và màu xanh lam gần 240°).

Một vòng tròn màu hiển thị phạm vi màu từ 0 đến 359, trong đó màu đỏ là 0, màu xanh lá cây là 120 và màu xanh lam là 240.

Examples
// Draw a rectangle filled with purple
  Brain.Screen.setFillColor(purple);
  Brain.Screen.drawRectangle(50, 100, 130, 60);

Ảnh chụp màn hình màn hình V5 Brain hiển thị một hình chữ nhật được tô màu tím ở góc dưới bên trái của màn hình.

setOrigin#

Thiết lập điểm gốc được sử dụng để vẽ và in dựa trên tọa độ trên màn hình Brain.

Available Functions
void setOrigin(
  int32_t x,
  int32_t y );

Parameters

Tham số

Kiểu

Sự miêu tả

x

int32_t

Vị trí x của gốc tọa độ so với góc trên bên trái màn hình Brain từ 0 đến 479.

y

int32_t

Vị trí trục y của điểm gốc so với góc trên bên trái màn hình Brain từ 0 đến 239.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Điểm gốc mặc định là góc trên bên trái màn hình tại tọa độ (0, 0).

  • Nguồn gốc áp dụng cho các hàm tọa độ như drawLine, drawRectangle, drawCircle, và printAt.

  • Cài đặt ban đầu vẫn có hiệu lực cho đến khi được thay đổi hoặc dự án được thiết lập lại.

setClipRegion#

Xác định một vùng hình chữ nhật trên màn hình, nơi tất cả hình vẽ và văn bản sẽ được giới hạn. Bất kỳ nội dung nào nằm ngoài vùng này sẽ không được hiển thị.

Available Functions
void setClipRegion(
  int x,
  int y,
  int width,
  int height );

Parameters

Tham số

Kiểu

Sự miêu tả

x

int

Tọa độ x của góc trên bên trái của vùng cắt, được biểu thị bằng một số nguyên từ 0 đến 479.

y

int

Tọa độ y của góc trên bên trái của vùng cắt, được biểu thị bằng một số nguyên từ 0 đến 239.

width

int

Chiều rộng của vùng cắt tính bằng pixel, được biểu thị dưới dạng số nguyên từ 0 đến 479.

height

int

Chiều cao của vùng cắt tính bằng pixel, được biểu thị dưới dạng số nguyên từ 0 đến 239.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Các chức năng vẽ vẫn được thực thi ngay cả khi chúng nằm ngoài vùng cắt, nhưng chỉ phần bên trong vùng đó mới hiển thị.

  • Tọa độ x và y là tương đối so với gốc tọa độ màn hình hiện tại, có thể được thay đổi bằng cách sử dụng setOrigin.

  • Vùng cắt chỉ áp dụng cho luồng hiện tại.

  • Việc thiết lập vùng cắt mới sẽ thay thế bất kỳ vùng cắt nào đã được thiết lập trước đó cho chủ đề hiện tại.

Examples
// Restrict text and drawings to a specific region
Brain.Screen.setClipRegion(0, 0, 120, 120);
Brain.Screen.drawRectangle(60, 60, 100, 100, red);
Brain.Screen.printAt(60, 60, "Cut off!");

Ảnh chụp màn hình của màn hình V5 Brain với văn bản màu trắng có nội dung "Cắt" và một hình vuông màu đỏ liền nét ngay bên dưới ở góc trên bên trái, phản ánh nội dung được in trong vùng cắt.

drawPixel#

Vẽ một điểm ảnh trên màn hình V5 Brain tại vị trí điểm ảnh x và y đã chọn.

Available Functions
void drawPixel(
  int x,
  int y );

Parameters

Tham số

Kiểu

Sự miêu tả

x

int

Tọa độ x nơi điểm ảnh sẽ được vẽ, được biểu thị bằng một số nguyên từ 0 đến 479.

y

int

Tọa độ y nơi điểm ảnh sẽ được vẽ, được biểu thị bằng một số nguyên từ 0 đến 239.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Các pixel được vẽ bằng cách sử dụng màu bút hiện tại được đặt bằng setPenColor.

  • Tọa độ x và y là tương đối so với gốc màn hình hiện tại, có thể được thiết lập bằng cách sử dụng setOrigin.

  • Nếu vị trí pixel được chỉ định nằm ngoài phạm vi màn hình, pixel đó sẽ không được vẽ.

Examples
// Draw the pixels marking the corners of a square
Brain.Screen.drawPixel(250, 100);
Brain.Screen.drawPixel(275, 100);
Brain.Screen.drawPixel(250, 125);
Brain.Screen.drawPixel(275, 125);

Ảnh chụp màn hình màn hình V5 Brain hiển thị một loạt các pixel hiển thị các góc của một hình vuông gần trung tâm màn hình.

drawLine#

Vẽ một đường thẳng nối hai điểm trên màn hình V5 Brain.

Available Functions
void drawLine(
  int x1,
  int y1,
  int x2,
  int y2 );

Parameters

Tham số

Kiểu

Sự miêu tả

x1

int

Tọa độ x ban đầu của đường thẳng, được biểu thị bằng một số nguyên từ 0 đến 479.

y1

int

Tọa độ y ban đầu của đường thẳng, được biểu thị bằng một số nguyên từ 0 đến 239.

x2

int

Tọa độ x cuối cùng của đường thẳng, được biểu thị bằng một số nguyên từ 0 đến 479.

y2

int

Tọa độ y cuối cùng của đường thẳng, được biểu thị bằng một số nguyên từ 0 đến 239.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Các đường được vẽ bằng cách sử dụng màu bút hiện tại được đặt bằng setPenColor.

  • Độ rộng của đường kẻ được xác định bởi độ rộng bút hiện tại được đặt bằng setPenWidth.

  • Tọa độ x và y là tương đối so với gốc màn hình hiện tại, có thể được thiết lập bằng cách sử dụng setOrigin.

  • Nếu bất kỳ phần nào của đường thẳng nằm ngoài phạm vi màn hình, chỉ phần hiển thị được mới được vẽ.

Examples
// Draw a line from the top left to bottom right of the screen
Brain.Screen.drawLine(0, 0, 479, 239);

Ảnh chụp màn hình màn hình V5 Brain hiển thị một đường chéo mỏng ở giữa, từ góc trên bên trái đến góc dưới bên phải.

drawRectangle#

Vẽ một hình chữ nhật trên màn hình V5 Brain tại vị trí và kích thước đã chỉ định.

Available Functions

1 — Draws and fills a rectangle using the currently configured fill color.

void drawRectangle(
    int x,
    int y,
    int width,
    int height );

2 — Vẽ và tô màu hình chữ nhật bằng cách sử dụng một đối tượng được xác định trước hoặc màu tùy chỉnh.

void drawRectangle(
    int           x,
    int           y,
    int           width,
    int           height,
    const color&  color );

3 — Vẽ và tô màu hình chữ nhật bằng giá trị màu thập lục phân.

void drawRectangle(
    int           x,
    int           y,
    int           width,
    int           height,
    const char*   color );

4 — Vẽ và tô màu hình chữ nhật bằng giá trị màu sắc.

void drawRectangle(
    int x,
    int y,
    int width,
    int height,
    int hue );

Parameters

Tham số

Kiểu

Sự miêu tả

x

int

Tọa độ x của góc trên bên trái của hình chữ nhật, được biểu thị bằng một số nguyên từ 0 đến 479.

y

int

Tọa độ y của góc trên bên trái của hình chữ nhật, được biểu thị bằng một số nguyên từ 0 đến 239.

width

int

Chiều rộng của hình chữ nhật, được biểu thị bằng một số nguyên từ 0 đến 479.

height

int

Chiều cao của hình chữ nhật, được biểu thị bằng một số nguyên từ 0 đến 239.

color

const color&

Fills the rectangle using a color object. Predefined colors include:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
This can also use a custom color object.

color

const char*

Tô màu hình chữ nhật bằng giá trị màu thập lục phân (ví dụ: “#FF0000”).

hue

int

Tô màu hình chữ nhật bằng giá trị màu trong khoảng 0–359.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Đường viền hình chữ nhật được vẽ bằng cách sử dụng màu bút hiện tại được đặt bằng setPenColor.

  • Độ dày đường viền được xác định bởi độ rộng bút hiện tại được đặt bằng setPenWidth.

  • Khi không có tham số color được cung cấp, phần bên trong hình chữ nhật sẽ được tô bằng màu tô hiện tại được đặt bằng setFillColor.

  • Tọa độ x và y là tương đối so với gốc tọa độ màn hình hiện tại, có thể được thay đổi bằng cách sử dụng setOrigin.

  • Nếu bất kỳ phần nào của hình chữ nhật nằm ngoài phạm vi màn hình, chỉ phần hiển thị được mới được vẽ.

  • Giá trị tham số hue dựa trên một vòng tròn màu sắc, như hình bên dưới, trong đó các giá trị biểu thị độ xung quanh vòng tròn (ví dụ: màu đỏ gần 0°, màu xanh lá cây gần 120° và màu xanh lam gần 240°).

Một vòng tròn màu hiển thị phạm vi màu từ 0 đến 359, trong đó màu đỏ là 0, màu xanh lá cây là 120 và màu xanh lam là 240.

Examples
// Draw a rectangle on the screen
Brain.Screen.drawRectangle(50, 50, 130, 60);

Ảnh chụp màn hình của bộ não V5 hiển thị một hình chữ nhật có viền trắng mỏng được in ở góc trên bên trái.

drawCircle#

Vẽ một vòng tròn trên màn hình V5 Brain tại vị trí và bán kính đã chỉ định.

Available Functions

1 — Draws and fills a circle using the currently configured fill color.

void drawCircle(
    int x,
    int y,
    int radius );

2 — Vẽ và tô màu một hình tròn bằng cách sử dụng một đối tượng được xác định trước hoặc màu tùy chỉnh.

void drawCircle(
    int           x,
    int           y,
    int           radius,
    const color&  color );

3 — Vẽ và tô màu một hình tròn bằng giá trị màu thập lục phân.

void drawCircle(
    int           x,
    int           y,
    int           radius,
    const char*   color );

4 — Vẽ và tô màu một hình tròn bằng cách sử dụng giá trị màu sắc.

void drawCircle(
    int x,
    int y,
    int radius,
    int hue );

Parameters

Tham số

Kiểu

Sự miêu tả

x

int

Tọa độ x của tâm đường tròn, được biểu thị bằng một số nguyên từ 0 đến 479.

y

int

Tọa độ y của tâm đường tròn, được biểu thị bằng một số nguyên từ 0 đến 239.

radius

int

Bán kính của hình tròn, được biểu thị bằng một số nguyên từ 0 đến 239 pixel.

color

const color&

Tô đầy hình tròn bằng cách sử dụng đối tượng màu color Các màu được xác định trước bao gồm:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Điều này cũng có thể sử dụng đối tượng màu tùy chỉnh.

color

const char*

Tô màu hình tròn bằng giá trị màu thập lục phân (ví dụ: “#FF0000”).

hue

int

Tô màu hình tròn bằng giá trị màu trong khoảng 0–359.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Đường viền hình tròn được vẽ bằng cách sử dụng màu bút hiện tại được đặt bằng setPenColor.

  • Độ dày đường viền được xác định bởi độ rộng bút hiện tại được đặt bằng setPenWidth.

  • Khi không có tham số color được cung cấp, phần bên trong của vòng tròn sẽ được tô bằng màu tô hiện tại được đặt bằng setFillColor.

  • Tọa độ x và y là tương đối so với gốc tọa độ màn hình hiện tại, có thể được thay đổi bằng cách sử dụng setOrigin.

  • Giá trị tham số hue dựa trên một vòng tròn màu sắc, như hình bên dưới, trong đó các giá trị biểu thị độ xung quanh vòng tròn (ví dụ: màu đỏ gần 0°, màu xanh lá cây gần 120° và màu xanh lam gần 240°).

Một vòng tròn màu hiển thị phạm vi màu từ 0 đến 359, trong đó màu đỏ là 0, màu xanh lá cây là 120 và màu xanh lam là 240.

Examples
// Draw a circle on the screen
Brain.Screen.drawCircle(240, 120, 40);

Ảnh chụp màn hình màn hình V5 Brain hiển thị một vòng tròn có viền trắng mỏng ở giữa.

drawImageFromFile#

Vẽ hình ảnh trên màn hình V5 Brain bằng cách sử dụng tệp hình ảnh được lưu trữ trên thẻ SD.

Available Functions
bool drawImageFromFile(
  const char* name,
  int x,
  int y );

Parameters

Tham số

Kiểu

Sự miêu tả

name

const char*

The filename of the image on the SD card. The file must have a .bmp or .png extension.

x

int

Tọa độ x, tính bằng pixel từ 0 đến 479, là vị trí mà cạnh trái của hình ảnh sẽ được vẽ.

y

int

Tọa độ y, tính bằng pixel từ 0 đến 239, là vị trí mà cạnh trên của hình ảnh sẽ được vẽ.

Return Values

Trả về giá trị Boolean cho biết hình ảnh có được hiển thị thành công hay không:

  • true — Hình ảnh đã được tải và hiển thị thành công trên màn hình.
  • false — Không thể hiển thị hình ảnh (ví dụ: nếu tệp không tồn tại hoặc không hợp lệ).

Notes
  • Các định dạng hình ảnh được hỗ trợ là .bmp và .png.

  • Kích thước tệp hình ảnh không được vượt quá 512 KB.

    • Nên sử dụng mã hóa RLE 8 bit để giảm thiểu kích thước tệp.

  • Kích thước hình ảnh tối đa được hỗ trợ là kích thước màn hình Brain (khoảng 479 x 239 pixel).

  • Tọa độ x và y là tương đối so với gốc tọa độ màn hình hiện tại, có thể được thay đổi bằng cách sử dụng setOrigin.

Examples
// Draw a bmp file on the Brain's screen at coordinate 0, 0
Brain.Screen.drawImageFromFile("test_image.bmp", 0, 0);

render#

Cho phép sử dụng bộ đệm kép cho màn hình của Brain. Sau khi được gọi, bất kỳ chức năng vẽ nào (như văn bản, hình dạng hoặc hình ảnh) sẽ không còn hiển thị ngay lập tức trong suốt phần còn lại của dự án. Thay vào đó, các cập nhật sẽ chỉ được hiển thị khi lệnh render được sử dụng lại. Điều này cho phép cập nhật màn hình mượt mà và được kiểm soát tốt hơn, nhưng có nghĩa là sẽ không có gì hiển thị cho đến khi lệnh render được sử dụng.

Available Functions

1 — Cho phép đệm kép hoặc hiển thị bộ đệm phía sau lên màn hình.

bool render();

2 — Hiển thị bộ đệm phía sau lên màn hình với khả năng điều khiển hành vi đồng bộ dọc và thực thi bộ lập lịch tùy chọn.

bool render(
    bool bVsyncWait,
    bool bRunScheduler = true );

Parameters

Tham số

Kiểu

Sự miêu tả

bVsyncWait

bool

​

  • true — Chờ màn hình làm mới theo chiều dọc trước khi hiển thị để giảm hiện tượng xé hình.
  • false — Không chờ màn hình làm mới theo chiều dọc trước khi hiển thị.

bRunScheduler

bool

Tùy chọn.

  • true (mặc định) — Cho phép các tác vụ nền chạy trong khi chờ hiển thị.
  • false — Không cho phép các tác vụ nền chạy trong khi chờ hiển thị.

Return Values

Trả về giá trị Boolean cho biết liệu các bản vẽ đã lưu trong bộ đệm có được hiển thị thành công trên màn hình hay không:

  • true — Các bản vẽ đã được hiển thị thành công trên màn hình.
  • false — Các bản vẽ không thể được hiển thị trên màn hình.
  • Notes
    • Việc gọi lệnh render sẽ yêu cầu sử dụng lệnh render cho phần còn lại của dự án.

    Examples
    Brain.Screen.render();
    
    // Draw text to the back buffer
    Brain.Screen.print("Render later...");
    
    // Wait for a screen press to render drawings
    while (!Brain.Screen.pressing()) {
      wait(20, msec);
    }
    Brain.Screen.render();
    
    

pressing#

Báo cáo xem màn hình V5 Brain hiện có đang được nhấn hay không.

Available Functions
bool pressing();

Parameters

Hàm này không chấp nhận bất kỳ tham số nào.

Return Values

Trả về giá trị Boolean cho biết trạng thái hiện tại của màn hình khi được nhấn:true — Màn hình hiện đang được nhấn. hoặc false — Màn hình không được nhấn.

Examples
// Change the screen's color after it's pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.setFillColor(green);
Brain.Screen.drawRectangle(0, 0, 479, 239);


// Display different messages after the screen is pressed
while (!Brain.Screen.pressing()) {
  wait(5, msec);
}
Brain.Screen.print("First message!");
Brain.Screen.newLine();

// Lift finger to press the screen again
while (Brain.Screen.pressing()) {
  wait(5, msec);
}
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}
Brain.Screen.print("Second message!");
Brain.Screen.newLine();

xPosition#

Trả về tọa độ x của lần nhấn cuối cùng trên màn hình V5 Brain.

Available Functions
int32_t xPosition();

Parameters

Hàm này không chấp nhận bất kỳ tham số nào.

Return Values

Trả về một giá trị int32_t biểu thị tọa độ x, tính bằng pixel từ 0 đến 479, của lần nhấn màn hình cuối cùng.

Examples
// Display a circle where the screen is pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.drawCircle(Brain.Screen.xPosition(), Brain.Screen.yPosition(), 20, white);

yPosition#

Trả về tọa độ y của lần nhấn cuối cùng trên màn hình V5 Brain.

Available Functions
int32_t yPosition();

Parameters

Hàm này không chấp nhận bất kỳ tham số nào.

Return Values

Trả về một giá trị int32_t biểu thị tọa độ y, tính bằng pixel từ 0 đến 239, của lần nhấn màn hình cuối cùng.

Examples
// Display a circle where the screen is pressed
while (Brain.Screen.pressing() == false) {
  wait(5, msec);
}

Brain.Screen.drawCircle(Brain.Screen.xPosition(), Brain.Screen.yPosition(), 20, white);

pressed#

Đăng ký một hàm sẽ được gọi khi màn hình V5 Brain được nhấn.

Available Functions

1 — Gọi một hàm khi màn hình được nhấn.

void pressed(
    void (*callback)(void)
);

2 — Gọi một hàm khi màn hình được nhấn và truyền một đối số do người dùng định nghĩa cho hàm gọi lại.

void pressed(
    void (*callback)(void*),
    void* arg );

Parameters

Tham số

Kiểu

Sự miêu tả

callback

void (*)(void)

Một hàm được gọi khi nhấn vào màn hình.

callback

void ()(void)

Một hàm được gọi khi nhấn vào màn hình và nhận một đối số do người dùng định nghĩa.

arg

void*

Một giá trị do người dùng định nghĩa được truyền vào hàm gọi lại khi màn hình được nhấn.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Hàm gọi lại được thực thi mỗi khi màn hình Brain được nhấn.

  • Chỉ có thể đăng ký một hàm gọi lại tại một thời điểm; việc gọi lại hàm pressed sẽ thay thế hàm gọi lại trước đó.

  • Hàm gọi lại phải trả về void.

Examples

Xác định hàm gọi lại (bên ngoài int main())

// Tracks how many times the screen is pressed.
void onScreenPressed(void* arg) {
  int* count = (int*)arg;
  (*count)++;

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Pressed %d times", *count);
}

Đăng ký hàm gọi lại bên trong int main()

int main() {
  int pressCount = 0;

  // Register the callback and pass a value to update.
  Brain.Screen.pressed(onScreenPressed, &pressCount);

  while (true) {
    wait(20, msec);
  }
}

released#

Đăng ký một hàm sẽ được gọi khi màn hình V5 Brain được nhả ra sau khi nhấn giữ.

Available Functions

1 — Gọi một hàm khi màn hình được thả ra sau khi nhấn.

void released(
    void (*callback)(void)
);

2 — Gọi một hàm khi màn hình được nhả ra sau khi nhấn và truyền một đối số do người dùng định nghĩa cho hàm gọi lại.

void released(
    void (*callback)(void*),
    void* arg );

Parameters

Tham số

Kiểu

Sự miêu tả

callback

void (*)(void)

Một hàm được gọi khi người dùng thả chuột khỏi màn hình sau khi nhấn giữ.

callback

void ()(void)

Một hàm được gọi khi người dùng nhả chuột khỏi màn hình sau khi nhấn giữ và nhận một đối số do người dùng định nghĩa.

arg

void*

Một giá trị do người dùng định nghĩa được truyền đến hàm gọi lại khi màn hình được nhả ra sau khi nhấn giữ.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Hàm gọi lại được thực thi mỗi khi màn hình Brain được nhả ra sau khi nhấn giữ.

  • Chỉ có thể đăng ký một hàm gọi lại tại một thời điểm; việc gọi released một lần nữa sẽ thay thế hàm gọi lại trước đó.

  • Hàm gọi lại phải trả về void.

Examples

Xác định hàm gọi lại (bên ngoài int main())

// Tracks how many times the screen is released.
void onScreenReleased(void* arg) {
  int* count = (int*)arg;
  (*count)++;

  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Released %d times", *count);
}

Đăng ký hàm gọi lại bên trong int main()

int main() {
  int releaseCount = 0;

  // Register the callback and pass a value to update.
  Brain.Screen.released(onScreenReleased, &releaseCount);

  while (true) {
    wait(20, msec);
  }
}