Also, so viel Drumherum haben wir bei uns an der Arbeit für das Auslesen unserer Waage nicht benötigt. Vielleicht liegt es auch daran, dass es sich dabei um eine Sartorius Waage handelt, die nur eine Textzeile über den
COM-Port, respektive USB-Port als Port COM3 schießt.
Wir mussten im Gerätemanager einfach die Eigenschaften des
COM-Ports wie folgt einstellen: Baudrate: 9600 Bit/s; Datenbits: 8; Patität: keine; StoppBits: 1; Flusssteuerung: keine.
Schließlich haben wir den entsprechenden
COM-Port wie eine Datei geöffnet und somit unser Programm in einen Empfangsmodus versetzt. Sobald nun der Wiegende an der Waage auf die "Print-Taste" gedrückt hat wurde das Resultat als Zeichenkette übertragen und wir mussten nur noch das Empfangene in eine Variable Speichern, die wir dann auswerten konnten. Am Ende durfte nicht vergessen werden die "Datei" wieder zu schließen, also dem Computer mitzuteilen das er nicht weiterhin in Empfangsbereitschaft verweilen soll, ansonsten hats mächtig gekracht, wenn man das Programm geschlossen hat (Die Waage musste dann kurz vom Stromnetz genommen werden, damit sie wieder von aussen her ansprech war).
Bei der Arbeit direkt mit dem
COM-Port 1 oder 2 (also kein USB) war jedoch wichtig, das es bei der Übertragung zu Wartezeiten von bis zu 10 Sekunden kommen konnte, bis auch das letzte Zeichen angekommen ist. Hier haben wir einen Timer verwendet der immer wieder prüft, ob der volle Datensatz (also die erwartetete Zeichenkette) vollständig angekommen ist.
Diese Vorgehensweise hat sich wunderbar bewährt, in Delphi genauso wie in der Excel VBA.