Näyttö#

Johdanto#

screen -luokka on johdettu brain -perusluokasta. Se ohjaa sitä, miten V5 Brain näyttää tekstiä, numeroita ja grafiikkaa kosketusnäytöllään ja miten se reagoi kosketussyötteeseen.

Oletusarvoisesti Brainiin tulostettava fontti on monospaced small, jossa on 12 riviä ja 48 saraketta.

Piirtämistä varten aivojen resoluutio on 480 x 240 pikseliä.

V5 Brain -näyttö, jossa on punaiset ruudukkoviivat, jotka näyttävät yhteensä 12 rivin ja 48 sarakkeen asettelun. Pikselimitat ovat 479 leveä ja 239 korkea. Vasen yläkulma alkaa (0,0) pikselistä ja riviltä 1, sarakkeesta 1, kun taas oikea alakulma päättyy (479, 239) pikseliin ja riviltä 12, sarakkeesta 48.

Pääsy#

screen -luokkaan pääsee käsiksi seuraavasti:

Brain.Screen

Muistiinpanoja#

  • Aivot tarjoavat screen -objektin. Sitä ei konstruoida suoraan.

  • Projektit käyttävät yhtä globaalia Brain -objektia, joten screen-funktioita kutsutaan käyttämällä Brain.Screen -objektia.

Esimerkki#

