Larus glider flight sensor system 3.9.2024
Software-In-The-Loop test and validation system
Loading...
Searching...
No Matches
serial_io.h
Go to the documentation of this file.
1/***********************************************************************/
25#ifndef SERIAL_IO_H_
26#define SERIAL_IO_H_
27
28#include "ascii_support.h"
29
32{
33public:
34 int geti( void);
35 virtual bool input_ready(void)
36 {
37 return false; // ... just a stub
38 }
39 virtual char get( void)
40 {
41 return 0; // another stub, function should have a return value
42 }
43 virtual char get_blocking( void)
44 {
45 return get(); // default if blocking not supported
46 }
47};
48
51{
52public:
53 virtual void put( char) // another stub
54 {
55 }
56 void puti( int value, int base=10);
57 void putx( int32_t value, uint8_t digits = 8);
58 void putf( float value);
59 virtual void puts( const char * data);
60 void newline( void);
61 void blank( void);
62};
63
66{
67};
68
70template <unsigned size> class ascii_string_writer : public serial_output
71{
72public:
74 : p(buf)
75 {
76 *p=0;
77 }
78 void put( char c)
79 {
80 if(( buf+size-p) < 2)
81 return; // buffer full, give up silently
82 *p++ = c;
83 *p = 0;
84 }
85 void puts( char *c)
86 {
87 while( (buf+size-p) >= 2)
88 *p++=*c++;
89 *p=0;
90 }
91 void putf( float value)
92 {
93 if( (buf+size-p) <10)
94 return;
95 ftoa( p, value);
96 while( *p)
97 ++p;
98 }
99 const char *get_content(void)
100 {
101 return buf;
102 }
103private:
104 char buf[size];
105 char *p;
106};
107
108#endif /* SERIAL_IO_H_ */
Simple and fast ASCII converters.
char * ftoa(char *Buffer, float Value)
generic helper class for ASCII output
Definition serial_io.h:71
const char * get_content(void)
Definition serial_io.h:99
void putf(float value)
Definition serial_io.h:91
void put(char c)
Definition serial_io.h:78
void puts(char *c)
Definition serial_io.h:85
ascii_string_writer(void)
Definition serial_io.h:73
abstraction for serial input device
Definition serial_io.h:32
virtual bool input_ready(void)
Definition serial_io.h:35
virtual char get_blocking(void)
Definition serial_io.h:43
int geti(void)
Definition serial_io.cpp:59
virtual char get(void)
Definition serial_io.h:39
abstraction for serial input output device
Definition serial_io.h:66
abstraction for serial output device
Definition serial_io.h:51
virtual void put(char)
Definition serial_io.h:53
void putx(int32_t value, uint8_t digits=8)
Definition serial_io.cpp:34
void putf(float value)
Definition serial_io.cpp:40
void blank(void)
Definition serial_io.cpp:55
void puti(int value, int base=10)
Definition serial_io.cpp:28
virtual void puts(const char *data)
Definition serial_io.cpp:46
void newline(void)
Definition serial_io.cpp:51
mathematical vector of arbitrary type and size
Definition vector.h:40