Informations sur Chat HP

Chat HP

English version

Voici les toutes nouvelles informations consacrées au projet Chat HP sur HP49G.

Fonctionnement
Utilisation
Version 1.01d wire pour HP49G
Bibliothèque seule
Sources

A la demande de nombreux programmeurs et utilisateurs (merci à JRC, Arthur, SunHP, Shadow, Philippe, Benoît et de nombreux autres pour leurs encouragements), j'ai conçu un système de Chat qui présente de nombreux avantages :
l'envoi fonctionne vers plusieurs HP en même temps grâce à un protocole de redemande individuelle de ré-envoi de message et surtout parce que les messages envoyés sont COURTS (limités à 129 caractères pour que les envois, reformatés par l'analyseur de texte, tiennent dans le buffer I/O).

Fonctionnement :

Là encore, les HP sont identifiées grâce à leur numéro de série, mais l'affichage des messages reçus se fait via une table ID/nom usuel pour obtenir des noms lisibles par le commun des mortels.

Les messages reçus sont tout simplement stockés sur la pile, avec au sommet de cette pile de messages justement une chaîne du genre "Chat session 18:05 19/05/99"...
On peut donc sauver facilement une session de Chat, et le systè a été conçu pour pouvoir reprendre une session et replaçant dans la pile les éléments d'une ancienne session.
Si le contenu de la pile ne correspond pas à une session valide, une nouvelle session est lancé sans altérer le contenu initial de la pile.

Les messages apparaissent dans la pile comme suit :
"xxxxx>Hello, ça va bien ?" avec éventuellement plusieurs lignes mais JAMAIS plus de 22 caractères par ligne.
(Le démarrage du programme de Chat le vérifie d'ailleurs avant de re-lancer une ancienne session.)
"xxxxx" représente l'affichage des quartets de l'ID.

La conversion ID/noms usuels se fait via un objet typé Linked Array, stocké dans la variable 'TabCor' de Home.
Des informations internes sont stockées dans une variable globale 'ChatPar', placée également dans Home.

L'affichage se fait en police intégrée de taille 2.
(Et pour changer les fontes ? Hé ben ça viendra plus tard... :-) )
Les 7 premières lignes de l'écran contiennent les messages reçus, et la 8ème ligne affiche la ligne en cours, avec un curseur (bientôt, version 1.02) clignotant s'il-vous-plaît...

Exemple de Chat

Remarquez le curseur à la "Eden", tout en bas...

Je pensais initialement réaliser une routine d'affichage TRES rapide, moins de 1/150e de seconde pour mettre à jour complètement l'affichage entre chaque caractère en train d'être reçu par radio.... Peine perdue, même après avoir reprogrammé intégralement la routine d'affichage des caractères de taille 2, ce challenge semble illusoire... Heureusement, le plus souvent, seule la ligne en cours nécessite d'être mise à jour, et encore, à condition qu'une touche adéquate ait été tapée. De ce fait, ça va beaucoup plus vite.
Finalement, la tâche principale est la gestion du clavier et de la ligne en cours, avec des appels fréquents à la routine de réception radio et un rafraîchissement quand c'est nécessaire.
Pour l'émission, à mon grand regret, il semble qu'il soit nécessaire de l'effectuer en monotâche pour assurer une fiabilité suffisante ( cependant, étant donné la taille de chaque message, l'envoi dure moins d'une seconde ).

Concernant la routine de gestion de la ligne en cours, notez que TOUS les caractères accessibles par un raccourci clavier (sauf les accents sur les consonnes, peu employés en français) ont été implémentés.
La durée de répétition des touches est assez courte, il vous faudra donc provisoirement taper relativement vite.
Seule différence par rapport au clavier standard, comme la ligne en cours est unique, les retours chariot ne sont pas autorisés : j'ai donc affecté le point-virgule à la combinaison [Shift droit] [.].
Si la ligne tapée ne tient pas sur 22 caractères, l'analyseur de ligne insère les retours chariot en conservant si possible les caractères d'un même mot sur une seule ligne et en remplissant au plus chaque ligne.

Pour ce qui est des transferts, qui consistent essentiellement en l'échange de messages bien que des demandes de ré-envoi soient également prévues au cas où une interférence aurait brouillé un message, l'ensemble apparaît maintenant fonctionnel.

Utilisation :

