Sisällysluettelo:

Lähetä numeerisia tietoja yhdestä Arduinosta toiseen: 16 vaihetta
Lähetä numeerisia tietoja yhdestä Arduinosta toiseen: 16 vaihetta

Video: Lähetä numeerisia tietoja yhdestä Arduinosta toiseen: 16 vaihetta

Video: Lähetä numeerisia tietoja yhdestä Arduinosta toiseen: 16 vaihetta
Video: LDmicro 14: I2C LCD & DS3231 Real-Time Clock (Microcontroller PLC Ladder Programming with LDmicro) 2024, Heinäkuu
Anonim
Lähetä numeerisia tietoja yhdestä Arduinosta toiseen
Lähetä numeerisia tietoja yhdestä Arduinosta toiseen

Johdanto

David Palmer, CDIO Tech. Astonin yliopistossa.

Pitäisikö sinun koskaan lähettää joitakin numeroita Arduinon poikki toiselta? Tämä opas näyttää kuinka.

Voit helposti testata sen toimivuuden yksinkertaisesti kirjoittamalla numerojonon, joka lähetetään Serial Monitor -päätteeseen, ja katso, että numerot tulevat takaisin toisessa Arduino -laitteeseen kytketyssä sarjamonitorissa. Voit käyttää jopa Bluetooth -linkkiä.

Mitä se tekee

Kaksi Arduino -ohjelmaa (luonnokset Arduino -puheessa) on kehitettävä, yksi pääohjelma, joka muodostaa yhteyden Arduino -sarjamonitoria käyttävään isäntätietokoneeseen, toinen toimii orjana vastaanottamaan sarjaviestin päälliköltä, purkamaan sen ja lähettämään sen takaisin. Orja voi halutessaan näyttää käsittelemänsä numerot toiselle IDE: n sarjamonitorille - jos haluat käyttää tätä. Se voi auttaa aluksi saamaan asiat toimimaan ja auttaa sinua, jos päätät tehdä muutoksia ohjelmiin omien tarpeidesi mukaan.

Laitteet

  • 2 Arduinoa
  • 2 USB -johtoa
  • patch -johdot (tarpeen mukaan)
  • 1 tietokone/kannettava tietokone, jossa on Arduino IDE (ladattavissa ilmaiseksi Arduino.cc -sivustosta)

Vaihe 1: Asennus - Aseta laitteisto ensin

Asennus - Aseta laitteisto ensin
Asennus - Aseta laitteisto ensin
Asennus - Aseta laitteisto ensin
Asennus - Aseta laitteisto ensin

Liitä 2 Arduinoa tietokoneen 2 USB -porttiin.

Vinkki, on hyvä merkitä ne M: ksi ja S: ksi (isäntä ja orja), jotta et joudu sekamelskaan myöhemmin (kuten tässä olevasta 2 valokuvasta näkyy.)

Vaihe 2: Asennus - Aseta näyttö

Asennus - Aseta näyttö
Asennus - Aseta näyttö

Parasta on asettaa näyttö niin, että sinulla on

  • Master -ohjelmalla ladattu IDE vasemmalla ja
  • että orja oikealla.

Pidä Maserin ja Slaven sarjamonitorit myös vasemmalla ja oikealla, kuten tässä olevassa kuvakaappauksessa on esitetty.

Vaihe 3: Asenna pääpää ja muodosta sitten yhteys - Osa 1

Asenna pääpää ja yhdistä sitten - osa 1
Asenna pääpää ja yhdistä sitten - osa 1

Kun määrität Master End Serial Monitor -laitteen lähettämään kaksi numeroa, sinun on aina käytettävä alku- ja loppuerotinmerkkejä sekä pilkkuerotinmerkkiä kuten tässä.

Sinun on nyt yhdistettävä 2 Arduinoa sarjaan. Tämä tehdään kahdella kytkentäjohdolla.

Käytin vihreää ja keltaista

  • Ota ensin keltainen, tämän on liitettävä D6 yhteen Arduinoon ja D7 toiseen
  • Sitten päinvastainen vihreä lanka, D7 ensimmäisessä ja D6 toisessa Arduinossa.

Vaihtoehtoisesti, jos sinulla on jotain saatavilla, kuten pari Bluetooth -moduulia - kuten HC -05: t - nämä toimivat myös antamaan sinulle täsmälleen saman vaikutuksen kuin yllä olevat johdot.

Vaihe 4: Asenna pääpää ja muodosta sitten yhteys - Osa 2

Asenna pääpää ja muodosta sitten yhteys - Osa 2
Asenna pääpää ja muodosta sitten yhteys - Osa 2
Asenna pääpää ja muodosta sitten yhteys - Osa 2
Asenna pääpää ja muodosta sitten yhteys - Osa 2

Käytämme Software Serial -kirjastoa. Lisätietoja tästä linkistä

Näet sen kutsuttuna kumman tahansa ohjelman rivillä 7. Se määrittää nastat digitaaliset 7 ja 6 TX- ja RX -lähetyksiksi (lähetys ja vastaanotto). Näin data kulkee päällikkö Arduinosta vihreän johdon kautta orjaan, ja kun toisen Arduinon orjaohjelma on lopettanut työnsä, takaisin keltaisen langan läpi. Saman kuvan alaosassa (Sarjamonitori -ikkunassa) näet, että lähettämämme tiedot ovat nyt onnistuneesti kiertäneet tässä kuvatun silmukan ja palaavat tietokoneeseen, kun kokonaislukupari erottuu kauniisti.

Vaihe 5: Yleiskatsaus luonnoksista / ohjelmista - ohjelman rakenne

Yleiskatsaus luonnoksista / ohjelmista - ohjelman rakenne
Yleiskatsaus luonnoksista / ohjelmista - ohjelman rakenne
Yleiskatsaus luonnoksista / ohjelmista - ohjelman rakenne
Yleiskatsaus luonnoksista / ohjelmista - ohjelman rakenne

Asettelu Kuten kaikissa Arduinon luonnoksissa, on kolme perusosaa:

  • Julistukset
  • Asetukset
  • Pääsilmukka

Kuten usein tapahtuu, olemme käyttäneet tässä neljättä osaa, joka on lisätty funktioihin. Jos et tunne toimintojen käyttöä, voit etsiä Googlesta "Arduino -toimintoja" ja löydät selityssivustot, kuten esimerkki tästä linkistä: www.tutorialspoint.com/arduino/arduino_functions…..

Olemme myös käyttäneet välilehtiä erottaaksesi ohjelman hallittavammiksi lohkoiksi.

Käyttämämme kolme lohkoa näkyvät yllä olevien IDE -ikkunoiden kuvien yläosassa:

  • simpleRxTx0330Master
  • yleinen
  • muistiinpanoja

Nämä ovat itse asiassa erillisiä tiedostoja ohjelman kansiossa, kuten voit nähdä tässä Windows Explorer -näkymässä Slave -ohjelman tiedostoista.

Tähän on erittäin hyvä syy.

  • Kun rakensimme ohjelmaa, huomasimme, että suurin osa mestarin ohjelmasta oli sama kuin orjan.
  • Lopulta vedimme kaikki yhteiset osat välilehdelle, jota me siksi kutsuimme "yhteiseksi", ja sitten joka kerta, kun olimme korjaaneet osan (testasimme ja olimme tyytyväisiä siihen, että se toimi hyvin), kopioimme ja liimimme koko välilehden päälliköstä orjaan tai päinvastoin.
  • Muistiinpanot -välilehdet ovat myös identtisiä, koska muotoilu on yleinen.

Mitään toimintoja ei kutsuta asennuksesta, ne kaikki kutsutaan silmukasta, joten olemme luoneet ne asennuksen jälkeen mutta ennen silmukkaa.

Vaihe 6: Suunnittelu ylhäältä alas

Luonnoksen suunnittelu on hyvä aloittaa määrittämällä, mitä haluat tehdä.

Kun sinulla on tämä, voit aloittaa luonnoksen tekemisen näille asioille. Yleensä jos jokin yksityiskohta, jota et vielä tiedä, tee siitä toiminto, ja jätä toiminnon luominen vasta myöhemmin.

