Viesti#

Johdanto#

Kaksi VEX AIM -koodausrobottia voidaan linkittää toisiinsa, jotta ne voivat kommunikoida projektin aikana. Viestilohkojen avulla toinen robotti voi lähettää viestin toiselle robotille. Viesti voi sisältää pelkän tekstin tai tekstin ja numeron.

Vastaanotetut viestit tallennetaan FIFO-jonoon (first-in, first-out). Tämä tarkoittaa, että ensimmäisenä vastaanotettu viesti luetaan ensimmäisenä.

Käytä get latest message-lohkoa seuraavan vastaanotetun viestin tallentamiseen. Käytä sitten latest message-raporttilohkoa tallennetun tekstin lukemiseen. Jos viesti sisältää myös numeron, käytä get latest message with data-lohkoa molempien arvojen tallentamiseen ja käytä sitten latest message- ja latest data-lohkoja niiden lukemiseen.

Huomautus: Jotta viestejä voidaan lähettää ja vastaanottaa, molempien robottien on oltava linkitettyinä ja molempien robottien on oltava käynnissä projekteja, jotka käyttävät viestilohkoja.

Alla on luettelo kaikista lohkoista:

Arvot — Lue viestin tiedot tai tarkista viestin ja yhteyden tila.

Toiminnot — Lähetä tai tallenna vastaanotetut viestit.

Arvot#

viimeisin viesti#

Viimeisimmän viestin raportointilohko raportoi viimeksi tallennetun tekstiviestin. Tämä lohko ei hae uutta viestiä itsessään. Käytä ensin hae viimeisin viesti tai hae viimeisin viesti tiedoineen ja käytä sitten viimeisintä viestiä tallennetun tekstin näyttämiseen tai käytä sitä toisessa lohkossa.

uusin viestitoimittajan lohko#
(viimeisin viesti)

Parametrit

Kuvaus

Tällä lohkolla ei ole parametreja.

Esimerkki

Robotti 1

Kun näyttöä painetaan, lähettää viestin robotille 2.#
kun näyttö [painettu v]
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
tulosta [Robot 1] näytöllä ▶
lähetä viesti [Hello, Robot 2!]

Robotti 2

Käynnistyksen yhteydessä näyttää viimeisimmän tallennetun viestin.#
kun käynnistetään
[Code for Robot 2.]
[Display the message Robot 1 sends.]
tulosta [Robot 2] näytöllä ▶
siirrä kursori seuraavalle riville näytöllä
odota kunnes <onko viesti saatavilla?>
hae viimeisin viesti
tulosta (viimeisin viesti) näytöllä ▶

uusimmat tiedot#

Viimeisimmän tiedon raportointilohko raportoi viimeksi tallennetun numeron viestistä, joka sisälsi dataa. Tämä lohko ei saa uutta numeroa itsessään. Käytä ensin hae viimeisin viesti tiedoilla ja käytä sitten viimeisimpiä tietoja toisessa lohkossa, kuten ajomatkassa, käännössuunnassa tai nopeusarvossa.

uusin datatoimittajalohko#
(viimeisin data)

Parametrit

Kuvaus

Tällä lohkolla ei ole parametreja.

Esimerkki

Robotti 1

Käynnistettynä lähettää jatkuvasti robotin 1 suuntaa robotille 2.#
kun käynnistetään
[Code for Robot 1.]
[Continuously send the current heading to Robot 2.]
tulosta [Robot 1] näytöllä ▶
ikuisesti
lähetä viesti [heading] datalla (suuntakulma asteina)
Loppu

Robotti 2

