Gestion de chaînes de caractères pour ESP32Forth
publication: 14 janvier 2022 / mis à jour 27 janvier 2022
Compilez ce code source permettant de gérer mes chaînes alphanumériques avec ESP32Forth.
Listing complet: strings management for ESP32forth
Création d'une chaine alphanumérique
La création d'une chaine de caractères alphanumérique est très simple:
64 string myNewString
Ici, nous créons une variable alphanumérique myNewString
pouvant contenir jusqu'à 64 caractères.
Pour afficher le contenu d'une variable alphanumérique, il suffit ensuite
d'utiliser type. Exemple:
s" This is my first example.." myNewString $!
myNewString type \ display: This is my first example..
Si on tente d'enregistrer uen chaîne de caractères plus longue que la taille maximale de notre variable alphanumérique, la chaîne sera tronquée:
s" This is a very long string, with more than 64 characters. It can't store complete"
myNewString $!
myNewString type
\ display: This is a very long string, with more than 64 characters. It can
Ajout de caractère à une variable alphanumérique
Certains périphériques, le transmetteur LoRa par exemple, demandent à traiter
des lignes de commandes contenant les caractères non alphanumériques Le mot
c+$! permet cette insertion de code:
32 string AT_BAND s" AT+BAND=868500000" AT_BAND $! \ set frequency at 865.5 Mhz $0a AT_BAND c+$! $0d AT_BAND c+$! \ add CR LF code at end of command
Le dump mémoire du contenu de notre variable alphanumérique AT_BAND
confirme la présence des deux caractères de contrôle en fin de chaine:
--> AT_BAND dump --addr--- 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ------chars----- 3FFF-8620 8C 84 FF 3F 20 00 00 00 13 00 00 00 41 54 2B 42 ...? .......AT+B 3FFF-8630 41 4E 44 3D 38 36 38 35 30 30 30 30 30 0A 0D BD AND=868500000... ok
Voici une manière astucieuse de créer une variable alphanumérique permettant de transmettre un retour chariot, un CR+LF compatible avec les fins de commandes pour le transmetteur LoRa:
2 string $crlf $0d $crlf c+$! $0a $crlf c+$! : crlf ( -- ) \ same action as cr, but adapted for LoRa $crlf type ;
Cet article sera complété si d'autres fonctionnalités significatives sont développées.
Legal: site web personnel sans commerce / personal site without seling
