Dynamische Struct, CAN Hausbus Taster zuweisung

OP #2982448
Lesenswert?
• ▲
▼
Guten Tag

Ich plane an einem CAN Hausbus.

Jetzt steh ich vor dem Problem das ich verschiedenen Tasten nicht nur 
eine sondern auch mehrere CAN Telegramme hinterlegen will und diese 
durch eine bestimmte CAN Nachricht auch verändern kann (Telegramm 
zufühgen,ändern & löschen).

Mein Gedanke ist einen Speicherbereich im eeprom zu reservieren für die 
Telegramme. Das wenn ich z.b. Taste 12 drücke alle Telegramme die im 
Speicher sind ,für Taste 12, gesendet werden.


Aufbau Speicherzelle eeprom
z.b.
Speicherzelle 0x051
Bit  :     0       1        2       3     4    5     6       7       8
Daten: TastenNr | BoT | TxDrive | DoT | PID | SID | Wert0 | Wert1 | 
Wert2

Beim Controllerstart ließt dieser in der init phase den komplette eeprom 
Speicherbereich aus und legt diese Daten in ein dynamische struct, 
dieser sich an die größe der im eeprom gespeicherten Tasteneinträge 
anpasst, dazu wird im eeprom z.b. auf Speicherzelle  0x050 die 
Gesamtzahl der Gespeicherten Tastentelegrammspeicherplätze eingetragen 
(Dieser wird nach dem lesen des eepromspeicherbereich eingetragen).

Für den fall das ein Tastentelegramm per CAN Telegramm gelöscht wird, 
wird im struct, bzw direkt danach im eeprom die Tastennummer des 
Telegramm einfach auf 0x00 gesetzt. Dadurch wird gekennzeichnet das 
diese Zelle frei ist.(diese wird beim Zählen der 
Tastentelegrammspeicherplätze nicht mitgezählt, jedoch wird diese 
Speicherzelle in einem anderen struct festgehalten, das diese frei ist).


Ich lese häufig das von Dynamischen struct bei Controllern abzuraten 
ist, da der Speicher zu klein sein. Dazu gibts aber eine obergrenze an 
speicherbaren Telegrammen z.b max 255.

was haltet ihr so vom groben Konzept?
gibts vielleicht besser möglichkeiten?
vielen dank für eure meinungen
#2982485
Lesenswert?
• ▲
▼
Jens Brücken schrieb:

> Ich lese häufig das von Dynamischen struct bei Controllern abzuraten
> ist, da der Speicher zu klein sein. Dazu gibts aber eine obergrenze an
> speicherbaren Telegrammen z.b max 255.

Dann brauchts auch nicht dynamisch zu sein.
Du definierst dir eine Struktur für 1 Telegramm (weil es ja sowieso 
immer den gleichen Aufbau hat) und legst dir ein entsprechend 
dimensioniertes Array davon an.
OP #2983293
Lesenswert?
• ▲
▼
Karl Heinz Buchegger schrieb:
> Bit?
>
>
>
> Wie legst du mit nur EINEM Bit eine Tasten Nummer fest.
>
> Oder meintest du Byte?

Ja sry ich meinte Byte

Karl Heinz Buchegger schrieb:
>> (Telegramm zufühgen,ändern & löschen).
>
>
>
> Da musst du noch etwas Hinrschmalz investieren.
>
> Wie änderst du ein bestimmtes Telegramm, wenn du es nur über die
>
> Tastennummer ansprechen kannst und du zu jeder Tastennummer mehrere
>
> mögliche Kandidaten hast?

ja ich gebe zu in bin in der Anfangsphase meiner überlegungen..
hatte mir das so überlegt das geschaut wird ob unter dieser Tastennummer 
schon son ein Telegramm hinterlegt ist und wenn ja ob dies gelöscht oder 
so beibehalten soll...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.