Oppure

Loading
30/09/14 9:42
Il_maca
Salve a tutti,
sono alle prese con un nuovo mondo e sto riscontrando qualche problema :D
In sostanza ho necessità di elaborare delle stringhe che ricevo su porta seriale, sul mio BeagleBone Black (con Debian).
La porta seriale è la /dev/ttyO0.
La comunicazione funziona, in quanto con il comando
cat /dev/ttyO0

visualizzo correttamente ciò che mando dall'altro computer.
Il problema è che mi servirebbe catturare queste stringhe ed elaborarle con un linguaggio di programmazione. Ho quindi optato per il c++.
Qualcuno potrebbe indicarmi un modo per farlo? Magari in modo asincrono (come ho fatto per vb.net con un handler)... O se esiste qualche guida specifica...

Edit:
stavo guardando in giro, in attesa di una risposta, ed ho trovato questa guida:
en.wikibooks.org/wiki/Serial_Programming/…
(:-| :-| in realtà l'esempio è in C, I KNOW)
Ma come temevo, il ciclo while che lui effettua per leggere costantemente dalla seriale, mi manda il processore del BeagleBone alle stelle... Questa applicazione dovrà girare per ORE (Circa 15-17 al giorno) di continuo, quindi non credo sia la soluzione più adeguata.
In VB.NET ho potuto impostare un evento alla ricezione dei dati su seriale. In C++ sarebbe possibile una cosa del genere?


Edit 2:
Ok, ho trovato SIGTTIN, un segnale di interrupt generato quando viene scritto sulla seriale... dovrei ora impostare l'evento
Ultima modifica effettuata da Il_maca 30/09/14 12:59
aaa
30/09/14 19:29
TheDarkJuster
Ti do un suggerimento : guarda se il comando cat accetta un file come parametro
aaa
01/10/14 7:58
nessuno
waseem ... stai utilizzando molto male il forum ... ripassa un po' le regole ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
01/10/14 14:19
TheDarkJuster
waseem? Chi è? Ti riferisci a me?
aaa
01/10/14 14:36
nessuno
No ... il post è stato rimosso ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
01/10/14 14:41
TheDarkJuster
Ah.... ok. Ne è rimasto uno suo su un altro thread, lo ho visto 5 minuti dopo di questo
aaa
01/10/14 19:06
Il_maca
Ciao, scusami il ritardo. Effettivamente ho studiato la cat. Si, prende un file in ingresso e sputa il risultato sulla console o in un altro file. Quindi mi consiglieresti di avviare la cat e far scrivere in un file di testo ciò che riceve?
Ultima modifica effettuata da Il_maca 01/10/14 19:08
aaa
01/10/14 19:26
TheDarkJuster
No... ti consiglio di fare:
fstream seriale("/dev/ttyO0", std::fstream::in | std::fstream::out)
std::string ContenutoLeggibileAncheConCAT;
seriale >> ContenutoLeggibileAncheConCAT;
seriale.close();


e poi lavori sulla stringa ottenuta. Questo DOVREBBE funzionare, visto che IN TEORIA la seriale è gestita come un file, come sono gestiti tramite dei files i pin digitali general purpouse sulle schede pcDuino, Raspberry e in teoria anche beaglebone
aaa