Tämä noudattaa hyvää suunnitteluperiaatetta, jota opetetaan monissa yliopistoissa ja jota kutsutaan CDIO: ksi (jos et vielä tiedä tätä, voit googlettaa sen ja etsiä sivustoja sen selittämiseksi, kuten: https://www.cdio.org/s.) Tämä pohjimmiltaan sanoo: Älä aloita suunnittelua ennen kuin olet saanut käsityksen selväksi. Älä aloita käyttöönottoa, ennen kuin suunnittelu on selvä. Älä odota sen toimivan ennen kuin toteutus on selvä. C ensin, sitten D, I ja O. Jokaisessa seuraavassa vaiheessa iteraat (palaa silmukan ympäri), joten kun olet tyytyväinen alkuperäiseen suunnittelusilmukkaan ja tarkistat, että se vastaa edelleen konseptia, ja päivitä C -näppäintä, jos tarvitset. Ohjelmointiluonnoksilla tämä toimii samalla tavalla, jos suunnittelet ylhäältä alas.

Vaihe 7: Konsepti ja suunnittelu - Osa 1

Konsepti ja muotoilu - Osa 1
Konsepti ja muotoilu - Osa 1
Konsepti ja muotoilu - Osa 1
Konsepti ja muotoilu - Osa 1

Käsite näyttää tässä muistiinpanojen välilehdessä esitetyiltä jäsennysvaatimuksilta. ''

Suunnittelu voisi näyttää silmukan varhaiselta versiolta, joka vastaa muistiinpanoja -välilehteä ja voisi näyttää siltä kuin näet tässä kuvassa

Katso, miten haluan aloittaa siitä, että CTRL-C kopioi kommentit ensin silmukan päähän, ja aloita sitten tyhjien kohtien täyttäminen komennoilla, jotka tekevät nämä asiat.

Tämä kääntää itse asiassa OK, kuten näet näytön alareunassa kuvassa. Se ulottuu CDIO-vaiheesta D I-vaiheeseen, ja kun kehitämme koodia, on hyvä jatkaa tämän D-I-silmukan kiertämistä.

Nyt on aika siirtyä seuraavaan vaiheeseen, siellä on kommentti, jossa sanotaan, että aiomme: // vastaanottaa jotain laitteisto -USB: ltä, sitten lähetämme sen ohjelmiston sarjakanavalle. Kirjoitamme tämän koodin, jotta tämä tapahtuisi - rivit 133-138, jotka on esitetty täällä keltaisella korostuskynällä

Vaihe 8: Konsepti ja suunnittelu - Osa 2

Konsepti ja muotoilu - Osa 2
Konsepti ja muotoilu - Osa 2
Konsepti ja muotoilu - Osa 2
Konsepti ja muotoilu - Osa 2

Kaksi ensimmäistä funktiota, jotka esittelemme tässä, ovat (recv () ja tran () vastaanottamaan laitteistoportista ja lähettämään ohjelmistoporttiin - kutsumalla niitä siten, että näytetään parametrit 'hw' tai 'sw'.

Niiden lisäksi olemme lisänneet testin globaalille muuttujalle nimeltä newData. Tämä on lippu, jonka asetamme "void recv ();" -funktion sisälle. Kun viesti on vastaanotettu, tämä muuttuja merkitään epätosta tosi -arvoon. Teemme tämän niin, että lähetämme viestin vain, jos se on vastaanotettu (lippu == tosi) rivillä 134. Ja kun olemme lähettäneet viestimme, se on "työ tehty", joten poistamme lipun takaisin epätosi rivillä 137.

Jälleen voimme tarkistaa kääntämisen (D - I), ja tällä kertaa meillä on ilmoittamaton virhesanoma (kuvassa). Tämä kertoo meille, että emme ole ilmoittaneet recv (); toiminto. Aiomme tehdä tämän myöhemmin, joten vain toistaiseksi, jotta voimme saada puhtaan kääntämisen, meidän on luotava nuken tai paikkamerkinnän toiminto, kuten seuraavassa on esitetty.

Jälleen voimme tarkistaa kääntämisen (D - I), ja tällä kertaa meillä on toinen "ei ilmoitettu" -virhesanoma tran (): lle; toiminto. Tämä vaatii samanlaisen tynkän luomisen. Jälleen voimme tarkistaa kääntämisen (D - I), ja tällä kertaa tämä toimii täydellisesti; toistaiseksi niin hyvin.

Vaihe 9: Pääsilmukan viimeistely: A) Vastaanotto USB: ltä, B) Vastaanotto orja Arduinolta

Viimeistele pääsilmukka: A) Vastaanotto USB: ltä, B) Vastaanotto orja Arduinolta
Viimeistele pääsilmukka: A) Vastaanotto USB: ltä, B) Vastaanotto orja Arduinolta
Viimeistele pääsilmukka: A) Vastaanotto USB: ltä, B) Vastaanotto orja Arduinolta
Viimeistele pääsilmukka: A) Vastaanotto USB: ltä, B) Vastaanotto orja Arduinolta

Tämän osan loppuun on lisätty yksi viimeinen kappale, joka on virheenkorjauskoodin lisääminen.

