Seatalk to NMEA to OpenCPN avec QB64

Bonjour à toutes et à tous,

Le but recherché :

récupérer les phrases Seatalk, (instruments navigation RAYMARINE à bord d'un voilier), à les traiter et à les transformer en phrases NMEA.
Une interface et un programme en QB64 (QuickBasic) devraient me permettre d'envoyer ces phrases modifiées vers un premier port virtuel (COM3), lui-même appairé à un second port virtuel (COM4), et de récupérer les informations en provenance des instruments de bord avec OpenCPN, afin de les afficher sur l'écran du PC. (voir Image 1)

Solution 1 :

Impossible d'ouvrir le port COM3 avec QB64.
3 programmes d'essais valables 14 jours et 2 programmes gratuits permettent de créer ce port virtuel, mais aucun ne fonctionne. Message erreur "bade file name".
Un GPS connecté sur le port COM2 provoque la même erreur s'il n'est pas alimenté.
Concernant le port COM3, on ne peut pas l'ouvrir puisqu'il ne reçoit pas de signal, mais on ne peut pas envoyer de signal puisque l'on ne peut pas l'ouvrir ?

Résultat souhaité : (voir Image 2)

Solution 2

Utiliser la fenêtre "Untilted", genre fenêtre DOS de QB64 pour afficher les résultats sous forme de tableau, à positionner dans l'angle inférieur droit. (voir Image 3).

Améliorations possibles :

redimensionner et repositionner la fenêtre automatiquement en bas à droite.
Mettre cette fenêtre par-dessus toutes les autres, ce qui permettrait de conserver OpenCPN en plein écran.
Est-ce possible ?

Si un(e) HEOtien(tiene) pouvait m'aider, pour résoudre l'un ou l'autre (ou les 2) problème cela me rendrait bien service.

Bon vent à tous.

YVECO44.

L'équipage
27 mai 2020
27 mai 202027 mai 2020
0

Bonjour,
Désolé je n'ai pas de réponses mais une question, le programme en QB64 tu l'as déjà ?
Un convertisseur ST-NG / NMEA0183 coûte dans les 120 à 200 euros. Une solution logicielle pas chère intéresserait certainement du monde (dont moi 😁).


27 mai 2020
0

Bonsoir Fabien83,
Le programme QB64 se trouve facilement sur Internet.
Il pèse 36 Mo~ et fonctionne sur Windows7 32 et 64 bits.
Je crois qu'il fonctionne également W8 et W10.

Attention, le convertisseur ST-NG / NMEA0183 concerne une interface Seatalk avec une VHF.
Pas de rapport avec les instruments de navigation.

Si je n'ai pas de solution avec Seatalk et QB64, (Problème ouverture du port virtuel), je me contenterai de la Solution 2 (plan B), et de l'affichage d'une fenêtre genre "DOS" (Image 3), ou je pense pouvoir afficher les différentes informations, (Profondeur, vitesse et direction du vent, et peut-être plus).

Bonne soirée.


28 mai 2020
0

Je ne dois pas être doué mais je ne trouve nulle part ce programme. Est-ce que tu as un lien ?

Pour ton problème d'ouverture de port, tu devrais aller sur developpez.net/forums ou autres sites de développement. Ça m'étonnerait qu'on ne puisse pas se passer de softs payants pour faire ça.


28 mai 2020
0

Bonjour,

Ci-dessous un lien pour télécharger QB64 V 1.2, à savoir :
www.gratilog.net[...]ile.php

Cdlt


28 mai 2020
0

Non mais le programme lui-même, est-ce qu'il existe déjà ou c'est juste une idée pour le moment ? Le programme que tu décris plus haut et qui traduit les trames ST-NG en NMEA0183.

Le protocole ST-NG étant propriétaire ça me surprend un peu qu'on puisse trouver comme ça un soft qui fait la traduction...


28 mai 2020
0

Bonjour,

Concernant le protocol STng, c'est en fait du NMEA 2000 avec une connectique Raymarine.


28 mai 2020
1

Bonjour,
Si non, il y a le NMEA4Wfi, qui est un multiplexeur NMEA0183 à 4 entrée (dont l'une peut être configurée en Seatalk) et une sortie, un port USB et le Wifi. Le tout pour 64€.


28 mai 2020
0

Super ce boîtier ! Merci pour l'info !


28 mai 2020
0

Je n'ai pas bien compris ce que faisait le programme QB64, mais au vu du schéma :
- il y a déja un convertisseur Seatalk vers RS232 : il ne fait que de la conversion de niveau ou aussi le protocole?
- si conversion complète, pourquoi ne pas exploiter directement ce flux NMEA (qu'il vienne de la VHF ou des instruments c'est à priori le même format, en passant) qui arrive sur le PC via USB?
Open CPN gerera ça très bien.
- sinon j'imagine que le prog QB64 fait la conversion de messagerie...mais je ne comprends pas bien en fait...


28 mai 2020
0

Bonjour,

Je pense qu'il y a confusion entre le fil d'origine d'YVECCO44 qui parle uniquement de Seatalk et le fil suivant de Fabien83 qui parle de Seatalk-NG...


28 mai 2020
0

Bonsoir à tous,
Effectivement, il y a confusion ?
Pour répondre à yannbis, le convertisseur Seatalk fait bien une conversion de niveau, (voir dans l'Image 1, la différence des signaux Seatalk, en couleur orange, avec court-circuit du bus à 12 V, alors qu'à la sortie de l'interface, le bus est à 0 V, et les impulsions sont positives).
La conversion devrait être faite par QB64, en récupérant les infos du Seatalk, et toujours à l'aide du même programme, faire une phrase au standard NMEA.
Le problème vient du fait que je n'arrive pas à ouvrir le port COM3 avec QB64, ce qui bloque la transmission vers COM4 et donc vers OpenCPN.
Bonne soirée à tous.


29 mai 2020
2

Vu l'age du capitaine QB... il est possible que QBasic ne supporte pas les ports COM virtuel.
Autre piste du même ordre,
- il n'est pas sûr que QBasic supporte les numéros de port COM supérieur à 2! (tester en changeant les numéros de port COM Virtuel dans "Gestion du matériel" de Windows.
- regarder du coté de la gestion du contrôle de flux CTS, RTS etc...
- COM3 est peut être déjà utilisé?


BMayer (LauBen):Pour enfoncer le clou proposé par Vents, à la compétence plus que reconnue, je proposerais d'oublier QBasic et de le laisser jouir de sa retraite, et d'utiliser Python.... Plus simple, plus facile, et multiplateformes.·le 29 mai 2020 11:36
29 mai 2020
0

Bonjour à VENTS & BMayer,
Merci à tous les deux pour ces infos, mais j'avais déjà vu sur un forum les problèmes existants avec QB64 et les ports virtuels, ce qui se confirme.
J'ai également essayé de créer des ports virtuels en COM1 & COM2 après les avoir libérés.
Cela ne fonctionne pas non plus. Je jette l'éponge.
Je vais donc m'orienter vers la solution 2 (plan B), qui consiste à envoyer les données reçues depuis l'interface Seatalk vers NMEA, puis interface RS232 VERS USB, et me contenter de l'affichage sous forme de tableau ressemblant à une fenêtre type DOS, comme celle figurant en bas à droite de l'Image 3.
Merci et bon week-end de Pentecôte.

YVECO44


29 mai 2020
1

Regarder du coté de LibertyBasic, c'est simple, efficace et beau rendu visuel type Windows.
Compatible Windows toutes versions depuis XP!.
Gère parfaitement les ports COM virtuel.


30 mai 2020
0

Bonsoir,
Merci pour les infos concernant Liberty Basic.
Je vais télécharger ce programme et faire des essais.
Cela à l'air d'être intéressant.
Bon week-end.


04 juin 202016 juin 2020
0

Bonjour,
Après avoir téléchargé "Liberty Basic", j'arrive enfin à ouvrir le port COM3 (en liaison avec le port COM 4).
Par contre, après avoir effectué un print #comm, "" dans la fenêtre correspondante, je ne sais pas comment procéder (Syntaxe) pour envoyer le même contenu dans le port COM3 ?
(Voir le fichier joint, question en caractères gras en rouge).
Si vous pouviez me donner la solution, je vous remercie de bien vouloir me la transmette.
Cdlt



04 juin 2020
0

Bonjour,

As-tu déjà vu cette doc ?
www.libertybasicuniversity.com[...]7/3.htm

Il y a un truc que je ne comprends pas (je ne suis pas programmeur). Puisqu'il semble si simple de traduire du SeaTalk en NMEA 0183, pourquoi cela n'a-t-il pas déjà été fait ? Dans kplex par exemple.


YVECO44:Bonjour, Merci pour les informations, je vais regarder cela de plus près.·le 05 juin 2020 08:36
04 juin 2020
1

open "COM2:4800,n,8,1,ds0,cs0,rs" for random as #comm
open "COM3:4800,n,8,1,ds0,cs0,rs" for random as #sea ''''' autre de "For random " non autorisé

if lof(#comm) > 0 then
response$ = input$(#comm, lof(#comm))
entireResponse$ = entireResponse$ + response$ '''' vidage du buffer de #comm (Port COM2) dans la variable string entireResponse$
'print #window.te, response$;
'if instr(entireResponse$, "OK") > 0 then ok = 1
end if
print #windows.te, entireResponse$ '''' affichage dans la fenêtre texte de windows
print "entireResponse$: ";entireResponse$ '''' affichage dans la fenêtre de debug, très pratique! (si nomainwin n'est pas ecrit dans le programme)
print #sea, entireResponse$ '''' transmission sur le port COM 3

Voilà!


Votre réponse

Merci de contribuer aux réponses sur HISSE ET OH !

Merci de vérifier de bien répondre au sujet. Fournisser des détails sur votre réponse et partager votre expérience et vos recherches !

Mais éviter de …

  • Demander de l'aide ou de répondre à une autre question (utiliser les commentaires dans ce cas).
  • Porter un jugement et manquer de respect dans votre réponse.
  • Pour plus d'information, consulter la FAQ et la Charte de HISSE ET OH !

Déposer un fichier ici ou Cliquer pour envoyer

Les caprices du ciel

Après la pluie...

  • 4.5 (176)

Les caprices du ciel

mars 2021