PicoLC Arduino Library
Arduino library for PicoLC hardware
Toggle main menu visibility
Loading...
Searching...
No Matches
PicoLCSerial.cpp
1
#include <Arduino.h>
2
#include "PicoLC.h"
3
#include "../internal/PicoLCPins.h"
4
5
PicoLCSerial::PicoLCSerial() {
6
7
}
8
9
void
PicoLCSerial::begin
(uint32_t baud, uint16_t config) {
10
if
( !_started ) {
11
pinMode(picolc::pins::CommDE, OUTPUT);
12
digitalWrite(picolc::pins::CommDE, LOW);
13
pinMode(picolc::pins::CommRE, OUTPUT);
14
digitalWrite(picolc::pins::CommRE, HIGH);
15
Serial1.setTX(picolc::pins::CommTX);
16
Serial1.setRX(picolc::pins::CommRX);
17
Serial1.begin(baud, config);
18
_started =
true
;
19
}
20
}
21
22
void
PicoLCSerial::end
() {
23
if
( _started ) {
24
Serial1.end();
25
_started =
false
;
26
}
27
}
28
29
int
PicoLCSerial::available
() {
return
_started ? Serial1.available() : 0; }
30
int
PicoLCSerial::read
() {
return
_started ? Serial1.read() : -1; }
31
int
PicoLCSerial::peek
() {
return
_started ? Serial1.peek() : -1; }
32
33
size_t
PicoLCSerial::write
(uint8_t value) {
34
if
( _started ) {
35
setTR(
true
);
36
size_t
result = Serial1.write(value);
37
setTR(
false
);
38
return
result;
39
}
40
return
0;
41
}
42
43
size_t
PicoLCSerial::write
(
const
uint8_t* buffer,
size_t
size) {
44
if
( _started ) {
45
setTR(
true
);
46
size_t
result = Serial1.write(buffer, size);
47
setTR(
false
);
48
return
result;
49
}
50
return
0;
51
}
52
53
void
PicoLCSerial::flush
() {
54
if
( _started ) { Serial1.flush(); }
55
}
56
57
void
PicoLCSerial::setTR(
bool
writing) {
58
if
( _started ) {
59
if
( writing ) {
60
digitalWrite(picolc::pins::CommRE, LOW);
61
digitalWrite(picolc::pins::CommDE, HIGH);
62
delay(1);
63
}
else
{
64
delay(1);
65
digitalWrite(picolc::pins::CommDE, LOW);
66
digitalWrite(picolc::pins::CommRE, HIGH);
67
}
68
}
69
}
70
bool
PicoLCSerial::started
()
const
{
return
_started; }
PicoLCSerial::begin
void begin(uint32_t baud, uint16_t config=SERIAL_8N1)
Initializes the RS-485 UART and transceiver-control pins.
Definition
PicoLCSerial.cpp:9
PicoLCSerial::started
bool started() const
Reports whether the RS-485 interface is initialized.
Definition
PicoLCSerial.cpp:70
PicoLCSerial::write
size_t write(uint8_t byte) override
Transmits one byte over RS-485.
Definition
PicoLCSerial.cpp:33
PicoLCSerial::flush
void flush() override
Waits for pending UART transmission to complete.
Definition
PicoLCSerial.cpp:53
PicoLCSerial::available
int available() override
Returns the number of received bytes available to read.
Definition
PicoLCSerial.cpp:29
PicoLCSerial::read
int read() override
Reads the next received byte.
Definition
PicoLCSerial.cpp:30
PicoLCSerial::end
void end()
Releases PicoLC control of the UART and transceiver-control pins.
Definition
PicoLCSerial.cpp:22
PicoLCSerial::peek
int peek() override
Returns the next received byte without removing it.
Definition
PicoLCSerial.cpp:31
src
communication
PicoLCSerial.cpp
Generated by
1.17.0