Sisukord:

Sündmuspõhine programmeerimine FTC-s: 4 sammu
Sündmuspõhine programmeerimine FTC-s: 4 sammu

Video: Sündmuspõhine programmeerimine FTC-s: 4 sammu

Video: Sündmuspõhine programmeerimine FTC-s: 4 sammu
Video: Веб-разработка – информатика для руководителей бизнеса 2016 2024, November
Anonim
Sündmuspõhine programmeerimine FTC-s
Sündmuspõhine programmeerimine FTC-s

Sel aastal on meie meeskond teinud palju tööd meie robotile mõeldud sündmustepõhise tarkvaraarendusega. Need programmid on võimaldanud meeskonnal täpselt välja töötada autonoomseid programme ja isegi korduvaid teleüritusi. Kuna tarkvaratöö, mida see nõuab, on keeruline, otsustasime jagada teadmisi, mida oleme omandanud FTC robotite sündmustepõhise koodi väljatöötamisel.

Samm: mis on sündmustepõhine programmeerimine?

Üldiselt on sündmuspõhine programmeerimine Techopedia andmetel kasutajate sisendile reageerivate programmide väljatöötamine. Selles mõttes peetakse paljusid programme sündmustepõhiseks, sealhulgas meeskonna teleprogrammi, mis põhineb mis tahes toimingute tegemisel inimese juhitud kontrolleri sisenditel. Mis puudutab aga meie meeskonna tehtud tööd, siis sündmustepõhine programmeerimine seisneb tarkvara loomises erinevatest sisenditest; teisisõnu, me dokumenteerime sündmused kontrollerite ja andurite sisendite põhjal, seejärel saame need sündmused järjekorda panna ja faili abil salvestatud sündmust uuesti käivitada.

Sellel meie robotile programmide väljatöötamise meetodil on mitmeid eeliseid:

  • See võimaldab meil luua täpseid autonoomseid programme. Kuna me loome tarkvara sündmuse toimumise ajal reaalajas, on kogutud ja kasutatud andurite väärtused väga täpsed, kuna need pärinevad otse algsest sündmusest.
  • See võimaldab meil kiiresti luua autonoomseid programme. Autonoomsete programmide tegemine on sama lihtne kui sündmuste seeria salvestamine ja sündmuse kohandamine vastavalt vajadusele.
  • See võimaldab meil luua automaatseid protsesse tele-op. Tele-opis korduvate toimingute puhul võimaldab sündmustepõhine programmeerimine meil need toimingud salvestada ja sündmuse juhi poolt kontrollitud mänguperioodidel nupule määrata. Andurid võivad neid automatiseeritud sündmusi mõjutada, et võimaldada nende täpset täitmist.

2. samm: sündmustepõhise programmeerimise loogiline voog

Sündmuspõhise programmeerimise loogiline voog
Sündmuspõhise programmeerimise loogiline voog

Järgnev kujutab sündmustepõhise programmi loogilist voogu: punane tähistab sündmuse loomist ja sinine sündmuse kutsumist. Sündmuse loomiseks võetakse sisendite jada robotite tegevuse kaudu sisse ja registreeritakse sündmustena; need sündmused kirjutatakse faili. Sündmusele helistamiseks loetakse see fail ja sisendid saadetakse sündmuste protsessorile, et muuta failikood robotitegevuseks.

3. samm: sündmuste looja

Ürituse looja
Ürituse looja
Ürituse looja
Ürituse looja

Sündmuste loojaid kasutatakse mitmesuguste andurite ja nuppude põhjal toimingute või sündmuste dokumenteerimiseks. Kuna robot teeb väljal toiminguid, loob sündmuste looja klass iga toimingu jaoks paralleelselt sündmusi, viidates sündmuste klassi klassifitseeritud sündmusele. Pärast sündmuse loomist pannakse see sündmuste klassis sündmuste järjekorda: esimene sündmus võtab esikoha, teine sündmus võtab esikoha ja surub selle all olevad sündmused alla ning see jätkub, kuni programm peatub. Kui programm peatatakse, lähevad sündmused inimestele loetavasse vormingusse, näiteks JSON-faili. Seda faili saab kasutada autonoomsete rutiinide paremaks täiustamiseks.

Ülaltoodud näidiskood määrab sündmuse parameetrid, milleks on sel juhul IMU -andurit kasutav pööre. Seejärel paneme sündmuse järjekorda sündmuste järjekorda. Lõpuks kärbime sündmuse, mis sisuliselt lähtestab sündmuse, et saaksime seda kasutada tulevaste sündmuste järjekorda seadmiseks.

4. samm: sündmuste protsessor

Sündmuste protsessor
Sündmuste protsessor
Sündmuste protsessor
Sündmuste protsessor

Sündmuste klassid võtavad sündmuste looja klassis toodetud inimloetava faili ja teevad kõik, mida iga järjekord järjekorras käsib, helistades sündmuste töötleja klassis kirjeldatud meetoditele. Seejärel ütleb sündmuste protsessori klass robotile, millist sündmust taasesitada. Olenemata sellest, kas tegemist on lihtsa „edasiliikumise” sündmusega või keerulise sündmusega, mis on täis vahemaid, pöördeid ja rihmasid, taasesitab protsessor talle antud sündmust. See protsess on autonoomse režiimi ajal väga kasulik, kuna meeskond saab salvestada andureid ja teleoperatsiooni toiminguid enne sobitamist ning seejärel lihtsalt sündmusi autonoomses režiimis uuesti esitada. Seda protsessi nimetatakse mälu taasesituseks. See võimaldab autonoomset programmi 100% konfigureerida ühe faili kaudu. Kui sündmuse looja ja töötleja on loodud, saab meeskond lihtsalt muuta autonoomset rutiini inimloetava faili kaudu.

Ülaltoodud näide algab kõigepealt JSON -faili sündmuse kontrollimisest ja seejärel selle sündmuse kontrollimisest juhtumilause abil, et näha, milline sündmus see on, antud juhul omakorda, kasutades IMU -andurit. Kui see saab öelda, et see on IMU sündmust kasutav kord, tegeleb see sündmuse töötlemisega, mis hõlmab tavaliselt koodi käivitamist, mille sündmus sündmusest pärit muutujate abil edastati, et edastada varem tehtud sündmus.

Soovitan: