Skip to content
This repository was archived by the owner on Jan 29, 2023. It is now read-only.

Commit afeb93a

Browse files
authored
Update Packages_Patches
1 parent 05cb949 commit afeb93a

File tree

72 files changed

+9379
-2633
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+9379
-2633
lines changed

Packages_Patches/Fab_SAM_Arduino/hardware/samd/1.8.0/boards.txt

Lines changed: 1730 additions & 0 deletions
Large diffs are not rendered by default.

Packages_Patches/Fab_SAM_Arduino/hardware/samd/1.9.0/boards.txt

Lines changed: 1751 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 166 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -1,129 +1,166 @@
1-
/*
2-
Stream.h - base class for character-based streams.
3-
Copyright (c) 2010 David A. Mellis. All right reserved.
4-
5-
This library is free software; you can redistribute it and/or
6-
modify it under the terms of the GNU Lesser General Public
7-
License as published by the Free Software Foundation; either
8-
version 2.1 of the License, or (at your option) any later version.
9-
10-
This library is distributed in the hope that it will be useful,
11-
but WITHOUT ANY WARRANTY; without even the implied warranty of
12-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13-
Lesser General Public License for more details.
14-
15-
You should have received a copy of the GNU Lesser General Public
16-
License along with this library; if not, write to the Free Software
17-
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18-
19-
parsing functions based on TextFinder library by Michael Margolis
20-
*/
21-
22-
#ifndef Stream_h
23-
#define Stream_h
24-
25-
#include <inttypes.h>
26-
#include "Print.h"
27-
28-
// compatability macros for testing
29-
/*
30-
#define getInt() parseInt()
31-
#define getInt(ignore) parseInt(ignore)
32-
#define getFloat() parseFloat()
33-
#define getFloat(ignore) parseFloat(ignore)
34-
#define getString( pre_string, post_string, buffer, length)
35-
readBytesBetween( pre_string, terminator, buffer, length)
36-
*/
37-
38-
// This enumeration provides the lookahead options for parseInt(), parseFloat()
39-
// The rules set out here are used until either the first valid character is found
40-
// or a time out occurs due to lack of input.
41-
enum LookaheadMode{
42-
SKIP_ALL, // All invalid characters are ignored.
43-
SKIP_NONE, // Nothing is skipped, and the stream is not touched unless the first waiting character is valid.
44-
SKIP_WHITESPACE // Only tabs, spaces, line feeds & carriage returns are skipped.
45-
};
46-
47-
#define NO_IGNORE_CHAR '\x01' // a char not found in a valid ASCII numeric field
48-
49-
class Stream : public Print
50-
{
51-
protected:
52-
unsigned long _timeout; // number of milliseconds to wait for the next char before aborting timed read
53-
unsigned long _startMillis = 0; // used for timeout measurement
54-
int timedRead(); // read stream with timeout
55-
int timedPeek(); // peek stream with timeout
56-
int peekNextDigit(LookaheadMode lookahead, bool detectDecimal); // returns the next numeric digit in the stream or -1 if timeout
57-
58-
public:
59-
virtual int available() = 0;
60-
virtual int read() = 0;
61-
virtual int peek() = 0;
62-
63-
Stream() {_timeout=1000;}
64-
65-
// parsing methods
66-
67-
void setTimeout(unsigned long timeout); // sets maximum milliseconds to wait for stream data, default is 1 second
68-
unsigned long getTimeout(void) { return _timeout; }
69-
70-
bool find(char *target); // reads data from the stream until the target string is found
71-
bool find(uint8_t *target) { return find ((char *)target); }
72-
// returns true if target string is found, false if timed out (see setTimeout)
73-
74-
bool find(char *target, size_t length); // reads data from the stream until the target string of given length is found
75-
bool find(uint8_t *target, size_t length) { return find ((char *)target, length); }
76-
// returns true if target string is found, false if timed out
77-
78-
bool find(char target) { return find (&target, 1); }
79-
80-
bool findUntil(char *target, char *terminator); // as find but search ends if the terminator string is found
81-
bool findUntil(uint8_t *target, char *terminator) { return findUntil((char *)target, terminator); }
82-
83-
bool findUntil(char *target, size_t targetLen, char *terminate, size_t termLen); // as above but search ends if the terminate string is found
84-
bool findUntil(uint8_t *target, size_t targetLen, char *terminate, size_t termLen) {return findUntil((char *)target, targetLen, terminate, termLen); }
85-
86-
long parseInt(LookaheadMode lookahead = SKIP_ALL, char ignore = NO_IGNORE_CHAR);
87-
// returns the first valid (long) integer value from the current position.
88-
// lookahead determines how parseInt looks ahead in the stream.
89-
// See LookaheadMode enumeration at the top of the file.
90-
// Lookahead is terminated by the first character that is not a valid part of an integer.
91-
// Once parsing commences, 'ignore' will be skipped in the stream.
92-
93-
float parseFloat(LookaheadMode lookahead = SKIP_ALL, char ignore = NO_IGNORE_CHAR);
94-
// float version of parseInt
95-
96-
size_t readBytes( char *buffer, size_t length); // read chars from stream into buffer
97-
size_t readBytes( uint8_t *buffer, size_t length) { return readBytes((char *)buffer, length); }
98-
// terminates if length characters have been read or timeout (see setTimeout)
99-
// returns the number of characters placed in the buffer (0 means no valid data found)
100-
101-
size_t readBytesUntil( char terminator, char *buffer, size_t length); // as readBytes with terminator character
102-
size_t readBytesUntil( char terminator, uint8_t *buffer, size_t length) { return readBytesUntil(terminator, (char *)buffer, length); }
103-
// terminates if length characters have been read, timeout, or if the terminator character detected
104-
// returns the number of characters placed in the buffer (0 means no valid data found)
105-
106-
// Arduino String functions to be added here
107-
String readString();
108-
String readStringUntil(char terminator);
109-
110-
protected:
111-
long parseInt(char ignore) { return parseInt(SKIP_ALL, ignore); }
112-
float parseFloat(char ignore) { return parseFloat(SKIP_ALL, ignore); }
113-
// These overload exists for compatibility with any class that has derived
114-
// Stream and used parseFloat/Int with a custom ignore character. To keep
115-
// the public API simple, these overload remains protected.
116-
117-
struct MultiTarget {
118-
const char *str; // string you're searching for
119-
size_t len; // length of string you're searching for
120-
size_t index; // index used by the search routine.
121-
};
122-
123-
// This allows you to search for an arbitrary number of strings.
124-
// Returns index of the target that is found first or -1 if timeout occurs.
125-
int findMulti(struct MultiTarget *targets, int tCount);
126-
};
127-
128-
#undef NO_IGNORE_CHAR
129-
#endif
1+
/*
2+
Stream.h - base class for character-based streams.
3+
Copyright (c) 2010 David A. Mellis. All right reserved.
4+
5+
This library is free software; you can redistribute it and/or
6+
modify it under the terms of the GNU Lesser General Public
7+
License as published by the Free Software Foundation; either
8+
version 2.1 of the License, or (at your option) any later version.
9+
10+
This library is distributed in the hope that it will be useful,
11+
but WITHOUT ANY WARRANTY; without even the implied warranty of
12+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13+
Lesser General Public License for more details.
14+
15+
You should have received a copy of the GNU Lesser General Public
16+
License along with this library; if not, write to the Free Software
17+
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18+
19+
parsing functions based on TextFinder library by Michael Margolis
20+
*/
21+
22+
#ifndef Stream_h
23+
#define Stream_h
24+
25+
#include <inttypes.h>
26+
#include "Print.h"
27+
28+
// compatability macros for testing
29+
/*
30+
#define getInt() parseInt()
31+
#define getInt(ignore) parseInt(ignore)
32+
#define getFloat() parseFloat()
33+
#define getFloat(ignore) parseFloat(ignore)
34+
#define getString( pre_string, post_string, buffer, length)
35+
readBytesBetween( pre_string, terminator, buffer, length)
36+
*/
37+
38+
// This enumeration provides the lookahead options for parseInt(), parseFloat()
39+
// The rules set out here are used until either the first valid character is found
40+
// or a time out occurs due to lack of input.
41+
enum LookaheadMode
42+
{
43+
SKIP_ALL, // All invalid characters are ignored.
44+
SKIP_NONE, // Nothing is skipped, and the stream is not touched unless the first waiting character is valid.
45+
SKIP_WHITESPACE // Only tabs, spaces, line feeds & carriage returns are skipped.
46+
};
47+
48+
#define NO_IGNORE_CHAR '\x01' // a char not found in a valid ASCII numeric field
49+
50+
class Stream : public Print
51+
{
52+
protected:
53+
unsigned long _timeout; // number of milliseconds to wait for the next char before aborting timed read
54+
unsigned long _startMillis = 0; // used for timeout measurement
55+
int timedRead(); // read stream with timeout
56+
int timedPeek(); // peek stream with timeout
57+
int peekNextDigit(LookaheadMode lookahead,
58+
bool detectDecimal); // returns the next numeric digit in the stream or -1 if timeout
59+
60+
public:
61+
virtual int available() = 0;
62+
virtual int read() = 0;
63+
virtual int peek() = 0;
64+
65+
Stream()
66+
{
67+
_timeout = 1000;
68+
}
69+
70+
// parsing methods
71+
72+
void setTimeout(unsigned long timeout); // sets maximum milliseconds to wait for stream data, default is 1 second
73+
unsigned long getTimeout(void)
74+
{
75+
return _timeout;
76+
}
77+
78+
bool find(char *target); // reads data from the stream until the target string is found
79+
bool find(uint8_t *target)
80+
{
81+
return find ((char *)target);
82+
}
83+
// returns true if target string is found, false if timed out (see setTimeout)
84+
85+
bool find(char *target, size_t length); // reads data from the stream until the target string of given length is found
86+
bool find(uint8_t *target, size_t length)
87+
{
88+
return find ((char *)target, length);
89+
}
90+
// returns true if target string is found, false if timed out
91+
92+
bool find(char target)
93+
{
94+
return find (&target, 1);
95+
}
96+
97+
bool findUntil(char *target, char *terminator); // as find but search ends if the terminator string is found
98+
bool findUntil(uint8_t *target, char *terminator)
99+
{
100+
return findUntil((char *)target, terminator);
101+
}
102+
103+
bool findUntil(char *target, size_t targetLen, char *terminate,
104+
size_t termLen); // as above but search ends if the terminate string is found
105+
bool findUntil(uint8_t *target, size_t targetLen, char *terminate, size_t termLen)
106+
{
107+
return findUntil((char *)target, targetLen, terminate, termLen);
108+
}
109+
110+
long parseInt(LookaheadMode lookahead = SKIP_ALL, char ignore = NO_IGNORE_CHAR);
111+
// returns the first valid (long) integer value from the current position.
112+
// lookahead determines how parseInt looks ahead in the stream.
113+
// See LookaheadMode enumeration at the top of the file.
114+
// Lookahead is terminated by the first character that is not a valid part of an integer.
115+
// Once parsing commences, 'ignore' will be skipped in the stream.
116+
117+
float parseFloat(LookaheadMode lookahead = SKIP_ALL, char ignore = NO_IGNORE_CHAR);
118+
// float version of parseInt
119+
120+
size_t readBytes( char *buffer, size_t length); // read chars from stream into buffer
121+
size_t readBytes( uint8_t *buffer, size_t length)
122+
{
123+
return readBytes((char *)buffer, length);
124+
}
125+
// terminates if length characters have been read or timeout (see setTimeout)
126+
// returns the number of characters placed in the buffer (0 means no valid data found)
127+
128+
size_t readBytesUntil( char terminator, char *buffer, size_t length); // as readBytes with terminator character
129+
size_t readBytesUntil( char terminator, uint8_t *buffer, size_t length)
130+
{
131+
return readBytesUntil(terminator, (char *)buffer, length);
132+
}
133+
// terminates if length characters have been read, timeout, or if the terminator character detected
134+
// returns the number of characters placed in the buffer (0 means no valid data found)
135+
136+
// Arduino String functions to be added here
137+
String readString();
138+
String readStringUntil(char terminator);
139+
140+
protected:
141+
long parseInt(char ignore)
142+
{
143+
return parseInt(SKIP_ALL, ignore);
144+
}
145+
float parseFloat(char ignore)
146+
{
147+
return parseFloat(SKIP_ALL, ignore);
148+
}
149+
// These overload exists for compatibility with any class that has derived
150+
// Stream and used parseFloat/Int with a custom ignore character. To keep
151+
// the public API simple, these overload remains protected.
152+
153+
struct MultiTarget
154+
{
155+
const char *str; // string you're searching for
156+
size_t len; // length of string you're searching for
157+
size_t index; // index used by the search routine.
158+
};
159+
160+
// This allows you to search for an arbitrary number of strings.
161+
// Returns index of the target that is found first or -1 if timeout occurs.
162+
int findMulti(struct MultiTarget *targets, int tCount);
163+
};
164+
165+
#undef NO_IGNORE_CHAR
166+
#endif

0 commit comments

Comments
 (0)