Sendewiderholung
-
Hallo,
Ich möchte 2 Geräte (Pc und Microcontroller) über die serielle Schnittstelle miteinander kommunizieren lassen. Bisher habe ich jedoch nur Erfahrungen in der Mc programmierung in C. Da war die Situation recht einfach. Ich habe ein Telegramm gesendet und einen (HW-)Timer gestartet. Wenn dieser Timer nun einlief wurde die Sendung wiederholt. Wenn vorher ein Acknowledge empfangen wurde, so hab ich einfach den Timer gestoppt.
Gibt es in C++ für den PC ähnliche mechanismen und wenn ja wie funktionieren die? Meine bisherige Suche hat mir da keine befriedigenden Ergebnisse geliefert.Gruß Cosinus
-
Sieht so aus, als brauchst du erstmal 2 Sachen, einen Timer und ein serielles Kommunikationsmodul. Beides hat Standard C++ leider nicht im Angebot. Du musst also auf etwas plattform-spezifisches bzw. eine entsprechende Lib zurückgreifen.
Sich einen Timer zu basteln, ist relativ einfach. Dafür dürftest du verschiedene Klassenimplementationen hier im Forum oder mittels google finden.
Bei der seriellen Kommunikation sieht das schon etwas schwieriger aus. Leider fällt mir im Moment keine Lib ein, bei der sowas schon vorhanden ist. Ich würde dir aber trotzdem empfehlen, auf eine solche zurückzugreifen. Damit sparst du dir auf jedenfall einiges an Arbeit. Auch hier ist google dein Freund. Letztendlich kannst du aber auch direkt die Funktionen deines BS nehmen, nur bleibt dann die Portabilität auf der Strecke.