Ansteuerung der PortDLL aus C#/dotNET

Das Programm ist ein Beispiel dafr, wie man mittels der PortDLL
die Leitungen DTR,RTS und TXD schalten, DSR, CTS, DSD 
und RI auslesen, sowie einen einfachen Signalgenerator
implementieren kann. 

Es ist sicher nicht als Beispiel fr zeitgeme oder 
effiziente Programmierung der Seriellen Schnittstelle bzw. von
zeitkritischen Applikationen unter C#/dotNET zu verstehen. 
Aber vielleicht hilft es dem einen oder anderen dabei weitere Programme
fr die PortDLL nach C# zu portieren, die tollen Sachen auf Burkhard
Kainkas Seite auszuprobieren oder einfach nur den ein oder anderen
Teil des Codes fr eigene Programme zu verwenden.

Der Signalgenerator ist "experimentell". Er schafft auf meinem Rechner
bis zu 25KHz. Aufgrund der Einschrnkungen (Overhead / absichtlich nicht 
abgeschaltetes Multitasking) kann man keine ganz genaue Frequenzvorgabe
machen, deshalb wird nicht die Vorgabe, sondern die mittels
PerformanceCounter gemessene tatschliche Frequenz angezeigt.

Wer will kann ja mal einen Lautsprecher z.B. an TXD anschlieen und den
Signalgenerator auf ca. 20KHz fahren so dass man nur noch die
Strungen durch Taskwechsel hrt. Mit einiger bung kann man ganz gut
einschtzen was gerade auf dem Rechner los ist (-;

Die von mir implementierte Methode "microsleep()" verursacht
eine hohe CPU-Last. Das war aber auf die Schnelle das Beste was ich
machen konnte. Hier wre es schn eine Methode zu haben, die auch 
Wartezeit im Microsekunden-Bereich an den Scheduler respektive andere
Tasks disponiert. Irgendwo in Kernel32.dll gibt es sowas wohl...
Ach ja, Thread.sleep() gibt zwar die CPU frei, aber ist nur bis ca. 30 Hz 
zu gebrauchen. Die Funktionen PortDLL.DELAYUS() und PortDLL.TIMEREADUS() 
funktionieren auf meinem Rechner bzw. mit meiner port.dll leider nicht.

Das Ganze sollte sich mit Visual C# 2005 Express Edition oder
Visual Studio 2005 bersetzen lassen.
Die "port.dll" muss sich entweder im Windows Verzeichnis befinden
oder da wo die ausfhrbare Datei dieses Programmes liegt.
 
Sourcen und Programm sind von mir fr die freie private Verwendung
freigegeben und unterliegen keinen Lizenzbedingungen,
auer dass weder eine Haftung dafr bernehme noch 
irgendeine Funktionalitt garantiere.
Die Benutzung erfolgt also auf eigene Gefahr!

Wer findet, dass dieses Programm oder der Source in irgend einer Form
ntzlich ist, der kann mir ja eine Mail oder eine Postkarte 
schreiben. 

Also dann, viel Spa damit!
Sascha 

Weitere Informationen und/oder aktuellere Versionen sind, mit etwas Glck,
bald hier zu finden: http://www.sascha-bader.de/html/portdlldemo.html 