RUI3 (RAK Unified Interface 3) - RAK4631
HardwareSerial.h
Go to the documentation of this file.
1 
9 #ifndef __HARDWARE_SERIAL_H__
10 #define __HARDWARE_SERIAL_H__
11 
12 #include <inttypes.h>
13 #include "WString.h"
14 
15 #include "Stream.h"
16 #include "udrv_serial.h"
17 #include "service_mode_proto.h"
18 
19 using namespace std;
20 
21 #define SERIAL_5N1 0x00
22 #define SERIAL_6N1 0x02
23 #define SERIAL_7N1 0x04
24 #define SERIAL_8N1 0x06
25 #define SERIAL_5N2 0x08
26 #define SERIAL_6N2 0x0A
27 #define SERIAL_7N2 0x0C
28 #define SERIAL_8N2 0x0E
29 #define SERIAL_5E1 0x20
30 #define SERIAL_6E1 0x22
31 #define SERIAL_7E1 0x24
32 #define SERIAL_8E1 0x26
33 #define SERIAL_5E2 0x28
34 #define SERIAL_6E2 0x2C
35 #define SERIAL_7E2 0x2D
36 #define SERIAL_8E2 0x2E
37 #define SERIAL_5O1 0x30
38 #define SERIAL_6O1 0x32
39 #define SERIAL_7O1 0x34
40 #define SERIAL_8O1 0x36
41 #define SERIAL_5O2 0x38
42 #define SERIAL_6O2 0x3A
43 #define SERIAL_7O2 0x3C
44 #define SERIAL_8O2 0x3E
45 
50 typedef enum
51 {
53 #ifdef SUPPOER_BINARY
54  RAK_API_MODE,
55 #endif
56 #ifdef SUPPORT_LORA
57 #ifdef SUPPORT_PASSTHRU
58  RAK_PASS_MODE,
59 #endif
60 #endif
64 
67 class HardwareSerial : public Stream
68 {
69  protected:
70  private:
71  SERIAL_PORT serialPort;
72  public:
74 
75  using Print::write; //pull in write(str) and write(buf, size) from Print
76 
77  operator bool() const
78  {
79  return is_udrv_serial_initialized(serialPort);
80  }
81 
82  void begin(uint32_t baud, uint8_t config, RAK_SERIAL_MODE mode = RAK_DEFAULT_MODE);
83  bool password(String new_passwd);
84  size_t write(uint8_t n) {return write(&n, 1);}
85 
90 #if defined(SUPPORT_LORA) && defined(SUPPORT_PASSTHRU)
91 
119 #else
120 
148 #endif
149  void begin(uint32_t baud, RAK_SERIAL_MODE mode = RAK_DEFAULT_MODE) { begin(baud, SERIAL_8N1, mode);}
150 
168  void end(void);
169 
197  void lock(bool locked);
198 
228  bool password(char *new_passwd, size_t len);
229 
230 
256  virtual size_t write(const uint8_t *buf, size_t size);
257 
282  virtual int available(void);
283 
308  virtual int read(void);
309 
337  virtual int peek(void);
338 
359  virtual void flush(void);
360 
379  virtual uint32_t getBaudrate(void);
380 
382 };
383 
384 #define SERIAL_PORT_MONITOR Serial
385 #define SERIAL_PORT_USBVIRTUAL Serial
386 
387 #define SERIAL_PORT_HARDWARE Serial1
388 #define SERIAL_PORT_HARDWARE_OPEN Serial1
389 
390 extern HardwareSerial Serial;
391 extern HardwareSerial Serial0;
392 extern HardwareSerial Serial1;
393 extern HardwareSerial Serial2;
394 extern HardwareSerial Serial4;
395 extern HardwareSerial Serial6;
396 #endif
397 
bool is_udrv_serial_initialized(SERIAL_PORT Port)
This API is used to check if a specified serial port is initialized.
void begin(uint32_t baud, RAK_SERIAL_MODE mode=RAK_DEFAULT_MODE)
Definition: HardwareSerial.h:149
Stream is the base class for character and binary based streams. It is not called directly...
#define SERIAL_8N1
Definition: HardwareSerial.h:24
Default mode which depends on platform.
Definition: HardwareSerial.h:62
size_t write(uint8_t n)
Definition: HardwareSerial.h:84
Definition: WString.h:22
HardwareSerial Serial
HardwareSerial Serial2
HardwareSerial Serial4
RAK_SERIAL_MODE
Definition: HardwareSerial.h:50
HardwareSerial Serial6
HardwareSerial Serial0
Custom mode.
Definition: HardwareSerial.h:61
Provide a hardware independent serial driver layer for API layer to use.
Definition: HardwareSerial.h:67
AT command mode.
Definition: HardwareSerial.h:52
virtual size_t write(uint8_t)=0
enum _SERIAL_PORT SERIAL_PORT
HardwareSerial Serial1
Definition: Stream.h:19