Conversion carnet de trafic
radio-amateur en Adif
Pourquoi ce projet ?
Depuis plusieurs années je fais de nombreux QSO en FT8 et FT4, programmes Wsjtx ou Jtdx, pour évaluer la propagation (qui j’ai entendu ou qui m’a entendu et comment) l’application Psk-Reporter est excellente. Voir Psk-Reporter
Il y a quelque temps, j’ai installé sous Windows10, l’application GridTracker.
Pour éviter le passage d’une fenêtre à l’autre ou de visualiser des petites fenêtres (sur un même PC) puisque GridTracker et Wsjtx le permettent : L’appli réside sur un PC , sur un autre PC (proche) Wsjtx est actif, chaque message reçu est envoyé sous forme d’un flux UPD vers GridTracker.
Questions : que peut-on obtenir en plus par rapport au contexte actuel ?
La partie intéressante (ludique) lorsque l’on peut disposer de 2 écrans côte à côte est le positionnement immédiat sur une carte de la station appelée ou appelante (CQ) ainsi que son propre trafic.
Voir ci-dessous
L’accès à un carnet de trafic permet de visualiser les stations déjà contactées, en obtenir tous les renseignements sur les derniers Qso effectués sur la bande et dans le mode.
Un grand nombre de carnets de trafic sont supportés par l’appli, le mien (développement personnel) n’est pas supporté, par contre Il est possible de mettre en ligne un fichier Adif comme Logbook.
C’est donc l’objectif du projet qui suit.
Procédure pour convertir les données extraites de la DB (carnet de trafic informatique) puis les intégrer à la place du fichier Adif de Wsjtx ou Jtdx ou GridTracker.
Pour obtenir le résultat 3 phases sont nécessaires, l’idée a été d’automatiser le plus possible ces opérations, mais aussi d’en garder trace, il est si facile de perdre une macro VBA.
Phase 1
Extraction depuis le carnet de trafic vers une feuille Excel.
Note Ce genre d’extraction est possible sur toute Data Base supportant les requêtes en SQL (j’utilise Microsoft Access).
C’est valable aussi avec MySql , Sqlite, MariaDB, Oracle et d’autres certainement.
Voir sur ce même site QSO FT8 vers DB
Ci-dessous la requête.
SELECT Carnet_Log_FT8.Call, Carnet_Log_FT8.Gridsquare, Carnet_Log_FT8.Mode, Carnet_Log_FT8.[Band], Carnet_Log_FT8.Qso_Date, Carnet_Log_FT8.Time_on, Carnet_Log_FT8.Country
FROM Carnet_Log_FT8
WHERE (((Carnet_Log_FT8.Mode) Like "FT8" Or (Carnet_Log_FT8.Mode) Like "FT4") AND ((Carnet_Log_FT8.Qso_Date) Like "2022-*")) OR (((Carnet_Log_FT8.Mode) Like "ft8" Or (Carnet_Log_FT8.Mode) Like "ft4") AND ((Carnet_Log_FT8.Qso_Date) Like "2022-*"))
ORDER BY Carnet_Log_FT8.Qso_Date, Carnet_Log_FT8.Time_on;
Explications : la DB est nommée Carnet_Log_FT8 , les champs extraits sont : Call , Gridsquare, Mode, Qso_Date, Time_on, Country.
Lorsque les Qso FT4 ou FT8 sont effectués dans l’année 2022.
Classé par Date et Heure du début du Qso
Le fichier Excel obtenu est composé des colonnes :
Call
Gridsquare
Mode
Band
Qso_Date (format aaaa-mm-jj)
Time_on (format 1900-01-00 hh:mm:ss)
Country
Ce classeur est nommé « Vers_adif.xlsx »
Phase 2
Mise en forme de la feuille Excel pour obtenir un fichier Adif compatible avec GridTracker et bien entendu Wsjtx et Jtdx.
Une seule macro VBA « Log_Vers_Adif » suffit à réaliser les 3 fonctions qui suivent.
Etape 01
Convertir Qso_Date sous la forme aaaammjj
Convertir Time_on sous la forme hhmmss
Copier cette feuille modifiée dans un nouveau classeur de format « .csv »
Comment :
Ouvre le fichier « Vers_adif.xlsx » issu de la requête d’extraction sur la DB.
Le champ « Qso_Date » colonne E est mis sous la forme yyyymmjj .
Le champ « Time_on » colonne F est mis sous la forme hhmmss .
Une nouvelle feuille est créée et enregistrée sous le nom « Vers_adif.csv » c’est du texte, chaque champ est séparé par un « point virgule ».
Ferme la feuille.
Etape 02
Comment
Importe le fichier « Vers_adif.csv » il est chargé dans une nouvelle feuille de calcul.
(Onglet Données extérieures puis Données externes puis texte)
Tous les champs sont importés et sauvés en texte ou numérique.
Sauvegarde sous « Classeur1.xlxs »
Etape 03
Comment :
Ouvre le classeur « Classeur1.xlsx »
Prend l’en-tête de chaque colonne (nom du champ) ligne 1 du tableau.
Attribue au contenu de chaque cellule :
Un nom de champ et sa longueur, délimité par les balises < > , le contenu du champ.
Termine chaque ligne correspondante à un Qso par un EOR (end of record)
Le fichier est sauvegardé en « .adi » (c’est du texte).
Un nom de fichier est attribué automatiquement (Log_au_aaaa-mm-jj.adi) .
Ferme la feuille.
A noter une macro « Conv_en_adif » avait été développée il y a quelques années pour alimenter et mettre à jour avec le même contenu, les fichiers adif des différents PC où j’utilise indifféremment Wsjtx ou Jtdx.
En réalité pour simplifier la procédure ces 3 étapes sont regroupées dans une seule et unique macro « Log_to_Adif » , Il suffit d’exécuter la macro , quelques messages permettent au cours du déroulement d’en suivre la progression.
La source de cette macro en format texte (pdf) dispo au cas où… dans ce document, est aussi décrite et disponible une macro qui remplace l'Etape 04 ci-dessous.
Etape 04
Correction du fichier adif
La mise sur 6 caractères de l’heure ne fonctionnant pas avec Excel (pas possible sur une zone numérique d’ajouter des zéros à gauche) , ils s’affichent sur le tableau mais disparaissent lors de la création du fichier « Log_au_aaaa-mm-jj.adi »
Solution : utiliser Wordpad ou Notepad pour remplacer la chaine de caractères : Time_on :5> par Time_on :6>0
Phase 3
Ce fichier « .adi » peut alors remplacer celui de chaque appli (après avoir fourni de nom du fichier attendu par l’appli).
« wsjtx_log.adi » et GridTracker_qso.adif
Bien entendu si l’on utilise toujours Wsjtx ou toujours Jtdx sur un seul et unique ordinateur, ces rechargements ne sont pas nécessaires.
Si l'on était tenté d'utiliser GridTracker comme Logbook, celà nécessite que celui-ci soit disponible avant chaque QSO. C'est à dire toujours démarré avant Jtdx ou Wsjtx.
Pierre Schuster F5BQV 28/08/2022 et 03/02/2023
Retour à l’accueil http://f5bqv.fr