Skip to content

Commit 4a0b4cd

Browse files
authored
Merge pull request #45 from sparkfun/feature/add-uart
Feature/add uart
2 parents 309a96a + 23b233c commit 4a0b4cd

File tree

5 files changed

+126
-109
lines changed

5 files changed

+126
-109
lines changed

src/sfTk/sfTkISerial.h

-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515

1616
// clang-format off
1717
#include "sfTkError.h"
18-
#include <cstdint>
1918
// clang-format on
2019

2120
/**

src/sfTk/sfTkISerialBus.h

-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
#include "sfTkError.h"
1818
#include "sfTkIBus.h"
1919
#include "sfTkISerial.h"
20-
#include <cstdint>
2120
// clang-format on
2221

2322
const uint8_t ksfTkBusTypeSerialBus = 0x03;

src/sfTk/sfTkIUART.h

-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
// clang-format off
1717
#include "sfTkError.h"
1818
#include "sfTkISerial.h"
19-
#include <cstdint>
2019
// clang-format on
2120

2221
// Enums follow the Arduino Serial API constants.

src/sfTkArdUART.cpp

+53-48
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
#include <stdarg.h>
1414

1515
#include <Arduino.h>
16-
#include <api/HardwareSerial.h>
16+
#include <HardwareSerial.h>
1717

1818
// clang-format off
1919
#include "sfTkArdUART.h"
@@ -22,7 +22,7 @@
2222
#include "sfTk/sfTkIUART.h"
2323
// clang-format on
2424

25-
sfTkError_t sfTkArdUART::init(arduino::HardwareSerial &hwSerial, sfTkIUART::UARTConfig_t &config, bool bInit)
25+
sfTkError_t sfTkArdUART::init(HardwareSerial &hwSerial, sfTkIUART::UARTConfig_t &config, bool bInit)
2626
{
2727
_hwSerial = &hwSerial; // set the serial port
2828

@@ -34,7 +34,7 @@ sfTkError_t sfTkArdUART::init(arduino::HardwareSerial &hwSerial, sfTkIUART::UART
3434
return ksfTkErrOk;
3535
}
3636

37-
sfTkError_t sfTkArdUART::init(arduino::HardwareSerial &hwSerial, uint32_t baudRate, bool bInit)
37+
sfTkError_t sfTkArdUART::init(HardwareSerial &hwSerial, uint32_t baudRate, bool bInit)
3838
{
3939
_hwSerial = &hwSerial; // set the serial port
4040

@@ -103,7 +103,11 @@ sfTkError_t sfTkArdUART::read(uint8_t *data, size_t length, size_t &bytesRead)
103103

104104
bytesRead = 0; // zero out value
105105

106-
bytesRead = readBytes(data, length);
106+
// #ifdef ARDUINO_ARCH_AVR
107+
bytesRead = _hwSerial->readBytes(data, length);
108+
// #else
109+
// bytesRead = readBytes(data, length);
110+
// #endif
107111

108112
if (bytesRead == 0)
109113
return ksfTkErrFail;
@@ -179,7 +183,12 @@ sfTkError_t sfTkArdUART::_start(void)
179183
if (_running)
180184
end(); // close the port if already running
181185
// set the config
186+
#ifdef ARDUINO_ARCH_ESP8266
187+
// ESP8266 does not support setting stop bits, parity, and data bits in a stanard manner.
188+
_hwSerial->begin(_config.baudRate);
189+
#else
182190
_hwSerial->begin(_config.baudRate, _config.stopBits | _config.parity | _config.dataBits);
191+
#endif
183192
if (!availableForWrite())
184193
return ksfTkErrSerialNotInit; // check if the port is available
185194
// set the running flag to true
@@ -241,31 +250,32 @@ unsigned long sfTkArdUART::getTimeout()
241250
return _hwSerial->getTimeout();
242251
}
243252

244-
bool sfTkArdUART::find(const char *target)
253+
#if !defined(ARDUINO_ARCH_AVR) && !defined(ARDUINO_ARCH_ESP8266)
254+
bool sfTkArdUART::find(CONSTVAR char *target)
245255
{
246256
if (!_hwSerial)
247257
return false;
248258

249259
return _hwSerial->find(target);
250260
}
251261

252-
bool sfTkArdUART::find(const uint8_t *target)
262+
bool sfTkArdUART::find(CONSTVAR uint8_t *target)
253263
{
254264
if (!_hwSerial)
255265
return false;
256266

257267
return _hwSerial->find(target);
258268
}
259269

260-
bool sfTkArdUART::find(const char *target, size_t length)
270+
bool sfTkArdUART::find(CONSTVAR char *target, size_t length)
261271
{
262272
if (!_hwSerial)
263273
return false;
264274

265275
return _hwSerial->find(target, length);
266276
}
267277

268-
bool sfTkArdUART::find(const uint8_t *target, size_t length)
278+
bool sfTkArdUART::find(CONSTVAR uint8_t *target, size_t length)
269279
{
270280
if (!_hwSerial)
271281
return false;
@@ -281,53 +291,71 @@ bool sfTkArdUART::find(char target)
281291
return _hwSerial->find(target);
282292
}
283293

284-
bool sfTkArdUART::findUntil(const char *target, const char *terminator)
294+
bool sfTkArdUART::findUntil(CONSTVAR char *target, CONSTVAR char *terminator)
285295
{
286296
if (!_hwSerial)
287297
return false;
288298

289299
return _hwSerial->findUntil(target, terminator);
290300
}
291301

292-
bool sfTkArdUART::findUntil(const uint8_t *target, const char *terminator)
302+
bool sfTkArdUART::findUntil(CONSTVAR uint8_t *target, CONSTVAR char *terminator)
293303
{
294304
if (!_hwSerial)
295305
return false;
296306

297307
return _hwSerial->findUntil(target, terminator);
298308
}
299309

300-
bool sfTkArdUART::findUntil(const char *target, size_t targetLen, const char *terminate, size_t termLen)
310+
bool sfTkArdUART::findUntil(CONSTVAR char *target, size_t targetLen, CONSTVAR char *terminate, size_t termLen)
301311
{
302312
if (!_hwSerial)
303313
return false;
304314

305315
return _hwSerial->findUntil(target, targetLen, terminate, termLen);
306316
}
307317

308-
bool sfTkArdUART::findUntil(const uint8_t *target, size_t targetLen, const char *terminate, size_t termLen)
318+
bool sfTkArdUART::findUntil(CONSTVAR uint8_t *target, size_t targetLen, CONSTVAR char *terminate, size_t termLen)
309319
{
310320
if (!_hwSerial)
311321
return false;
312322

313323
return _hwSerial->findUntil(target, targetLen, terminate, termLen);
314324
}
315325

316-
long sfTkArdUART::parseInt(arduino::LookaheadMode lookahead, char ignore)
326+
#ifdef ARDUINO_ARCH_ESP8266
327+
long sfTkArdUART::parseInt()
328+
{
329+
if (!_hwSerial)
330+
return 0;
331+
332+
return _hwSerial->parseInt();
333+
}
334+
335+
float sfTkArdUART::parseFloat()
336+
{
337+
if (!_hwSerial)
338+
return 0.0f;
339+
340+
return _hwSerial->parseFloat();
341+
}
342+
#else
343+
long sfTkArdUART::parseInt(LookaheadMode lookahead, char ignore)
317344
{
318345
if (!_hwSerial)
319346
return 0;
320347

321348
return _hwSerial->parseInt(lookahead, ignore);
322349
}
323350

324-
float sfTkArdUART::parseFloat(arduino::LookaheadMode lookahead, char ignore)
351+
float sfTkArdUART::parseFloat(LookaheadMode lookahead, char ignore)
325352
{
326353
if (!_hwSerial)
327354
return 0.0f;
328355

329356
return _hwSerial->parseFloat(lookahead, ignore);
330357
}
358+
#endif
331359

332360
size_t sfTkArdUART::readBytes(char *buffer, size_t length)
333361
{
@@ -361,18 +389,18 @@ size_t sfTkArdUART::readBytesUntil(char terminator, uint8_t *buffer, size_t leng
361389
return _hwSerial->readBytesUntil(terminator, buffer, length);
362390
}
363391

364-
arduino::String sfTkArdUART::readString()
392+
String sfTkArdUART::readString()
365393
{
366394
if (!_hwSerial)
367-
return arduino::String("");
395+
return String("");
368396

369397
return _hwSerial->readString();
370398
}
371399

372-
arduino::String sfTkArdUART::readStringUntil(char terminator)
400+
String sfTkArdUART::readStringUntil(char terminator)
373401
{
374402
if (!_hwSerial)
375-
return arduino::String("");
403+
return String("");
376404

377405
return _hwSerial->readStringUntil(terminator);
378406
}
@@ -381,15 +409,15 @@ arduino::String sfTkArdUART::readStringUntil(char terminator)
381409
* @brief Print mappings
382410
*
383411
*/
384-
size_t sfTkArdUART::print(const arduino::__FlashStringHelper *ifsh)
412+
size_t sfTkArdUART::print(const __FlashStringHelper *ifsh)
385413
{
386414
if (!_hwSerial)
387415
return 0;
388416

389417
return _hwSerial->print(ifsh);
390418
}
391419

