Minitel Library for Arduino (with HardwareSerial)
Documentation utilisée : Spécifications Techniques d'Utilisation du Minitel 1B
http://543210.free.fr/TV/stum1b.pdf
Historique :
Dernière Version : 17/03/2023 à 14h55.
J'utilise la version 1.8.19 d'Arduino pour compiler.
Je travaille avec un ATmega 1284P, un ATmega 2560 et un ESP32-WROOM-32E.
Avec la carte Arduino Mega (ATmega 2560), j'utilise le shield 3615 (version 2023).
12/03/2023
Correction de deux bugs mineurs dans getKeyCode(bool unicode)
Mise à jour de l'exemple TestCaracteresSpeciaux.ino
11/03/2023
Suppression de l'exemple Couleurs_3615.ino (car redondant).
Mise à jour de tous les autres exemples pour tenir compte des différences entre ce qui concerne l'ATmega 1284P et l'ESP32-WROOM-32E.
06/03/2023
Mise à jour des exemples :
TestCaracteresSpeciaux.ino
Tweet_3615.ino
Couleurs_3615.ino
05/03/2023
Ajout d'une nouvelle fonction :
int getNbBytes(unsigned long code)
à utiliser (si besoin) en association avec String getString(unsigned long code) afin de déterminer le nombre d'octets utilisés pour un caractère codé en UTF-8.
Mise à jour des exemples :
TestCaracteresSpeciaux.ino
Couleurs_3615.ino
Tweet_3615.ino
28/02/2023
La fonction write(unsigned long code) est renommée writeCode(unsigned long code).
J'ai dû changer son nom car avec ce nom un problème est apparu dans l'usage de la bibliothèque Minitel1B_Soft : le Minitel se bloquait. Il s'agissait probablement d'un conflit avec la fonction write de la bibliothèque SoftwareSerial. Par souci de cohérence entre les bibliothèques Minitel1B_Hard et Minitel1B_Soft, j'ai renommé write en writeCode.
27/02/2023
Correction d'un bug dans unsigned long identificationBytes()
Mise à jour de l'exemple TestCaracteresSpeciaux.ino
27/02/2023 - Sur proposition de iodeo :
Correction d'un bug sur le caractère Bêta.
Ajout d'une fonction pour identifier le Minitel :
unsigned long identifyDevice()
26/02/2023
Des exemples où il est question de caractères...
Ajout d'un nouvel exemple :
TestCaracteresSpeciaux.ino
Modification des exemples :
Couleurs_3615.ino
Tweet_3615.ino
26/02/2023 - Sur proposition de iodeo :
Pour une meilleure gestion des caractères spéciaux (notamment dans la console série) :
Ajout de nouvelles fonctions :
void write(unsigned long code)
String getString(unsigned long code)
boolean isVisualisable(unsigned long code)
Modification de :
void print(String chaine)
unsigned long getKeyCode(bool unicode = true)
Suppression, car devenues inutiles, de :
void printDiacriticChar(unsigned char caractere)
boolean isDiacritic(unsigned char caractere)
25/06/2022 - Sur proposition de iodeo :
Correction d'un bug dans la fonction byte reset()
24/04/2022
Ajout d'un exemple : Portrait.ino (affichage d'une image)
13/03/2022
Ajout d'un exemple basique : HelloWorld.ino
21/02/2022 - Sur proposition de iodeo :
Ajout d'une option qui permet de désactiver la conversion des caractères en ascii étendue (cela sert en particulier pour la communication avec des services Minitel externes) :
unsigned long getKeyCode(bool ascii = true)
08/10/2021 - Sur proposition de iodeo :
Correction de bugs mineurs dans echo(boolean commande) et changeSpeed(int bauds).
Ajout d'une nouvelle fonction liée au modem (équivalent de la touche CONNEXION / FIN) :
byte connexion(boolean commande)
Patch pour Arduino-ESP32 core v1.0.6 https://github.com/espressif/arduino-esp32
02/07/2021
1 nouvelle fonction :
byte reset()
01/07/2021
1 nouvelle fonction :
byte statusAiguillage(byte module)
et mise à jour de :
byte pageMode()
byte scrollMode()
byte modeMixte()
byte modeVideotex()
byte standardTeleinformatique()
byte standardTeletel()
byte smallMode()
byte capitalMode()
byte extendedKeyboard()
byte standardKeyboard()
byte echo(boolean commande)
byte aiguillage(boolean commande, byte emetteur, byte recepteur)
29/06/2021
5 nouvelles fonctions :
void writeWord(word w)
int modeMixte()
int modeVideotex()
int standardTeleinformatique()
int standardTeletel()
28/06/2021
Modification de la fonction :
unsigned long getKeyCode()
pour tenir compte des codes du clavier étendu.
Dans le fichier d'entête (.h), ajout de plusieurs #define dans la partie "Clavier".
2 nouvelles fonctions :
void echo(boolean commande)
void aiguillage(boolean commande, byte emetteur, byte recepteur)
11/05/2018
Modification de deux fonctions :
void printDiacriticChar(unsigned char caractere)
boolean isDiacritic(unsigned char caractere)
pour tenir compte de la remarque de BorisFR sur les caractères diacritiques majuscules.
18/06/2017
Exemple Tweet_3615.ino
15/06/2017
2 nouvelles fonctions qui donnent la position du curseur :
int getCursorX()
int getCursorY()
06/06/2017
Exemple d'utilisation du clavier et d'affichage d'une image :
Couleurs_3615.ino
06/06/2017
2 nouvelles fonctions graphiques :
void graphic(byte b, int x, int y)
void graphic(byte b)
12/03/2016
Début de la version HardwareSerial de Minitel1B sur GitHub