Init commit with many years of arduino sketches and projects. I dont know if the esp8266 includes much, but there are also libraries. I hope they dont have crazy automatic versioning through the Arduino IDE.

This commit is contained in:
2019-05-30 23:41:53 +02:00
parent 2d047634f2
commit 6c84b31f2c
1480 changed files with 198581 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
#include <PLabBTSerial.h>
int PLabBTSerial::read() {
if (_available)
{
int r = _buffer[_retLoc];
_available--;
if (_available)
{
_retLoc++;
}
else
{
_bLoc = 0;
_retLoc = 0;
}
return r;
}
return -1;
}
void PLabBTSerial::read(char* buffer, int bufferSize) {
if (_available > bufferSize)
{
return;
}
int i = 0;
while (_available)
{
buffer[i] = read();
i++;
}
}
int PLabBTSerial::available()
{
if (_available > 0)
{
return _available;
}
while (SoftwareSerial::available() > 0)
{
_buffer[_bLoc] = SoftwareSerial::read();
if (_buffer[_bLoc] == '\r')
{
// Should just skip
}
else if (_buffer[_bLoc] == '\n')
{
// New line found. End string and return available data count
_buffer[_bLoc] = '\0';
_available = (_bLoc - _retLoc) + 1;
return _available;
}
else
{
_bLoc++;
}
while (_bLoc >= _bufferSize)
{
_bLoc--;
}
}
return 0;
}
// Constructor
PLabBTSerial::PLabBTSerial(uint8_t receivePin, uint8_t transmitPin, bool inverse_logic /*= false*/, uint8_t bufferSize /*= 50*/) :
SoftwareSerial(receivePin, transmitPin, inverse_logic)
{
_bufferSize = bufferSize;
_buffer = new char[_bufferSize];
_bLoc = 0;
_retLoc = 0;
_available = 0;
}
// Destructor
PLabBTSerial::~PLabBTSerial()
{
delete[] _buffer;
end();
}

View File

@@ -0,0 +1,46 @@
/*
* PLabBTSerial
* Version 0.1 February, 2015
* Library that simplify serial line communication using SoftwareSerial.
* Allows the user to batch up characters to form an entire line before reading
*
* Author Inge Edward Halsaunet
*/
#ifndef PLAB_BT_SERIAL_H
#define PLAB_BT_SERIAL_H
#include <SoftwareSerial.h>
#include <inttypes.h>
class PLabBTSerial : public SoftwareSerial
{
private:
// Size of buffer.
uint8_t _bufferSize;
// how far is written into the buffer
uint8_t _bLoc;
// How much is read from user
uint8_t _retLoc;
// How much is left available to read on this line
int _available;
// the buffer
char *_buffer;
public:
PLabBTSerial(uint8_t receivePin, uint8_t transmitPin, bool inverse_logic = false, uint8_t bufferSize = 50);
~PLabBTSerial();
// The ones that will be overriden
virtual int read();
virtual int available();
// Completely new method. Fills the given buffer with data received,
// given the buffer is large enough. Given buffer size identified as
// bufferSize
virtual void read(char* buffer, int bufferSize);
};
#endif