@@ -93,26 +93,50 @@ class HardwareSerial: public Stream
93
93
{
94
94
swap (1 );
95
95
}
96
- void swap (uint8_t tx_pin); // toggle between use of GPIO13/GPIO15 or GPIO3/GPIO(1/2) as RX and TX
96
+ void swap (uint8_t tx_pin) // toggle between use of GPIO13/GPIO15 or GPIO3/GPIO(1/2) as RX and TX
97
+ {
98
+ uart_swap (_uart, tx_pin);
99
+ }
97
100
98
101
/*
99
102
* Toggle between use of GPIO1 and GPIO2 as TX on UART 0.
100
103
* Note: UART 1 can't be used if GPIO2 is used with UART 0!
101
104
*/
102
- void set_tx (uint8_t tx_pin);
105
+ void set_tx (uint8_t tx_pin)
106
+ {
107
+ uart_set_tx (_uart, tx_pin);
108
+ }
103
109
104
110
/*
105
111
* UART 0 possible options are (1, 3), (2, 3) or (15, 13)
106
112
* UART 1 allows only TX on 2 if UART 0 is not (2, 3)
107
113
*/
108
- void pins (uint8_t tx, uint8_t rx);
114
+ void pins (uint8_t tx, uint8_t rx)
115
+ {
116
+ uart_set_pins (_uart, tx, rx);
117
+ }
109
118
110
119
int available (void ) override ;
111
- int peek (void ) override ;
112
- int read (void ) override ;
113
- int availableForWrite (void );
120
+
121
+ int peek (void ) override
122
+ {
123
+ // this may return -1, but that's okay
124
+ return uart_peek_char (_uart);
125
+ }
126
+ int read (void ) override
127
+ {
128
+ // this may return -1, but that's okay
129
+ return uart_read_char (_uart);
130
+ }
131
+ int availableForWrite (void )
132
+ {
133
+ return static_cast <int >(uart_tx_free (_uart));
134
+ }
114
135
void flush (void ) override ;
115
- size_t write (uint8_t ) override ;
136
+ size_t write (uint8_t c) override
137
+ {
138
+ return uart_write_char (_uart, c);
139
+ }
116
140
inline size_t write (unsigned long n)
117
141
{
118
142
return write ((uint8_t ) n);
@@ -129,13 +153,27 @@ class HardwareSerial: public Stream
129
153
{
130
154
return write ((uint8_t ) n);
131
155
}
132
- using Print::write; // pull in write(str) and write(buf, size) from Print
133
- operator bool () const ;
134
-
156
+ size_t write (const uint8_t *buffer, size_t size)
157
+ {
158
+ return uart_write (_uart, (const char *)buffer, size);
159
+ }
160
+ operator bool () const
161
+ {
162
+ return _uart != 0 ;
163
+ }
135
164
void setDebugOutput (bool );
136
- bool isTxEnabled (void );
137
- bool isRxEnabled (void );
138
- int baudRate (void );
165
+ bool isTxEnabled (void )
166
+ {
167
+ return uart_tx_enabled (_uart);
168
+ }
169
+ bool isRxEnabled (void )
170
+ {
171
+ return _uart && uart_rx_enabled (_uart);
172
+ }
173
+ int baudRate (void )
174
+ {
175
+ return uart_get_baudrate (_uart);
176
+ }
139
177
140
178
bool hasOverrun (void )
141
179
{
0 commit comments