Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions src/NoteSerial_Arduino.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
#include "mock/mock-arduino.hpp"
#endif

#define NOTE_C_SERIAL_TIMEOUT_MS 3500

// Template Meta-Programming (TMP) to extract the nested template type
template <typename nested_type>
struct ExtractNestedTemplateType {
Expand Down Expand Up @@ -64,6 +66,9 @@ NoteSerial_Arduino<T>::NoteSerial_Arduino
_notecardSerialSpeed(baud_rate_)
{
_notecardSerial.begin(_notecardSerialSpeed);

// Wait for the serial port to be ready
for (const size_t startMs = ::millis() ; !_notecardSerial && ((::millis() - startMs) < NOTE_C_SERIAL_TIMEOUT_MS) ;);
}

template <typename T>
Expand Down
22 changes: 22 additions & 0 deletions test/mock/mock-arduino.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,15 @@ HardwareSerialAvailable_Parameters hardwareSerialAvailable_Parameters;
HardwareSerialBegin_Parameters hardwareSerialBegin_Parameters;
HardwareSerialEnd_Parameters hardwareSerialEnd_Parameters;
HardwareSerialFlush_Parameters hardwareSerialFlush_Parameters;
HardwareSerialOperatorBool_Parameters hardwareSerialOperatorBool_Parameters;
HardwareSerialRead_Parameters hardwareSerialRead_Parameters;
HardwareSerialWrite_Parameters hardwareSerialWrite_Parameters;

SoftwareSerialAvailable_Parameters softwareSerialAvailable_Parameters;
SoftwareSerialBegin_Parameters softwareSerialBegin_Parameters;
SoftwareSerialEnd_Parameters softwareSerialEnd_Parameters;
SoftwareSerialFlush_Parameters softwareSerialFlush_Parameters;
SoftwareSerialOperatorBool_Parameters softwareSerialOperatorBool_Parameters;
SoftwareSerialRead_Parameters softwareSerialRead_Parameters;
SoftwareSerialWrite_Parameters softwareSerialWrite_Parameters;

Expand Down Expand Up @@ -109,6 +111,16 @@ pinMode (
pinMode_Parameters.pin_mode[pin].push_back(mode);
}

HardwareSerial::operator bool (
void
) {
// Record invocation(s)
++hardwareSerialOperatorBool_Parameters.invoked;

// Return user-supplied result
return hardwareSerialOperatorBool_Parameters.result;
}

unsigned int
HardwareSerial::available (
void
Expand Down Expand Up @@ -175,6 +187,16 @@ HardwareSerial::write (
return hardwareSerialWrite_Parameters.result;
}

SoftwareSerial::operator bool (
void
) {
// Record invocation(s)
++softwareSerialOperatorBool_Parameters.invoked;

// Return user-supplied result
return softwareSerialOperatorBool_Parameters.result;
}

unsigned int
SoftwareSerial::available (
void
Expand Down
38 changes: 38 additions & 0 deletions test/mock/mock-arduino.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ struct StreamPrint_Parameters {
};

struct HardwareSerial : public Stream {
operator bool();
unsigned int available (void);
void begin(unsigned int baud);
void end(void);
Expand Down Expand Up @@ -230,6 +231,23 @@ struct HardwareSerialFlush_Parameters {
size_t invoked;
};

struct HardwareSerialOperatorBool_Parameters {
HardwareSerialOperatorBool_Parameters(
void
) :
invoked(0),
result(true)
{ }
void
reset (
void
) {
invoked = 0;
result = true;
}
size_t invoked;
bool result;
};

struct HardwareSerialRead_Parameters {
HardwareSerialRead_Parameters(
Expand Down Expand Up @@ -276,6 +294,7 @@ struct HardwareSerialWrite_Parameters {
};

struct SoftwareSerial : public Stream {
operator bool();
unsigned int available (void);
void begin(unsigned int baud);
void end(void);
Expand Down Expand Up @@ -350,6 +369,23 @@ struct SoftwareSerialFlush_Parameters {
size_t invoked;
};

struct SoftwareSerialOperatorBool_Parameters {
SoftwareSerialOperatorBool_Parameters(
void
) :
invoked(0),
result(true)
{ }
void
reset (
void
) {
invoked = 0;
result = true;
}
size_t invoked;
bool result;
};

struct SoftwareSerialRead_Parameters {
SoftwareSerialRead_Parameters(
Expand Down Expand Up @@ -564,6 +600,7 @@ extern HardwareSerialAvailable_Parameters hardwareSerialAvailable_Parameters;
extern HardwareSerialBegin_Parameters hardwareSerialBegin_Parameters;
extern HardwareSerialEnd_Parameters hardwareSerialEnd_Parameters;
extern HardwareSerialFlush_Parameters hardwareSerialFlush_Parameters;
extern HardwareSerialOperatorBool_Parameters hardwareSerialOperatorBool_Parameters;
extern HardwareSerialRead_Parameters hardwareSerialRead_Parameters;
extern HardwareSerialWrite_Parameters hardwareSerialWrite_Parameters;

Expand All @@ -572,6 +609,7 @@ extern SoftwareSerialAvailable_Parameters softwareSerialAvailable_Parameters;
extern SoftwareSerialBegin_Parameters softwareSerialBegin_Parameters;
extern SoftwareSerialEnd_Parameters softwareSerialEnd_Parameters;
extern SoftwareSerialFlush_Parameters softwareSerialFlush_Parameters;
extern SoftwareSerialOperatorBool_Parameters softwareSerialOperatorBool_Parameters;
extern SoftwareSerialRead_Parameters softwareSerialRead_Parameters;
extern SoftwareSerialWrite_Parameters softwareSerialWrite_Parameters;

Expand Down
Loading