1
+ #include < Arduino.h>
2
+ #include < FileData.h>
3
+ #include < LittleFS.h>
4
+
5
+ struct Data {
6
+ uint8_t val8;
7
+ uint16_t val16;
8
+ uint32_t val32 = 12345 ;
9
+ char str[20 ];
10
+ };
11
+ Data mydata;
12
+
13
+ FileData data (&LittleFS, " /data.dat" , ' B' , &mydata, sizeof (mydata));
14
+
15
+ void setup () {
16
+ Serial.begin (115200 );
17
+ delay (1000 );
18
+ Serial.println ();
19
+
20
+ LittleFS.begin ();
21
+
22
+ // прочитать данные из файла в переменную
23
+ // при первом запуске в файл запишутся данные из структуры
24
+ FDstat_t stat = data.read ();
25
+
26
+ switch (stat) {
27
+ case FD_FS_ERR: Serial.println (" FS Error" );
28
+ break ;
29
+ case FD_FILE_ERR: Serial.println (" Error" );
30
+ break ;
31
+ case FD_WRITE: Serial.println (" Data Write" );
32
+ break ;
33
+ case FD_ADD: Serial.println (" Data Add" );
34
+ break ;
35
+ case FD_READ: Serial.println (" Data Read" );
36
+ break ;
37
+ default :
38
+ break ;
39
+ }
40
+
41
+ Serial.println (" Data read:" );
42
+ Serial.println (mydata.val8 );
43
+ Serial.println (mydata.val16 );
44
+ Serial.println (mydata.val32 );
45
+ Serial.println (mydata.str );
46
+ }
47
+
48
+ void loop () {
49
+ // data.tick(); // вызывать тикер в loop
50
+
51
+ // можно отловить момент записи
52
+ if (data.tick () == FD_WRITE) Serial.println (" Data updated!" );
53
+
54
+ // запишем в данные строку из монитора порта
55
+ // а также присвоим остальным переменным случайные значения
56
+ if (Serial.available ()) {
57
+ int len = Serial.readBytes (mydata.str , 20 );
58
+ mydata.str [len] = ' \0 ' ;
59
+ mydata.val8 = random (255 );
60
+ mydata.val16 = random (65000 );
61
+ Serial.println (" Update" );
62
+
63
+ // отложить обновление
64
+ data.update ();
65
+ }
66
+ }
0 commit comments