Skip to content

Commit 0901777

Browse files
committedNov 27, 2024·
[preferences] add example for type support checking
1 parent 30ba157 commit 0901777

File tree

1 file changed

+400
-0
lines changed

1 file changed

+400
-0
lines changed
 
Lines changed: 400 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,400 @@
1+
/*
2+
This example checks all possible types that can be stored with Preferences library
3+
*/
4+
#include <Preferences.h>
5+
#include <float.h>
6+
Preferences prefs;
7+
8+
void setup() {
9+
Serial.begin(115200);
10+
11+
if (!prefs.begin("types")) { // use "types" namespace
12+
Serial.println("Cannot initialize preferences");
13+
Serial.println("Make sure your WiFi firmware version is greater than 0.3.0");
14+
while(1) {};
15+
}
16+
17+
if (!testChar()) {
18+
return;
19+
}
20+
21+
if (!testUChar()) {
22+
return;
23+
}
24+
25+
if (!testShort()) {
26+
return;
27+
}
28+
29+
if (!testUShort()) {
30+
return;
31+
}
32+
33+
if (!testInt()) {
34+
return;
35+
}
36+
37+
if (!testUInt()) {
38+
return;
39+
}
40+
41+
if (!testLong64()) {
42+
return;
43+
}
44+
45+
if (!testULong64()) {
46+
return;
47+
}
48+
49+
if (!testFloat()) {
50+
return;
51+
}
52+
53+
if (!testDouble()) {
54+
return;
55+
}
56+
57+
if (!testBytes()) {
58+
return;
59+
}
60+
61+
if (!testString()) {
62+
return;
63+
}
64+
}
65+
66+
void loop() {
67+
Serial.println(prefs.freeEntries());
68+
prefs.clear();
69+
Serial.println(prefs.freeEntries());
70+
prefs.end();
71+
72+
while(1) {};
73+
}
74+
75+
int testChar() {
76+
int8_t data;
77+
int8_t value;
78+
79+
data = INT8_MAX;
80+
prefs.putChar("char", data);
81+
value = prefs.getChar("char", 0);
82+
if (value != 127) {
83+
Serial.println("getChar MAX Error");
84+
return 0;
85+
} else {
86+
Serial.print("getChar MAX: ");
87+
Serial.println(value);
88+
}
89+
90+
data = INT8_MIN;
91+
prefs.putChar("char", data);
92+
value = prefs.getChar("char", 0);
93+
if (value != -128) {
94+
Serial.println("getChar MIN Error");
95+
return 0;
96+
} else {
97+
Serial.print("getChar MIN: ");
98+
Serial.println(value);
99+
}
100+
101+
return 1;
102+
}
103+
104+
int testUChar() {
105+
uint8_t data;
106+
uint8_t value;
107+
108+
data = UINT8_MAX;
109+
prefs.putUChar("uchar", data);
110+
value = prefs.getUChar("uchar", 0);
111+
if (value != 255) {
112+
Serial.println("getUChar MAX Error");
113+
return 0;
114+
} else {
115+
Serial.print("getUChar MAX: ");
116+
Serial.println(value);
117+
}
118+
119+
prefs.remove("uchar");
120+
121+
data = 0;
122+
prefs.putUChar("uchar", data);
123+
value = prefs.getUChar("uchar", 1);
124+
if (value != 0) {
125+
Serial.println("getUChar MIN Error");
126+
return 0;
127+
} else {
128+
Serial.print("getUChar MIN: ");
129+
Serial.println(value);
130+
}
131+
132+
return 1;
133+
}
134+
135+
int testShort() {
136+
int16_t data;
137+
int16_t value;
138+
139+
data = INT16_MAX;
140+
prefs.putShort("short", data);
141+
value = prefs.getShort("short", 0);
142+
if (value != 32767) {
143+
Serial.println("getShort MAX Error");
144+
return 0;
145+
} else {
146+
Serial.print("getShort MAX: ");
147+
Serial.println(value);
148+
}
149+
150+
data = INT16_MIN;
151+
prefs.putShort("short", data);
152+
value = prefs.getShort("short", 0);
153+
if (value != -32768) {
154+
Serial.println("getShort MIN Error");
155+
return 0;
156+
} else {
157+
Serial.print("getShort MIN: ");
158+
Serial.println(value);
159+
}
160+
161+
return 1;
162+
}
163+
164+
int testUShort() {
165+
uint16_t data;
166+
uint16_t value;
167+
168+
data = UINT16_MAX;
169+
prefs.putUShort("ushort", data);
170+
value = prefs.getUShort("ushort", 0);
171+
if (value != 65535U) {
172+
Serial.println("getUShort MAX Error");
173+
return 0;
174+
} else {
175+
Serial.print("getUShort MAX: ");
176+
Serial.println(value);
177+
}
178+
179+
data = 0;
180+
prefs.putUShort("ushort", data);
181+
value = prefs.getUShort("ushort", 1);
182+
if (value != 0) {
183+
Serial.println("getUShort MIN Error");
184+
return 0;
185+
} else {
186+
Serial.print("getUShort MIN: ");
187+
Serial.println(value);
188+
}
189+
190+
return 1;
191+
}
192+
193+
int testInt() {
194+
int32_t data;
195+
int32_t value;
196+
197+
data = INT32_MAX;
198+
prefs.putInt("int", data);
199+
value = prefs.getInt("int", 0);
200+
if (value != 2147483647) {
201+
Serial.println("getInt MAX Error");
202+
return 0;
203+
} else {
204+
Serial.print("getInt MAX: ");
205+
Serial.println(value);
206+
}
207+
208+
data = INT32_MIN;
209+
prefs.putInt("int", data);
210+
value = prefs.getInt("int", 0);
211+
if (value != (-2147483647 - 1)) {
212+
Serial.println("getInt MIN Error");
213+
return 0;
214+
} else {
215+
Serial.print("getInt MIN: ");
216+
Serial.println(value);
217+
}
218+
219+
return 1;
220+
}
221+
222+
int testUInt() {
223+
uint32_t data;
224+
uint32_t value;
225+
226+
data = UINT32_MAX;
227+
prefs.putUInt("uint", data);
228+
value = prefs.getUInt("uint", 0);
229+
if (value != 4294967295U) {
230+
Serial.println("getUInt MAX Error");
231+
return 0;
232+
} else {
233+
Serial.print("getUInt MAX: ");
234+
Serial.println(value);
235+
}
236+
237+
data = 0;
238+
prefs.putUInt("uint", data);
239+
value = prefs.getUInt("uint", 1);
240+
if (value != 0) {
241+
Serial.println("getUInt MIN Error");
242+
return 0;
243+
} else {
244+
Serial.print("getUInt MIN: ");
245+
Serial.println(value);
246+
}
247+
248+
return 1;
249+
}
250+
251+
int testLong64() {
252+
int64_t data;
253+
int64_t value;
254+
255+
data = INT64_MAX;
256+
prefs.putLong64("long", data);
257+
value = prefs.getLong64("long", 0);
258+
if (value != 9223372036854775807LL) {
259+
Serial.println("getLong MAX Error");
260+
return 0;
261+
} else {
262+
Serial.print("getLong MAX: ");
263+
Serial.println(value);
264+
}
265+
266+
data = INT64_MIN;
267+
prefs.putLong64("long", data);
268+
value = prefs.getLong64("long", 0);
269+
if (value != (-9223372036854775807LL - 1)) {
270+
Serial.println("getLong MIN Error");
271+
return 0;
272+
} else {
273+
Serial.print("getLong MIN: ");
274+
Serial.println(value);
275+
}
276+
277+
return 1;
278+
}
279+
280+
int testULong64() {
281+
uint64_t data;
282+
uint64_t value;
283+
284+
data = UINT64_MAX;
285+
prefs.putULong64("ulong", data);
286+
value = prefs.getULong64("ulong", 0);
287+
if (value != 18446744073709551615ULL) {
288+
Serial.println("getULong64 MAX Error");
289+
return 0;
290+
} else {
291+
Serial.print("getULong64 MAX: ");
292+
Serial.println(value);
293+
}
294+
295+
data = 0;
296+
prefs.putULong64("ulong", data);
297+
value = prefs.getULong64("ulong", 1);
298+
if (value != 0) {
299+
Serial.println("getULong64 MIN Error");
300+
return 0;
301+
} else {
302+
Serial.print("getULong64 MIN: ");
303+
Serial.println(value);
304+
}
305+
306+
return 1;
307+
}
308+
309+
int testFloat() {
310+
float data;
311+
float value;
312+
313+
data = FLT_MAX;
314+
prefs.putFloat("float", data);
315+
value = prefs.getFloat("float", 0);
316+
if (value != FLT_MAX) {
317+
Serial.println("getFloat MAX Error");
318+
return 0;
319+
} else {
320+
Serial.print("getFloat MAX: ");
321+
Serial.println(value);
322+
}
323+
324+
data = FLT_MIN;
325+
prefs.putFloat("float", data);
326+
value = prefs.getFloat("float", 0);
327+
if (value != FLT_MIN) {
328+
Serial.println("getFloat MIN Error");
329+
return 0;
330+
} else {
331+
Serial.print("getFloat MIN: ");
332+
Serial.println(value);
333+
}
334+
335+
return 1;
336+
}
337+
338+
int testDouble() {
339+
double data;
340+
double value;
341+
342+
data = DBL_MAX;
343+
prefs.putDouble("double", data);
344+
value = prefs.getDouble("double", 0);
345+
if (value != DBL_MAX) {
346+
Serial.println("getDouble MAX Error");
347+
return 0;
348+
} else {
349+
Serial.print("getDouble MAX: ");
350+
Serial.println(value);
351+
}
352+
353+
data = DBL_MIN;
354+
prefs.putDouble("double", data);
355+
value = prefs.getDouble("double", 0);
356+
if (value != DBL_MIN) {
357+
Serial.println("getDouble MIN Error");
358+
return 0;
359+
} else {
360+
Serial.print("getDouble MIN: ");
361+
Serial.println(value);
362+
}
363+
364+
return 1;
365+
}
366+
367+
int testBytes() {
368+
uint8_t data[] = {9, 30, 235, 255, 20, 15, 0, 1, 9, 30, 235, 255, 20, 15, 0, 1, 9, 30, 235, 255, 20, 15, 0, 1, 9, 30, 235, 255, 20, 15, 0, 1};
369+
size_t len;
370+
371+
prefs.putBytes("bytes", data, sizeof(data));
372+
len = prefs.getBytesLength("bytes");
373+
uint8_t value[len];
374+
prefs.getBytes("bytes", value, len);
375+
if (memcmp(data, value, len) != 0) {
376+
Serial.println("getBytes Error");
377+
return 0;
378+
} else {
379+
Serial.println("getBytes OK");
380+
}
381+
382+
return 1;
383+
}
384+
385+
int testString() {
386+
const char* data = "Lorem ipsum dolor sit amet consectetur adipiscing elit.";
387+
String value = "default";
388+
389+
prefs.putString("string", data);
390+
value = prefs.getString("string", value);
391+
if (strcmp(data, value.c_str()) != 0) {
392+
Serial.println("getString Error");
393+
Serial.println("Make sure your WiFi firmware version is greater than 0.5.0");
394+
return 0;
395+
} else {
396+
Serial.println("getString OK");
397+
}
398+
399+
return 1;
400+
}

0 commit comments

Comments
 (0)
Please sign in to comment.