ANSI-C Datenbank in einen Mikrocontroller

Krumnix

Level-3
Beiträge
1.454
Reaktionspunkte
190
Zuviel Werbung?
-> Hier kostenlos registrieren
Hiho.

Ein paar kleine Daten vorweg:
Ich habe 4-6 Teilnehmer, die über eine RS-232 Schnittstelle mir Daten
zur Verfügung stellen. Dann bearbeite ich die Daten und sende sie an
den Teilnehmer wieder zurück. Da ich nur eine Schnittstelle habe,
wird jeder Teilnehmer angesprochen aber nur der, dessen Nummer ich
mitschicke antwortet. Genauso bekomme ich auch immer die Nummer des
Teilnehmers mit seinen Daten und kann die zuordnen.

Nun ist es aber so, das die Daten recht viele sind und ich mir bestimmte
Schritte jeden Teilnehmers merken muss. Auch kann mal die Nummer
des Teilnehmers sich ändern. Deswegen würde ich das alles gerne
in eine Art Datenbank ablegen, so das ich darüber sehr flexibel bin.

Jedoch ist die Programmiersprache ANSI-C und der "Rechner" ein Mikro-
Controller von Mitsubishi. Speicher habe ich auch kaum noch frei.
Aber das ist nicht so das Problem.

Ich weiß imo nicht, wie ich in ANSI-C sowas angehen soll. Es gibt keine
Bibliotheken oder sonstwas. Also muss ich soweit alles selbst schreiben.

Hat da jemand vielleicht einen Ansatz oder irgendwelche Beispiele, wo man
drauf aufbauen kann. Vielleicht sehe ich imo den Baum vor lauter Wälder
nicht mehr....

Danke schonmal
 
Da gibt es z.B. SQLLight. Ansonsten schaue doch einmal auf www.sourceforge.net nach.

1) Wenn du wenig Speicher hast, dann könnte man das über eine Liste machen. Der Listenkopf enthält die Daten vom Client und die Listenknoten, die Informationen zu den Schritten.

2) Du kannst auch für die Schritte ein Array anlegen, wobei jeder Index für einen Schrittyp steht.

1) und 2) dürften weniger Ressourcen kosten, als eine DB.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da wäre zunächst eine Frage zu stellen:

Ist auf dem Controller ein File System vorhanden ?

Wenn das gegeben ist, kannst du mit open()/read()/write()/close() bzw. fopen()/fgets()/fprintf()/fclose() Dateien bearbeiten. Eine "richtige" Datenbank wird auf dem Microcontroller wohl nicht gehen, weil Du zu wenig Resourcen hast.

Du könntest z.B. ein
typedef struct
{
int id;
// weitere nutzerdaten
}MYRECORD;
machen.
Diese Struktur würdest Du dann einfach mit write() in eine Datei schreiben. Mit lseek() kannst Du dann in der Datei positionieren.

Wenn etwas mehr Speicher vorhanden ist, könntest Du auch Alles im Klartext speichern (z.B. als CSV Datei) mit fprintf()

Ich könnte Dir auch Beispiele geben. Allerdings sind diese in C++ und nicht in ANSI-C programmiert worden.
 
Zurück
Oben