Luonnosten virheenkorjauksessa on toinen ohje, johon voidaan viitata ymmärtämään, mitä olemme tehneet täällä ja miksi. Katso ohjeet "Arduinon luonnosten luominen ja testaaminen, kunnes ne toimivat"

Joten nämä virheenkorjausrivit [kuvassa 136-139] lisätään seuraavaksi pääsilmukkaan, ja katso, voit testata niitä pääpäässä tekemällä virheenkorjausmuuttujan tosi ja kääntämällä (I), niin jos kun liität Arduinon, voit ladata sen, avata sarjamonitorin ja katsoa, tuleeko sarjamonitoriin palautus tässä esitetyllä tavalla (näetkö "DEBUG MODE" -viesti on lisätty?)

Vaihe 10: Tietojen vastaanottaminen ja käsittely orja Arduinossa

Tietojen vastaanottaminen ja käsittely orja Arduinossa
Tietojen vastaanottaminen ja käsittely orja Arduinossa
Tietojen vastaanottaminen ja käsittely orja Arduinossa
Tietojen vastaanottaminen ja käsittely orja Arduinossa

Vastaanotto Slave Arduinolta

Lisää tarvittava koodi toiselle kanavalle pääsilmukkaan, ohjelmistosarjavastaanottimeen, kuten kuvassa - rivit 149 - 155.

Näetkö, että rakenne perustuu löyhästi siihen, mitä kirjoitimme yllä Master -tapaukselle?

Näet myös, että saamme kääntäjävirheen, toisen pimeän funktion - tällä kertaa parseData (); - joten meidän on tehtävä myös tynkä tätä varten, ennen kuin voimme suorittaa virheettömän testikääntämisen.

Tietojen käsittely orja Arduinossa

Lisää Arduinolle vaadittu pääsilmukkakoodi, jos se on konfiguroitu orjalaitteeksi kuvan mukaisesti - rivit 163 - 174. Näetkö, että sen rakenne on hyvin samanlainen kuin ensimmäisen kanavan?

Ja sinun pitäisi löytää tällä kertaa, että se kääntyy täysin hyvin.

Vaihe 11: Kirjoita vastaanottotoiminto

Kirjoita vastaanottotoiminto
Kirjoita vastaanottotoiminto

Vastaanottotoiminnolla - void recv (char from) {} - on kaksi päätehtävää.

1, jos haluat vastaanottaa merkkijonon USB -kanavalta, ja

2 vastaanottaaksesi yhden Arduinolta Arduinolle -kanavalta.

Ensimmäistä kertaa meidän on käytettävä, koska se käyttää Arduinon sisäänrakennettua UART -laitteistoa, ja toiseksi käyttämällä tavallista Arduino -kirjastoa: ohjelmistoa UART.

Kun alamme lisätä koodiin funktiota - luoda funktio, joka tekee jotain pelkän tynkän sijasta - meidän on muistettava poistaa tai kommentoida korvaama tynkä. Muuten saamme kääntämisvirheen: 'void lrec (char)' uudelleenmäärittely.

Yritä saada virhe ja yritä sitten päästä eroon jollakin yllä ehdotetuista tavoista.

Aloita toiminnolla, joka näyttää samalta kuin mitä näytämme tässä riveillä 75–88 keltaisella.

Nyt tiedät, että sinulla on koodi, joka sinun täytyy kokeilla kääntämistä. Saat virheen, kuten aiemmat virheet, tyyppiä: funktion nimi, jota ei ilmoiteta tässä laajuudessa. Tarvitsemme aluksi toisen tynkän, jotta voimme kääntää tämän virheen ohi, joten lisää yksi kuten aiemmin, ja varmista, että voit nyt kääntää ilman virheitä.

Katsotaanpa nyt koodia, jonka olemme kirjoittaneet recv () -funktiolle.

Se on varsin puhdas, voit nähdä "if" -tilan käytön yllä mainitun toiminnon kahden osan tuottamiseksi.

Sw -osan ja hw -osan sisällä oleva koodi on samaa muotoa, ja kuvailen sitä täällä.

