3615 MESHCOREFonctions

Fonctions

Tout ce qui suit tourne sur le XIAO et s'affiche sur le Minitel. L'application du téléphone fonctionne à côté, avec la même identité, les mêmes contacts et les mêmes canaux.

  1. Conversations et historique
  2. La page Actions
  3. Dernières nouvelles
  4. Contacts, stations entendues et proches
  5. Salons et administration des relais
  6. Chemin et trace
  7. Graphiques
  8. Régions
  9. Émojis et texte venu de la radio
  10. Taper les accents
  11. La page d'accueil animée
  12. Date et heure
  13. Bluetooth, code d'appairage, alimentation
  14. Télémesure : qui peut lire quoi
  15. USB : pilotage, relevés d'écran, visite
  16. Capture des plantages
  17. La liaison, la veille et le répertoire

Conversations et historique

Sommaire 1 liste tous les canaux configurés, les conversations privées et les salons, la plus récente en tête : nombre de non-lus, heure du dernier message, région d'envoi du canal (en 80 colonnes) et dernier message. Un numéro suivi de Envoi ouvre la conversation.

À l'écran : Conversations, Une conversation de canal, Une conversation privée

La page Actions

Dans une conversation, les flèches ↑ et ↓ choisissent un message (son heure clignote en inverse). Envoi sur une ligne de saisie vide ouvre la page Actions, pour cette conversation et le message choisi ; avec du texte sur la ligne, Envoi l'envoie, tout simplement. La ligne de saisie n'est jamais que du texte. Comme partout : numéro puis Envoi ; Retour ramène à la conversation telle qu'elle était.

EntréeQuandEffet
Répondremessage choisi, d'un tiers, sur un canal ou un salonRetour à la conversation avec @[auteur] devant la ligne, la forme de mention des applis. Les messages qui vous nomment montrent leur auteur en inverse.
Renvoyervotre message privé ou de salon sans accuséRenvoyé avec le même horodatage : le destinataire ignore le doublon et accuse quand même réception.
Effacer ce messagemessage choisiAprès confirmation, le message n'apparaît plus nulle part sur le Minitel (l'appli garde sa copie).
Détailsmessage choisiTout ce qui est gardé : sens, auteur, date à la seconde, sauts et SNR, accusé, répétitions entendues, taille, texte entier.
Rechercher un mottoujoursSans tenir compte des majuscules ni des accents (« ete » trouve « Été ») ; Suite passe à l'occurrence précédente.
Réponses rapidestoujoursDix textes prêts (Réglages 12) à ajouter à la ligne ; {pos} devient votre position.
SilencetoujoursPlus de sonnerie, le compteur ne clignote plus et Suite l'ignore ; la liste la marque s.
Tout marquer lutoujoursToutes les conversations.
Fiche du canal / du contacts'il existeLa fiche ; Retour y ramène à la conversation.
Supprimer la conversationtoujoursLa conversation et son historique, après confirmation.

À l'écran : Actions, Détails d'un message, Rechercher un mot

Dernières nouvelles

Sommaire 2 rassemble les derniers messages de toutes les conversations, par ordre d'heure, le plus récent en bas, chacun avec son étiquette (#canal, @contact, &salon), l'heure, l'auteur et le texte. Les non-lus clignotent ; consulter la page ne marque rien comme lu. Numéro puis Envoi ouvre la conversation pour répondre. Un canal trop bavard peut être masqué de cette page depuis sa fiche.

À l'écran : Dernières nouvelles

Contacts, stations entendues et proches

Sommaire 3 liste les contacts par dernière annonce : type, nom, sauts (? quand le chemin est inconnu et que les messages partent en diffusion), dernière annonce et début de clé. Les favoris viennent en tête, marqués *. Une lettre puis Envoi :

Une fiche contact (numéro puis Envoi) montre le nom, la clé, le chemin, la dernière annonce, la position et une petite courbe du SNR de ses derniers messages, avec les actions : écrire ; ajouter une station entendue ; se connecter à un salon ; oublier le mot de passe ; oublier le chemin ; tracer le chemin ; administration ; partager le contact (sa dernière annonce renvoyée aux voisins directs, comme le partage de l'appli) ; supprimer ; favori (le même drapeau que l'appli) ; permissions de télémesure.

Correspondants absents. Un nœud qui n'a pas fait d'annonce depuis la création de votre identité n'est pas dans vos contacts : ses messages privés ne peuvent pas être déchiffrés, ils sont perdus, et vous ne pouvez pas lui écrire. Ajoutez-le avec N et sa clé publique, ou vérifiez l'ajout automatique (Réglages 7). Réglages 13 affiche votre nom et votre clé à donner aux autres.

À l'écran : Contacts, Stations entendues, Stations proches, Fiche contact, Mon identité

