21 #include "../../include/esp3d_config.h"
23 #include "../../core/settings_esp3d.h"
24 #include "../../core/esp3doutput.h"
25 #include "../../core/commands.h"
28 #define ESP_SERIAL_PARAM SERIAL_8N1
30 #if ESP_SERIAL_OUTPUT == USE_SERIAL_0
31 #define ESP3D_SERIAL Serial
34 #if ESP_SERIAL_OUTPUT == USE_SERIAL_1
35 #define ESP3D_SERIAL Serial1
38 #if ESP_SERIAL_OUTPUT == USE_SERIAL_2
39 #define ESP3D_SERIAL Serial2
44 const long SupportedBaudList[] = {9600, 19200, 38400, 57600, 74880, 115200, 230400, 250000, 500000, 921600};
46 #define TIMEOUT_SERIAL_FLUSH 1500
63 _lastflush = millis();
72 #ifdef ARDUINO_ARCH_ESP8266
76 #endif //ESP_RX_PIN != -1
77 #endif //ARDUINO_ARCH_ESP8266
78 #ifdef ARDUINO_ARCH_ESP32
80 #endif //ARDUINO_ARCH_ESP32
111 for (uint8_t i = 0; i < listesize ; i++) {
126 uint8_t * sbuf = (uint8_t *)malloc(len);
131 push2buffer(sbuf, count);
144 void SerialService::flushbuffer()
147 _buffer[_buffer_size] = 0x0;
150 _lastflush = millis();
155 void SerialService::push2buffer(uint8_t * sbuf,
size_t len)
157 for (
size_t i = 0; i < len; i++) {
158 _lastflush = millis();
160 if (
char(sbuf[i]) ==
'\n') {
162 _buffer[_buffer_size] = sbuf[i];
166 }
else if (isPrintable (
char(sbuf[i]) ) ||
char(sbuf[i]) ==
'\r') {
168 _buffer[_buffer_size] = sbuf[i];
172 _buffer[_buffer_size] = sbuf[i];
177 if (_buffer_size > 0) {
181 _buffer[_buffer_size] = sbuf[i];
199 br = ESP3D_SERIAL.baudRate();
200 #ifdef ARDUINO_ARCH_ESP32
208 #endif //ARDUINO_ARCH_ESP32
214 return ESP3D_SERIAL.write(c);
219 if ((uint)ESP3D_SERIAL.availableForWrite() >= size) {
220 return ESP3D_SERIAL.write(buffer, size);
222 size_t sizetosend = size;
224 uint8_t *buffertmp=(uint8_t *)buffer;
225 uint32_t starttime = millis();
227 while (sizetosend>0 && ((millis() - starttime) < 100)) {
228 size_t available = ESP3D_SERIAL.availableForWrite();
245 return ESP3D_SERIAL.availableForWrite();
250 return ESP3D_SERIAL.available();
255 return ESP3D_SERIAL.read();
260 return ESP3D_SERIAL.readBytes(sbuf, len);
265 ESP3D_SERIAL.flush();
270 #ifdef ARDUINO_ARCH_ESP8266
272 #endif //ARDUINO_ARCH_ESP8266