Obtenir TWA et TWS sur OpenCPN

Bonjour,

J'ai équipé mon bateau d'un GPS et d'une girouette / anémomètre qui me donnent un AWA et AWS.
Je lis bien ces données via OpenPlotter et OpenCPN.

Je souhaite obtenir le TWA et le TWS qui se calculent "facilement" mais je ne les retrouve pas dans OpenCPN. J'ai l'impression qu'OpenCPN ne fait le job par défaut.
J'ai installé le plugin tactic, qui lui est censé faire le job, mais je n'arrive pas à lui faire afficher les valeurs, même après activation des options dans les préférences.

Comment faites vous avec vos configurations logicielles semblables ?

L'équipage
10 jan. 2021
10 jan. 2021

Bonjour,
Avez-vous désactivé le plugin dashboard pour le remplacer par le plugin dashboard-tactic (et non pas le plugin tactic) qui dans sa configuration permet d'obtenir le TWSet le TWA...?


10 jan. 202110 jan. 2021

En effet j'avais pas fait attention, je n'avais installé que tactics (compléments).
Je viens de tester à l'instant
- désactivé dashboard
- installé / activé Dashboard_tactic
Toujours le même résultat.

Pour mes tests je fais à la maison avec un simulateur NMEA.

Je n'envoyais que la phrase MWV - Wind Speed and Angle
10:46:15 (Serial:COM3) $WIMWV,175.1,R,4.9,M,A*2F
comprendre 175.1° pour AWA et 4.9 M/s pour AWS
Dasboard et Dashboard_tactic voient bien AWA et AWS et affichent les valeurs correctes mais ne calculent pas TWA et TWS
Bieare car je n'aurais pas mieux avec mon NasaWind Clipper qui envoie une phrase MWV

j'ai ajouté la phrase VWR - Relative Wind Speed and Angle
10:56:52 (Serial:COM3) $WIVWR,175.1,R,9.6,N,4.9,M,17.7,K*66
Que je ne retrouves pas dans la norme NMEA
Et la dashboard_tactic affiche des valeurs pour TWA et TWS mais qui sont fausses...

Je sens que ça va finir dans signal K => node red => signal K avec mes propres calculs...


Tai:Si tu baisse les bras pour opencpn sache que signalk le fait aussi via un plugin nommé dérives data. (Qui a besoin de trame nmea gps pour le calcul). ·le 10 jan. 2021 13:07
10 jan. 2021

A tester, éventuellement, avec le plugin NMEACONVERTER...

$XXVWT,90-deg(atan(($??VWR3cos(rad($??VWR1))-$??RMC7)/$??VWR3sin(rad($??VWR1)))),$??VWR2,sqrt(sqr($??VW R3sin(rad($??VWR1)))+sqr($??VWR3cos(rad($??VWR1) )-$??RMC7)),$??VWR4,,,,

Ou alors...

rajouter dans dashboard.pi (dll décompilée) les lignes suivantes (NB j'ai retiré les formules pour le calcul du vent en beaufort).
Il faudra ensuite recompiler la dll :

_//Calcul du TWS et TWA

if (mNMEA0183.Rmc.SpeedOverGroundKnots < 999 || !wxIsNaN(mNMEA0183.Vtg.SpeedKnots))
{
double AWSpeed;
double SOG;
double cTWS;
double c
TWSkn;
double c
TWA;

AWSpeed = mNMEA0183.Mwv.WindSpeed * mwSpeedFactor / 1.94384; // In Knots, form it to m/s
SOG = m_NMEA0183.Rmc.SpeedOverGroundKnots / 1.94384; // In Knots, form it to m/s

if (mNMEA0183.Rmc.SpeedOverGroundKnots >= 999) SOG = mNMEA0183.Vtg.SpeedKnots / 1.94384;

cTWS = sqrt(pow(AWSpeed*sin(mawaangle3.14159265/180),2)+pow(AWSpeedcos(m_awaangle*3.14159265/180)-SOG,2));

cTWSkn = c_TWS * 1.94384; //To knots

// sBft = (cTWSkn/5) + 1;

////////////// AFFICHAGE DE TWS EN BFT //////////////////

SendSentenceToAllInstruments(OCPNDBPSTCTWS,
toUsrSpeed
Plugin(cTWSkn, giDashWindSpeedUnit),
getUsrSpeedUnit
Plugin(g_iDashWindSpeedUnit));

//SendSentenceToAllInstruments(OCPNDBPSTCTWS2,
toUsrSpeed
Plugin(sBft, giDashWindSpeedUnit ),
getUsrSpeedUnit
Plugin(g_iDashWindSpeedUnit));

if (m_awaangle < 180) {

cTWA = 90-(180/3.14159265atan((AWSpeedcos(mawaangle3.14159265/180)-SOG)/(AWSpeedsin(mawaangle*3.14159265/180))));
}
else if (m
awaangle > 180) {

cTWA = 360 -(90-(180/3.14159265atan((AWSpeedcos((180 - (mawaangle - 180))3.14159265/180)-SOG)/(AWSpeedsin((180 - (m_awaangle - 180))*3.14159265/180)))));
}
else {

cTWA = 180;
}
SendSentenceToAllInstruments(OCPN
DBPSTCTWA, cTWA, mawaunit);

}

/////////////////////////////////////////////////////////_


10 jan. 202110 jan. 2021

J'ai réussi à avancer un peu.
En fait j'envoyais seulement la phrase GGA avec le simulateur, or dans cette phrase il n'y a pas la valeur SOG. Valeur qui est nécessaire au calcul de vent vrai.
C'est la raison pour laquelle le plugin dashboard_tactic n’affichait pas les bonnes valeurs de TWA et TWS.
J'ai activé la phrase VTG dans laquelle on trouve en position 7 le SOG.
Alors, le plugin affiche les bonnes valeurs de TWA et TWS

C'est un premier pas, qui m'a permis de valider les différentes formules que l'on trouves sur les forums.

En fait j'ai besoin de TWA et TWS et SOG pour les enregistrer dans dans un fichier et in fine calculer les polaires de mon bateau.
Or il se trouve que si le plugin dashboard_tactic calcule ces valeurs, il ne les renvoie pas dans une phrase NMEA.
Ce qui se vérifie dans le dasboard "de base" dont les valeurs TWA et TWS restent vides.

Donc faire fonctionner dashboard_tactic ne répond pas au besion.


10 jan. 202110 jan. 2021

Merci Shnaps pour les pistes.

Malgré le fait d'avoir fait fonctionner dashboard_tactic le besoin d'une phrase avec le vent vrai reste d'actualité.

Je vais m'abstenir sur le sujet compilation de la dll, ça dépasse mes compétences et mes affinités avec le code :)

En contrepartie, il me semble que NMEA Converteur_pi devrait faire l'affaire. Je l'ai donc installé, mais je bute sur l exécution des formules mathématiques.

Quand j’appelle une variable d'un phrase NMEA existante, le plugin reconnait bien la valeur, mais il refuse d'appliquer les formules. Par exemple, pour $WIMWV1 il affiche bien 250, mais au lieu d'afficher la valeur de cos($WIMWV1) il affiche cos(250).

En contrepartie, si je fait 2*300 il affiche bien 600.

On dirait qu'il voit les variables comme des chaines de caractères et non comme des nombres.
je dois avoir un souci de syntaxe, mais malgré la lecture des docs, je ne vois pas...

Une idée ?


17 jan. 2021

Je réponds malgré tout même si le sujet ne passionne pas les foules, peut-être une jour quelqu’un sera dans la même configuration avec le même besoin.

Au final ma solution est la suivante :
- les données sont récupérées via OpenPlotter / Signal K
- Sous Node-Red on se connecte aux flux signal K pour récupérer AWA, AWS et SOG et COG
- avec Node-Red on calcule TWS, TWA et TWD
- sous Node-Red on renvoie ces nouvelles données à Signal K, et dans un dasboard Node-Red pour les consulter en temps réel.
- sous Node-Red on enregistre les donées dans un fichier à mesure que l'on navigue, on capitalise pour calculer ses polaires plus tard.
- On peut aussi récupérer avec toutes sortes d'interfaces et logiciels les données gérées par SignalK : OpenCPN, QTVLM, Dasboard signal K, dasboard Node-Red ou tout autre appareil qui sait lire du NMEA 1083 ou 2000.

La solution est un peu lourde à mettre en œuvre mais c'est un très bon exercice pour comprendre à la fois ces différentes mesures du vent et l'usage des logiciels.


17 jan. 2021

En plus simple

Opencpn et signalk

Dans signalk on active juste le plugin derived data. On obtient alors les valeurs que tu recherches.

Paf terminé

Si on veut se faire ses polaires on installé influxdb et on active le plugin signalk influxdb


Phare du monde

  • 4.5 (158)

2022