Salons et administration des relais

À l'écran : Administration d'un relais

Chemin et trace

La fiche montre le chemin sous forme d'empreintes de relais (a3>7f>12). Oublier le chemin (comme dans l'appli) fait partir le prochain message en diffusion pour en apprendre un nouveau. Tracer envoie un paquet de trace par chaque relais du chemin, aller et retour (A B C B A) : la page donne pour chaque relais le SNR auquel il a reçu le paquet, le SNR du retour et le temps aller-retour.

Graphiques

Sommaire 8 : des statistiques radio gardées en mémoire depuis le démarrage (environ 1,5 Ko, une mesure par minute). En 40 colonnes, les courbes sont dessinées en mosaïque Vidéotex G1 (2 × 3 pavés par caractère, une zone de 70 × 45) ; en 80 colonnes, en caractères. Suite change la fenêtre (2 h, 1 h, 30 min) ou la page d'un histogramme ; la rangée 22 donne le minimum, la moyenne et le maximum.

N°Graphique
1, 2SNR et RSSI des paquets reçus : barre min–max et moyenne par minute, sur 2 h
3Bruit de fond, minute par minute
4Trafic radio : paquets reçus par minute, et émis
5Temps d'émission par tranche de 10 min, avec en pointillé la limite de la sous-bande (869,4–869,65 MHz : 10 % ; 868,0–868,6 et 869,7–870,0 : 1 % ; 868,7–869,2 : 0,1 %)
6Batterie, toutes les 5 min sur 10 h
7Les mieux entendus : les stations reçues en direct, par le SNR de leur dernière annonce
8, 9Nombre de sauts des paquets reçus en diffusion ; messages par canal

À l'écran : Graphiques, Graphique 1 : SNR, Graphique 4 : Trafic radio, Graphique 5 : Temps d'émission, Graphique 7 : Les mieux entendus

Régions

MeshCore peut limiter une diffusion à une région. 3615 MESHCORE les nomme comme la communauté française, selon les règles de nommage et le générateur de région de Gaulix : eu, fr, fr-<région>, fr-<département>, par exemple eu > fr > fr-bre > fr-35. Les départements d'outre-mer n'ont pas de niveau région ; la Corse est fr-cor.

À l'écran : Choix de la région, Régions automatiques, Canaux, Fiche canal (Public)

Emojis et texte venu de la radio

Le texte reçu par radio n'est pas digne de confiance : tous les caractères de contrôle C0 et C1 et DEL sont supprimés, si bien qu'aucune séquence d'échappement, de protocole ou SS2 cachée dans un message ou un nom ne peut atteindre le terminal. L'UTF-8 est ramené à ce que le Minitel sait afficher :

Taper les accents

