Bonjour les gens j'aurais besoin de votre aide je suis actuelement en train de faire un mini projet mais il y a une tâche bonus que je n'arrive pas à faire qui consiste à l'aide d'un anémomètre récupérer l'orientation et la vitesse du vent sachant qu'il m'envoit une trâme NVMEA qui ressemble à ceci:
$IIMWV,179.0,R,000.30,N,A<CR><LF>
$WIXDR,C,020.0,C,,<CR><LF>
$PLCJ,5B,5B,5F,5F,31,
$PLCJEC90,D35D,3F00,00FF,FF
Les données importantes qui m'intérresse se trouvent toujours dans la ligne commencant par $IIMWV car c'est le préambule de la phase vent ici dans l'exemple au dessus le 179 représente en degrès l'orientation du vent et le 0.30 représente la vitesse en Noeud du vent. J'aimerais donc pouvoir découper cette ligne afin de récuperer ces informations. Afin de lire la trame je fais comme ça :
J'ai deja essayer de faire ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 QString anem::LireOrientation() { trame_ =portserie_->Lire(); cout << trame_.toStdString() << endl; }
Car normalement c'est la première ligne qui nous intéresse mais enfaite je me suis apperçu que lors de la lecture de la trame cela lit 6 lignes de trames et donc dès fois la ligne du vent commencant par $IIMWV n'était pas toujours en première ligne sa pouvait ressembler à sa:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 QString orientationvent_ = trame_.section('$IIMWV,',1,1);
$PLCJ,5B,5B,5F,5F,31,
$PLCJEC90,D35D,3F00,00FF,FF
$IIMWV,179.0,R,000.30,N,A<CR><LF>
$WIXDR,C,020.0,C,,<CR><LF>
$PLCJ,5B,5B,5F,5F,31,
$PLCJEC90,D35D,3F00,00FF,FF
Je vous remercie d'avance de vos idées.
Partager