Input / output

Convenience functions for reading and writing. A template class I, is used as an abstraction for I/O devices like serial ports, wire interfaces and network interfaces like ethernet. An overview of the required methods of an I/O plugin is described in the plugins section.

Printing

#include "print.tcc"

The following functions take care of serialisation of:

  • Values of basic types.

  • C strings (char[], char*, char const[], char const*).

  • C++ Strings.

  • PROGMEM strings (F() macro).

Finally, a print function that takes an arbitrary amount of parameters is provided for convenience.

Functions

template<class T>
void rpcPrint(Stream &io, T data)

Print a value to a stream.

Parameters
  • io – Stream.

  • data – Data.

inline void rpcPrint(Stream &io, char *data)

Print a value to a stream.

Parameters
  • io – Stream.

  • data – Data.

inline void rpcPrint(Stream &io, char const *data)

Print a value to a stream.

Parameters
  • io – Stream.

  • data – Data.

inline void rpcPrint(Stream &io, String &data)

Print a value to a stream.

Parameters
  • io – Stream.

  • data – Data.

inline void rpcPrint(Stream &io, __FlashStringHelper const *data)

Print a value to a stream.

Parameters
  • io – Stream.

  • data – Data.

template<class T, class ...Ts>
void rpcPrint(Stream &io, T data, Ts... args)

Print any number of values.

Parameters
  • io – Stream.

  • data – Value to be printed.

  • args – Remaining values.

Reading

Read functions for deserialisation.

#include "read.tcc"

Functions

template<class T>
void rpcRead(Stream &io, T *data)

Read a value from an stream.

Parameters
  • io – Stream.

  • data – Data.

template<class T>
inline void rpcRead(Stream &io, T const *data)

Read a value from an stream.

Parameters
  • io – Stream.

  • data – Data.

inline void rpcRead(Stream &io, char **data)

Read a value from an stream.

Parameters
  • io – Stream.

  • data – Data.

inline void rpcRead(Stream &io, char const **data)

Read a value from an stream.

Parameters
  • io – Stream.

  • data – Data.

inline void rpcRead(Stream &io, String *data)

Read a value from an stream.

Parameters
  • io – Stream.

  • data – Data.

template<class T>
void rpcRead(Stream &io, Vector<T> *data)

Read a value from an stream.

Parameters
  • io – Stream.

  • data – Data.

template<class T>
void rpcRead(Stream &io, T **data)

Read a value from an stream.

Parameters
  • io – Stream.

  • data – Data.

template<class T, size_t n>
void rpcRead(Stream &io, Array<T, n> *data)

Read a value from an stream.

Parameters
  • io – Stream.

  • data – Data.

template<class T>
void rpcRead(Stream &io, T const **data)

Read a value from an stream.

Parameters
  • io – Stream.

  • data – Data.

template<class T>
void rpcRead(Stream &io, T ***data)

Read a value from an stream.

Parameters
  • io – Stream.

  • data – Data.

template<class ...Ts>
void rpcRead(Stream &io, Tuple<Ts...> *data)

Read a value from an stream.

Parameters
  • io – Stream.

  • data – Data.

Writing

Write functions for serialisation.

#include "read.tcc"

Functions

template<class T>
void rpcWrite(Stream &io, T *data)

Write a value to a stream.

Parameters
  • io – Stream.

  • data – Data.

inline void rpcWrite(Stream &io, char **data)

Write a value to a stream.

Parameters
  • io – Stream.

  • data – Data.

inline void rpcWrite(Stream &io, char const **data)

Write a value to a stream.

Parameters
  • io – Stream.

  • data – Data.

inline void rpcWrite(Stream &io, String *data)

Write a value to a stream.

Parameters
  • io – Stream.

  • data – Data.

template<class T>
void rpcWrite(Stream &io, Vector<T> *data)

Write a value to a stream.

Parameters
  • io – Stream.

  • data – Data.

template<class T, size_t n>
void rpcWrite(Stream &io, Array<T, n> *data)

Write a value to a stream.

Parameters
  • io – Stream.

  • data – Data.

template<class ...Ts>
void rpcWrite(Stream &io, Tuple<Ts...> *data)

Write a value to a stream.

Parameters
  • io – Stream.

  • data – Data.