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

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

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

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

Bonjour,

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

Cdlt


28 mai 2020

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

Bonjour,

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


28 mai 2020

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

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


28 mai 2020

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

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

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

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

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

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

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

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

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

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à!


Açores

Phare du monde

  • 4.5 (27)

Açores

2022