Commander-API  V2.0.0
Commander-API is a C++ API, that parses character based commands.
Commander-IO.hpp
Go to the documentation of this file.
1 /*
2  * Created on June 18 2020
3  *
4  * Copyright (c) 2020 - Daniel Hajnal
5  * hajnal.daniel96@gmail.com
6  * This file is part of the Commander-API project.
7  * Modified 2022.02.06
8 */
9 
10 /*
11 MIT License
12 
13 Copyright (c) 2020 Daniel Hajnal
14 
15 Permission is hereby granted, free of charge, to any person obtaining a copy
16 of this software and associated documentation files (the "Software"), to deal
17 in the Software without restriction, including without limitation the rights
18 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19 copies of the Software, and to permit persons to whom the Software is
20 furnished to do so, subject to the following conditions:
21 
22 The above copyright notice and this permission notice shall be included in all
23 copies or substantial portions of the Software.
24 
25 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
31 SOFTWARE.
32 */
33 
34 
35 #ifndef COMMANDER_API_SRC_COMMANDER_IO_HPP_
36 #define COMMANDER_API_SRC_COMMANDER_IO_HPP_
37 
38 #include <stdint.h>
39 #include <stddef.h>
40 
41 #include "Commander-Settings.hpp"
42 
43 #ifdef COMMANDER_USE_SERIAL_RESPONSE
44 #include "Serial.hpp"
45 #endif
46 
47 #ifdef ARDUINO
48 #include "Arduino.h"
49 #endif
50 
65 
66 public:
67  virtual int available() { return 0; }
68  virtual int read() { return -1; }
69  virtual int peek() { return 0; }
70  virtual size_t readBytes( uint8_t *buff, uint32_t size ) { return 0; }
71  virtual void flush() { return; }
72  virtual size_t write( uint8_t b ) { return 0; }
73 
74  virtual size_t print( char c ) { return 0; }
75  virtual size_t print( char *str ) { return 0; }
76  virtual size_t print( const char *str ) { return 0; }
77 
78  virtual size_t print( int8_t b ) { return 0; }
79  virtual size_t print( uint8_t b ) { return 0; }
80  virtual size_t print( int16_t b ) { return 0; }
81  virtual size_t print( uint16_t b ) { return 0; }
82  virtual size_t print( int32_t b ) { return 0; }
83  virtual size_t print( uint32_t b ) { return 0; }
84  virtual size_t print( float f ) { return 0; }
85  virtual size_t print( double f ) { return 0; }
86 
87  virtual size_t println() { return 0; }
88  virtual size_t println( char c ) { return 0; }
89  virtual size_t println( char *str ) { return 0; }
90  virtual size_t println( const char *str ) { return 0; }
91 
92  virtual size_t println( int8_t b ) { return 0; }
93  virtual size_t println( uint8_t b ) { return 0; }
94  virtual size_t println( int16_t b ) { return 0; }
95  virtual size_t println( uint16_t b ) { return 0; }
96  virtual size_t println( int32_t b ) { return 0; }
97  virtual size_t println( uint32_t b ) { return 0; }
98  virtual size_t println( float f ) { return 0; }
99  virtual size_t println( double f ) { return 0; }
100 
101  virtual int printf( const char *fmt, ... ) { return 0; }
102 
103 };
104 
105 #ifdef COMMANDER_USE_SERIAL_RESPONSE
106 
112 class commandResponseSerial : public commandResponse{
113 
114 public:
115 
116  void select( Serial *serialPort_p );
117 
118  int available() override;
119  int read() override;
120  int peek() override;
121  size_t readBytes( uint8_t *buff, uint32_t size ) override;
122  void flush() override;
123  size_t write( uint8_t b ) override;
124 
125  size_t print( char c ) override;
126  size_t print( char *str ) override;
127  size_t print( const char *str ) override;
128 
129  size_t print( int8_t b ) override;
130  size_t print( uint8_t b ) override;
131  size_t print( int16_t b ) override;
132  size_t print( uint16_t b ) override;
133  size_t print( int32_t b ) override;
134  size_t print( uint32_t b ) override;
135  size_t print( float f ) override;
136  size_t print( double f ) override;
137 
138  size_t println() override;
139  size_t println( char c ) override;
140  size_t println( char *str ) override;
141  size_t println( const char *str ) override;
142 
143  size_t println( int8_t b ) override;
144  size_t println( uint8_t b ) override;
145  size_t println( int16_t b ) override;
146  size_t println( uint16_t b ) override;
147  size_t println( int32_t b ) override;
148  size_t println( uint32_t b ) override;
149  size_t println( float f ) override;
150  size_t println( double f ) override;
151 
152  int printf( const char *fmt, ... ) override;
153 
154 private:
155  Serial *serialPort = NULL;
156 
157 };
158 
159 #endif
160 
161 #ifdef COMMANDER_USE_ARDUINO_SERIAL_RESPONSE
162 
168 class commandResponseArduinoSerial : public commandResponse{
169 
170 public:
171 
172  void select( HardwareSerial *serialPort_p );
173 
174  int available() override;
175  int read() override;
176  int peek() override;
177  size_t readBytes( uint8_t *buff, uint32_t size ) override;
178  void flush() override;
179  size_t write( uint8_t b ) override;
180  size_t print( char c ) override;
181  size_t print( char *str ) override;
182  size_t print( const char *str ) override;
183 
184  size_t print( int8_t b ) override;
185  size_t print( uint8_t b ) override;
186  size_t print( int16_t b ) override;
187  size_t print( uint16_t b ) override;
188  size_t print( int32_t b ) override;
189  size_t print( uint32_t b ) override;
190  size_t print( float f ) override;
191  size_t print( double f ) override;
192 
193  size_t println() override;
194  size_t println( char c ) override;
195  size_t println( char *str ) override;
196  size_t println( const char *str ) override;
197 
198  size_t println( int8_t b ) override;
199  size_t println( uint8_t b ) override;
200  size_t println( int16_t b ) override;
201  size_t println( uint16_t b ) override;
202  size_t println( int32_t b ) override;
203  size_t println( uint32_t b ) override;
204  size_t println( float f ) override;
205  size_t println( double f ) override;
206 
207  int printf( const char *fmt, ... ) override;
208 
209 private:
210  HardwareSerial *serialPort = NULL;
211 
212 };
213 
214 #endif
215 
216 #ifdef COMMANDER_USE_WIFI_CLIENT_RESPONSE
217 
223 class commandResponseWiFiClient : public commandResponse{
224 
225 public:
226 
227  void select( WiFiClient *client_p );
228 
229  int available() override;
230  int read() override;
231  int peek() override;
232  size_t readBytes( uint8_t *buff, uint32_t size ) override;
233  void flush() override;
234  size_t write( uint8_t b ) override;
235  size_t print( char c ) override;
236  size_t print( char *str ) override;
237  size_t print( const char *str ) override;
238 
239  size_t print( int8_t b ) override;
240  size_t print( uint8_t b ) override;
241  size_t print( int16_t b ) override;
242  size_t print( uint16_t b ) override;
243  size_t print( int32_t b ) override;
244  size_t print( uint32_t b ) override;
245  size_t print( float f ) override;
246  size_t print( double f ) override;
247 
248  size_t println() override;
249  size_t println( char c ) override;
250  size_t println( char *str ) override;
251  size_t println( const char *str ) override;
252 
253  size_t println( int8_t b ) override;
254  size_t println( uint8_t b ) override;
255  size_t println( int16_t b ) override;
256  size_t println( uint16_t b ) override;
257  size_t println( int32_t b ) override;
258  size_t println( uint32_t b ) override;
259  size_t println( float f ) override;
260  size_t println( double f ) override;
261 
262  int printf( const char *fmt, ... ) override;
263 
264 private:
265  WiFiClient *client = NULL;
266 
267 };
268 
269 #endif
270 
271 
272 
273 
274 
275 #endif /* COMMANDER_API_SRC_COMMANDER_IO_HPP_ */
commandResponse::print
virtual size_t print(uint32_t b)
Definition: Commander-IO.hpp:83
commandResponse::print
virtual size_t print(uint16_t b)
Definition: Commander-IO.hpp:81
commandResponse::println
virtual size_t println()
Definition: Commander-IO.hpp:87
commandResponse::print
virtual size_t print(float f)
Definition: Commander-IO.hpp:84
commandResponse::println
virtual size_t println(char c)
Definition: Commander-IO.hpp:88
commandResponse::print
virtual size_t print(uint8_t b)
Definition: Commander-IO.hpp:79
commandResponse::print
virtual size_t print(char *str)
Definition: Commander-IO.hpp:75
commandResponse::println
virtual size_t println(float f)
Definition: Commander-IO.hpp:98
commandResponse::println
virtual size_t println(const char *str)
Definition: Commander-IO.hpp:90
commandResponse::println
virtual size_t println(double f)
Definition: Commander-IO.hpp:99
commandResponse::write
virtual size_t write(uint8_t b)
Definition: Commander-IO.hpp:72
commandResponse::flush
virtual void flush()
Definition: Commander-IO.hpp:71
commandResponse::print
virtual size_t print(int8_t b)
Definition: Commander-IO.hpp:78
commandResponse::println
virtual size_t println(uint32_t b)
Definition: Commander-IO.hpp:97
commandResponse::println
virtual size_t println(uint16_t b)
Definition: Commander-IO.hpp:95
commandResponse::peek
virtual int peek()
Definition: Commander-IO.hpp:69
commandResponse::println
virtual size_t println(int32_t b)
Definition: Commander-IO.hpp:96
commandResponse
Default response class.
Definition: Commander-IO.hpp:64
commandResponse::print
virtual size_t print(int16_t b)
Definition: Commander-IO.hpp:80
commandResponse::print
virtual size_t print(int32_t b)
Definition: Commander-IO.hpp:82
commandResponse::readBytes
virtual size_t readBytes(uint8_t *buff, uint32_t size)
Definition: Commander-IO.hpp:70
commandResponse::available
virtual int available()
Definition: Commander-IO.hpp:67
commandResponse::print
virtual size_t print(double f)
Definition: Commander-IO.hpp:85
commandResponse::println
virtual size_t println(int8_t b)
Definition: Commander-IO.hpp:92
Commander-Settings.hpp
commandResponse::read
virtual int read()
Definition: Commander-IO.hpp:68
commandResponse::println
virtual size_t println(int16_t b)
Definition: Commander-IO.hpp:94
commandResponse::print
virtual size_t print(char c)
Definition: Commander-IO.hpp:74
commandResponse::println
virtual size_t println(uint8_t b)
Definition: Commander-IO.hpp:93
commandResponse::println
virtual size_t println(char *str)
Definition: Commander-IO.hpp:89
commandResponse::print
virtual size_t print(const char *str)
Definition: Commander-IO.hpp:76
commandResponse::printf
virtual int printf(const char *fmt,...)
Definition: Commander-IO.hpp:101