Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve
Dopo quasi un mese di utilizzo quotidiano e un viaggio medio-lungo in autostrada, raccontiamo pregi e limiti della Geely EX5: comfort premium, batteria LFP da 60,22 kWh, autonomia fino a 430 km e un prezzo che parte da 38.900 €
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-06-2011, 15:37   #1
norih43
Member
 
Iscritto dal: May 2002
Messaggi: 83
[c++] ARDUINO, impostare una comunicazione seriale in c++/linux

Dato che tutto è un file sotto linux ho provato a leggere i dati inviati da ARDUINO tramite la porta /dev/ttyACM0 come se fosse un normale file attraverso questo codice da me scritto (che è ridicolo )
Codice:
 #include <fstream>
    #include <iostream>
    using namespace std;

    int main(){
    fstream fd;
    string s;
    int i=1;
    fd.open("/dev/ttyACM0",ios::in|ios::out);
    while (i<1e3){
    fd>>s;
        cout<<s<<"xx"<<s.length()<<"\n";
        i++;
    }
    fd.close();
    return 0;
    }
solo che ogni tanto funziona e a volte no . Dato che comunque il codice non è il massimo, volevo capire se c'èun modo semplice in c++ (e non in C che non conosco ) per gestire la seriale come si faceva con istruzioni tipo QBASIC per esempio:
OPEN “COM1:2400,N,8,1” FOR OUTPUT AS #1

a distanza di trent'anni non dovrebbe essere più semplice??

Ultima modifica di norih43 : 03-06-2011 alle 21:00.
norih43 è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2011, 16:53   #2
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
la domanda ora è: linux o windows ?
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2011, 17:34   #3
norih43
Member
 
Iscritto dal: May 2002
Messaggi: 83
linux ovviamente ( /dev/ttyACM0)
norih43 è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2011, 17:34   #4
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
io la farei così

Codice:
#include <iostream>
#include <fstream>
using namespace std;

int main () {
  ifstream fd;

  fd.open ("/dev/ttyACM0", ifstream::in);
  while (fd.good())
    cout << (char) fd.get();
  fd.close();

  return 0;
}
ovviamente il good permette di continuare a leggere finchè non si verificano errori sullo stream o arriva l'eof
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 05-06-2011, 09:07   #5
norih43
Member
 
Iscritto dal: May 2002
Messaggi: 83
La soluzione di pabloski lavora ma è equivalente alla mia (anche se non conoscevo la funzione fstream.good() grazie)... ho notato che quando non funziona resta il led TX acceso.... secondo me è da reinizializzare la porta seriale... come si può fare?
norih43 è offline   Rispondi citando il messaggio o parte di esso
Old 05-06-2011, 11:33   #6
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da norih43 Guarda i messaggi
La soluzione di pabloski lavora ma è equivalente alla mia (anche se non conoscevo la funzione fstream.good() grazie)... ho notato che quando non funziona resta il led TX acceso.... secondo me è da reinizializzare la porta seriale... come si può fare?
ho trovato questo http://www.arduino.cc/cgi-bin/yabb2/...num=1269643472

se ho capito bene si tratta dello stesso problema
pabloski è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
NVIDIA punta sull'Australia: fino a 2 GW...
iPhone 17 sfonda quota 1.100 euro: l'aum...
Sei aziende cinesi accusate di copiare i...
Anthropic, scenario estremo: PIL +15% l'...
Star Wars (1977) torna al cinema in IMAX...
GeForce RTX 3070 Ti da 16 GB: un modder ...
IA e deliri religiosi: un uomo accusa Ch...
Nintendo Switch 2, arriva il VRR anche i...
Un errore delle API di Steam svela gli a...
Architettura 3D e materiali ferroelettri...
Mario Kart World riceve 10 circuiti grat...
Addio cobalto, le celle al manganese di ...
Ninja CRISPi a 99,90€: friggitrice ad ar...
Sony rinuncia a Physint, XBOX pubblicher...
Sono gli iPhone più convenienti ora: iPh...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:53.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v