Una classe può essere resa printable grazie alla classe Printable del core di Arduino, un esempio è la classe IPAddress() della libreria Ethernet.
Un esempio sciocco:
#include <Printable.h>
class IGOR : public Printable {
public:
IGOR();
virtual size_t printTo(Print& p) const; // necessary to be "Printable"
private:
int num;
};
IGOR::IGOR() { num=123; }
size_t IGOR::printTo(Print& p) const
{ size_t n = 0;
char buf[10];
snprintf(buf,10,"%05d",num);
for (int i =0; i < 5; i++)
{ n += p.print(buf[i]);
}
return n;
}
IGOR objIgor;
void setup()
{ delay(1000);
Serial.begin(9600);
Serial.println("go");
Serial.println(objIgor);
}
void loop() {}