Käynnistyksen yhteydessä kääntyy vastaamaan viimeksi tallennettua dataa.#
kun käynnistetään
[Code for Robot 2.]
[Turn to match Robot 1's heading.]
tulosta [Robot 2] näytöllä ▶
ikuisesti
jos <onko viesti saatavilla?> niin
hae viimeisin viesti datalla
käänny suuntakulmaan (viimeisin data) astetta ▶
Loppu
Loppu

onko viesti saatavilla?#

Boolen lohko onko viesti saatavilla? raportoi, odottaako viesti jonossa. Käytä tätä lohkoa ennen get latest message- tai get latest message with data -lauseketta, jotta vastaanottava robotti yrittää tallentaa viestin vasta sen saapumisen jälkeen.

  • Tosi — Viesti on luettavissa.

  • Epätosi — Ei ole luettavia viestejä.

Onko viesti saatavilla? Boole-lohko#
<onko viesti saatavilla?>

Parametrit

Kuvaus

Tällä lohkolla ei ole parametreja.

Esimerkki

Robotti 1

Kun näyttöä painetaan, lähettää viestin robotille 2.#
kun näyttö [painettu v]
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
tulosta [Robot 1] näytöllä ▶
lähetä viesti [message]

Robotti 2

Käynnistyksen yhteydessä näyttää viestin, kun robotti 1 lähettää viestin.#
kun käynnistetään
[Code for Robot 2.]
[Display a message when Robot 1 sends a message.]
tulosta [Robot 2] näytöllä ▶
siirrä kursori seuraavalle riville näytöllä
odota kunnes <onko viesti saatavilla?>
tulosta [Received!] näytöllä ▶

on kytketty?#

Boolen onko yhdistetty?-lohko raportoi, onko robotti linkitetty toiseen robottiin. Käytä tätä lohkoa ennen viestien lähettämistä tai odottamista, jos projektin on tarkistettava, että robottien välinen yhteys on valmis.

  • Tosi — Robotti on linkitetty toiseen robottiin.

  • Väärin — Robotti ei ole linkitetty toiseen robottiin.

on yhdistetty? Boolen lohko#
<yhdistetty?>

Parametrit

Kuvaus

Tällä lohkolla ei ole parametreja.

Esimerkki

Käynnistyksen jälkeen näyttää, onko robotti yhdistetty.#
kun käynnistetään
[Turn off one of the linked robots to see the message change.]
ikuisesti
tyhjennä näyttö
tulosta <yhdistetty?> näytöllä ▶
Loppu

linkitetyn robotin nimi#

Linkitetyn robotin nimen raportointilohko raportoi linkitetyn robotin nimen. Käytä tätä lohkoa näyttääksesi, mikä robotti on yhdistettynä ennen viestien lähettämistä tai vastaanottamista. Jos robottia ei ole yhdistetty, tämä lohko raportoi Ei mitään.

linkitetyn robotin nimi reportterilohko#
(linkitetyn robotin nimi)

Parametrit

Kuvaus

Tällä lohkolla ei ole parametreja.

Esimerkki

Käynnistyksen yhteydessä näyttää linkitetyn robotin nimen.#
kun käynnistetään
[Display the name of the robot that is linked.]
tulosta (linkitetyn robotin nimi) näytöllä ▶

Toiminnot#

lähetä viesti#

Lähetä viesti -pinolohko lähettää tekstiä linkitetylle robotille. Käytä tätä lohkoa yhdellä robotilla, kun toisen robotin on vastaanotettava komento, signaali tai lyhyt tieto. Tarkista vastaanottavalla robotilla funktiolla onko viesti saatavilla?, onko viesti saapunut, ja käytä sitten funktiota hae viimeisin viesti ennen kuin luet sen funktiolla viimeisin viesti.

Lähetä viestipinolohko#
lähetä viesti [message]

Parametri

Kuvaus

viesti

Linkitetylle robotille lähetettävä teksti.

Esimerkki

Robotti 1

Kun näyttöä painetaan, lähettää viestin robotille 2.#
kun näyttö [painettu v]
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
tulosta [Robot 1] näytöllä ▶
lähetä viesti [Hello, Robot 2!]

Robotti 2

Käynnistyksen yhteydessä näyttää robotin 1 lähettämän viestin.#
kun käynnistetään
[Code for Robot 2.]
[Display the message Robot 1 sends.]
tulosta [Robot 2] näytöllä ▶
siirrä kursori seuraavalle riville näytöllä
odota kunnes <onko viesti saatavilla?>
hae viimeisin viesti
tulosta (viimeisin viesti) näytöllä ▶

lähetä viesti datan kera#

Lähetä viesti tiedoilla -pinolohko lähettää tekstin ja numeron linkitetylle robotille. Käytä tätä lohkoa, kun viesti tarvitsee otsikon ja numeron, kuten lähetetään suunta robotin nykyisellä suunta-arvolla. Tarkista vastaanottavalla robotilla funktiolla is message available?, että viesti on saapunut, ja käytä sitten funktiota hae viimeisin viesti tiedoilla ennen kuin luet tekstin viimeisimmän viestin avulla ja numeron viimeisimmän tiedon avulla.

lähetä viesti datapinolohkolla#
lähetä viesti [message] datalla [0]

Parametri

Kuvaus

viesti

Linkitetylle robotille lähetettävä teksti.

data

Viestin mukana lähetettävä numero.

Esimerkki

Robotti 1

Käynnistettynä lähettää jatkuvasti robotin 1 suuntaa robotille 2.#
kun käynnistetään
[Code for Robot 1.]
[Continuously send the current heading to Robot 2.]
tulosta [Robot 1] näytöllä ▶
ikuisesti
lähetä viesti [heading] datalla (suuntakulma asteina)
Loppu

Robotti 2

Käynnistyksen jälkeen kääntyy robotin 1 lähettämän suunnan mukaisesti.#
kun käynnistetään
[Code for Robot 2.]
[Turn to match Robot 1's heading.]
tulosta [Robot 2] näytöllä ▶
ikuisesti
jos <onko viesti saatavilla?> niin
hae viimeisin viesti datalla
käänny suuntakulmaan (viimeisin data) astetta ▶
Loppu
Loppu

hae uusin viesti#

Hae viimeisin viesti -pinolohko ottaa seuraavan vastaanotetun tekstiviestin viestijonosta ja tallentaa sen, jotta projekti voi käyttää sitä. Käytä tätä lohkoa sen jälkeen, kun is message available? raportoi arvon Tosi ja ennen latest message -ominaisuuden käyttöä. Tämä auttaa vastaanottavaa robottia tallentamaan viestin ennen kuin se yrittää näyttää, vertailla tai käyttää sitä toisessa lohkossa.

Käytä send message -komentoa toisessa robotissa lähettääksesi tekstiviestin.

hae uusin viestipinolohko#
hae viimeisin viesti

Parametrit

Kuvaus

Tällä lohkolla ei ole parametreja.

Esimerkki

Robotti 1

Kun näyttöä painetaan, lähettää viestin robotille 2.#
kun näyttö [painettu v]
[Code for Robot 1.]
[Press the screen to send a message to Robot 2.]
tulosta [Robot 1] näytöllä ▶
lähetä viesti [Hello, Robot 2!]

Robotti 2

Käynnistyksen yhteydessä tallentaa ja näyttää robotin 1 lähettämän viestin.#
kun käynnistetään
[Code for Robot 2.]
[Display the message Robot 1 sends.]
tulosta [Robot 2] näytöllä ▶
siirrä kursori seuraavalle riville näytöllä
odota kunnes <onko viesti saatavilla?>
hae viimeisin viesti
tulosta (viimeisin viesti) näytöllä ▶

hae uusin viesti datan kera#

Hae viimeisin viesti tiedoineen -pinolohko ottaa seuraavan vastaanotetun viestin viestijonosta ja tallentaa sen molemmat osat: tekstiviestin ja sen mukana lähetetyn numeron. Käytä tätä lohkoa sen jälkeen, kun is message available? raportoi arvon Tosi ja ennen viimeisin viesti- tai viimeisin data-ominaisuuden käyttöä. Tämä auttaa vastaanottavaa robottia tallentamaan molemmat arvot ennen niiden käyttöä, kuten kääntymistä toisen robotin lähettämään suuntaan.

Käytä toisen robotin send message with data -komentoa lähettääksesi tekstiviestin ja numeron yhdessä.

hae uusin viesti datapinolohkolla#
hae viimeisin viesti datalla

Parametrit

Kuvaus

Tällä lohkolla ei ole parametreja.

Esimerkki

Robotti 1

Käynnistettynä lähettää jatkuvasti robotin 1 suuntaa robotille 2.#
kun käynnistetään
[Code for Robot 1.]
[Continuously send the current heading to Robot 2.]
tulosta [Robot 1] näytöllä ▶
ikuisesti
lähetä viesti [heading] datalla (suuntakulma asteina)
Loppu

Robotti 2

Käynnistyksen yhteydessä tallentaa viestitiedot ja kääntyy robotin 1 kulkusuunnan mukaisesti.#
kun käynnistetään
[Code for Robot 2.]
[Turn to match Robot 1's heading.]
tulosta [Robot 2] näytöllä ▶
ikuisesti
jos <onko viesti saatavilla?> niin
hae viimeisin viesti datalla
käänny suuntakulmaan (viimeisin data) astetta ▶
Loppu
Loppu