Trois niveaux, la manière du Minitel d'abord :

  1. Les touches d'accent (40 colonnes, Vidéotex). Les touches mortes du clavier : Maj+Suite puis la lettre donne l'accent grave, +Retour l'aigu, +Sommaire le circonflexe, +Guide le tréma ; Ctrl+Correction donne ç.
  2. Les touches du jeu français (les deux modes). Ctrl+1, 2, 3 donnent é, ù, è ; en 80 colonnes, Ctrl+Correction (ou Maj+Annulation) donne ç, et ^ (Maj+0) ou ¨ (Maj+Guide) puis la lettre donnent ê, ë, comme sur une machine à écrire (^^ tape ^).
  3. La composition (Réglages 14, active par défaut) : un préfixe, l'accent, la lettre. *'e → é, *`e → è, *^e → ê, *"e → ë, *,c → ç, *oe → œ, *=e → €, */ → \, ** → *. Une séquence qui n'existe pas s'écrit telle quelle : *bonjour* ou 5*3 ne changent pas. La partie en attente s'affiche en inverse au bout de la ligne.

En 80 colonnes, le clavier n'envoie rien pour Maj+Suite, Retour, Sommaire ni pour les Ctrl de œ et ß : passez par la composition. Maj+Annulation et Ctrl+Correction envoient le même octet, qui est ç : la barre oblique inverse s'obtient par */. Les combinaisons Fnct+lettre sont des commandes locales du terminal. Le texte est gardé et envoyé en UTF-8. En 80 colonnes, le jeu français du Minitel n'a que à é è ù ç (plus ° £ §) : les autres lettres accentuées partent correctement mais s'affichent sans accent. Guide deux fois ouvre l'écran Guide, qui rappelle les touches du mode en cours.

À l'écran : Guide

La page d'accueil animée

Comme la page d'accueil d'un service Télétel, elle s'affiche au démarrage et chaque fois que le terminal est réinitialisé (mise sous tension, réveil), quelle que soit la page ouverte, jusqu'à ce qu'on appuie sur une touche ; Sommaire 7 la rejoue. Quatre scènes tournent, chacune dévoilée puis tenue 18 s :

  1. le logo du maillage, les nœuds puis les liens (mosaïques G1 en 40 colonnes, dessin en caractères en 80), puis 3615 MESHCORE en double taille ;
  2. Radio : une antenne et ses ondes, la fréquence, BW/SF/CR, la puissance, le bruit de fond, le SNR moyen de la dernière minute, les paquets ;
  3. Identité : le nom, le début de la clé publique qui apparaît pavé par pavé, la position, le département et la région, le Bluetooth, la batterie ;
  4. Réseau : contacts, stations entendues, conversations et non-lus qui défilent, le dernier message.

Seules les rangées modifiées sont envoyées, une image n'est préparée que quand la précédente est partie (au plus toutes les 130 ms) et le clignotement est celui du terminal : rien ne s'accumule, et une touche entre dans le service aussitôt.

À l'écran : Accueil animé, Accueil 1/4 : le logo, Accueil 2/4 : la radio, Accueil 3/4 : l'identité, Accueil 4/4 : le réseau

Date et heure

Sommaire 6 affiche l'heure dans le fuseau du compagnon et la règle à partir d'une saisie locale JJ/MM/AAAA HH:MM ; le fuseau horaire (en heures entières, à changer deux fois par an) se règle sur la même page. Tant que l'horloge n'est pas réglée, l'heure est prise automatiquement dès que deux nœuds s'accordent à ±2 minutes. L'envoi demande une horloge réglée, ou l'option « envoyer sans heure ».

À l'écran : Date et heure

Bluetooth, code d'appairage, alimentation

Réglages 15 affiche l'état du Bluetooth, le code d'appairage que demande le téléphone et la batterie. On peut y couper le Bluetooth jusqu'au prochain redémarrage, changer le code d'appairage (le « device PIN » de l'appli), redémarrer ou éteindre. Avant un redémarrage ou un arrêt, l'historique, l'index des conversations et une éventuelle écriture de contacts en attente sont enregistrés.

À l'écran : Bluetooth et alimentation, État et statistiques

Télémesure : qui peut lire quoi

Réglages 7, entrées 8 à 10, règle qui peut lire la télémesure de ce nœud, comme dans l'appli : batterie et données de base, position, capteurs. Chacune vaut personne, contacts autorisés ou tous. Pour contacts autorisés, la fiche de chaque contact (action 11) donne ses permissions : B batterie, P position, C capteurs.

À l'écran : Ajout automatique des contacts

USB : pilotage, relevés d'écran, visite

Le port série USB du XIAO (115200 bauds) offre une ligne de commande locale, destinée à l'ordinateur plutôt qu'à l'utilisateur :

La liste complète est dans la référence.

Capture des plantages

Le micrologiciel remplace les gestionnaires d'erreur du cœur (HardFault, MemManage, BusFault, UsageFault) par les siens, qui gardent le compteur ordinal et le registre de lien fautifs, xPSR, les registres d'état d'erreur (CFSR, HFSR, MMFAR, BFAR), la tâche FreeRTOS et la durée de fonctionnement dans une mémoire qui survit au redémarrage. Au démarrage suivant, l'enregistrement s'affiche avec la commande USB boot et sur la page État, et reste en flash jusqu'à boot clear. Comme chaque compilation garde son ELF, crash2line.sh <pc> <lr> retrouve le fichier et la ligne. Réglages 11 indique aussi la pile jamais utilisée de la tâche principale et le tas libre.

Le Minitel parle en 7E1 ; l'UART du nRF52840 n'a pas de mode 7 bits, donc le port tourne en 8N1 et la parité paire est mise dans le bit 7 par logiciel (les mêmes 10 bits sur le fil). Un automate non bloquant essaie 9600, 1200, 4800 puis 300 bauds, lit l'identifiant de la ROM, passe le terminal à 9600 bauds, choisit Mixte 80 ou Vidéotex 40 colonnes, coupe l'écho local et vérifie l'état. La sortie passe par une file de 1 Ko envoyée par DMA, et seules les rangées modifiées partent : le réseau n'attend jamais le Minitel.

Quand on l'allume ou qu'il sort de veille, le Minitel revient à 1200 bauds en Vidéotex, sur son menu local. Le micrologiciel s'en aperçoit (demande d'état sans réponse, acquittement de réinitialisation, parité fausse, touche après un long silence), recommence et affiche la page d'accueil. Si le terminal ne répond plus du tout (le plus souvent, le répertoire), il tente une fois la réinitialisation par le protocole ; à la main, Fnct+Sommaire sort du répertoire et Fnct+E puis A désactive la mise en veille automatique (Fnct+E puis M la réactive). La commande USB link log montre ce qui s'est passé.