Riviparin ensimmäinen kussakin tapauksessa on hetken silmukan alku. Jos et tunne aikoja, voit etsiä ne Arduino.cc/Reference -sivustolta selityksen ja esimerkkien avulla. Tässä odotellaan, kun "sisäänrakennettu" Sarja -funktio ei ole saanut mitään merkkiä ja koska newData -muuttuja on poistettu käytöstä (eli newData == false ehto on tosi). Heti kun merkki - tai useampi kuin yksi merkki - on vastaanotettu, se "putoaa" tämän parin toiselle riville. Tämä kutsuu sitten recAstringChar (char); -toiminto käsittelee nykyistä merkkiä. Tämä rivipari vaihtuu sitten, kun (tai niin kauan kuin) on vielä merkkejä, jotka on vielä vastaanotettava. Kun ne kaikki on tehty, kun tila päättyy, jolloin if tai else -taso päättyy ja sallii vuorostaan rec (char); toiminto päättyy. Täysi viesti on nyt saatu.

Vaihe 12: Kirjoita vastaanoton alitoiminto - osa 1

Kirjoita vastaanoton alitoiminto - osa 1
Kirjoita vastaanoton alitoiminto - osa 1
Kirjoita vastaanoton alitoiminto - osa 1
Kirjoita vastaanoton alitoiminto - osa 1

Meidän on nyt kirjoitettava funktio nimeltä recAstringChar (char);. Näet kommentista riville 50, joka on sen yläosassa, että sen tehtävänä on päivittää kaksi puskuria kopioilla saapuvasta sarjaviestistä. [Kävi ilmi, että kun yritin saada kaiken toimimaan, yksi asia, jonka opin, oli se, että tarvitsin kaksi erilaista puskuria - tai ainakin se oli helpoin tapa kiertää joitain ongelmia, joten se kehittyi tarvitsemaan 2 puskuria, joten Tein ne juuri.] Olen kutsunut yhden puskurin: ReceiveData ja toisen: ReceiveChars.

Puskurit ovat globaaleja muuttujia, joten ne ilmoitetaan moduulitasolla, katso yhteisen välilehden rivit 9 ja 10. Tämän funktion sisällä on ilmoitettu muita muuttujia, joilla on siksi paikallinen laajuus- esitetty riveillä 51-54. Tämä ei ole oikea paikka selittää eroja globaalien ja paikallisten välillä, mutta tästä on lisätietoja https://www.arduino.cc/glossary/en/ kohdassa Local and Global.

Löydät myös kaiken tietotyypeistä ja tyyppimuokkaimista: staattinen, boolean, tavu, const, char osoitteessa

Tämän toiminnon pääohjelman kulkua ohjaa if rivillä 56 ja sitä vastaava rivillä 74. Tämä koskee kahta skenaariota

a) [riviltä 74 eteenpäin], kun vastaanotettu viesti alkaa. Tämä tapahtuu, kun startMarker havaitaan - tämä on määritelty '<' -merkiksi, minkä vuoksi aina, kun testaamme luonnosta, aloitamme merkkijonomme aina kyseisellä merkillä. Jos emme tee sitä, mitään ei käsitellä vastaanotettuna, kaikki jätetään huomiotta aivan kuin kirjoittaisimme hölynpölyä Serial Monitor -näppäimistökehotteeseen.

b) [rivit 56--73], joka vastaanottaa kaikki muut merkit, olivatpa ne mitä tahansa, mutta ne käsittelevät merkkejä vain sen jälkeen, kun kelvollinen aloitus on tapahtunut (a '>' on vastaanotettu kuten edellä kohdassa).

Näille riveille (74 - 78) laitamme vastaanotetun <yhteen puskureista (ReceiveData [0]), mutta emme toiseen. Säädetään puskurin osoitin (muuttuja: char ndx) osoittamaan seuraavaan varapuskuripaikkaan (ReceiveData [1]) käyttämällä lisäyksen jälkeistä komentoa (++) rivillä ndx ++; ja asetimme käynnissä olevan lipun arvoon tosi.

Ohjelman kulkua funktion tässä osassa ohjaa if rivillä 57 ja sitä vastaava rivillä 65. Tämä koskee kahta skenaariota

a) [riviltä 65 eteenpäin], kun vastaanotettu viesti on päättynyt. Tämä tapahtuu, kun endMarker on havaittu - määritelty>, minkä vuoksi aina kun testaamme luonnostamme, lopetamme merkkijonomme aina kyseisellä merkillä. Yksi asia, joka tapahtuu, kun lopetusmerkki vastaanotetaan, on se, että globaali lippu (teknisesti muuttuva) newData asetetaan tosi-arvoon heti, kun funktio päättyy, joten alitoimintomme kutsunut funktio (kutsuva funktio: recv (char);) voi "tietää", että uudet kelvolliset tiedot on vastaanotettu täydellisinä.

