Hallo,
zuerstmal zu mir: Ich habe bisher viel in C und VBA programmiert und bin Elektronikingenieur.
Ich habe schon einige C#-Tutorials durchgearbeitet. Auch die Grundlagen objektorientierter Programmierung sind mir vertraut. Jetzt möchte ich ein Projekt in C# umsetzen:
Über eine serielle Schnittstelle (virtual COM-Port) soll das C#-Programm mit einem Gerät kommunizieren.
Das C#-Programm schickt Lesebefehle an das Gerät und das Gerät schickt Datenblöcke aus verschiedenen C-Strukturen zurück. Im C#-Programm werden die Werte der Strukturelemente verändert und müssen wieder an das Gerät zurückgeschickt werden.
In C ist es einfach, einem Zeiger auf eine Struktur die Adresse des Empfangsarrays zuzuweisen.
So dass man anschließend auf die Strukturelemente zugreifen kann. In C# geht das ja aber nicht.
Ich vermute mal, dass es in C# ein Vorgehen gibt, mit dem man das einigermaßen einfach umsetzen kann?
Über Hinweise zum prinzipiellen Vorgehen würde ich mich freuen. Danke.
Hallo und willkommen,
schau dir mal die Klasse SerialPort und Code-Beispiele dazu an sowie evtl. auch Template SerialPort.
Die Datenübertragung dann als Byte-Array (und Mapping auf passende Strukturen mit der Marshal-Klasse). Außerdem kann im unsafe
-Modus auch mit Zeigern gearbeitet werden.
Hallo,
suchst du sowas Byte-Array direkt in ein struct "kopieren"?
Danke schon mal für die Hinweise, werde ich mir anschauen.
Das mit dem Marshaling habe ich aber noch nicht wirklich durchschaut, wie man da eine ganze Struktur
oder eine Struktur mit Elementen, die selber Strukturen sind, "auf einen Rutsch" hinbekommt.
Aber der unsafe-Bereich ist interessant, das kannte ich noch nicht.
Werde mich da einlesen.
@Wilfried
Danke! Ich habe zwar auch gesucht, aber nicht mit "kopieren" und habe nichts passendes gefunden.
Nach kurzer Draufsicht deiner Links sieht das sehr interessant aus. Werde das genau analysieren...
- Strukturen dafür zu verwenden? Oder besser Klassen? Es gibt interne Unterschiede zwischen "Structs" und "Classes", z.B. Link zur MS-Doku
Goalkicker.com // DNC Magazine for .NET Developers // .NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray 😉