• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Karta sd i szukanie w pliku
#21
Nie potrzebujesz ani dużych pojemności ani częstotliwości zapisu danych, chyba, ze książkę w telefonie zmieniasz kilka razy dziennie. Potrzebujesz mechanizmu synchronizacji danych pomiędzy telefonem a ESP.
 
Odpowiedź
#22
Synchronizacja juz jest, ale obecnie trzymam to w ram.
Chce to przeniesc do pamieci flash lub sd, ale tak aby mozna bylo wyszukiwac..

Wysłane z mojego SM-G950F przy użyciu Tapatalka
 
Odpowiedź
#23
(30-10-2018, 20:04)wchpikus napisał(a): Synchronizacja juz jest, ale obecnie trzymam to w ram.
Chce to przeniesc do pamieci flash lub sd, ale tak aby mozna bylo wyszukiwac..

Karta SD ma sens jak tych danych będzie bardzo dużo (kilkadziesiąt mega lub więcej). Do kilku mega, możesz zapisac do w ESP lub zewnętrznym DataFlash.

Masz małą bazę, tworzącą jeden ciąg danych (jeden plik). Możesz dane umieszczać bez systemu plików w kolejnych sektorach. Ponadto łatwo zrobić dodatkowy backup. Jeśli system plików jest wymagany, to użyj np LFS(czy jakoś tak, mam gdzieś źródła), który nie zajeżdża pamięci.

Traktuj kartę SD jako ostateczność, a w szczególności system FAT32 (skrót od FATalny). Jeśli nie jest wymagane proste przenoszenie danych z karty SD, to ok, FAT jest rozsądny, jeśli nie to użyj lepszego systemu niż FAT, albo nie używaj systemu plików wcale. Dlaczego nie FAT? Poczytaj o nim to się dowiesz. Największy problem, to możliwość utraty danych w czasie zapisu, w skrajnym przypadku, karta "zostanie uszkodzona) i "nie nadaje się" do użytku,czego doświadczyłem (naprawdę, pod Windozą, może być ciężko taką kartę ożywić, pod Linuxem nie miałem problemu).
 
Odpowiedź
#24
To fakt, uwalilem juz 2 karty tym espSmile
A co do trzymania danych, znajde gdzies jakis example do wyszukiwania po stringu tego co mam w pamieci?
Moge tego stringa skopiowac do bufora i porownywac bufor odczytu z tym buforem, pozostanie tylko kwestia skad wiedziec gdzie lezy dana czesc..
Na tym utknalem i jakos nie moge przeskoczyc.

Wysłane z mojego SM-G950F przy użyciu Tapatalka
 
Odpowiedź
#25
Ok zrobilem spiffs, mam 2880.13 KB miejsca na dane...

Teraz szukam jak tam zapisac,odczytac i sprawdzic..

Wysłane z mojego SM-G950F przy użyciu Tapatalka
[Obrazek: 58b839b570dcf7a68346e4d6ab2acaf5.jpg]
 
Odpowiedź
#26
(30-10-2018, 21:20)wchpikus napisał(a): To fakt, uwalilem juz 2 karty tym espSmile

Linuxem przywrócisz je do życia. Windąteż się da ale trzeba z 20 razy robić różne czary mary.

Co do szukania stringu w pamięci to "strstr".
 
Odpowiedź
#27
A moze zapisywac kontakty w poszczegolnych plikach 1,2,3,4...
W kazdym pliku tylko jeden kontakt.
Przy szukaniu otwierac po kolei kazdy plik i czytac do ramu i porownywac?
Czy to bedzie szybko dzialac...
I ile plikow mozna stworzyc..otworzyc to 6 na raz chyba, ale bede otwieral po kolei.
Da to troche mniej skomplikowany system odczytu i do tego latwo dostepny..
Dobry pomysl?

Wysłane z mojego SM-G950F przy użyciu Tapatalka
 
Odpowiedź
#28
(30-10-2018, 22:55)wchpikus napisał(a): A moze zapisywac kontakty w poszczegolnych plikach 1,2,3,4...
W kazdym pliku tylko jeden kontakt.
Przy szukaniu otwierac po kolei kazdy plik i czytac do ramu i porownywac?
Czy to bedzie szybko dzialac...

Zły pomysł:
- Pliki opierają się o bloki danych, zawierają dodatkowe informacje o nazwie pliku jego wielkości, dacie, atrybutach. W większości systemów, bloki maja po 256, 512 a nawet 4kb. W przypadku FLASH, jest to wielkość bloku pamięci flash. Czy sie zapisze 1 czy 200 bajtów zajęte zostanie np 256bajtów + ok 30 bajtów na nazwę, atrybuty itp. Krótko, pozre to ogromne ilości pamięci, gdzie dane bedą zajmowac kilka razy mniej niż blok.
- Otwierając plik, trzeba go odnaleźć w katalogu, co zajmuje czas. W tym akurat przypadku, odczyt pliku bedzie wielokrotnie krótszy niż jego otworzenie.

Podsumowanie:
Metoda wolna, zajmująca niepotrzebnie bardzo dużo pamięci.
 
Odpowiedź
#29
Czyli lepiej EEPROM i zapisywac odczytywac bezposrednio?
Gdzie znajde mape flash, co bym nie zajechal innych danych?
Obecnie mam ota,firmware i nie wiwm czy jakies inne dane nie siedza we flash gdzies..

https://github.com/esp8266/esp8266-wiki/wiki/Memory-Map

Czy to sie zgadza?

Wysłane z mojego SM-G950F przy użyciu Tapatalka
 
Odpowiedź
#30
(31-10-2018, 09:43)wchpikus napisał(a): Czyli lepiej EEPROM i zapisywac odczytywac bezposrednio?
Gdzie znajde mape flash, co bym nie zajechal innych danych?

EEPROM, FLASH, FRAM,wszystko zależy od potrzebnych pojemności i zasobności portfela.

Mapa ESP? Nie wiem.
W moich zastosowaniach ESP sprawdza sie dobrze tylko jako moduł komunikacyjny oraz w prostych aplikacjach. Problem zapisu bazy danych rozwiązałbym zewnętrzną pamięcią lub systemem plików w ESP. W takiej sytuacji, mapa pamięci mnie nie interesuje.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości