Hallo, ich bin dabei ein kleines Tool zu schreiben, um über die Serielle Schnittstelle mit einem µC kommunizieren zu können. Das ganze soll etwas Strukturiert und Objektorientiert angegangen werden. Mein Konzept sieht in etwa so aus: ------------- ------------- | Protocoll | <-> | Interface | <-> Hardware ------------- ------------- Die Klasse Protocoll handelt alles Protokoll spezifische ab. Wie Startzeichen Hinzufügen, Längen Berechnung, Checksummen Berechnung Das Protokoll soll so aussehen S: Startzeichen L: Längenangabe C:Kommando D1..Dn: Daten CH: Checksumme Protokoll: SLCC[D1..Dn]CH Die Klasse Interface sendet dies ganze dann auf die Serielle Schnittstelle. Und hat Funktionen wie alle verfügbaren Comports suchen, Comport öffnen, schließen... etc. Ich habe lediglich Probleme beim Empfangen. Wie kann ich Sinnvoll der Klasse Protocoll mittteilen dass neue Daten in meinem Recieve Buffer sind. Ich möchte dies eigentlich nicht durch zyklisches Pollen realisiern. Gibt es so eine Art Interrupt bei C#? Oder hat jemand schon etwas ähnliches Programmiert und kann mir ein Paar Tipps geben, nach was ich googeln sollte. Mir fehlt momentan so ein kleiner gedankensprung. Habe leider im Beriech Kommunikationsprotokoll Programmierung nicht so viel Erfahrung und möchte diese durch dieses kleine Projekt etwas aufbessern.Darum sollte es auch etwas Objektorientiert sein. Danke für eure Ideen, Kritik, Lösingsansätze Philipp
Einfach .Read() aufrufen - wenn nix kommt blockiert es halt (bis zum Timeout). Alternativ gibt es das DataReceived-Event.
Philipp schrieb: > Mein Konzept sieht in etwa so aus: Wozu soll das gut sein? Ich halte sowas für schlichtweg überflüssig. W.S.
Leier bestätigt die Qualität der Antworten meine langjährige Erfahrung über dieses Forum. Früher hat man hier mal noch qualitativ Hochwertige Hilfestellungen bekommen. Versteht mich bitte nicht Falsch, ich möchte nicht das ganze Forum über einen Kamm scheren aber 90% von dem gelaber was die Mitglieder hier von sich geben ist... Das einzige was man hier noch erwarten kann ist google und was soll der scheiß... @ADMIN: Thread bitte Löschen, Danke!!!
Das hier viel dumm gelabert wird stimmt natürlich, aber Bernd H. hat dir doch gesagt was du wissen musst. Es gibt ein Datareceived event für den SerialPort unter C#. Für die Implementierung brauch man nichtmal vorwissen, einfach den Serialport aus der Windowsforms liste in dein projekt schieben, doppelklick drauf und schon macht visual Studio alles für dich. Wie du dein Protokol implementierst musst du schon selber wissen, das ist under C# auch nicht anders als under C++ oder C. Heul nicht rum, sondern pick aus den antworten die du kriegst das raus was sinnvoll und hilfreich ist.
Mach dich auf jeden Fall von der Polling-Lösung frei. Es gibt einen Event (DataReceived, glaub ich) der ausgelöst wird, sobald Daten eintrudeln. Da zu pollen ist Unsinn.
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.