392-
size_t sfTkArdUART::print(const arduino::String &s)
420+
size_t sfTkArdUART::print(const String &s)
393421
{
394422
if (!_hwSerial)
395423
return 0;
@@ -477,23 +505,23 @@ size_t sfTkArdUART::print(double n, int digits)
477505
return _hwSerial->print(n, digits);
478506
}
479507

480-
size_t sfTkArdUART::print(const arduino::Printable &x)
508+
size_t sfTkArdUART::print(const Printable &x)
481509
{
482510
if (!_hwSerial)
483511
return 0;
484512

485513
return _hwSerial->print(x);
486514
}
487515

488-
size_t sfTkArdUART::println(const arduino::__FlashStringHelper *ifsh)
516+
size_t sfTkArdUART::println(const __FlashStringHelper *ifsh)
489517
{
490518
if (!_hwSerial)
491519
return 0;
492520

493521
return _hwSerial->println(ifsh);
494522
}
495523

496-
size_t sfTkArdUART::println(const arduino::String &s)
524+
size_t sfTkArdUART::println(const String &s)
497525
{
498526
if (!_hwSerial)
499527
return 0;
@@ -581,7 +609,7 @@ size_t sfTkArdUART::println(double n, int digits)
581609
return _hwSerial->println(n, digits);
582610
}
583611

584-
size_t sfTkArdUART::println(const arduino::Printable &x)
612+
size_t sfTkArdUART::println(const Printable &x)
585613
{
586614
if (!_hwSerial)
587615
return 0;
@@ -596,27 +624,4 @@ size_t sfTkArdUART::println(void)
596624

597625
return _hwSerial->println();
598626
}
599-
600-
size_t sfTkArdUART::printf(const char *format, ...)
601-
{
602-
if (!_hwSerial)
603-
return 0;
604-
605-
va_list argptr;
606-
va_start(argptr, format);
607-
size_t retVal = _hwSerial->printf(format, argptr);
608-
va_end(argptr);
609-
return retVal;
610-
}
611-
612-
size_t sfTkArdUART::printf_P(const char *format, ...)
613-
{
614-
if (!_hwSerial)
615-
return 0;
616-
617-
va_list argptr;
618-
va_start(argptr, format);
619-
size_t retVal = _hwSerial->printf_P(format, argptr);
620-
va_end(argptr);
621-
return retVal;
622-
}
627+
#endif

0 commit comments

Comments
 (0)