Execute
command
7.2.1.2. Ermittlung der globalen Geräte-Einstellungen
Alle SPI-Funktionen der AnaGate-API sind in der Datei AnaGateSPI.bas bereits
deklariert und können sofort verwendet werden. Der nachfolgende Dateiausschnitt
beinhaltet die Deklarationen von den verwendeten Funktionen aus der API.
Public Declare Function SPIOpenDevice Lib "AnaGateSPIVB6" _
Public Declare Function SPICloseDevice Lib "AnaGateSPIVB6" _
Public Declare Function SPIGetGlobals Lib "AnaGateSPIVB6" _
Die Eventprozedur btnCheckAddress_Click wird beim Klicken des Buttons mit der
Aufschrift Check Address aufgerufen.
Private Sub btnCheckAddress_Click()
Dim nRC As Long, Data As String, sText As String, I As Long
nRC = SPIOpenDevice(hHandle, Me.IPAddresse.Text, 2000)
If nRC <> 0 Then
Me.lblErrorMsg.Caption = "Fehler bei SPIOpenDevice: " & GetErrorMsg(nRC)
Else
Me.lblErrorMsg.Caption = GetAnagateInfo(hHandle)
End If
nRC = SPICloseDevice(hHandle)
End Sub
Über einen Aufruf von SPIOpenDevice wird eine Netzwerkverbindung zum Gerät
1
aufgebaut. Schlägt der Verbindungsaufbau fehl, so wird über die Funktion
GetErrorMsg eine Fehlerbeschreibung anhand des Return-Codes ermittelt.
Die Verbindung zum Gerät wird mit SPICloseDevice geschlossen.
2
Das Auslesen der Geräteinformationen und die textuelle Aufbereitung dieser Daten
erfolgt über die Funktion GetAnagateInfo.
Private Function GetAnagateInfo(hHandle As Long) As String
Dim nRC As Long, sText As String
Programmier-Beispiele
Führt ein SPI-Kommando aus und schreibt das Ergebnis in das
Dialogfeld Result. Es ist zu beachten, dass der SPI Bus als
solcher voll-duplex betrieben wird, d.h. dass beim Schreiben
gleichzeitig gelesen wird. Aus diesem Grund muss die Anzahl der
geschriebenen Bytes mindestens so groß sein, wie die Anzahl
der Bytes, die gelesen werden sollen. Gegebenenfalls ist der
Schreibpuffer mit entsprechend mit Dummy-Daten aufzufüllen.
Beispiel: Auf einem M25P80 ist das Kommando Read Status
Register durch die Bytefolge 0x05 festgelegt. Als Ergebnis wird
das Status-Register als einzelnes Byte (8 Bit) zurückgeliefert.
Alias "_SPIOpenDevice@12" (ByRef Handle As Long, _
Alias "_SPICloseDevice@4" (ByVal Handle As Long) As Long
Alias "_SPIGetGlobals@20" (ByVal hHandle As Long, _
2
83
ByVal TCPAddress As String, _
ByVal Timeout As Long) As Long
ByRef nBaudrate As Long, _
ByRef SigLevel As Byte, _
ByRef nAuxVoltage As Byte, _
ByRef nClockMode As Byte) As Long
1
© 2007-2015 Analytica GmbH