/* 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!");

Jäsenten toiminnot#

screen -luokka sisältää seuraavat jäsenfunktiot:

  • print — Tulostaa muotoiltua tekstiä, numeroita tai totuusarvoja Brain-näytölle.

  • setCursor — Siirtää tekstikohdistimen määritettyyn riviin ja sarakkeeseen.

  • newLine — Tyhjentää nykyisen rivin loppuosan ja siirtää kohdistimen seuraavalle riville.

  • clearLine — Tyhjentää nykyisen rivin loppuosan tai tyhjentää määritetyn rivin.

  • row — Palauttaa rivin, jolle teksti tulostetaan.

  • column — Palauttaa sarakkeen, johon teksti tulostetaan.

  • getStringHeight — Palauttaa merkkijonon korkeuden pikseleinä käyttäen nykyistä fonttia.

  • getStringWidth — Palauttaa merkkijonon leveyden pikseleinä käyttäen nykyistä fonttia.

  • printAt — Tulostaa muotoiltua tekstiä x- ja y-pikselisijaintiin.

  • clearScreen — Tyhjentää kaikki piirrokset ja tekstin Brain-näytöltä.

  • setFont — Asettaa näytölle tulostettaessa käytettävän fontin.

  • setPenWidth — Asettaa piirrettyjen viivojen ja ääriviivojen paksuuden.

  • setPenColor — Asettaa tekstin, pikseleiden, viivojen ja ääriviivojen värin.

  • setFillColor — Asettaa piirrettyjen muotojen ja tulostettujen tekstitaustojen täyttövärin.

  • setOrigin — Asettaa näyttökoordinaattien alkuperän.

  • setClipRegion — Rajoittaa näytön tulosteen suorakaiteen muotoiseen alueeseen.

  • drawPixel — Piirtää yhden pikselin koordinaattiin.

  • drawLine — Piirtää viivan kahden pisteen välille.

  • drawRectangle — Piirtää x- ja y-koordinaatteihin suorakulmion määritetyllä koolla.

  • drawCircle — Piirtää ympyrän x- ja y-koordinaateissa määritetyllä säteellä.

  • drawImageFromFile — Piirtää kuvan SD-kortilla olevasta tiedostosta näytölle.

  • render — Ottaa käyttöön kaksoispuskuroinnin tai renderöi taustapuskurin näytölle.

  • pressing — Palauttaa, painetaanko näyttöä parhaillaan.

  • xPosition — Palauttaa viimeisimmän näytöllä painalluksen x-koordinaatin.

  • yPosition — Palauttaa viimeisimmän näytöllä painalluksen y-koordinaatin.

  • pressed — Rekisteröi takaisinkutsufunktion suoritettavaksi, kun näyttöä painetaan.

  • released — Rekisteröi takaisinkutsufunktion suoritettavaksi, kun näyttö vapautetaan painamisen jälkeen.

Ennen minkään screen -jäsenfunktion kutsumista on luotava brain -instanssi alla olevan mukaisesti:

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

print#

Näyttää tekstiä, numeroita tai totuusarvoja V5 Brain -näytössä.

Available Functions

1 — Tulostaa muotoiltua tekstiä käyttämällä merkkijonoliteraaleja tai vain luettavia C-tyylisiä merkkijonoja.

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

2 — Tulostaa muotoiltua tekstiä muokattavia merkistötaulukoita käyttäen.

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

Parameters

Parametri

Tyyppi

Kuvaus

format

const char*

Muotoilumerkkijono, joka annetaan merkkijonoliteraalina tai vain luettavana C-tyylisenä merkkijonona (esimerkiksi “Score: %d”).

format

char*

Muokattavana merkkijonona annettu muotoilumerkkijono.

…

Yksi tai useampi lisäarvo, jotka lisätään muotoilumerkkijonoon pilkuilla erotettuna.

Return Values

Tämä funktio ei palauta arvoa.

Notes
  • Tuloste alkaa näytöllä kohdistimen nykyisestä sijainnista .

  • Tulostettu teksti käyttää nykyistä näytön fonttia .

  • Tulostetussa tekstissä käytetään nykyistä kynän väriä .

  • Teksti, joka tulostetaan arvolla print tulostetaan aina taustan kanssa, ja taustavärin määrää nykyinen täyttöväri

  • Muotoilumerkkijonoa käytettäessä välitettävien arvojen lukumäärän ja tyyppien on vastattava merkkijonon muotoilumäärittelijöitä.

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

Kuvakaappaus V5-aivoista, jossa näkyy teksti Hei, robotti! painettuna näytön vasempaan yläkulmaan valkoisella tekstillä.

setCursor#

Siirtää kohdistimen tiettyyn riviin ja sarakkeeseen V5 Brain -näytössä. Seuraava print -kutsu aloittaa tulostuksen tästä kohdasta.

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

Parameters

Parametri

Tyyppi

Kuvaus

row

int32_t

Rivi, johon kohdistin siirretään.

col

int32_t

Sarake, johon kohdistin siirretään.

Return Values

Tämä funktio ei palauta arvoa.

Notes
  • Vaikuttaa siihen, mistä seuraava tekstituloste alkaa käytettäessä print.

  • Rivit ja sarakkeet perustuvat nykyiseen asetettuun näyttöfonttiin.

  • Oletusfontti (mono20) käyttää 12 riviä ja 48 saraketta.

  • Funktion setCursor kutsuminen vaikuttaa vain seuraavan tekstitulosteen sijaintiin.

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

Kuvakaappaus V5 Brainista, jossa rivin 3 sarake 12 tulostuu näytön yläosaan lähelle keskustaa, kyseiseen kohtaan.

newLine#

Siirtää kohdistimen Brain-näytön seuraavan rivin alkuun.

Available Functions
void newLine();

Parameters

Tämä funktio ei hyväksy parametreja.

Return Values

Tämä funktio ei palauta arvoa.

Notes
  • Jos kohdistin on lauseen keskellä, newLine tyhjentää lopun rivin kohdistimen jälkeen ennen siirtymistä seuraavalle riville.

  • newLinekutsumisen jälkeen kursori sijoitetaan seuraavan rivin ensimmäiseen sarakkeeseen.

  • Kohdistimen sijainti ja rivinumerointi asetetaan käyttämällä setCursor.

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

Kuvakaappaus V5 Brain -näytöstä, jossa näkyy kaksi riviä valkoista tekstiä vasemmassa yläkulmassa. Ylimmällä rivillä lukee Rivi 1 ja toisella rivillä heti sen alapuolella Rivi 2.

clearLine#

Tyhjentää tekstin riviltä V5 Brain -näytössä.

Available Functions

1 — Tyhjentää nykyisen rivin lopun kohdistimen sijainnista.

void clearLine();

2 — Tyhjentää määritetyn rivin käyttämällä nykyistä määritettyä täyttöväriä.

void clearLine(
    int number );

3 — Tyhjentää määritetyn rivin käyttämällä ennalta määritettyä tai mukautettua väriä objektia.

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

4 — Tyhjentää määritetyn rivin käyttämällä heksadesimaaliväriarvoa.

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

5 — Tyhjentää määritetyn rivin käyttäen sävyarvoa.

void clearLine(
    int number,
    int hue );

Parameters

Parametri

Tyyppi

Kuvaus

number

int

Tyhjennettävän rivin numero. Rivien numerointi alkaa numerosta 1.

color

const color&

Clears the row 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*

Tyhjentää rivin käyttämällä heksadesimaalimuotoista väriarvoa (esimerkiksi “#000000”).

hue

int

Tyhjentää rivin käyttämällä kokonaislukuista sävyn arvoa väliltä 0359, joka edustaa asteita väriympyrän ympärillä.

Return Values

Tämä funktio ei palauta arvoa.

Notes
  • Rivin tyhjentäminen ei muuta kohdistimen nykyistä sijaintia.

  • Kohdistimen sijainti ja rivinumerointi asetetaan käyttämällä setCursor.

  • Sävyparametrin hue perustuu pyöreään väriympyrään, kuten alla on esitetty, jossa arvot edustavat asteita ympyrän ympärillä (esimerkiksi punainen lähellä 0°, vihreä lähellä 120° ja sininen lähellä 240°).

Väriympyrä, joka näyttää värialueen 0–359, jossa punainen on 0, vihreä on 120 ja sininen on 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#

Palauttaa rivin, jolle teksti tulostetaan V5 Brain -näytöllä.

Available Functions
int32_t row();

Parameters

Tämä funktio ei hyväksy parametreja.

Return Values

Palauttaa arvon int32_t joka edustaa riviä, jolle teksti tulostetaan.

Rivien numerointi alkaa numerosta 1.

Notes
  • Kohdistimen sijainti perustuu nykyiseen näytön fonttiin .

  • Palautettu arvo osoittaa, missä seuraava tulostettu tuloste näkyy.

  • Rivin arvo muuttuu, kun teksti tulostetaan tai kun setCursor kutsutaan.

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

Kuvakaappaus V5 Brain -näytöstä, jossa teksti 3 näkyy valkoisena näytön vasemmassa yläkulmassa, rivin 3 ja sarakkeen 12 kohdalla.

column#

Palauttaa sarakkeen, johon teksti tulostetaan V5 Brain -näytöllä.

Available Functions
int32_t column();

Parameters

Tämä funktio ei hyväksy parametreja.

Return Values

Palauttaa arvon int32_t joka edustaa saraketta, johon teksti tulostetaan.

Sarakkeiden numerointi alkaa numerosta 1.

Notes
  • Kohdistimen sijainti perustuu nykyiseen näytön fonttiin .

  • Palautettu arvo osoittaa, missä seuraava tulostettu tuloste näkyy.

  • Sarakkeen arvo muuttuu, kun teksti tulostetaan tai kun setCursor kutsutaan.

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

Kuvakaappaus V5 Brain -näytöstä, jossa teksti 15 näkyy valkoisena näytön vasemmassa yläkulmassa, rivin 3 sarakkeen 15 kohdalla.

getStringHeight#

Palauttaa merkkijonon korkeuden pikseleinä, kun se renderöidään V5 Brain -näytössä.

Available Functions
int32_t getStringHeight( 
    const char* cstr );

Parameters

Parametri

Tyyppi

Kuvaus

cstr

const char*

Mitattava teksti, joka annetaan C-tyylisenä merkkijonona (esimerkiksi “Hello”).

Return Values

Palauttaa arvon int32_t joka edustaa merkkijonon korkeutta pikseleinä Brain-näytössä renderöidyssä muodossa.

Notes
  • Palautettu korkeus riippuu valitusta näyttöfontista.

  • Tämä funktio mittaa merkkijonon piirtämättä sitä näytölle.

  • Palautettu korkeus heijastaa sitä, miltä merkkijono näyttäisi tulostettuna.

getStringWidth#

Palauttaa merkkijonon leveyden pikseleinä, kun se renderöidään V5 Brain -näytössä.

Available Functions
int32_t getStringWidth( 
    const char* cstr );

Parameters

Parametri

Tyyppi

Kuvaus

cstr

const char*

Mitattava teksti, joka annetaan C-tyylisenä merkkijonona (esimerkiksi “Hello”).

Return Values

Palauttaa arvon int32_t joka edustaa merkkijonon leveyttä pikseleinä, kun se renderöidään Brain-näytöllä.

Notes
  • Palautettu leveys riippuu valitusta näyttöfontista.

  • Tämä funktio mittaa merkkijonon piirtämättä sitä näytölle.

  • Palautettu leveys heijastaa sitä, miltä merkkijono näyttäisi tulostettuna.

printAt#

Tulostaa tekstiä, numeroita tai totuusarvoja tietyssä koordinaatissa V5 Brain -näytöllä.

Available Functions

1 — Tulostaa muotoillun tulosteen määritettyyn pikselisijaintiin.

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

2 — Tulostaa muotoillun tulosteen määritettyyn pikselisijaintiin ja määrittää, onko tekstin tausta läpinäkymätön vai peittävä.

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

Parameters

Parametri

Tyyppi

Kuvaus

x

int32_t

Tulostettava x-sijainti, viitaten näytön lähtöpisteeseen.

y

int32_t

Tulostettava y-akselin sijainti suhteessa näytön lähtöpisteeseen.

bOpaque

bool

Määrittää, piirretäänkö tulostettava teksti läpinäkymättömäksi vai läpinäkyväksi:

  • true — Tulostettavan tekstin tausta täytetään käyttämällä nykyistä täyttöväriä.
  • false — Teksti piirretään läpinäkyväksi eikä taustaa täytetä.

format

const char*

Muotoilumerkkijono, joka määrittää, mitä näytölle tulostetaan (esimerkiksi “Score: %d”).

…

Yksi tai useampi lisäarvo, jotka lisätään muotoilumerkkijonoon pilkuilla erotettuna.

Return Values

Tämä funktio ei palauta arvoa.

Notes
  • Koordinaatit x ja y ovat suhteessa nykyiseen näytön nollapisteeseen, jota voidaan muuttaa käyttämällä setOrigin.

  • Tulostettu teksti käyttää nykyistä näytön fonttia .

  • Tulostetussa tekstissä käytetään nykyistä kynän väriä .

  • Muotoilumerkkijonoa käytettäessä välitettävien arvojen lukumäärän ja tyyppien on vastattava merkkijonon muotoilumäärittelijöitä.

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

Kuvakaappaus V5 Brain -näytöstä, jossa on valkoista tekstiä "Keskellä" keskitettynä näytölle.

clearScreen#

Poistaa kaikki piirrokset ja tekstin Brain-näytöltä ja palauttaa kohdistimen riville 1, sarakkeeseen 1.

Available Functions

1 — Tyhjentää näytön mustaksi.

void clearScreen();

2 — Tyhjentää näytön käyttämällä ennalta määritettyä tai mukautettua väriä objektia.

void clearScreen(
    const color& color );

3 — Tyhjentää näytön käyttämällä heksadesimaaliväriarvoa.

void clearScreen(
    const char* color );

4 — Tyhjentää näytön käyttäen sävyarvoa.

void clearScreen(
    int hue );

Parameters

Parametri

Tyyppi

Kuvaus

color

const color&

Tyhjentää näytön käyttämällä color sisältävää objektia. Esimääritettyihin väreihin kuuluvat:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Tässä voi käyttää myös mukautettua väriobjektia.

color

const char*

Tyhjentää näytön käyttämällä heksadesimaalimuotoista väriarvoa, joka esitetään merkkijonona (esimerkiksi “#000000”).

hue

int

Tyhjentää näytön käyttämällä kokonaislukuista sävyarvoa väliltä 0359, joka edustaa asteita väriympyrän ympärillä.

Return Values

Tämä funktio ei palauta arvoa.

Notes
  • Sävyparametrin hue perustuu pyöreään väriympyrään, kuten alla on esitetty, jossa arvot edustavat asteita ympyrän ympärillä (esimerkiksi punainen lähellä 0°, vihreä lähellä 120° ja sininen lähellä 240°).

Väriympyrä, joka näyttää värialueen 0–359, jossa punainen on 0, vihreä on 120 ja sininen on 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);

Kuvakaappaus V5 Brain -näytöstä, jossa koko tulostusalue on kirkkaan sininen.

setFont#

Asettaa V5 Brain -näytössä näkyvän tekstin fontin.

Tämä määrittää fontin, jota käytetään myöhemmässä tekstitulostuksessa käytettäessä näyttötekstifunktioita, kuten print.

Available Functions
void setFont(
  fontType font );

Parameters

Parametri

Tyyppi

Kuvaus

font

fontType

Asettaa fontin johonkin seuraavista:

  • mono12
  • mono15
  • mono20
  • mono30
  • mono40
  • mono60
  • prop20
  • prop30
  • prop40
  • prop60
  • fontType::cjk16 — Voi tulostaa, japanilaisia ​​ja korealaisia ​​merkkejä.
    • Yksinkertaistettu kiina — Voidaan nähdä sarakkeeseen 28 asti.
    • Perinteinen kiina — Voidaan nähdä sarakkeeseen 28 asti.
    • Japani (kanji) — Voidaan nähdä sarakkeeseen 28 asti.
    • Korea (hangul) — Voidaan nähdä sarakkeeseen 30 asti.
Nämä vaihtoehdot näkyvät alla.

TA-kuvakaappaus V5 Brain -näytöstä, jonka vasempaan yläkulmaan on painettu valkoisia numeroita ja kirjaimia MONO 12 -fontilla. Se näyttää A-Z yhdellä rivillä, noin neljänneksen näytön leveydestä. Vasemmassa alakulmassa on 80 saraketta ja 20 riviä.
mono12

Sama kuva kuin edellinen, Mono 15 -fontilla. Se näyttää A-Ö yhdellä rivillä, lähes puolet näytön leveydestä. Vasemmassa alakulmassa näkyy 68 saraketta ja 16 riviä.
mono15

Sama kuva kuin edellinen, Mono 20 -fontilla. Se näyttää A-Ö yhdellä rivillä, lähes kahden kolmasosan ruudun leveydestä. Vasemmassa alakulmassa näkyy 48 saraketta ja 12 riviä.
mono20

Sama kuva kuin edellinen, Mono 30 -fontilla. Se näyttää A-Ö yhdellä rivillä lähes koko näytön leveydellä. Vasemmassa alakulmassa lukee 32 saraketta ja 8 riviä.
mono30

Sama kuva kuin edellinen, Mono 40 -fontilla. Se näyttää AX:n yhdellä rivillä, joka ulottuu koko näytön leveydelle. Vasemmassa alakulmassa lukee 24 saraketta ja 6 riviä.
mono40

Sama kuva kuin edellinen, Mono 60 -fontilla. Se näyttää AP:n yhdellä rivillä, joka ulottuu koko näytön leveydelle. Alhaalla se osoittaa 16 saraketta ja 4 riviä.
mono60

Sama kuva kuin edellinen, mutta Prop 20 -fontilla. Se näyttää A-Ö yhdellä rivillä, lähes kahden kolmasosan ruudun leveydestä. Vasemmassa alakulmassa näkyy 48 saraketta ja 12 riviä.
prop20

Sama kuva kuin edellinen, mutta Prop 30 -fontilla. Se näyttää A-Ö yhdellä rivillä, lähes koko näytön leveydellä. Vasemmassa alakulmassa lukee 32 saraketta ja 8 riviä.
prop30

Sama kuva kuin edellinen, mutta Prop 40 -fontilla. Se näyttää AU:n yhdellä rivillä, joka ulottuu koko näytön leveydelle. Vasemmassa alakulmassa lukee 24 saraketta ja 6 riviä.
prop40

Sama kuva kuin edellinen, mutta Prop 60 -fontilla. Se näyttää AN:n yhdellä rivillä, joka ulottuu koko näytön leveydelle. Alareunassa lukee 15 saraketta ja 4 riviä.
prop60

Sama kuva kuin edellinen, CJK 16 -fontilla. Se näyttää A-Z:n yhdellä rivillä, joka peittää noin kaksi kolmasosaa näytöstä. Seuraavilla riveillä lukee VEX-koodia yksinkertaistetulla kiinalla, perinteisellä kiinalla, korealla ja japanilla. Alhaalla lukee 43 saraketta ja 12 riviä.
fontType::cjk16

Return Values

Tämä funktio ei palauta arvoa.

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

Kuvakaappaus V5 Brain -näytöstä, jossa näkyy valkoista tekstiä, jossa lukee VEX oletusarvoa suuremmalla fontilla vasemmassa yläkulmassa.


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

Kuvakaappaus V5 Brain -näytöstä, jossa näkyy teksti "VEX机器人" kiinalaisella fontilla vasemmassa yläkulmassa.

setPenWidth#

Määrittää piirrettyjen viivojen ja ääriviivojen paksuuden.

Available Functions
void setPenWidth(
  uint32_t width );

Parameters

Parametri

Tyyppi

Kuvaus

width

uint32_t

Kynän leveys pikseleinä väliltä 0–32.

Return Values

Tämä funktio ei palauta arvoa.

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

Kuvakaappaus V5 Brain -näytöstä, jossa näkyy paksureunainen suorakulmio näytön vasempaan yläkulmaan.

setPenColor#

Määrittää tekstin, pikseleiden, viivojen ja ääriviivojen värin.

Available Functions

1 — Asettaa kynän värin käyttämällä ennalta määritettyä tai mukautettua väriä objektia.

void setPenColor(
    const color& color );

2 — Asettaa kynän värin heksadesimaaliarvon avulla.

void setPenColor(
    const char* color );

3 — Asettaa kynän värin sävyarvon avulla.

void setPenColor(
    int hue );

Parameters

Parametri

Tyyppi

Kuvaus

color

const color&

Asettaa kynän värin käyttämällä color -objektia. Esimääritettyihin väreihin kuuluvat:

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

color

const char*

Asettaa kynän värin käyttämällä heksadesimaalimuotoista väriarvoa, joka esitetään merkkijonona (esimerkiksi “#FF0000”).

hue

int

Asettaa kynän värin käyttämällä kokonaislukuarvoa väliltä 0359, joka edustaa asteita väriympyrän ympärillä (esimerkiksi 0 on punainen, 120 on vihreä ja 240 on sininen).

Return Values

Tämä funktio ei palauta arvoa.

Notes
  • Projektin alussa kynän oletusväri on white.

  • Kynän väriä käytetään muotojen ääriviivoihin (kuten funktioilla drawCircle tai drawRectangle), teksti- ja numeeriseen tulosteeseen (funktioilla print ja printAt) sekä yksittäisiin pikseleihin, jotka piirretään funktiolla drawPixel.

  • Sävyparametrin hue perustuu pyöreään väriympyrään, kuten alla on esitetty, jossa arvot edustavat asteita ympyrän ympärillä (esimerkiksi punainen lähellä 0°, vihreä lähellä 120° ja sininen lähellä 240°).

Väriympyrä, joka näyttää värialueen 0–359, jossa punainen on 0, vihreä on 120 ja sininen on 240.

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

Kuvakaappaus V5 Brain -näytöstä, jossa näkyy oranssilla piirretty suorakulmio näytön vasemmassa yläkulmassa.

setFillColor#

Määrittää muotojen piirtämisessä käytettävän täyttövärin.

Available Functions

1 — Asettaa täyttövärin käyttämällä ennalta määritettyä tai mukautettua väriä -objektia.

void setFillColor(
    const color& color );

2 — Asettaa täyttövärin heksadesimaaliarvon avulla.

void setFillColor(
    const char* color );

3 — Asettaa täyttövärin sävyarvon avulla.

void setFillColor(
    int hue );

Parameters

Parametri

Tyyppi

Kuvaus

color

const color&

Asettaa täyttövärin käyttämällä color -objektia. Esimääritettyihin väreihin kuuluvat:

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

color

const char*

Asettaa täyttövärin käyttämällä heksadesimaalimuotoista väriarvoa, joka esitetään merkkijonona (esimerkiksi “#00FF00”).

hue

int

Asettaa täyttövärin kokonaislukuarvona väliltä 0359, joka edustaa asteita väriympyrän ympärillä (esimerkiksi 0 on punainen, 120 on vihreä ja 240 on sininen).

Return Values

Tämä funktio ei palauta arvoa.

Notes
  • Oletusarvoinen täyttöväri projektin alussa on black.

  • Täyttöväriä käytetään muotojen sisäosissa (kuten esimerkiksi drawCircle tai drawRectangle).

  • Täyttöväriä käytetään tulostetun tekstin taustavärinä (kuten esimerkiksi print ja printAt).

    • Jos käytetään arvoa transparent tulostetun tekstin kanssa, tausta on black.

  • Sävyparametrin hue perustuu pyöreään väriympyrään, kuten alla on esitetty, jossa arvot edustavat asteita ympyrän ympärillä (esimerkiksi punainen lähellä 0°, vihreä lähellä 120° ja sininen lähellä 240°).

Väriympyrä, joka näyttää värialueen 0–359, jossa punainen on 0, vihreä on 120 ja sininen on 240.

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

Kuvakaappaus V5 Brain -näytöstä, jossa näkyy violetilla täytetty suorakulmio näytön vasemmassa alakulmassa.

setOrigin#

Asettaa piirtämisessä ja koordinaatistoon perustuvassa tulostuksessa käytettävän origon Brain-näytössä.

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

Parameters

Parametri

Tyyppi

Kuvaus

x

int32_t

Origon x-sijainti suhteessa Brain-näytön vasempaan yläkulmaan välillä 0–479.

y

int32_t

Origon y-akselin sijainti suhteessa Brain-näytön vasempaan yläkulmaan välillä 0–239.

Return Values

Tämä funktio ei palauta arvoa.

Notes
  • Oletusarvoinen lähtöpiste on näytön vasen yläkulma koordinaateissa (0, 0).

  • Origo pätee koordinaattifunktioihin, kuten drawLine, drawRectangle, drawCircle ja printAt.

  • Alkuperä pysyy voimassa, kunnes sitä muutetaan uudelleen tai projekti nollataan.

setClipRegion#

Määrittää näytölle suorakaiteen muotoisen alueen, johon kaikki piirrokset ja teksti rajataan. Tämän alueen ulkopuolella olevaa sisältöä ei näytetä.

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

Parameters

Parametri

Tyyppi

Kuvaus

x

int

Leikkausalueen vasemman yläkulman x-koordinaatti kokonaislukuna väliltä 0–479.

y

int

Leikkausalueen vasemman yläkulman y-koordinaatti kokonaislukuna väliltä 0–239.

width

int

Leikkausalueen leveys pikseleinä, kokonaislukuna 0–479.

height

int

Leikkausalueen korkeus pikseleinä, kokonaislukuna 0–239.

Return Values

Tämä funktio ei palauta arvoa.

Notes
  • Piirtofunktioita suoritetaan edelleen, vaikka ne osuisivatkin leikealueen ulkopuolelle, mutta vain alueen sisällä oleva osa on näkyvissä.

  • Koordinaatit x ja y ovat suhteessa nykyiseen näytön nollapisteeseen, jota voidaan muuttaa käyttämällä setOrigin.

  • Leikkausalue koskee vain nykyistä säikettä.

  • Uuden leikealueen asettaminen korvaa kaikki aiemmin asetetut leikealueet nykyiselle säikeelle.

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!");

Kuvakaappaus V5 Brainin näytöstä, jossa on valkoinen teksti "Leikkaa pois" ja sen alla vasemmassa yläkulmassa punainen neliö, joka heijastaa leikealueelle tulostettua sisältöä.

drawPixel#

Piirtää yhden pikselin V5 Brain -näyttöön valittuun x- ja y-pikselisijaintiin.

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

Parameters

Parametri

Tyyppi

Kuvaus

x

int

Pikselin piirrettävä x-koordinaatti kokonaislukuna 0–479.

y

int

Y-koordinaatti, johon pikseli piirretään, kokonaislukuna 0–239.

Return Values

Tämä funktio ei palauta arvoa.

Notes
  • Pikselit piirretään käyttämällä nykyistä kynän väriä, joka on asetettu setPenColor-asetuksella.

  • Koordinaatit x ja y ovat suhteessa nykyiseen näytön nollapisteeseen, joka voidaan asettaa käyttämällä setOrigin.

  • Jos määritetty pikselin sijainti on näytön rajojen ulkopuolella, pikseliä ei piirretä.

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);

Kuvakaappaus V5 Brain -näytöstä, jossa näkyy pikselien kokoelma, joka näyttää neliön kulmat lähellä näytön keskustaa.

drawLine#

Piirtää suoran viivan, joka yhdistää kaksi pistettä V5 Brain -näytössä.

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

Parameters

Parametri

Tyyppi

Kuvaus

x1

int

Suoran aloitus-x-koordinaatti kokonaislukuna 0–479.

y1

int

Suoran aloitus-y-koordinaatti kokonaislukuna väliltä 0–239.

x2

int

Suoran päättymispisteen x-koordinaatti kokonaislukuna väliltä 0–479.

y2

int

Suoran päätepisteen y-koordinaatti kokonaislukuna väliltä 0–239.

Return Values

Tämä funktio ei palauta arvoa.

Notes
  • Viivat piirretään käyttämällä nykyistä kynän väriä, joka on asetettu setPenColor -asetuksella.

  • Viivan leveys määräytyy kynän nykyisen leveyden mukaan, joka on asetettu setPenWidth-metodilla.

  • Koordinaatit x ja y ovat suhteessa nykyiseen näytön nollapisteeseen, joka voidaan asettaa käyttämällä setOrigin.

  • Jos jokin osa viivasta on näytön rajojen ulkopuolella, vain näkyvä osa piirretään.

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

V5 Brain -näytön kuvakaappauksessa näkyy ohut vinoviiva keskellä vasemmasta yläkulmasta oikeaan alakulmaan.

drawRectangle#

Piirtää suorakulmion V5 Brain -näyttöön määritettyyn paikkaan ja kokoon.

Available Functions

1 — Piirtää ja täyttää suorakulmion käyttämällä nykyistä määritettyä täyttöväriä.

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

2 — Piirtää ja täyttää suorakulmion käyttämällä ennalta määritettyä tai mukautettua väriä objektia.

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

3 — Piirtää ja täyttää suorakulmion käyttämällä heksadesimaaliväriarvoa.

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

4 — Piirtää ja täyttää suorakulmion käyttäen sävyarvoa.

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

Parameters

Parametri

Tyyppi

Kuvaus

x

int

Suorakulmion vasemman yläkulman x-koordinaatti kokonaislukuna väliltä 0–479.

y

int

Suorakulmion vasemman yläkulman y-koordinaatti kokonaislukuna väliltä 0–239.

width

int

Suorakulmion leveys kokonaislukuna väliltä 0–479.

height

int

Suorakulmion korkeus kokonaislukuna väliltä 0–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äyttää suorakulmion heksadesimaaliväriarvolla (esimerkiksi “#FF0000”).

hue

int

Täyttää suorakulmion sävyarvolla väliltä 0359.

Return Values

Tämä funktio ei palauta arvoa.

Notes
  • Suorakulmion ääriviiva piirretään käyttämällä nykyistä kynän väriä, joka on asetettu setPenColor -asetuksella.

  • Ääriviivan paksuus määräytyy kynän nykyisen leveyden mukaan, joka on asetettu setPenWidth-metodilla.

  • Kun color -parametria ei anneta, suorakulmion sisäosa täytetään nykyisellä täyttövärillä, joka on asetettu setFillColor -metodilla.

  • Koordinaatit x ja y ovat suhteessa nykyiseen näytön nollapisteeseen, jota voidaan muuttaa käyttämällä setOrigin.

  • Jos jokin osa suorakulmiosta on näytön rajojen ulkopuolella, vain näkyvä osa piirretään.

  • Sävyparametrin hue perustuu pyöreään väriympyrään, kuten alla on esitetty, jossa arvot edustavat asteita ympyrän ympärillä (esimerkiksi punainen lähellä 0°, vihreä lähellä 120° ja sininen lähellä 240°).

Väriympyrä, joka näyttää värialueen 0–359, jossa punainen on 0, vihreä on 120 ja sininen on 240.

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

V5 Brainin näytön kuvakaappauksessa näkyy suorakulmio, jonka vasemmassa yläkulmassa on ohut valkoinen reunus.

drawCircle#

Piirtää ympyrän V5 Brain -näyttöön määritettyyn kohtaan ja säteeseen.

Available Functions

1 — Piirtää ja täyttää ympyrän käyttämällä nykyistä määritettyä täyttöväriä.

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

2 — Piirtää ja täyttää ympyrän käyttämällä ennalta määritettyä tai mukautettua väriä objektia.

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

3 — Piirtää ja täyttää ympyrän käyttämällä heksadesimaaliväriarvoa.

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

4 — Piirtää ja täyttää ympyrän käyttäen sävyarvoa.

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

Parameters

Parametri

Tyyppi

Kuvaus

x

int

Ympyrän keskipisteen x-koordinaatti kokonaislukuna väliltä 0–479.

y

int

Ympyrän keskipisteen y-koordinaatti kokonaislukuna väliltä 0–239.

radius

int

Ympyrän säde, joka annetaan kokonaislukuna väliltä 0 - 239 pikseliä.

color

const color&

Täyttää ympyrän käyttämällä color sisältävää objektia. Esimääritettyihin väreihin kuuluvat:

  • black
  • white
  • red
  • green
  • blue
  • yellow
  • orange
  • purple
  • cyan
  • transparent
Tässä voi käyttää myös mukautettua väriobjektia.

color

const char*

Täyttää ympyrän heksadesimaaliväriarvolla (esimerkiksi “#FF0000”).

hue

int

Täyttää ympyrän käyttämällä sävyarvoa väliltä 0–359.

Return Values

Tämä funktio ei palauta arvoa.

Notes
  • Ympyrän ääriviiva piirretään käyttämällä nykyistä kynän väriä, joka on asetettu setPenColor -asetuksella.

  • Ääriviivan paksuus määräytyy kynän nykyisen leveyden mukaan, joka on asetettu setPenWidth-metodilla.

  • Kun color -parametria ei anneta, ympyrän sisäosa täytetään käyttämällä nykyistä täyttöväriä, joka on asetettu setFillColor -mekaniikalla.

  • Koordinaatit x ja y ovat suhteessa nykyiseen näytön nollapisteeseen, jota voidaan muuttaa käyttämällä setOrigin.

  • Sävyparametrin hue perustuu pyöreään väriympyrään, kuten alla on esitetty, jossa arvot edustavat asteita ympyrän ympärillä (esimerkiksi punainen lähellä 0°, vihreä lähellä 120° ja sininen lähellä 240°).

Väriympyrä, joka näyttää värialueen 0–359, jossa punainen on 0, vihreä on 120 ja sininen on 240.

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

V5 Brain -näytön kuvakaappauksessa näkyy ympyrä, jonka keskellä on ohut valkoinen reunus.

drawImageFromFile#

Piirtää kuvan V5 Brain -näyttöön käyttämällä SD-kortille tallennettua kuvatiedostoa.

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

Parameters

Parametri

Tyyppi

Kuvaus

name

const char*

SD-kortilla olevan kuvan tiedostonimi. Tiedoston tiedostopäätteen on oltava .bmp tai .png.

x

int

X-koordinaatti pikseleinä 0–479, johon kuvan vasen reuna piirretään.

y

int

Y-koordinaatti pikseleinä 0–239, johon kuvan yläreuna piirretään.

Return Values

Palauttaa totuusarvon, joka ilmaisee, onnistuiko kuvan piirtäminen:

  • true — Kuva ladattiin ja piirrettiin näytölle onnistuneesti.
  • false — Kuvaa ei voitu piirtää (esimerkiksi jos tiedostoa ei ole tai se on virheellinen).

Notes
  • Tuetut kuvamuodot ovat .bmp ja .png.

  • Kuvatiedoston koko ei saa ylittää 512 KB

    • Tiedostokoon minimoimiseksi suositellaan 8-bittistä RLE-koodausta.

  • Suurimmat tuetut kuvamitat ovat Brain-näytön koko (noin 479 x 239 pikseliä).

  • Koordinaatit x ja y ovat suhteessa nykyiseen näytön nollapisteeseen, jota voidaan muuttaa käyttämällä setOrigin.

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

render#

Mahdollistaa Brainin näytön kaksoispuskuroinnin. Kun funktio on kutsuttu, piirtofunktiot (kuten teksti, muodot tai kuvat) eivät enää näy välittömästi projektin loppuosassa. Sen sijaan päivitykset näkyvät vasta, kun render -käytetään uudelleen. Tämä mahdollistaa sujuvammat ja hallitummat näytön päivitykset, mutta tarkoittaa, että mikään ei ole näkyvissä ennen kuin render -käytetään.

Available Functions

1 — Ottaa käyttöön kaksoispuskuroinnin tai renderöi takapuskurin näytölle.

bool render();

2 — Renderöi takapuskurin näytölle ja hallitsee pystysuuntaisen synkronoinnin toimintaa ja valinnaista ajastimen suoritusta.

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

Parameters

Parametri

Tyyppi

Kuvaus

bVsyncWait

bool

​

  • true — Odota näytön pystysuuntaista päivitystä ennen renderöintiä visuaalisen repeytymisen vähentämiseksi.
  • false — Älä odota näytön pystysuuntaista päivitystä ennen renderöintiä.

bRunScheduler

bool

Valinnainen.

  • true (oletus) — Salli taustatehtävien suorittamisen renderöintiä odotettaessa.
  • false — Älä salli taustatehtävien suorittamista renderöintiä odotettaessa.

Return Values

Palauttaa totuusarvon, joka ilmaisee, renderöitiinkö puskuriin tallennetut piirrokset näytölle onnistuneesti:

  • true — Piirrokset renderöitiin näytölle onnistuneesti.
  • false — Piirroksia ei voitu renderöidä näytölle.
  • Notes
    • Funktion render kutsuminen edellyttää, että projektin loppuosassa käytetään funktiota render.

    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#

Ilmoittaa, painetaanko V5 Brain -näyttöä parhaillaan.

Available Functions
bool pressing();

Parameters

Tämä funktio ei hyväksy parametreja.

Return Values

Palauttaa totuusarvon, joka ilmaisee näytön nykyisen painetun tilan:true — Näyttöä painetaan parhaillaan. tai false — Näyttöä ei paineta.

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#

Palauttaa viimeisen painalluksen x-koordinaatin V5 Brain -näytössä.

Available Functions
int32_t xPosition();

Parameters

Tämä funktio ei hyväksy parametreja.

Return Values

Palauttaa arvon int32_t joka edustaa viimeisimmän näytön painalluksen x-koordinaattia pikseleinä välillä 0 - 479.

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#

Palauttaa viimeisen painalluksen y-koordinaatin V5 Brain -näytössä.

Available Functions
int32_t yPosition();

Parameters

Tämä funktio ei hyväksy parametreja.

Return Values

Palauttaa arvon int32_t joka edustaa viimeisimmän näytön painalluksen y-koordinaattia pikseleinä välillä 0 - 239.

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#

Rekisteröi funktion, joka kutsutaan, kun V5 Brain -näyttöä painetaan.

Available Functions

1 — Kutsuu funktiota, kun näyttöä painetaan.

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

2 — Kutsuu funktiota, kun näyttöä painetaan, ja välittää käyttäjän määrittämän argumentin takaisinkutsufunktiolle.

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

Parameters

Parametri

Tyyppi

Kuvaus

callback

void (*)(void)

Funktio, jota kutsutaan, kun näyttöä painetaan.

callback

void ()(void)

Funktio, jota kutsutaan, kun näyttöä painetaan, ja joka vastaanottaa käyttäjän määrittämän argumentin.

arg

void*

Käyttäjän määrittämä arvo, joka välitetään takaisinkutsufunktiolle, kun näyttöä painetaan.

Return Values

Tämä funktio ei palauta arvoa.

Notes
  • Takaisinkutsutoiminto suoritetaan joka kerta, kun Brain-näyttöä painetaan.

  • Kerrallaan voidaan rekisteröidä vain yksi takaisinkutsufunktio; numeron pressed painaminen uudelleen korvaa edellisen takaisinkutsufunktion.

  • Takaisinkutsufunktion on palautettava void.

Examples

Määrittele takaisinkutsufunktio ( 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);
}

Rekisteröi takaisinkutsu 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#

Rekisteröi funktion, joka kutsutaan, kun V5 Brain -näyttö vapautetaan painalluksen jälkeen.

Available Functions

1 — Kutsuu funktiota, kun näyttö vapautetaan painamisen jälkeen.

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

2 — Kutsuu funktiota, kun näyttö vapautetaan painalluksen jälkeen, ja välittää käyttäjän määrittämän argumentin takaisinkutsufunktiolle.

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

Parameters

Parametri

Tyyppi

Kuvaus

callback

void (*)(void)

Funktio, jota kutsutaan, kun näyttö vapautetaan painamisen jälkeen.

callback

void ()(void)

Funktio, jota kutsutaan, kun näyttö vapautetaan painamisen jälkeen ja joka vastaanottaa käyttäjän määrittämän argumentin.

arg

void*

Käyttäjän määrittämä arvo, joka välitetään callback-funktiolle, kun näyttö vapautetaan painamisen jälkeen.

Return Values

Tämä funktio ei palauta arvoa.

Notes
  • Takaisinkutsutoiminto suoritetaan joka kerta, kun Brain-näyttö vapautetaan painalluksen jälkeen.

  • Kerrallaan voidaan rekisteröidä vain yksi takaisinkutsufunktio; funktion released uudelleen kutsuminen korvaa edellisen takaisinkutsufunktion.

  • Takaisinkutsufunktion on palautettava void.

Examples

Määrittele takaisinkutsufunktio ( 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);
}

Rekisteröi takaisinkutsu 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);
  }
}