text

Définition Utilisation Exemple Côté technique
 

Taille et dépassements

Quand un caractère doit être écrit, on regarde si il tient. Si il est trop large pour tenir dans la largeur compte tenu de l'abscisse du curseur texte, un retour chariot est effectué avant. Si il ne tient pas verticalement en tenant compte de l'ordonnée du curseur texte, le curseur texte est remis en haut de l'écran, soit en appelant clrscr() si on est en mode normal, soit sans effacer l'écran si on a appelé setTextKeep(KEEP); . Ceci a plusieurs conséquences:
- c'est fait pour chaque caractère, il est donc possible que des mots soient coupés. Il n'y a pas de césure.
- si on va au début de l'écran, si il n'y a pas d'effacement de celui-ci, et les caractères s'inscrivent les uns sur les autres
- si le caractère est trop grand pour tenir seul à l'écran, le curseur texte reviendra à l'origine une seule fois et le caractère sera dessiné, du moins ce qui ne dépasse pas.

Codes ascii ou pas...

Les codes des lettres, des chiffres et des symboles !"#$%&'()*+,-./:;<=>?@[\]_{|}~ correspondent au code ascii. Ainsi si chaine="ABC", chaine[1] contient 0x41 ou 65. C'est normal. La chaîne "ABC" contient 3 caractères.

Les symboles àáâçèéêëîï°±òóôµö÷ùúûü€ sont codés suivant la norme UTF8. Si on écrit chaine="L'été", chaine ne contient pas 5 caractères, mais 7 car le "é" se code avec les 2 valeurs 195 et 169. Le code 169 correspond en principe au code ascii du 'é'. Tous les symboles ci-dessus sont codés avec 2 octets, le premier étant 194 ou 195, le deuxième étant en principe le code ascii étendu du caractère. Exception: le '€' qui est codé sur 3 octets 226 130 et 172. Dans la plupart des cas le système Arduino et PC sont compatibles.

Fonte de caractères

La fonte est vectorielle, et les caractères sont constitués de segments de droites et d'arcs de cercle. Cette fonte est définie afin de minimaliser la taille, et c'est pour cela que certains caractères sont "mal dessinés". Par contre elle supporte bien les agrandissements. La largeur des caractères est variable. Voir comment est définie la fonte vectorielle

PecheuxGraph.zip\PecheuxGraph\examples\Documentation\Exemple-301-text.ino (dans votre fichier téléchargé):

// Ce programme ecrit SUR LA CONSOLE la phrase composé des caractères codés sur deux char ou plus. Puis il affiche SUR
// LA CONSOLE pour chaque caractètre les codes qui le définit.

#include <PecheuxGraph.h>

int c;
String s="àáâçèéêëîï°±òóôµö÷ùúûü€";

void setup() 
{
  Serial.begin(115200);
  Serial.println();
  Serial.println(s);
  for (byte i=0; i<44; i+=2)
    Serial.println(String(s[i])+String(s[i+1])+"  "+String(byte(s[i]))+"  "+String(byte(s[i+1])));
  for (byte i=44; i<45; i+=3)
    Serial.println(String(s[i])+String(s[i+1])+String(s[i+2])+"  "+String(byte(s[i]))+"  "+String(byte(s[i+1]))+"  "+String(byte(s[i+2])));
}

void loop()
{
}

Résultat sur la console série:

àáâçèéêëîï°±òóôµö÷ùúûü€
à  195  160
á  195  161
â  195  162
ç  195  167
è  195  168
é  195  169
ê  195  170
ë  195  171
î  195  174
ï  195  175
°  194  176
±  194  177
ò  195  178
ó  195  179
ô  195  180
µ  194  181
ö  195  182
÷  195  183
ù  195  185
ú  195  186
û  195  187
ü  195  188
€  226  130  172