Hardware Reference
In-Depth Information
10.5 Herausforderungen an den Parser
Wann immer der Bulk-OUT Endpoint des Geräts mit neuen Daten gefüllt worden
ist, muss der Inhalt dieses Speicherbereichs analysiert werden. Zur Erinnerung sei
an dieser Stelle nochmals erwähnt, dass aus Gründen der Vereinfachung für die
Firmware des Beispielgeräts folgende Bedingung gilt: Jede Transaktion, die den
Bulk-OUT Endpoint betrifft, bedeutet einen vollständigen Transfer. Oder anders
formuliert: Ein Transfer besteht niemals aus mehr als einer Transaktion. Deswegen
steht am Anfang des Speicherbereichs immer ein Bulk-OUT Header gemäß
USBTMC: Tabelle 1. Sofern aus diesem Header hervorgeht, dass im Anschluss an
den Header eine DEV_DEP_MSG_OUT oder eine VENDOR_SPECIFIC_OUT
Nutzlast angehängt ist, wird der Parser diese Nutzlast als an das Gerät gerichtete
Fernsteuerbefehle interpretieren. Im ersten Fall handelt es sich um gerätespezifi-
sche, im zweiten um anbieterspezifische Befehle. Beide Befehlsarten werden vom
Parser nach derselben Methode bearbeitet, lediglich die Listen gültiger Befehle, mit
denen der Parser den Speicherinhalt des Bulk-OUT Endpoints vergleicht, unter-
scheiden sich. Im ersten Fall wird mit dem Befehlsvorrat der für das Gerät definier-
ten SCPI-kompatiblen Befehle verglichen, im zweiten Fall mit der speziellen Liste
von Befehlen, die der Gerätehersteller für den „nichtöffentlichen“ Gebrauch defi-
niert hat. Was der Parser dabei zu leisten hat, sei im Folgenden exemplarisch an
einem gerätespezifischen Befehl erläutert.
Gemäß den SCPI-Regeln sind für den Befehl „[:][ROUTe]:CLOSe:STATe?“ je nach
internem Zustand des Parsers folgende Schreibweisen zulässig:
:ROUTE:CLOSE:STATE?
:ROUTE:CLOSE:STAT?
:ROUTE:CLOS:STATE?
:ROUTE:CLOS:STAT?
:ROUT:CLOSE:STATE?
:ROUT:CLOSE:STAT?
:ROUT:CLOS:STATE?
:ROUT:CLOS:STAT?
ROUTE:CLOSE:STATE?
ROUTE:CLOSE:STAT?
ROUTE:CLOS:STATE?
ROUTE:CLOS:STAT?
ROUT:CLOSE:STATE?
ROUT:CLOSE:STAT?
ROUT:CLOS:STATE?
ROUT:CLOS:STAT?
Search WWH ::




Custom Search