Hallo zusammen, ich überlege im Moment wie man im embedded Bereich eine große Menge an Daten verwalten könnte. Es gibt folgende Daten: - Aktueller Wert [8/16/32 bit groß] - Grenzwert Min [8/16/32 bit groß] - Grenzwert Max [8/16/32 bit groß] - Attribut 1 [16 bit] - Attribut 2 [16 bit] Macht in Summe für einen Datensatz (bei max. bit Größe): 32 + 32 + 32 + 16 + 16 = 128 bit = 128 bit [16 byte] Geplant sind min. 500 bis max. 1000 Parameter, daher wurde ein 32 mbit Dataflash vorgesehen. Da ich mich mit Access ganz gut auskenne, habe ich mit gedacht das Prinzip einer lokalen Datenbank auch ein embedded System zu übertragen. Aufbau über Index-Tabellen die einen Pointer auf den jeweiligen Speicherbereich eines Parameters enthalten. - Parameter ID (quasi der Primärschlüssel) - Index akt. Wert - Index Grenzwert Min - Index Grenzwert Max - Index Attribut 1 - Index Attribut 2 Die Daten plane ich hintereinander in vorher definierten Speicherbereichen abzulegen, immer mit einem Speicherplatz von 32 bit bzw. bei den Attributen mit je 16 bit. Die Parameter werden nicht linear hochgezählt, es existieren Lücken. Für diese Lücken würde ich den Speicherplatz einfach reservieren. In einem normalen DB-System würde ich die Daten einfach in die Tabelle hinten anfügen. Gibt es so was wie Access für µC?
auf embedded System ist sqllite sehr beliebt. Hat aber keine GUI wie Access. Ist mehr eine richte DB als ein aufgebortes Excel.
Peter II schrieb: > Hat aber keine GUI wie Access Gängige Datenbanktools könne auch mit SQLite was anfangen, wenn eh nur angefügt werden soll vom uC könnte man aber auch CSV nehmen.
Jürgen schrieb: > ich überlege im Moment wie man im embedded Bereich eine große Menge an > Daten verwalten könnte. Für IMHO merkwürdige Mengen an "groß" > Es gibt folgende Daten: > - Aktueller Wert [8/16/32 bit groß] > - Grenzwert Min [8/16/32 bit groß] > - Grenzwert Max [8/16/32 bit groß] Und die muß man wirklich speichern? Ergeben die sich nicht implizit aus dem aktuellen Wert über einen bestimmten Zeitraum? > - Attribut 1 [16 bit] > - Attribut 2 [16 bit] > > Macht in Summe für einen Datensatz (bei max. bit Größe): 32 + 32 + 32 + > 16 + 16 = 128 bit = 128 bit [16 byte] Also praktisch nix. OK, nicht nix. Aber weniger als ein durchschnittlicher µC in Registern halten kann. Apropos: sollte da nicht noch ein Timestamp sein? > Da ich mich mit Access ganz gut auskenne, habe ich mit gedacht das > Prinzip einer lokalen Datenbank auch ein embedded System zu übertragen. Komisch. Access ist doch gar keine Datenbank. Das ist doch nur ein GUI. > Aufbau über Index-Tabellen die einen Pointer auf den jeweiligen > Speicherbereich eines Parameters enthalten. > > - Parameter ID (quasi der Primärschlüssel) > - Index akt. Wert > - Index Grenzwert Min > - Index Grenzwert Max > - Index Attribut 1 > - Index Attribut 2 Örks. Sieh doch mal zu, ob du noch ein Textbook zum Thema ISAM findest. Das ist so in etwa die Essenz deiner Idee und seit 40(?) Jahren Stand der Technik. Uni-Bibliothek. Die Ecke mit den ausgesonderten Fachbüchern. > Gibt es so was wie Access für µC? Nein. Es gibt auch keine Anhängerkupplungen, um Wohnwagen an RC-Modelle zu hängen. SQLite wurde ja schon genannt. Ansonsten http://de.wikipedia.org/wiki/Eingebettetes_Datenbanksystem lesen oder Google nach "embedded database" fragen. XL
Bei dem geringen [eine richtige DB umfasst eher mehr Datensätze] kommt eher eine flat file DB in Frage. Was mir aber tatsächlich die Haare sträubt, ist das Index-Konzept. Üblicherweise sollte der Primärschlüssel ausreichen - die konkrete Adresse der Werte innerhalb des dadurch bereits identifizierten Datensatzes ergibt sich dann schlicht durch deren Offset.
Jürgen schrieb: > Macht in Summe für einen Datensatz (bei max. bit Größe): 32 + 32 + 32 + > 16 + 16 = 128 bit = 128 bit [16 byte] > > Geplant sind min. 500 bis max. 1000 Parameter, daher wurde ein 32 mbit > Dataflash vorgesehen. Was meinst du mit "Parameter"? Einen Datensatz? Das wären dann also insgesamt maximal 16.000 Bytes. Das passt damit 262 mal in deinen Dataflash. Jürgen schrieb: > Aufbau über Index-Tabellen die einen Pointer auf den jeweiligen > Speicherbereich eines Parameters enthalten. Wozu der Umweg über diese ganzen Pointer?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.