Aruna
POSIX_UART.h
Go to the documentation of this file.
1 //
2 // Created by noeel on 2-7-19.
3 //
4 
5 #ifndef ARUNA_POSIX_UART
6 #define ARUNA_POSIX_UART
7 
8 #include "aruna/arunaTypes.h"
9 #include <aruna/comm/Link.h>
10 #include <aruna/log.h>
11 #include <aruna/driver/UART.h>
12 #include <termios.h>
13 
14 namespace aruna::driver {
15 
16  class POSIX_UART : public UART {
17  public:
18  POSIX_UART(char *port, uint32_t baudrate);
19 
20  ~POSIX_UART();
21 
27  err_t set_options(struct termios * options);
28 
34  err_t get_options(struct termios * options);
35 
43 
48  err_t raw_input();
49 
55 
60  err_t raw_output();
61 
67 
68  private:
70  const char *PORT;
72 
73  size_t _write(uint8_t *data, size_t dataSize) override;
74 
75  size_t _read(uint8_t *buffer, size_t buffer_size) override;
76 
77  uint32_t _set_baudrate(uint32_t new_baudrate) override;
78 
79  err_t _set_flowcontrol(flowcontrol_t new_flowcontrol) override;
80 
81  err_t _set_parity(parity_t parity_bit) override;
82 
83  err_t _set_stop_bit(stop_bit_t stop_bit) override;
84 
85  err_t _set_word_length(word_length_t word_length) override;
86  };
87 
88 }
89 #endif //ARUNA_POSIX_UART
err_t set_options(struct termios *options)
Set options to the file description of the UART.
Definition: POSIX_UART.cpp:373
err_t canonical_input()
Set input to Canonical.
Definition: POSIX_UART.cpp:306
err_t processed_output()
Process output before sending it (enabled c_oflag)
Definition: POSIX_UART.cpp:319
err_t _set_word_length(word_length_t word_length) override
Set UART data bits length.
Definition: POSIX_UART.cpp:175
err_t _set_parity(parity_t parity_bit) override
Set parity bit.
Definition: POSIX_UART.cpp:206
uint32_t _set_baudrate(uint32_t new_baudrate) override
Set baudrate of the UART.
Definition: POSIX_UART.cpp:61
uint32_t baudrate
Definition: UART.h:44
size_t _write(uint8_t *data, size_t dataSize) override
write data to the link/bus.
Definition: POSIX_UART.cpp:16
aruna::log::channel_t * log
Definition: POSIX_UART.h:71
size_t _read(uint8_t *buffer, size_t buffer_size) override
Read bytes and out them in the buffer.
Definition: POSIX_UART.cpp:20
POSIX_UART(char *port, uint32_t baudrate)
Definition: POSIX_UART.cpp:24
err_t get_options(struct termios *options)
Get options of the file description UART device.
Definition: POSIX_UART.cpp:384
err_t raw_output()
Disabled output processing (disabled c_oflag)
Definition: POSIX_UART.cpp:332
err_t _set_stop_bit(stop_bit_t stop_bit) override
set stop bit
Definition: POSIX_UART.cpp:283
err_t map_NL_to_CRNL()
Map Newline to CR-NL for output.
Definition: POSIX_UART.cpp:360
err_t _set_flowcontrol(flowcontrol_t new_flowcontrol) override
Set software or hardware flowcontrol.
Definition: POSIX_UART.cpp:237
static const comm::port_t port
Definition: reporter.h:15
err_t raw_input()
Set input to raw.
Definition: POSIX_UART.cpp:345