Le liens (cf plus bas) pointe vers un exécutable d'installation. Il suffit de transférer l'exécutable sur la HP49G et de le lancer.
Taper votre nom usuel, et attendre le rédémarrage.
La bibliothèque est maintenant stockée dans le port 2 et le tableau de correspondances ID / noms usuels est placé dans le répertoire Home (on peut maintenant supprimer l'exécutable d'installation).
Dès lors, on peut discuter comme sur le Net entre 2 HP49/48 ou plus.... ;o))

Théoriquement, on peut conserver la variable 'TabCor' et supprimer la bibliothèque Chat HP v1.01d. Si d'aventure on veut récupérer la bibliothèque sans lancer l'exécutable d'installation, c'est-à-dire sans ré-inscrire son nom et sans perdre la liste d'interlocuteurs enregistrée dans 'TabCor', il suffit d'installer manuellement la bibliothèque seule.

L'édition de la Contact List est permise par trois commandes de Chat HP v 1.01d :

- Add Contact : prend en argument une chaîne au niveau 1, qui repréprésente le nom usuel de l'interlocuteur correspondant à l'ID présente au niveau 2 sous forme d'un binaire ( par exemple # 3244A04545h ).
Pour calculer cet entier binaire, lire le numéro de série de la HP de l'interlocuteur, remplacer les lettres hors de la zone A à F par des chiffres hexadécimaux A-F.
(théoriquement, en remplaçant G, M, S par A, et T, N, H par B, etc.)
'Add Contact' modifie ou crée une variable du répertoire Home appelée 'TabCor', et qui est un objet typé Linked Array (essentiellement pour des raisons esthétiques).

- Del Contact : prend comme argument une chaîne argument au niveau 1 de la pile, et efface l'interlocuteur, dont le nom est spécifié dans cette chaîne, de la liste stockée dans 'TabCor'.

-List : réalise l'affichage de tous les interlocuteurs ajoutés avec 'Add Contact' dans 'TabCor'. Le premier nom est celui du propriétaire de la HP locale. C'est le numéro en face de votre nom qu'il faut donner à un interlocuteur pour que celui-ci le tape au niveau 2 de la pile, tape votre nom au niveau 1 de la pile et vous ajoute à sa liste d'interlocuteurs à l'aide de 'Add Contact'.

ChatHP v1.01d, version filaire pour HP49G :

La quatrième version de ChatHP est donc maintenant disponible !!

Chat HP v1.01d pour HP49G

Le système fonctionne de manière très satisfaisante. L'"emballage" (système de démarrage d'une ancienne session, lancement d'une nouvelle session, exécutable d'installation, etc.) est maintenant bel et bien terminé.

TOUS LES BUGS CONNUS ONT ETE CORRIGES.

(en particulier, la gestion de la mémoire, défaillante depuis les premières versions mises en ligne, est désormais assurée de manière optimale.)

La version 1.01b ajoute à la demande de certains utilisateurs la commande 'Del Contact'.
La version 1.01c effectue une meilleure gestion du clavier et la possibilité de parfaitement recevoir pendant que l'on tape un texte.
La version 1.01d augmente la vitesse de transmission à 9600 bauds pour permettre la connexion par HP-ternet.

A venir bientôt :

Version 1.02 avec curseur clignotant et allumage des indicateurs pendant les transferts, test des piles pendant l'exécution du programme, et bien d'autres choses...!

Bibliothèque seule :

La bibliothèque seule est elle-aussi disponible, mais l'utilisation de l'exécutable d'installation est indispensable pour la première installation sur une calculatrice. En effet, l'exécutable crée à partir du numéro de série de la HP49G et du nom de l'utilisateur une variable 'TabCor' dans le répertoire 'HOME', variable indispensable au fonctionnement de ChatHP v1.01c.

Version wire pour HP49G

Sources :

Les sources sont publics, et comme tous les bons programmes pour la HP, ChatHP est parfaitement gratuit. Appliquer la commande CRLIB pour recréer la bibliothèque. Utiliser la commande ASM pour assembler les sources des codes en langage machine ;
Employer la commande '->Prg' d'
EXT49 v2.1 pour recompiler chaque programme en RPL-système.

Source de la version wire pour HP49G


Dernière mise à jour : 02/07/2003 23:22

Envoyez vos félicitations à : yoanndesir@yahoo.com


Retour à la page HP49G principale