Pages: [1]   Go Down
Author Topic: [Lib] EZPrint : Simplifiez l'usage de Serial, Client, et classes similaire  (Read 1651 times)
0 Members and 1 Guest are viewing this topic.
Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour

Avec un environnement où le principal moyen de debug est la liaison série, je peste souvent sur l'absence d'un moyen simple d'afficher des textes complexes.
Bref, mon bon vieux printf() me manque !

Il y a de bonnes raisons de ne pas chercher à utiliser printf() ou ne serais-ce que sprintf() mais sommes nous pour autant obligés de nous taper 15 lignes de Serial.print() chaque fois que nous voulons afficher une phrase constituée de chaines de caractères, de variables etc .... ???

NON !

EZPrint est une lib qui recrée les surchages de l'opérateur << souvent utilisé en C++ avec cout.
Grace à EZPrint(c) smiley-wink il est facile d'écrire ce genre de code beaucoup plus léger et beaucoup plus lisible :

Code:
  Serial << "This is a decimal value : " << dec << 123 << endl;
  Serial << "And this is a binary value : " << bin << 123 << endl;
  Serial << _PSTR("This string is stored in Flash memory" ) << endl;
  EZPrintDigits( 5 );
  Serial << "A float with 5 decimal digits : " << 4.0/3.0 << endl; 

C'est mieux hein ?
Et çà marche avec n'importe quel classe dérivée de Stream/Print telles-que (et sans limitation) :
- Tous les Serial, Serial2, Serial3, ...
- SoftwareSerial
- Client (Ethernet)
- LiquidCrystal
et bien d'autres .....

Comme d'hab, récupérez le ZIP ci-dessous et dezippez le dans votre répertoire arduino/Libraries.
Ensuite un simple #include "EZPrint.h" vous permettra de bénéficier de ses (nombreux) avantages  smiley-grin

ATTENTION : Pour mettre une chaîne de caractère en Flash, il faut utiliser _PSTR() eu lieu de PSTR().

---------
Historique
1.0   20 mai 2012             version initiale

* EZPrint-1_0.zip (3.49 KB - downloaded 28 times.)
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

France
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3023
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A ça c'est une idée qu'elle est bonne
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 75
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
C'est quoi les bonnes raisons pour ne pas utiliser printf et sprintf?
Gerse
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Printf() sous entend l'existence d'un périphérique de sortie standard ce qui n'existe pas dans l'environnement arduino. Printf() n'est pas implémenté.

Sprintf() marche a condition de s'y prendre en 2 fois (sprintf puis serial.print) et d'allouer un buffer suffisant en permanence.

L'avantage de cette solution est qu'elle ne requière pas de buffer supplémentaire et le code généré est strictement équivalent a celui qui le serait en utilisant des Serial.print() séparés.

De plus il marche avec toute classe dérivée de Print (Serial, SoftwareSerial, EthernetClient, LiquidCrystal,...) Là où il n'est pas possible non plus d'utiliser fprintf() puisque la notion de gestionnaire de fichier n'est pas implémentée.
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

83 - var
Offline Offline
God Member
*****
Karma: 4
Posts: 772
ARDUINO Powa !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut:

Quote
Bref, mon bon vieux printf() me manque !

Je veux bien te croire c'est la même !!!  smiley-mad

Skizo !
Logged

Un tien vaux mieux que deux tu l'auras !

Pages: [1]   Go Up
Jump to: