www.mikrocontroller.net

Forum: PC-Programmierung [c#] Komplexe Datenstruktur - wie erstellen?


Autor: Hüpferle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag,

ich bin seit einigen Tagen schon am grübeln wie ich eine komplexere 
Datenstrukur erstelle. Ich habe leider noch wenig Erfahrung mit C# aber 
ich bin fleißig am lernen.

Nun zu meinem Problem: Ich habe vom CAN - Bus Botschaften und möchte 
diese auswerten. Hierbei interessieren mich die IDs aber auch die 
verwendeten Services (SID) und deren Funktionen (LEV) (btw ISOTP 
Kommunikation). Des weitern sind noch einige Counter am Start für die 
Datenmenge, und wie Häufigkeit einer ID.
Das ganze ist recht dynamisch...

Hier mal ein paar bsps wie die Daten aussehen könnten:

int ID   SID   LEV   int DataCounter int IDCounter
               LEV
         SID   LEV
               LEV
               LEV

int ID   SID   LEV  int DataCounter int IDCounter
         SID   LEV
         SID   LEV

Also als eindeutigen Identifier würde die ID dienen. Die SID bzw LEV 
sind ehr als listen an zu sehen die Counter können als ints einfach 
hochgezählt werden.

Ich habe da an Struct und List Collection gedacht:
struct message
{
   int ID;
   List<string> SID = new List<string>();
   List<List<string>> LEV = new List<List<string>>();
   int DataCounter;
   int IdCounter
}

static void Main(string[] args)
{
   List<message> test = new List<msgs>();

   // öhm jo
}


Nun gut ganz davon dass der oben genannte code sich so nicht compilieren 
lässt, ich steh gar echt auf m schlauch wie ich sowas anpacke. 
Collections wie List gefallen mir in sofern dass diese funktionen wie 
.Add(), .Contains() etc bereitstellen. Und somit nur ID, SID oder LEVs 
hinzufügen lassen wenn diese noch nicht vorhanden sind...

Also nachdem Ihr mir den Kopf für das Zeug oben abgerissen habt, wäre 
ich um Ideen wie man sowas bewältigt echt dankbar.

LG Hüpferle

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.