LabVIEWForum.de
Antwort von seriellem Port ignorieren möglich? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: Antwort von seriellem Port ignorieren möglich? (/Thread-Antwort-von-seriellem-Port-ignorieren-moeglich)



Antwort von seriellem Port ignorieren möglich? - Großer_Stein - 09.10.2014 15:34

Hallo LabView-Mitstreiter,

Mit einer seriellen Schnittstelle muss ich ein SPI-Interface auslesen. Mit dem Befehl "T00625" lege ich die Taktrate fest. Gebe ich diesen Befehl über das Tool "Docklite V2.0", so kommt die Antwort "SPI: CLOCK SET". Diese Antwort interessiert mich jedoch nicht;
Zurück zu LabView: Im Block Diagramm schreibe ich den nächsten Befehl ("SAW0800...") an den SPI-Slave und lese von dessen Befehl die Antwort (vierstellig Hexadezimal) ein; trotzdem liegt der String "SPI: CLOCK SET" am read buffer 2 an. Nach einem Timeout "verschwindet" der Wert aus buffer 2 und die vierstellige HEX-Zahl erscheint, jedoch in read buffer 1.

Meine Frage:
- Wieso erscheint die Antwort "SPI:CLOCK SET" überhaupt
- wird der String bis zum Abrufen gespeichert?
- kann ich ihn nicht einfach ignorieren ohne weiterzuarbeiten,
- warum liegt der HEX-Wert in Buffer 1 (obwohl ich ihn in buffer 2 schreibe)?


LV-Version: 2013_EN

Danke im Voraus und
mfg
Robert


RE: Antwort von seriellem Port ignorieren möglich? - GerdW - 09.10.2014 15:40

Hallo Robert,

"BytesAtPort" ist so gut wie immer verkehrt angewendet…

- Verzichte darauf und lese deine Antworten entweder durch Angabe der zu erwartenden Byteanzahl oder unter Verwendung von TermChars!
- Einmal das AutoCleanup-Tool benutzen…


RE: Antwort von seriellem Port ignorieren möglich? - Trinitatis - 10.10.2014 13:12

Hallo Robert,

du kannst eine Antwort von der ser. SS auch noch 10min. nach ihrer Sendung lesen, da sie erstmal im Empfangspuffer deiner SS liegt. Da du aber im TO von 1s den gesamten Puffer leerliest, dann etwas sendest und sofort hinterher wieder den Puffer leerliest, wirst du die erwartete Antwort nicht adhoc lesen sondern erst 1s später im "falschen" Control wiederfinden. Du solltest dir mal ein einfaches Terminal zusammenbauen, in dem du Befehle senden kannst und parallel die SS ausliest und einen String akkumulierst und nicht überschreibst. Dann siehst du auch, wann was gesendet wird.

Gruß, Marko