Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Arduino serial, luku/kirjoitus omassa ohjelmassa (linux)

Jiffy [09.02.2011 16:59:42]

#

Pystyn lukemaan arduinon serial viestejä komentorivillä:

jiffy@localhost:~$ tail -f /dev/ttyUSB0
Viesti 1
Viesti 2
jne..

Lisäksi voin ilmeisesti lähtetää viestejä komentorivillä: echo "Viesti" > /dev/ttyUSB0

Mutta miten voin tehdä ohjelman (C++), joka osaisi lukea kyseisiä viestejä, sekä mahdollisesti lähettää viestejä/komentoja?

Macro [09.02.2011 17:07:08]

#

Yksinkertaisesti voit esimerkiksi käyttää C++:ssa system()-funktiota.

http://www.cplusplus.com/reference/clibrary/cstdlib/system/

-tossu- [09.02.2011 17:23:35]

#

Jiffy kirjoitti:

Mutta miten voin tehdä ohjelman (C++), joka osaisi lukea kyseisiä viestejä, sekä mahdollisesti lähettää viestejä/komentoja?

Laitetiedostoja voi käsitellä aivan kuten tavallisiakin tiedostoja. http://www.cplusplus.com/doc/tutorial/files/

Macro kirjoitti:

Yksinkertaisesti void esimerkiksi käyttää C++:ssa system()-funktiota.

System-funktio ei kylläkään ole hyvä tapa tiedostojen käsittelyyn.

Jokotai [09.02.2011 21:37:39]

#

Systemiä ei käytetä koska: http://www.cplusplus.com/forum/articles/11153/
Mikäli ajatuksesi on tehdä C++ ohjelma joka I/O sarjaporttia niin:
Lataa joku sarjaportti kirjasto. Luet sarjaportista /dev/ttyUSB0 Arduinosta tulevaa dataa. Pidä huoli, että syötät dataa yhtä nopeasti kuin luet sitä toisessa päässä. Anna merkki Arduinolla, että se on valmis ottamaan dataa vastaa. Ja toisin päin: Kirjoitat sinne /dev/ttyUSB0 ja laitat Arduinon lukemaan. Kirjoitat jonkin merkin syötteeseen, että kone on valmis vastaanottamaan dataa.
Nyt sinulla on systeemi, jolla voit siirrellä dataa osallistumatta itse prosessiin. Toimii radiopuhelin periaatteella.
EDIT: System() olisi muutenkin kömpelö viritelmä tähän tarkoitukseen.

Jiffy [09.02.2011 23:33:38]

#

-tossu- kirjoitti:

Laitetiedostoja voi käsitellä aivan kuten tavallisiakin tiedostoja.

No tällä tavalla sain ihan näppärästi ainakin tuon lukemisen hoidettua.

Kiitoksia

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta