Hallo,
ich schreibe an einem Steuerframework für Roboter, das über den SerialPort mit einem Mikrocontroller reden soll. Damit alles funktioniert erwartet der Mikrocontroller alle 40ms (HIerfür habe ich bereits einen Multimedia Timer benutzen müssen, da der normale C# Timer im ms Sekungendbereich doch eher mal ungenau vorgeht) ein Packet mit neuen Informationen. Sehr wichtig ist dabei die Regelmäßigkeit. Es ist nun so, daß sobald das Kommunikationsmodul angeschalten wird, die CPU Last auf über 40% hochschnellt, was für eine normale Kommunikation nicht akzeptabel ist, da noch andere Prozessorintensive Threads währendher laufen müssen. Ich habe alles beibehalten und das SerialPort.Write/Read jeweils auskommentiert, was die CPU Last auf akzeptable 4% gedrückt hat.
Die Last ist nicht das Hauptproblem, das Hauptproblem ist, daß die Read/Write Operationen nicht immer zuverlässig um 40ms Takt(oder eben schneller) fertig werden. Vom Mikrocontorller her sollte das trotzdem möglich sein, da ein C++ Framework bereits existiert, daß im 12ms Takt Daten mit dem Mikrocontroller austauscht.
Sind die differenzen in Sachen Performance wirklich so groß zwischen dem .NET SerialPort und dem WindowsAPI Port?
Hat sonst noch jemand erfahrungen mit dem SerialPort gemacht, bzw. auch Performance Probleme oder Lösungsideen?
Vielen Dank schonmal im vorraus,
Tom