Hallo Junkie,
Zitat:Der Laboringeniuer wollte die Bedingung dass wenn 16 byte anliegen, die die Waage normlerweise überträgt, dann soll ausgelesen werden. Dass haben wir dass in einer case-Struktur gemacht. Bissl kompliziert meiner Meinung nach, aber ok. (Siehe Bild)
Warum schließt ihr nicht einfach eine "16" bei VISARead an und gut ist? Wozu vorher die Anzahl der Bytes im Puffer abfragen?
Was passiert mit eurem Programm, wenn ihr mal den richtigen Zeitpunkt verpasst und plötzlich 17 oder mehr Bytes im Buffer stehen?
Noch einmal:
Ihr arbeitet mit dem TermChar - zumindest hast du das so konfiguriert. Dann nutzt das TermChar auch und lasst das blöde BytesAtPort weg!
Zitat:Meine Idee war dazu, das mit der VISA: Ressource suchen (Funktion) zuerst alle schnittstellen abgefragt werden,
Gute Idee. Beispiele dazu findest du hier im Forum…
Zitat: und die die diegleichen Settings hat wie die Waage (Baudrate, stoppbits, etc) dann automatisch verwendet wird.
Schlechte Idee. Wie willst du die aktuellen Parameter abfragen und woher willst du wissen, dass die Schnittstelle schon richtig konfiguriert wurde?
Besser so:
- Verfügbare COM-Ports abfragen
- einen nach dem anderen passend zur Waage konfigurieren und Messwerte der Waage abfragen. Wenn die Waage antwortet: diesen COM-Port verwenden, ansonsten den nächsten probieren…
- Alternativ dem User eine Auswahl der COM-Ports präsentieren und diesen auswählen lassen!