RUI3 (RAK Unified Interface 3) - RAK4631
Print.h
Go to the documentation of this file.
1 #ifndef __PRINT_H__
2 #define __PRINT_H__
3 
4 #include <inttypes.h>
5 #include <stdio.h>
6 
7 #include "Printable.h"
8 #include "pgmspace.h"
9 #include "WString.h"
10 
11 //define for convertion
12 #define DEC 10
13 #define HEX 16
14 #define OCT 8
15 #ifdef BIN
16 #undef BIN
17 #endif
18 #define BIN 2
19 
20 using namespace std;
21 
22 class Print
23 {
24  protected:
25  void setWriteError(int err = 1)
26  {
27  write_error = err;
28  }
29  private:
30  size_t printNumber(uint64_t, uint8_t);
31  size_t printFloat(double, int);
32  int write_error;
33  public:
34  Print() : write_error(0) {}
35 
37  {
38  return write_error;
39  }
41  {
42  setWriteError(0);
43  }
44 
45  virtual size_t write(uint8_t) = 0;
46  virtual size_t write(const uint8_t *, size_t size);
47 
48  size_t write(const char *str)
49  {
50  if (str == NULL) {
51  return 0;
52  }
53  return write((const uint8_t *)str, strlen(str));
54  }
55  size_t write(const char *buffer, size_t size)
56  {
57  return write((const uint8_t *)buffer, size);
58  }
59  size_t write(String str)
60  {
61  return write((const uint8_t *)str.c_str(), str.length());
62  }
63 
64  //print
65  size_t print(const __FlashStringHelper *);
66  size_t print(const char *);
67  size_t print(const String &);
68  size_t print(char[]);
69  size_t print(char);
70  size_t print(unsigned char, int = DEC);
71  size_t print(int, int = DEC);
72  size_t print(unsigned int, int = DEC);
73 
129  size_t print(long, int = DEC);
130  size_t print(unsigned long,int = DEC);
131  size_t print(double, int = 2);
132 
133  //println
134  size_t println(const __FlashStringHelper *);
135  size_t println(const char *);
136  size_t println(const String &s);
137  size_t println(char[]);
138  size_t println(char);
139  size_t println(unsigned char, int = DEC);
174  size_t println(int, int = DEC);
175  size_t println(unsigned int, int = DEC);
176  size_t println(long, int = DEC);
177  size_t println(unsigned long, int = DEC);
178  size_t println(double, int = 2);
179  size_t println(void);
180 
181  //long long
182  void println(int64_t, uint8_t = DEC);
183  void print(int64_t, uint8_t = DEC);
184  void println(uint64_t, uint8_t = DEC);
185  void print(uint64_t, uint8_t = DEC);
186 
212  size_t printf(const char *val, ...);
213 
214 };
215 
216 #endif
unsigned int length(void) const
Definition: WString.h:44
int getWriteError()
Definition: Print.h:36
Print()
Definition: Print.h:34
Definition: WString.h:22
Definition: Print.h:22
void clearWriteError()
Definition: Print.h:40
void setWriteError(int err=1)
Definition: Print.h:25
size_t write(const char *buffer, size_t size)
Definition: Print.h:55
size_t write(const char *str)
Definition: Print.h:48
size_t write(String str)
Definition: Print.h:59
const char * c_str() const
Definition: WString.h:111