b) [rivit 57-64], joka vastaanottaa kaikki muut merkit, olivatpa ne mitä tahansa. Se vain kiireesti pysäköi ne siististi riveihin molemmissa puskureissa.

Vaihe 13: Kirjoita vastaanoton alitoiminto - osa 2

Kirjoita vastaanoton alitoiminto - osa 2
Kirjoita vastaanoton alitoiminto - osa 2
Kirjoita vastaanoton alitoiminto - osa 2
Kirjoita vastaanoton alitoiminto - osa 2

Se voi auttaa antamaan esimerkin siitä, miltä kaksi puskuria näyttävät, kun ne on täytetty. Jos näppäisimme enterin, puskureissa näkyvät merkit:

Joten nyt näet, että meillä on yksi puskuri, joka on täsmälleen kaikki samat merkit kuin kirjoitimme ensin, ja yksi puskuri, jossa on vain kaksi arvoa ja erottava pilkku. Nyt meillä on koodi, joka voi vastaanottaa Serial Monitor -näppäimistöllä kirjoittamamme merkit, voimme siirtyä CDIO-vaiheesta I kohtaan O, kirjoittamalla joitakin merkkijonoja ja katsomalla, mitä tapahtuu. Lähetä koodi Master Arduinolle, avaa Serial Monitor ja yritä kirjoittaa jotain kelvollista, kuten enter. Kuuluuko Sarjamonitori -näytölle kaiku, kuten tässä näytetään?

Vaihe 14: Kirjoita lähetys- ja jäsennysfunktiot

Kirjoita lähetys- ja jäsennysfunktiot
Kirjoita lähetys- ja jäsennysfunktiot
Kirjoita lähetys- ja jäsennysfunktiot
Kirjoita lähetys- ja jäsennysfunktiot

Ensin lähetykselle

Joten nyt olemme saaneet merkkijonon, voimme kirjoittaa lähetystoiminnon: tran (char); vaihtaa sen tynkä. Tämän avulla voimme lähettää merkkijonon isännältä orja Arduinolle, joten varmista, että molemmat laitteet on kytketty ja yhdistetty toisiinsa testataksesi tätä uutta toimintoa.

Kirjoita tämä toiminto kuten rivillä 117-133. Kuten huomaat, siinä on kaksi osaa, joista toinen lähetetään USB -kanavalle (laitteellinen UART) ja toinen lähetetään toiselle Arduino (ohjelmisto UART.) Tämän pitäisi kääntää virhe -ilmainen, ja voit heti ladata luonnoksen ja katsoa mitä tapahtuu. Tällä kertaa lähetän. Saatko näkyvän tuloksen?

Näyttökuva on mielenkiintoinen, koska vastaanotetun merkkijonon… pitäisi näyttää oikealta kuten ennen, ja lähetetyn merkkijonon… pitäisi nyt näyttää oikealta. Huomaa kuitenkin, että kokonaislukumuunnos ei ole toiminut. Vielä on lisättävä hieman koodia, jotta se toimisi.

Vaihe 15: Kirjoita lähetys- ja jäsennysfunktiot

Kirjoita lähetys- ja jäsennysfunktiot
Kirjoita lähetys- ja jäsennysfunktiot
Kirjoita lähetys- ja jäsennysfunktiot
Kirjoita lähetys- ja jäsennysfunktiot

Sitten Parselle

Tämä on koodiosa, joka jäsentää vastaanotetun merkkijonon numeeristen osamerkkijonojen hakemiseksi ja muuntaa ne kokonaislukuarvoiksi. Se on tyhjä parseData (); pääsilmukan toiminto

Korvaa jäsennetty tynkä rivillä 98 - 113 näytetyllä koodilla. Lataa se ja katsotaan, onko ongelma, joka meillä oli kahden kokonaisluvun kanssa, nyt korjattu. Kokeillaan.

Kyllä, se toimii, kuten on esitetty, löydetyt kokonaisluvut ovat 49 ja 98.

Vaihe 16: Finaali

Finaali!
Finaali!

Tämä data on kiertänyt silmukan ympäri PC: stä isännän kautta orjan kautta ja takaisin isännän kautta uudelleen tietokoneeseen. Kun yleinen versio on ladattu sekä pää- että orjapäähän ja virheenkorjaustila on nyt pois päältä, näemme oikein vastaanotetut tiedot molemmista päistä, kuten tässä on esitetty.

Suositeltava: