Herunterladen Diese Seite drucken
Optelec ClearNote HD Bedienungsanleitung

Optelec ClearNote HD Bedienungsanleitung

Vorschau ausblenden Andere Handbücher für ClearNote HD:

Werbung

AnaGate API 2
Programmer's Manual
Analytica GmbH
A. Schmidt, Analytica GmbH
S. Welisch, Analytica GmbH
J. Gossens, Analytica GmbH

Werbung

loading

Inhaltszusammenfassung für Optelec ClearNote HD

  • Seite 1 AnaGate API 2 Programmer's Manual Analytica GmbH A. Schmidt, Analytica GmbH S. Welisch, Analytica GmbH J. Gossens, Analytica GmbH...
  • Seite 2 AnaGate API 2: Programmer's Manual Analytica GmbH von A. Schmidt, S. Welisch und J. Gossens Dieses Dokument wurde mittels DocBook am 07.04.2016 11:00:03 erzeugt. Hilfe-Datei (dtsch.): Manual-AnaGateAPI.chm Hilfe-Datei (engl.): Manual-AnaGateAPI-EN.chm PDF-Datei (dtsch.): Manual-AnaGateAPI-2.2.pdf PDF-Datei (engl.): Manual-AnaGateAPI-2.2-EN.pdf Veröffentlicht 2014-12-10 Copyright © 2007-2015 Analytica GmbH Zusammenfassung Das AnaGate Programmer's Manual umfasst die Beschreibung der Programmierschnittstellen zu den Hardware-Komponenten der AnaGate-Serie.
  • Seite 3: Inhaltsverzeichnis

    Inhaltsverzeichnis Einleitung ....................ix I. AnaGate API ..................1 1. Die Programmierschnittstelle der AnaGate-Serie ........4 2. Anmerkungen zum Kommunikationsprotokoll TCP ........ 7 2.1. Besondere Protokolleigenschaften ..........7 3. Allgemeine Funktionen ..............9 DLLInfo ..................10 4. CAN API Funktionen ..............11 CANOpenDevice, CANOpenDeviceEx ..........
  • Seite 4 AnaGate API 2 7.1. Programmiersprache C/C++ ..........80 7.2. Programmiersprache Visual Basic 6 ........81 7.3. Programmiersprache VB.NET ..........85 II. SocketCAN-Schnittstelle ............... 89 8. Die SocketCAN-Schnittstelle der AnaGate-Serie ......... 91 9. Beschreibung des SocketCAN-Gateway ..........92 10. Verwendung des SocketCAN-Gateway ..........93 10.1.
  • Seite 5 AnaGate API 2 LS_I2CWriteDigital ..............160 LS_I2CErrorMessage ..............161 LS_I2CReadEEProm ..............162 LS_I2CWriteEEProm ..............164 16. Lua-Programmier-Beispiele ............167 16.1. Beispiele für Geräte mit CAN-Schnittstelle ......167 16.2. Beispiele für Geräte mit SPI-Schnittstelle ......168 16.3. Beispiele für Geräte mit I2C-Schnittstelle ......169 A.
  • Seite 6 Abbildungsverzeichnis 7.1. Eingabe-Formular SPI-Beispiel (VB6) ........... 82 11.1. Bearbeiten von Lua-Skript im Texteditor ........... 101 11.2. HTTP-Interface, Lua-Einstellungen ............ 103 B.1. Definition einer I2C-Slaveadresse im 7-Bit-Format ....... 175 B.2. Definition einer I2C-Slaveadresse im 10-Bit-Format ......175 © 2007-2015 Analytica GmbH...
  • Seite 7 Tabellenverzeichnis 1.1. Programm-Bibliotheken der API unter Windows ........4 1.2. Programm-Bibliotheken der API unter 32-Bit-Linux ........4 1.3. Programm-Bibliotheken der API unter 64-Bit-Linux ........5 2.1. AnaGate-Modelle und Ihre Portnummern ..........7 3.1. Datentypen mit festen Größen ............. 9 4.1. Beispielkonfiguration CAN-Baudrate ............. 16 4.2.
  • Seite 8 Liste der Beispiele 10.1. Programmaufruf ................96 16.1. CAN-Lua-Scriptbeispiel ..............167 16.2. SPI-Lua-Scriptbeispiel ..............168 16.3. I2C-Lua Scriptbeispiel EEPROM-Funktionen ........169 16.4. I2C - Lua Scriptbeispiel I2C-Direkt ..........170 16.5. I2C-Lua-Scriptbeispiel Sequence ............171 viii © 2007-2015 Analytica GmbH...
  • Seite 9: Einleitung

    Einleitung AnaGate Programmer's Manual umfasst Beschreibung Programmierschnittstellen zu den Hardware-Komponenten der AnaGate Serie. Im Folgenden geht das Dokument auf folgende Schnittstellen ein: • Application Programming Interface (Teil I, „AnaGate API“) • Linux SocketCAN Interface(Teil II, „ SocketCAN-Schnittstelle “) • Lua Scripting Interface (Teil III, „ Skriptsprache Lua “) ©...
  • Seite 10: Anagate Api

    Teil I. AnaGate API...
  • Seite 11 Inhaltsverzeichnis 1. Die Programmierschnittstelle der AnaGate-Serie ........4 2. Anmerkungen zum Kommunikationsprotokoll TCP ........7 2.1. Besondere Protokolleigenschaften ........... 7 3. Allgemeine Funktionen ................9 DLLInfo .................... 10 4. CAN API Funktionen ................11 CANOpenDevice, CANOpenDeviceEx ............ 12 CANCloseDevice ................15 CANSetGlobals ..................
  • Seite 12 AnaGate API 7.3. Programmiersprache VB.NET ............85 © 2007-2015 Analytica GmbH...
  • Seite 13: Die Programmierschnittstelle Der Anagate-Serie

    Kapitel 1. Die Programmierschnittstelle der AnaGate-Serie Die AnaGate-Serie besteht aus verschiedenen Hardware-Modellen, die über ein herkömmmliches Netzwerkprotokoll Zugriff auf unterschiedliche Bussysteme (I2C, SPI, CAN) bzw. Prozessoren (Renesas) bieten. Die Kommunikation zu den einzelnen Geräten erfolgt prinzipiell über ein proprietäres offengelegtes Netzwerkprotokoll. Somit können alle Steuergeräte, die ein sog. Socket-Interface besitzen (wie z.B.
  • Seite 14: Programm-Bibliotheken Der Api Unter 64-Bit-Linux

    Die Programmierschnittstelle der AnaGate-Serie Gerät Linux-Bibliothek (X86) ARM9 AnaGate CAN uno / libCANDLLStaticRelease.a, verfügbar duo / quattro libAnaGateExtStaticRelease.a, libAnaGateStaticRelease.a AnaGate CAN USB libCANDLLStaticRelease.a, verfügbar libAnaGateExtStaticRelease.a, libAnaGateStaticRelease.a AnaGate SPI libSPIDLLStaticRelease.a, libAnaGateExtStaticRelease.a, libAnaGateStaticRelease.a AnaGate I2C / I2C libI2CDLLStaticRelease.a, libAnaGateExtStaticRelease.a, libAnaGateStaticRelease.a AnaGate Universal libSPIDLLStaticRelease.a, verfügbar Programmer...
  • Seite 15 Die Programmierschnittstelle der AnaGate-Serie Tipp Für die neueren Gerätemodelle mit embedded Linux (Kernel 2.6) und ARM9-Prozessor können auch individuelle Erweiterungen für das Gerät selbst erstellt werden. Die vollständige Software-API in einer cross- kompilierten Version vereinfacht die Erstellung der Geräte-Erweiterung, da damit die identische Schnittstelle sowohl auf dem PC als auch auf dem Gerät selbst genutzt werden kann.
  • Seite 16: Anmerkungen Zum Kommunikationsprotokoll Tcp

    Kapitel 2. Anmerkungen zum Kommunikationsprotokoll TCP Der Zugriff von einem PC auf die unterschiedlichen Modelle der AnaGate-Serie erfolgt über das sehr verbreitete Netzwerkprotokoll TCP (Transmission Control Protocol). TCP ist ein verbindungsorientiertes, paketvermittelndes Transportprotokoll, das in Schicht 4 des OSI-Referenzmodells angesiedelt ist. Dabei ist TCP im Prinzip eine Ende-zu-Ende-Verbindung, welche die Übertragung der Informationen in beide Richtungen zur selben Zeit zulässt.
  • Seite 17 Anmerkungen zum Kommunikationsprotokoll TCP nicht innerhalb einer Timeout-Zeit quittiert, wird das Datenpaket erneut gesendet. Doppelte Pakete werden beim Empfänger erkannt und verworfen. Der Datentransfer an sich kann aber jederzeit nach dem Verbindungsaufbau gestört, verzögert oder ganz unterbrochen werden. Ein erfolgreicher Verbindungsaufbau stellt also keinerlei Gewähr für eine nachfolgende, dauerhaft gesicherte Übertragung dar.
  • Seite 18: Allgemeine Funktionen

    Kapitel 3. Allgemeine Funktionen Bibliotheks-Schnittstelle AnaGate Programmiersprache implementiert. Die Standard-Datentypen dieser Sprache sind nicht plattformübergreifend auf feste Wertebereiche festgelegt, was den Zugriff auf C-Funktionen aus anderen Programmiersprachen heraus erschweren kann. Datentypen fest definierten Wertebereichen wurden erst in neueren C-Versionen ab C99 plattformübergreifend zur Verfügung gestellt, welche jedoch nicht von allen, vor allem älteren Compilerversionen unterstützt werden.
  • Seite 19: Dllinfo

    Allgemeine Funktionen DLLInfo DLLInfo — Ermittelt die aktuelle Version der AnaGate DLL. Syntax #include <AnaGateDLL.h> AnaInt32 DLLVersion(char * pcMessage, AnaInt32 nMessageLen); Parameter pcMessage Datenpuffer, der die Versionskennung der AnaGate DLL aufnehmen soll. nMessageLen Größe des übergebenen Datenpuffers in Byte. Rückgabewert Tatsächliche Größe der zurückgegebenen Versionskennung.
  • Seite 20: Can Api Funktionen

    Kapitel 4. CAN API Funktionen Mit den Funktionen der CAN API können alle CAN-Gateways der AnaGate-Serie angesprochen werden. Die Programmierschnittstelle ist für alle Geräte identisch und erfolgt generell über das Netzwerk-Protokoll TCP bzw. UDP. Aktuell können folgende Geräte über die CAN API genutzt werden: •...
  • Seite 21: Canopendevice, Canopendeviceex

    CAN API Funktionen CANOpenDevice, CANOpenDeviceEx CANOpenDevice, CANOpenDeviceEx — Baut eine Netzwerkverbindung (TCP bzw. UDP) zu einem AnaGate CAN auf. Syntax #include <AnaGateDllCan.h> AnaInt32 CANOpenDevice(AnaInt32 *pHandle, AnaInt32 bSendDataConfirm, AnaInt32 bSendDataInd, AnaInt32 nCANPort, const char * pcIPAddress, AnaInt32 nTimeout); AnaInt32 CANOpenDeviceEx(AnaInt32 *pHandle, AnaInt32 bSendDataConfirm, AnaInt32 bSendDataInd, AnaInt32 nCANPort, const char * pcIPAddress, AnaInt32 nTimeout, AnaInt32 nSocketType);...
  • Seite 22 CAN API Funktionen Ein Timeout wird festgestellt, wenn die AnaGate-Hardware nicht innerhalb der vereinbarten Timeout-Zeit antwortet. Diese Timeout-Zeit gilt auf der aktiven Netzwerkverbindung für alle Kommandos bzw. Funktionen, für die kein spezifischer Timeout-Wert definiert werden kann. nSocketType Gibt Sockettyp (Ethernet-Layer für die Verbindung verwendet werden soll.
  • Seite 23: Siehe Auch

    CAN API Funktionen Bemerkung Die Funktion CANOpenDeviceEx ist erst ab Version 1.5-1.10 der Laufzeitbibliothek vorhanden und wird erst ab der Geräte-Firmwareversion 1.3.7 unterstützt. Die Gerätemodelle vom Typ AnaGate CAN (Hardware-Version 1.1.A) können keine Netzwerkverbindungen über UDP annehmen. Beim Versuch, ein solches Gerät über UDP anzusprechen, wird die Funktion CANOpenDeviceEx fehlerhaft beendet (Timeout).
  • Seite 24: Canclosedevice

    CAN API Funktionen CANCloseDevice CANCloseDevice — Schließt eine geöffnete Netzwerk-Verbindung zu einem AnaGate CAN Device. Syntax #include <AnaGateDllCan.h> AnaInt32 CANCloseDevice(AnaInt32 hHandle); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs von CANOpenDevice. Rückgabewert Die Funktion gibt im Erfolgsfall Null zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 25: Cansetglobals

    CAN API Funktionen CANSetGlobals CANSetGlobals — Setzt die globalen Einstellungen, mit denen auf dem CAN-Bus gearbeitet werden soll. Syntax #include <AnaGateDllCan.h> AnaInt32 CANSetGlobals(AnaInt32 hHandle, AnaUInt32 nBaudrate, AnaUInt8 nOperatingMode, AnaInt32 bTermination, AnaInt32 bHighSpeedMode, AnaInt32 bTimeStampOn); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs von CANOpenDevice. nBaudrate Baudrate, mit der gearbeitet werden soll.
  • Seite 26 CAN API Funktionen MCP2515 MCP2515 MCP2515 Baudrate CNF1 CNF2 CNF3 Parameter Zum Bsp: 250KHz 0x43 0xA1 0x03 0x0143A103 Tabelle 4.1. Beispielkonfiguration CAN-Baudrate Anmerkung Bitte beachten Beschreibung MCP2515 hinsichtlich der Kontrollregister CNF1, CNF2 und CNF3. Die Ozillator-Frequenz des AnaGate CAN beträgt FOSC=20MHz, alle anderen CAN-Modelle verwenden die Frequenz FOSC= 24MHz.
  • Seite 27: Beschreibung

    CAN API Funktionen Zeitstempel-Modus wird CAN-Telegramm Zeitstempel übertragen. Beim Senden gibt der Zeitstempel den Zeitpunkt an, zu dem die Nachricht vom CAN-Controller versendet wurde. Analog ist bei empfangenen Nachrichten der Zeitstempel der Zeitpunkt, zu dem die Nachricht vom CAN-Controller empfangen wurde.
  • Seite 28: Cangetglobals

    CAN API Funktionen CANGetGlobals CANGetGlobals — Ermittelt die globalen Einstellungen, mit denen auf dem CAN Bus gearbeitet wird. Syntax #include <AnaGateDllCan.h> AnaInt32 CANGetGlobals(AnaInt32 hHandle, AnaUInt32 pnBaudrate, AnaUInt8 pnOperatingMode, AnaInt32 pbTermination, AnaInt32 pbHighSpeedMode, AnaInt32 * pbTimeStampOn); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs von CANOpenDevice. pnBaudrate Aktuell eingestellte Baudrate.
  • Seite 29 CAN API Funktionen bestätigt und die via CANSetFilter definierten Filter werden ignoriert. pbTimeStampOn Aktuelle Einstellung, ob der Zeitstempel-Modus aktiviert ist. Diese Einstellung wird nicht bei allen AnaGate CAN Modellvarianten unterstützt. Zeitstempel-Modus wird CAN-Telegramm Zeitstempel übertragen. Beim Senden gibt der Zeitstempel den Zeitpunkt an, zu dem die Nachricht vom CAN-Controller versendet wurde.
  • Seite 30: Cansetfilter

    CAN API Funktionen CANSetFilter CANSetFilter — Setzt die Software-Filter für die aktuelle Verbindung. Syntax #include <AnaGateDllCan.h> AnaInt32 CANSetFilter(AnaInt32 hHandle, const AnaUInt32 * pnFilter); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs von CANOpenDevice. pnFilter Zeiger auf ein Feld mit 8 Fitereinträgen (jeweils 4 Maskenfilter und 4 Bereichsfilter).
  • Seite 31 CAN API Funktionen Im folgenden ein Programmier-Beispiel für das Festlegen von Software-Filtern. #include <AnaGateDllCan.h> int main() AnaUInt32 anFilter[16] = { 0xFF, 0x0F, // mask filter 1: mask = 0xFF, value = 0x0F: route only 0x*0F values 0, 0, // mask filter 2: unused 0, 0, // mask...
  • Seite 32: Cangetfilter

    CAN API Funktionen CANGetFilter CANGetFilter — Liefert die Filtereinstellungen für die aktuelle Verbindung zurück. Syntax #include <AnaGateDllCan.h> AnaInt32 CANGetFilter(AnaInt32 hHandle, AnaUInt32 * pnFilter); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs von CANOpenDevice. pnFilter Zeiger auf ein Feld mit 8 Filtereinträgen (jeweils 4 Maskenfilter und 4 Bereichsfilter).
  • Seite 33: Cansettime

    CAN API Funktionen CANSetTime CANSetTime — Setzt die System-Uhrzeit auf dem AnaGate CAN Gerät für den Zeitstempel-Modus. Syntax #include <AnaGateDllCan.h> AnaInt32 CANSetTime(AnaInt32 hHandle, AnaUInt32 nSeconds, AnaUInt32 nMicroseconds); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs von CANOpenDevice. nSeconds Aktuelle Uhrzeit in Sekunden seit dem 01.01.1970. nMicroseconds Zusätzlicher Anteil der Mikrosekunden für die aktuelle Uhrzeit.
  • Seite 34: Cangettime

    CAN API Funktionen CANGetTime CANGetTime — Liest die System-Uhrzeit des AnaGate CAN Geräts für den Zeitstempel-Modus. Syntax #include <AnaGateDllCan.h> AnaInt32 CANGetTime(AnaInt32 hHandle, AnaInt32 * pbTimeWasSet, AnaUInt32 * pnSeconds, AnaUInt32 * pnMicroseconds); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs von CANOpenDevice. pbTimeWasSet Wahr, wenn die Systemzeit zuvor über CANSetTime gesetzt wurde.
  • Seite 35: Canwrite, Canwriteex

    CAN API Funktionen CANWrite, CANWriteEx CANWrite, CANWriteEx — Sendet ein Datentelegramm über die AnaGate-Hardware auf den CAN-Bus. Syntax #include <AnaGateDllCan.h> AnaInt32 CANWrite(AnaInt32 hHandle, AnaInt32 nIdentifier, const char * pcBuffer, AnaInt32 nBufferLen, AnaInt32 nFlags); AnaInt32 CANWriteEx(AnaInt32 hHandle, AnaInt32 nIdentifier, const char * pcBuffer, AnaInt32 nBufferLen, AnaInt32 nFlags, AnaInt32 * pnSeconds, AnaInt32 * pnMicroSeconds);...
  • Seite 36 CAN API Funktionen Beschreibung Beide Funktionen senden ein Datentelegramm auf den CAN-Bus. Mit CANWriteEx kann zusätzlich der Zeitpunkt auf dem Gerät ermittelt werden, zu dem das Telegramm tatsächlich versendet wurde. Anmerkung Mit Hilfe eines Remoteframes kann ein Teilnehmer einen anderen auffordern, seine Daten zu senden.
  • Seite 37: Cansetcallback, Cansetcallbackex

    CAN API Funktionen CANSetCallback, CANSetCallbackEx CANSetCallback, CANSetCallbackEx — Definiert eine asynchrone Callback-Funktion, die beim Empfang eines CAN-Telegramms aus der API aufgerufen werden soll. Syntax #include <AnaGateDllCan.h> typedef void (WINAPI * CAN_PF_CALLBACK)(AnaInt32 nIdentifier, const char * pcBuffer, AnaInt32 nBufferLen, AnaInt32 nFlags, AnaInt32 hHandle); AnaInt32 CANSetCallback(AnaInt32 hHandle,...
  • Seite 38 CAN API Funktionen Abarbeiten des Callback-Codes der Heap-Speicher der API-DLL und nicht der Heap-Speicher des Anwendungsprogrammes aktiv. Aufgrund dieser Arbeitsweise ist Programmcode innerhalb der Callback zu vermeiden, der Heap-Speicher freigibt oder anfordert (z.B. new, delete, malloc oder free). Im folgenden ein Programmier-Beispiel, das eine Empfangs-Callback verwendet. #include <AnaGateDllCan.h>...
  • Seite 39: Cansetmaxsizeperqueue

    CAN API Funktionen CANSetMaxSizePerQueue CANSetMaxSizePerQueue — Setzt die maximale Größe des Empfangspuffers, der empfangene CAN-Telegramme zwischenspeichert. Syntax #include <AnaGateDllCan.h> AnaInt32 CANSetMaxSizePerQueue(AnaInt32 hHandle, AnaUInt32 nMaxSize); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs von CANOpenDevice. nMaxSize Maximale Größe des Empfangspuffers. Rückgabewert Die Funktion gibt im Erfolgsfall Null zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 40 CAN API Funktionen Bemerkung Empfangene Telegramme werden nur gepuffert, wenn keine Callback-Funktion mittels CANSetCallback oder CANSetCallbackEx eingerichtet wurde. Sobald eine Callback-Funktion aktiviert ist, können zuvor gepufferte Telegramme weiterhin mit CANGetMessage ausgelesen werden. Danach eintreffende Telegramme werden jedoch nicht mehr gepuffert. Siehe auch CANSetCallback, CANSetCallbackEx CANGetMessage...
  • Seite 41: Cangetmessage

    CAN API Funktionen CANGetMessage CANGetMessage — Liefert ein empfangenes CAN-Telegram aus dem Empfangspuffer. Syntax #include <AnaGateDllCan.h> AnaInt32 CANGetMessage(AnaInt32 hHandle, AnaUInt32 pnAvailMsgs, AnaInt32 * pnID, char * pcData, AnaUInt8 * pnDataLen, AnaInt32 * pnFlags, AnaInt32 * pnSeconds, AnaInt32 * pnMicroseconds); Parameter hHandle Gültiges Zugriffs-Handle...
  • Seite 42 CAN API Funktionen interessiert ist. Für Werte, an denen kein Interesse besteht, kann der jeweilige Parameter auf NULL zeigen. Über den Parameter pnAvailMsgs liefert die Funktion die Anzahl der nach dem Aufruf noch in der Queue verfügbaren Telegramme. Falls die Queue kein Telegramm enthält, das zurück geliefert werden könnte, wird dieser Wert auf -1 gesetzt.
  • Seite 43: Canreaddigital

    CAN API Funktionen CANReadDigital CANReadDigital — Liest die aktuellen Werte der digitalen Ein-/Ausgabe-Register der AnaGate Hardware zurück. Syntax #include <AnaGateDllCan.h> AnaInt32 CANReadDigital(AnaInt32 hHandle, AnaUInt32 pnInputBits, AnaUInt32 * pnOutputBits); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs CANOpenDevice. pnInputBits Zeiger auf den aktuellen Inhalt des Registers mit den digitalen Eingängen.
  • Seite 44 CAN API Funktionen // set the digital output register (PIN 0 and PIN 1 to HIGH value) nRC = CANWriteDigital( hHandle, nOutputs ); // read all input and output registers nRC = CANReadDigital( hHandle, &nInputs, &nOutputs ); CANCloseDevice(hHandle); return 0; Siehe auch CANWriteDigital ©...
  • Seite 45: Canwritedigital

    CAN API Funktionen CANWriteDigital CANWriteDigital — Setzt das digitale Ausgabe-Register der AnaGate-Hardware auf einen neuen Wert. Syntax #include <AnaGateDllCan.h> AnaInt32 CANWriteDigital(AnaInt32 hHandle, AnaUInt32 nOutputBits); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs CANOpenDevice. nOutputBits Neuer Wert des Registers mit den digitalen Ausgängen. Dabei entsprechen Bit 0 bis Bit 3 den vier digitalen Ausgängen;...
  • Seite 46: Canreadanalog

    CAN API Funktionen CANReadAnalog CANReadAnalog — Liest die aktuellen Werte der analogen Eingänge der AnaGate- Hardware zurück. Syntax #include <AnaGateDllCan.h> AnaInt32 CANReadAnalog(AnaInt32 hHandle, AnaUInt32 * pnPowerSupply, AnaUInt32 anAnalogInputs[], AnaUInt16 * pnInputCount); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs CANOpenDevice. pnPowerSupply Zeiger auf eine Variable, in der die aktuelle Versorgungsspannung in Millivolt gespeichert wird, es sei denn, der Zeiger ist NULL.
  • Seite 47 CAN API Funktionen AnaUInt32 nPowerSupply; AnaUInt32 anAnalogInputs[INPUT_SIZE]; AnaUInt16 nInputCount = INPUT_SIZE; nRC = CANReadAnalog(nHandle, &nPowerSupply, anAnalogInputs, &nInputCount); if ( nRC == 0 ) printf("Power supply: %d mV\n", nPowerSupply); for ( AnaUInt16 i = 0; i < std::min(INPUT_SIZE, nInputCount); ++i ) printf("Analog input %d: %d mV\n", i, anAnalogInputs[i]);...
  • Seite 48: Canwriteanalog

    CAN API Funktionen CANWriteAnalog CANWriteAnalog — Setzt die analogen Ausgänge der AnaGate-Hardware auf neue Werte. Syntax #include <AnaGateDllCan.h> AnaInt32 CANWriteAnalog(AnaInt32 hHandle, AnaUInt32 anAnalogOutputs[], AnaUInt16 nOutputCount); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs CANOpenDevice. anAnalogOutputs Array mit neuen Werten der analogen Ausgänge in Millivolt. nOutputCount Anzahl der Werte in anAnalogOutputs.
  • Seite 49 CAN API Funktionen Siehe auch CANReadAnalog © 2007-2015 Analytica GmbH...
  • Seite 50: Canrestart

    CAN API Funktionen CANRestart CANRestart — Führt einen Geräte-Restart der AnaGate CAN Hardware durch. Syntax #include <AnaGateDllCan.h> AnaInt32 CANRestart(const char * pcIPAddress, AnaInt32 nTimeout ); Parameter pcIPAddress Netzwerkadresse des AnaGate Partners. nTimeout Standard-Timeout für AnaGate-Zugriffe in Millisekunden. Ein Timeout wird festgestellt, wenn der AnaGate-Partner nicht innerhalb der vereinbarten Timeout-Zeit antwortet.
  • Seite 51: Candeviceconnectstate

    CAN API Funktionen CANDeviceConnectState CANDeviceConnectState — Ermittelt den Verbindungsstatus der aktuellen Netzwerk- Verbindung zur AnaGate-Hardware. Syntax #include <AnaGateDllCan.h> AnaInt32 CANDeviceConnectState(AnaInt32 hHandle); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs von CANOpenDevice. Rückgabewert Gibt den aktuellen Status der Netzwerkverbindung zurück. Folgende Werte sind möglich: •...
  • Seite 52: Canstartalive

    CAN API Funktionen CANStartAlive CANStartAlive — Startet den ALIVE Mechanismus, der periodisch den Status der aktiven Netzwerk-Verbindung zur AnaGate-Hardware überprüft. Syntax #include <AnaGateDllCan.h> AnaInt32 CANStartAlive(AnaInt32 hHandle, AnaUInt32 nAliveTime ); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs CANOpenDevice. nAliveTime Timeout-Intervall in Sekunden für den ALIVE-Mechanismus. Rückgabewert Die Funktion gibt im Erfolgsfall Null zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 53: Canerrormessage

    CAN API Funktionen CANErrorMessage CANErrorMessage — Gibt eine textuelle Beschreibung eines Rückgabewertes aus einer API-Funktion zurück. Syntax #include <AnaGateDllCan.h> AnaInt32 CANErrorMessage(AnaInt32 nRetCode, char * pcMessage, AnaInt32 nMessageLen); Parameter nRetCode Error-Code, dessen Fehlerbeschreibung ermittelt werden soll. pcMessage Datenpuffer, der die Fehlerbeschreibung aufnehmen soll. nMessageLen Größe des übergebenen Datenpuffers in Byte.
  • Seite 54: Spi Api Funktionen

    Kapitel 5. SPI API Funktionen Der Serial Peripheral Interface (kurz SPI) ist ein von Motorola entwickeltes Bus-System für einen synchronen seriellen Datenbus, mit dem digitale Schaltungen nach dem Master-Slave- Prinzip miteinander verbunden werden können. Die SPI-Gateways aus der AnaGate-Serie bieten einen Zugriff auf den SPI Bus über einen herkömmlichen Netzwerkanschluss. Mit den Funktionen der SPI API können diese SPI-Gateways und damit der SPI Bus auf einfache Art und Weise angesprochen werden.
  • Seite 55: Spiopendevice

    SPI API Funktionen SPIOpenDevice SPIOpenDevice — Baut eine Netzwerkverbindung zu einem AnaGate SPI auf. Syntax #include <AnaGateDllSPI.h> AnaInt32 SPIOpenDevice(AnaInt32 * pHandle, const char * pcIPAddress, AnaInt32 nTimeout); Parameter pHandle Zeiger auf eine Variable, in die das Zugriffs-Handle gespeichert wird, falls die Verbindung zum Gerät erfolgreich hergestellt wurde. pcIPAddress Netzwerkadresse des AnaGate Partners.
  • Seite 56 SPI API Funktionen // ... now do something SPICloseDevice(hHandle); return 0; Siehe auch SPICloseDevice © 2007-2015 Analytica GmbH...
  • Seite 57: Spiclosedevice

    SPI API Funktionen SPICloseDevice SPICloseDevice — Schließt eine geöffnete Netzwerk-Verbindung zu einem AnaGate SPI Device. Syntax #include <AnaGateDllSPI.h> AnaInt32 SPICloseDevice(AnaInt32 hHandle); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs von SPIOpenDevice. Rückgabewert Die Funktion gibt im Erfolgsfall Null zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 58: Spisetglobals

    SPI API Funktionen SPISetGlobals SPISetGlobals — Setzt die globalen Einstellungen, mit denen auf dem AnaGate SPI gearbeitet werden soll. Syntax #include <AnaGateDllSPI.h> AnaInt32 SPISetGlobals(AnaInt32 hHandle, AnaInt32 nBaudrate, AnaUInt8 nSigLevel, AnaUInt8 nAuxVoltage, AnaUInt8 nClockMode); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs von SPIOpenDevice. nBaudrate Baudrate, mit der gearbeitet werden soll.
  • Seite 59 SPI API Funktionen • 0 für CPHA=0 und CPOL=0. • 1 für CPHA=0 und CPOL=1. • 2 für CPHA=1 und CPOL=0. • 3 für CPHA=1 und CPOL=1. Rückgabewert Die Funktion gibt im Erfolgsfall Null zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 60: Spigetglobals

    SPI API Funktionen SPIGetGlobals SPIGetGlobals — Ermittelt die globalen Einstellungen, mit denen auf dem AnaGate SPI gearbeitet wird. Syntax #include <AnaGateDllSPI.h> AnaInt32 SPIGetGlobals(AnaInt32 hHandle, AnaInt32 * pnBaudrate, AnaUInt8 * pnSigLevel, AnaUInt8 * pnAuxVoltage, AnaUInt8 * pnClockMode); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs von SPIOpenDevice. pnBaudrate Aktuell auf dem SPI-Bus eingestellte Baudrate in Bit pro Sekunde.
  • Seite 61 SPI API Funktionen Siehe auch SPISetGlobals © 2007-2015 Analytica GmbH...
  • Seite 62: Spidatareq

    SPI API Funktionen SPIDataReq SPIDataReq — Führt einen Datentransfer auf dem SPI-Bus durch. Syntax #include <AnaGateDllSPI.h> AnaInt32 SPIDataReq(AnaInt32 hHandle, const char * pcBufWrite, AnaInt32 nBufWriteLen, char * pcBufRead, AnaInt32 nBufReadLen); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs SPIOpenDevice. pcBufWrite Puffer mit den Daten, die an den SPI-Partner gesendet werden sollen.
  • Seite 63 SPI API Funktionen char cBufWrite[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; char cBufReceive[100]; AnaInt32 hHandle = 0; AnaInt32 nRC = 0; AnaInt32 nRC = SPIOpenDevice(&hHandle, "192.168.1.254", 5000); if ( nRC == 0 ) // send 1 byte and receive 1 byte nRC = SPIDataReq( hHandle, cBufWrite, 1, cBufReceive, 1 );...
  • Seite 64: Spireaddigital

    SPI API Funktionen SPIReadDigital SPIReadDigital — Liest die aktuellen Werte der digitale Ein-/Ausgabe-Register der AnaGate-Hardware zurück. Syntax #include <AnaGateDllSPI.h> AnaInt32 SPIReadDigital(AnaInt32 hHandle, AnaUInt32 pnInputBits, AnaUInt32 * pnOutputBits); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs SPIOpenDevice. pnInputBits Zeiger auf den aktuellen Inhalt des Registers mit den digitalen Eingängen.
  • Seite 65 SPI API Funktionen // read all input and output registers nRC = SPIReadDigital( hHandle, &nInputs, &nOutputs ); SPICloseDevice(hHandle); return 0; Siehe auch SPIWriteDigital © 2007-2015 Analytica GmbH...
  • Seite 66: Spiwritedigital

    SPI API Funktionen SPIWriteDigital SPIWriteDigital — Setzt das digitale Ausgabe-Register der AnaGate-Hardware auf einen neuen Wert. Syntax #include <AnaGateDllSPI.h> AnaInt32 SPIWriteDigital(AnaInt32 hHandle, AnaUInt32 nOutputBits); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs CANOpenDevice. nOutputBits Neuer Wert des Registers mit den digitalen Ausgängen. Dabei entsprechen Bit 0 bis Bit 3 den vier digitalen Ausgängen;...
  • Seite 67: Spierrormessage

    SPI API Funktionen SPIErrorMessage SPIErrorMessage — Gibt eine textuelle Beschreibung eines Rückgabewertes aus einer API-Funktion zurück. Syntax #include <AnaGateDllSPI.h> AnaInt32 SPIErrorMessage(AnaInt32 nRetCode, char * pcMessage, AnaInt32 nMessageLen); Parameter nRetCode Error-Code, dessen Fehlerbeschreibung ermittelt werden soll. pcMessage Datenpuffer, der die Fehlerbeschreibung aufnehmen soll. nMessageLen Größe des übergebenen Datenpuffers in Byte.
  • Seite 68: I2C Api Funktionen

    Kapitel 6. I2C API Funktionen I2C, für engl. Inter-Integrated Circuit, im Deutschen gesprochen als I-Quadrat-C, ist ein von Philips Semiconductors (heute NXP Semiconductors) entwickelter serieller Datenbus. Er wird hauptsächlich geräteintern für die Kommunikation zwischen verschiedenen Schaltungsteilen mit geringer Übertragungsgeschwindigkeit benutzt, z. B. zwischen einem Controller und Peripherie-ICs.
  • Seite 69: I2Copendevice

    I2C API Funktionen I2COpenDevice I2COpenDevice — Baut eine Netzwerkverbindung zu einem AnaGate I2C (bzw. AnaGate Universal Programmer) auf. Syntax #include <AnaGateDllI2C.h> AnaInt32 I2COpenDevice(AnaInt32 * pHandle, AnaUInt32 nBaudrate, const char * pcIPAddress, AnaInt32 nTimeout); Parameter pHandle Zeiger auf eine Variable, in die das Zugriffs-Handle gespeichert wird, falls die Verbindung zum Device erfolgreich hergestellt wurde.
  • Seite 70 I2C API Funktionen eine bestehende Verbindung aufrechterhalten wird, wird jeder neue Verbindungsversuch abgelehnt. Im folgenden ein Programmier-Beispiel für den initialen Zugriff auf das Gerät. #include <AnaGateDllI2C.h> int main() AnaInt32 hHandle; AnaInt32 nRC = I2COpenDevice(&hHandle, 100000, "192.168.1.254", 5000); if ( nRC == 0 ) // ...
  • Seite 71: I2Cclosedevice

    I2C API Funktionen I2CCloseDevice I2CCloseDevice — Schließt eine geöffnete Netzwerk-Verbindung zu einem AnaGate I2C Device. Syntax #include <AnaGateDllI2C.h> AnaInt32 I2CCloseDevice(AnaInt32 hHandle); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs von I2COpenDevice. Rückgabewert Die Funktion gibt im Erfolgsfall Null zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 72: I2Creset

    I2C API Funktionen I2CReset I2CReset — Setzt den I2C-Controller auf dem AnaGate I2C Device zurück. Syntax #include <AnaGateDllI2C.h> AnaInt32 I2CReset(AnaInt32 hHandle); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs von I2COpenDevice. Rückgabewert Die Funktion gibt im Erfolgsfall Null zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 73: I2Cread

    I2C API Funktionen I2CRead I2CRead — Liest Daten von einem I2C-Partner. Syntax #include <AnaGateDllI2C.h> AnaInt32 I2CRead(AnaInt32 hHandle, AnaUInt16 nSlaveAddress, const char * pcBuffer, AnaInt32 nBufferLen); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs I2COpenDevice. nSlaveAddress Slave-Adresse des I2C-Partners. Die Slave-Adresse kann eine sog. 7 oder 10-Bit Adresse darstellen (siehe Anhang B, Adressierung auf dem I2C-Bus ).
  • Seite 74: I2Cwrite

    I2C API Funktionen I2CWrite I2CWrite — Schreibt Daten zu einem I2C-Partner. Syntax #include <AnaGateDllI2C.h> AnaInt32 I2CWrite(AnaInt32 hHandle, AnaUInt16 nSlaveAddress, const char * pcBuffer, AnaInt32 nBufferLen, AnaInt32 * pnErrorByte); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs I2COpenDevice. nSlaveAddress Slave-Adresse des I2C-Partners. Die Slave-Adresse kann eine sog. 7 oder 10-Bit Adresse darstellen (siehe Anhang B, Adressierung auf dem I2C-Bus ).
  • Seite 75: I2Csequence

    I2C API Funktionen I2CSequence I2CSequence — Schreibt eine beliebige Folge von I2C-Schreib- und Lese- Kommandos als Sequenz zu einem I2C-Partner. Syntax #include <AnaGateDllI2C.h> AnaInt32 I2CSequence(AnaInt32 hHandle, const char * pcWriteBuffer, AnaInt32 nNumberOfBytesToWrite, char pcReadBuffer, AnaInt32 nNumberOfBytesToRead, AnaInt32 pnNumberOfBytesRead, AnaInt32 pnByteNumberLastError); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs von...
  • Seite 76 I2C API Funktionen Schreibkommando Beschreibung 2 Bytes (LSB,MSB) Bit 0-14: Anzahl der folgenden Datenbytes, die zum I2C-Partner geschrieben werden sollen (N). Bit 15: Ist dieses Bit gesetzt, wird am Ende des Schreibkommandos kein Stop-Bit Slave gesendet. N Bytes Datenbytes. nNumberOfBytesToWrite Länge des pcWriteBuffers pcReadBuffer Zeichenfolgepuffer, der die empfangenen Daten, die...
  • Seite 77: I2Creaddigital

    I2C API Funktionen I2CReadDigital I2CReadDigital — Liest die aktuellen Werte der digitalen Ein-/Ausgabe-Register der AnaGate Hardware zurück. Syntax #include <AnaGateDllI2C.h> AnaInt32 I2CReadDigital(AnaInt32 hHandle, AnaUInt32 pnInputBits, AnaUInt32 * pnOutputBits); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs I2COpenDevice. pnInputBits Zeiger auf den aktuellen Inhalt des Registers mit den digitalen Eingängen.
  • Seite 78 I2C API Funktionen // read all input and output registers nRC = I2CReadDigital( hHandle, &nInputs, &nOutputs ); CANCloseDevice(hHandle); return 0; Siehe auch I2CWriteDigital © 2007-2015 Analytica GmbH...
  • Seite 79: I2Cwritedigital

    I2C API Funktionen I2CWriteDigital I2CWriteDigital — Setzt das digitale Ausgabe-Register der AnaGate-Hardware auf einen neuen Wert. Syntax AnaInt32 I2CWriteDigital(AnaInt32 hHandle, AnaUInt32 nOutputBits); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs I2COpenDevice. nOutputBits Neuer Wert des Registers mit den digitalen Ausgängen. Dabei entsprechen Bit 0 bis Bit 3 den vier digitalen Ausgängen;...
  • Seite 80: I2Cerrormessage

    I2C API Funktionen I2CErrorMessage I2CErrorMessage — Gibt eine textuelle Beschreibung eines Rückgabewertes aus einer API-Funktion zurück. Syntax #include <AnaGateDllI2C.h> AnaInt32 I2CErrorMessage(AnaInt32 nRetCode, char * pcMessage, AnaInt32 nMessageLen); Parameter nRetCode Error-Code, dessen Fehlerbeschreibung ermittelt werden soll. pcMessage Datenpuffer, der die Fehlerbeschreibung aufnehmen soll. nMessageLen Größe des übergebenen Datenpuffers in Byte.
  • Seite 81: I2Creadeeprom

    I2C API Funktionen I2CReadEEProm I2CReadEEProm — Liest Daten von einem EEPROM am I2C-Bus. Syntax #include <AnaGateDllI2C.h> AnaInt32 I2CReadEEProm(AnaInt32 hHandle, AnaUInt16 nSubAddress, AnaUInt32 nOffset, char * pcBuffer, AnaInt32 nBufferLen, AnaUInt32 nOffsetFormat); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs I2COpenDevice. nSubAddress Subadresse des EEPROMs, mit dem kommuniziert werden soll. Die gültigen Werte für die nSubAddress werden von der Einstellung des Parameters nOffsetFormat (Bit 8-10) beeinflusst.
  • Seite 82: Anmerkung

    I2C API Funktionen Anmerkung maximal adressierbare Speichergröße eines EEPROMs kann aus der Summe aller Adressbits berechnet werden. So benötigt z.B. ein M24C08 acht Bits des Adressbytes und 1 zusätzliches Bit. Damit können über die 9 Bits insgesamt 512 Bytes adressiert werden.
  • Seite 83: I2Cwriteeeprom

    I2C API Funktionen I2CWriteEEProm I2CWriteEEProm — Beschreibt ein serielles EEPROM am I2C-Bus. Syntax #include <AnaGateDllI2C.h> AnaInt32 I2CWriteEEProm(AnaInt32 hHandle, AnaUInt16 nSubAddress, AnaUInt32 nOffset, const char * pcBuffer, AnaInt32 nBufferLen, AnaUInt32 nOffsetFormat); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs I2COpenDevice. nSubAddress Subadresse des EEPROMs, mit dem kommuniziert werden soll. Die gültigen Werte für die nSubAddress werden von der Einstellung des Parameters nOffsetFormat (Bit 8-10) beeinflusst.
  • Seite 84 I2C API Funktionen berechnet werden. So benötigt z.B. ein M24C08 acht Bits des Adressbytes und 1 zusätzliches Bit. Damit können über die 9 Bits insgesamt 512 Bytes adressiert werden. Rückgabewert Die Funktion gibt im Erfolgsfall Null zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 85 I2C API Funktionen Der ST24C1024 benötigt 17 Adressbits zur Adressierung der 128kB. 16 Bits werden über die Adressangabe des Schreibbefehls festgelegt: 16=0x0F. Das Adressbit A16 wird über das E0 der Chip Enable Address festgelegt, deshalb ist der Mode 1 (E2-E1-A0) zu verwenden: 0x10. Die Seitengröße eines ST24C1024 beträgt 256 Bytes, im vorliegenden Fall werden alle Seiten komplett über eine for-Schleife programmiert.
  • Seite 86: I2Cwriteeeprompollack

    I2C API Funktionen I2CWriteEEPromPollAck I2CWriteEEPromPollAck — Beschreibt ein serielles EEPROM am I2C-Bus und prüft, ob der Schreibvorgang innerhalb einer gegebenen Zeitspanne abgeschlossen wird. Syntax #include <AnaGateDllI2C.h> AnaInt32 I2CWriteEEPromPollAck(AnaInt32 hHandle, AnaUInt16 nSubAddress, AnaUInt32 nOffset, const char * pcBuffer, AnaInt32 nBufferLen, AnaUInt32 nOffsetFormat, AnaUInt16 nTimeout);...
  • Seite 87 I2C API Funktionen Anmerkung maximal adressierbare Speichergröße eines EEPROMs kann aus der Summe aller Adressbits berechnet werden. So benötigt z.B. ein M24C08 acht Bits des Adressbytes und 1 zusätzliches Bit. Damit können über die 9 Bits insgesamt 512 Bytes adressiert werden.
  • Seite 88 I2C API Funktionen if ( nRC == 0 ) memset(cBufferPage,0,256); // clear page buffer for (int i=0; i<512;i++) I2CWriteEEPromPollAck( hHandle, nSubAddress, i*256, cBufferPage, 256, nOffsetFormat, nTimeout ); I2CCloseDevice(hHandle); return 0; Es können bis zu 4 ST24C1024 am I2C-Bus verdrahtet werden. Über die Angabe der Subadresse 0 liegen die Steuerpins E2 und E1 auf LOW.
  • Seite 89: Programmier-Beispiele

    Kapitel 7. Programmier-Beispiele 7.1. Programmiersprache C/C++ Die AnaGate Programmier-API kann sowohl unter Windows-Systemen als auch unter X86-Linux-Systemen verwendet werden. Alle über die API zur Verfügung gestellten Funktionen sind Betriebssystem-unabhängig implementiert, so dass einmal erstellter Source-Code auf beiden Betriebssystemen eingesetzt werden kann. Lediglich die Einbindung der Bibliotheken muss auf unterschiedlich Betriebssystemen bzw.
  • Seite 90: Programmiersprache Visual Basic 6

    Programmier-Beispiele std::cout " 0x" << std::hex << pcBuffer[i]; std::cout << std::endl; int main( ) AnaInt32 hHandle = NULL; // opens AnaGate CAN duo device on port A, timeout after 1000 milliseconds AnaInt32 nRC = CANOpenDevice(&hHandle, FALSE, TRUE, 0, "192.168.1.254", 1000); if ( nRC == 0 ) nRC = CANSetCallback(hHandle, MyCallback);...
  • Seite 91: Eingabe-Formular Spi-Beispiel (Vb6)

    Programmier-Beispiele Anmerkung Der vollständige Quellcode des vorliegenden Beispiels ist auf der jedem Gerät beiliegenden CD-ROM im Verzeichnispfad Samples/SPI-VB6 zu finden. 7.2.1.1. Benutzeroberfläche Abbildung 7.1. Eingabe-Formular SPI-Beispiel (VB6) Dialogfelder Network address Netzwerk-Adresse, unter der das Anagate SPI zu erreichen ist. Check address Stellt eine Verbindung zu dem AnaGate SPI unter der angegebenen Netzwerkadresse her und liest anschließend verschiedene Geräteinformationen bzw.
  • Seite 92: Ermittlung Der Globalen Geräte-Einstellungen

    Programmier-Beispiele Execute Führt ein SPI-Kommando aus und schreibt das Ergebnis in das command 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ß...
  • Seite 93: Ausführen Eines Kommandos Auf Dem Spi-Bus

    Programmier-Beispiele Dim nBaudrate As Long, nSigLevel As Byte, nAuxVoltage As Byte, nClockMode As Byte Dim nDigitalOutput As Long, nDigitalInput As Long nRC = SPIGetGlobals(hHandle, nBaudrate, nSigLevel, nAuxVoltage, nClockMode) If (nRC = 0) Then sText = sText & "Baudrate=" & CStr(nBaudrate) & ", Siglevel=" Select Case nSigLevel Case 1: sText = sText &...
  • Seite 94: Programmiersprache Vb.net

    Programmier-Beispiele sText = sText & "Fehler bei SPISetGlobals: " & GetErrorMsg(nRC) & vbCrLf End If Me.lblDeviceInfo.Caption = GetAnagateInfo(hHandle) nBufferWriteLen = GetCommand(arrWrite) nBufferReadLen = nBufferWriteLen nRC = SPIDataReq(hHandle, VarPtr(arrWrite(1)), nBufferWriteLen, _ VarPtr(arrRead(1)), nBufferReadLen) If nRC = 0 Then For I = 1 To nBufferReadLen sByteText = sByteText &...
  • Seite 95 Programmier-Beispiele ByVal MonitorOn As Int32, _ ByVal PortNumber As Int32, _ ByVal TCPAddress As String, _ ByVal Timeout As Int32) As Int32 Declare Function CANCloseDevice Lib "AnaGateCAN" (ByVal Handle As Int32) As Int32 Public Delegate Sub CAN_CALLBACK(ByVal ID As Int32, ByVal Buffer As IntPtr, _ ByVal Bufferlen As Int32, ByVal Flags as Int32, _ ByVal Handle as Int32) Declare Function CANSetCallback Lib "AnaGateCAN"...
  • Seite 96 Programmier-Beispiele Console.WriteLine("Error SPIOpenDevice: " & GetErrorMsg(nRC) & vbCrLf) Else nRC = SPISetGlobals(hHandle, nBaudrate, nSigLevel, nAuxVoltage, nClockMode) nRC = SPIGetGlobals(hHandle, nBaudrate, nSigLevel, nAuxVoltage, nClockMode) For nIndex = 0 To 100 ' init buffers with some data BufferWrite(nIndex) = 69 BufferRead(nIndex) = 96 Next nIndex BufferWrite(0) = 5 * 16 ' 0x50 = READ STATUS (M25P80) BufferWrite(1) = 5 * 16 ' 0x50 = READ STATUS (M25P80)
  • Seite 97 Programmier-Beispiele ByRef AuxVoltage As Byte, _ ByRef ClockMode As Byte) As Int32 Declare Function SPIDataReq Lib "AnaGateSPI" (ByVal Handle As Int32, _ <MarshalAs(UnmanagedType.LPArray)> _ ByVal BufferWrite() As Byte, _ ByVal BufferWriteLen As Int32, _ <MarshalAs(UnmanagedType.LPArray)> _ ByVal BufferRead() As Byte, _ ByVal BufferReadLen As Int32) As Int32 Declare Function SPIErrorMessage Lib "AnaGateSPI"...
  • Seite 98: Ii. Socketcan-Schnittstelle

    Teil II. SocketCAN-Schnittstelle...
  • Seite 99 Inhaltsverzeichnis 8. Die SocketCAN-Schnittstelle der AnaGate-Serie ........91 9. Beschreibung des SocketCAN-Gateway ........... 92 10. Verwendung des SocketCAN-Gateway ........... 93 10.1. Virtuelles SocketCAN-Netzwerkgerät ..........93 10.2. SocketCANGateway ..............94 10.3. SocketCAN-Beispielanwendung ........... 96 © 2007-2015 Analytica GmbH...
  • Seite 100: Die Socketcan-Schnittstelle Der Anagate-Serie

    Kapitel 8. Die SocketCAN-Schnittstelle der AnaGate-Serie SocketCAN eine Sammlung CAN-Treibern einer Netzwerkschicht, beigestellt von Volkswagen Research zum Linux Kernel als Open Source. Sie ist auch bekannt als Low Level CAN Framework (LLCF). —Wikipedia, socketCAN Alle Geräte der AnaGate CAN-Serie werden über eine propriertäte Netzwerkschicht angesteuert.
  • Seite 101: Beschreibung Des Socketcan-Gateway

    Kapitel 9. Beschreibung des SocketCAN-Gateway Das SocketCANGateway der Analytica GmbH dient als Verbindung zwischen einer CAN-Schnittstelle eines Linux-Systems und einem CAN-Port eines AnaGate CAN- Gateways. Das SocketCANGateway setzt dabei die offene SocketCAN-Schnittstelle des Linux-Kernels auf das proprietäre TCP/IP-Protokoll des AnaGate CAN um. Das SocketCAN-Konzept bildet einen CAN-Bus auf ein Netzwerkgerät ab.
  • Seite 102: Verwendung Des Socketcan-Gateway

    Kapitel 10. Verwendung des SocketCAN-Gateway SocketCANGateway-Anwendung starten, wird SocketCAN- Netzwerkgerät benötigt. In der Regel wird ein virtuelles Netzwerkgerät verwendet, über welches Linux-Anwendungen der Zugriff auf einen CAN-Port eines AnaGate CAN-Gateways ermöglicht wird. Prinzipiell kann SocketCANGateway aber auch verwendet werden, um eine lokale physische CAN-Schnittstelle des Linux-Systems mit einem AnaGate CAN zu verbinden.
  • Seite 103: 10.2. Socketcangateway

    Verwendung des SocketCAN-Gateway link/can 10.2. SocketCANGateway © 2007-2015 Analytica GmbH...
  • Seite 104 Verwendung des SocketCAN-Gateway SocketCANGateway SocketCANGateway — Eine Linux-Konsolenanwendung, die ein SocketCAN- Netzwerkgerät mit einem CAN-Port eines AnaGate CAN-Gateways verbindet. Die Anwendung ist als 32-Bit- und als 64-Bit-Version für x86-CPUs verfügbar. Syntax SocketCANGateway {interface} [ -i | --ipaddress= ipaddress] [ -b | --baudrate= baudrate] [ -p | --canport= canport] [ -t | --termination= { 0 | 1 }] [ -s | --highspeed= { 0 | 1 }]...
  • Seite 105: 10.3. Socketcan-Beispielanwendung

    Verwendung des SocketCAN-Gateway Im Folgenden ein Beispiel, das die virtuelle SocketCAN-Netzwerkschnittstelle vcan0 mit Port A eines AnaGate CAN-Gateways mit der IP-Adresse 192.168.1.254 verbindet und dessen Einstellungen explizit angibt. $ sudo modprobe vcan $ sudo ip link add dev vcan0 type vcan $ sudo ip link set up vcan0 $ SocketCANGateway vcan0 --ipaddress=192.168.1.254 --baudrate=1000000 \ >...
  • Seite 106 Verwendung des SocketCAN-Gateway strcpy(ifr.ifr_name, ifname); ioctl(s, SIOCGIFINDEX, &ifr); addr.can_family = AF_CAN; addr.can_ifindex = ifr.ifr_ifindex; printf("%s at index %d\n", ifname, ifr.ifr_ifindex); if(bind(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) { perror("Error in socket bind"); return -2; frame.can_id = 0x123; frame.can_dlc = 2; frame.data[0] = 0x11;...
  • Seite 107: Iii. Skriptsprache Lua

    Teil III. Skriptsprache Lua...
  • Seite 108 Inhaltsverzeichnis 11. Die Lua-Skripting-Schnittstelle der AnaGate-Serie ......... 100 11.1. Skriptdateien erstellen ............. 101 11.2. Skriptdateien auf einem PC ausführen ........101 11.3. Skriptdateien auf der AnaGate-Hardware ausführen ..... 102 12. Allgemeine Funktionen ..............105 LS_DeviceInfo ................. 106 LS_GetTime ..................107 LS_Sleep ..................
  • Seite 109: Die Lua-Skripting-Schnittstelle Der Anagate-Serie

    Kapitel 11. Die Lua-Skripting- Schnittstelle der AnaGate-Serie Lua [http://www.lua.org] (portugiesisch für Mond) ist eine imperative und erweiterbare Skriptsprache zum Einbinden in Programme, um diese leichter weiterentwickeln und warten zu können. Eine der besonderen Eigenschaften von Lua ist die geringe Größe des kompilierten Skript-Interpreters.
  • Seite 110: 11.1. Skriptdateien Erstellen

    Die Lua-Skripting-Schnittstelle der AnaGate-Serie steht auch als Online-Version unter Lua.org [http://www.lua.org] zur Verfügung. 11.1. Skriptdateien erstellen Die Erstellung und Bearbeitung von Skripten für die Skriptsprache Lua ist denkbar einfach und kann über einen herkömmlichen Texteditor erfolgen. Unter Windows- Betriebssystemen sind z.B. Notepad oder Wordpad geeignet, unter Linux etwa vi oder ähnliche.
  • Seite 111: Skriptdateien Auf Der Anagate-Hardware Ausführen

    Die Lua-Skripting-Schnittstelle der AnaGate-Serie Auf der dem Gerät beiliegenden CD-ROM wird ein modifizierter Lua-Interpreter zur Verfügung gestellt, der auch die spezifischen Funktionserweiterungen für die AnaGate-Produkte beinhaltet. Dieser Interpreter besteht aus der einzelnen ausführbaren Datei LUA.exe und ist auf der CD-Rom im Verzeichnis Lua zu finden. Tipp Eine aktuelle Version der LUA.exe kann jederzeit über den Supportbereich der Produkthomepage [http://www.anagate.de/support/download.htm]...
  • Seite 112: Http-Interface, Lua-Einstellungen

    Die Lua-Skripting-Schnittstelle der AnaGate-Serie Abbildung 11.2. HTTP-Interface, Lua-Einstellungen Durchsuchen.. Öffnet einen Dateiauswahl-Dialog für die Auswahl der Lua-Skriptdatei, die auf das Gerät geladen werden soll. Upload Lädt die ausgewählte Skriptdatei auf das Gerät. Clear Setzt die aktuelle Dateiauswahl zurück. Boot script Skriptdatei, die beim Geräte-Hochlauf gestartet wird.
  • Seite 113 Die Lua-Skripting-Schnittstelle der AnaGate-Serie script output area In diesem Ausgabebereich wird die Standardausgabe (stdout) des aktuell ausgeführten Skripts angezeigt. Über die Schaltfläche Clear kann der Textbereich gelöscht werden. error output area In diesem Ausgabebereich wird die Standardfehlerausgabe (stderr) des aktuell ausgeführten Skripts angezeigt. Über die Schaltfläche Clear kann der Textbereich gelöscht werden.
  • Seite 114: Allgemeine Funktionen

    Kapitel 12. Allgemeine Funktionen © 2007-2015 Analytica GmbH...
  • Seite 115: Ls_Deviceinfo

    Allgemeine Funktionen LS_DeviceInfo LS_DeviceInfo — Ermittelt globale Informationen über eine Gerät der AnaGate-Serie. Syntax SWVersion, HWVersion, table(4) Serial, table(6) MACAddress, int DeviceID, int SWDerivateID = LS_DeviceInfo(int Handle); Parameter hHandle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs einer Funktionen oder LS_CANOpenDevice, LS_I2COpenDevice LS_SPIOpenDevice. Rückgabewerte Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 116: Ls_Gettime

    Allgemeine Funktionen LS_GetTime LS_GetTime — Gibt die aktuelle Systemzeit zurück. Syntax int RC, table(2) Time = LS_GetTime(); Parameter Die Funktion besitzt keine Übergabeparameter. Rückgabewerte Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode (Tabelle A.6, „Rückgabewerte für Lua Scripting“). Time[1], Time[1] gibt die Anzahl der Sekunden, die seit dem 01.01.1970 Time[2]...
  • Seite 117: Ls_Sleep

    Allgemeine Funktionen LS_Sleep LS_Sleep — Wartet die angegebene Zeit in Millisekunden. Syntax int RC = LS_Sleep(unsigned int Milliseconds); Parameter nMilliseconds Gibt die zu wartende Zeit in Millisekunden an. Rückgabewert RC Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode (Tabelle A.6, „Rückgabewerte für Lua Scripting“).
  • Seite 118: Can Funktionen

    Kapitel 13. CAN Funktionen Mit den Funktionen der CAN API können alle CAN-Gateways der AnaGate-Serie angesprochen werden. Die Programmierschnittstelle ist für alle Geräte identisch und erfolgt generell über das Netzwerk-Protokoll TCP bzw. UDP. Aktuell können folgende Geräte über die CAN API genutzt werden: •...
  • Seite 119: Ls_Canopendevice

    CAN Funktionen LS_CANOpenDevice LS_CANOpenDevice — Baut eine Netzwerkverbindung (TCP) zu einem AnaGate CAN auf. Syntax Handle LS_CANOpenDevice(bool SendDataConfirm, bool SendDataInd, uint8 CANPort, string IPAddress, int Timeout); Parameter SendDataConfirm Sollen die gesendeten bzw. empfangenen Telegramme von der Gegenseite bestätigt werden? Ohne Bestätigung ist eine höhereÜbertragungsperformance zu erreichen.
  • Seite 120: Siehe Auch

    CAN Funktionen Durch einen Aufruf der Funktion CANCloseDevice wird die bestehende Verbindung wieder geschlossen. Wichtig Das explizite Schließen der Verbindung ist notwendig, um die in der DLL angelegten Systemressourcen wieder freizugeben und dem verbundenen Gerät mitzuteilen, dass die Verbindung nicht mehr genutzt wird und wieder für neue Verbindungsanfragen zur Verfügung gestellt werden soll.
  • Seite 121: Ls_Canclosedevice

    CAN Funktionen LS_CANCloseDevice LS_CANCloseDevice — Schließt eine geöffnete Netzwerk-Verbindung zu einem AnaGate CAN Device. Syntax int RC = LS_CANCloseDevice(int Handle); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_CANOpenDevice. Rückgabewert RC Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 122: Ls_Canrestartdevice

    CAN Funktionen LS_CANRestartDevice LS_CANRestartDevice — Führt einen Geräte-Restart der AnaGate CAN Hardware durch. Syntax int RC = LS_CANRestartDevice(string IPAddress, int Timeout); Parameter IPAddress Netzwerkadresse des AnaGate-Partners. nTimeout Standard-Timeout für AnaGate-Zugriffe in Millisekunden. Ein Timeout wird festgestellt, wenn der AnaGate-Partner nicht innerhalb der vereinbarten Timeout-Zeit antwortet.
  • Seite 123: Ls_Cansetglobals

    CAN Funktionen LS_CANSetGlobals LS_CANSetGlobals — Setzt die globalen Einstellungen, mit denen auf dem CAN-Bus gearbeitet werden soll. Syntax LS_CANSetGlobals(int Handle, uint32 Baudrate, uint8 OperatingMode, bool Termination, bool HighSpeedMode, bool TimeStampOn); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_CANOpenDevice. Baudrate Baudrate, mit der gearbeitet werden soll. Folgende Werte werden unterstützt: •...
  • Seite 124: Bemerkung

    CAN Funktionen werden auch keine Error-Frames auf dem Bus erzeugt, wenn andere Busteilnehmer Telegramme mit einer anderen als der konfigurierten Baudrate senden. Termination Geräte-integrierte CAN-Bus-Terminierung ein- bzw. ausschalten (true=ein, false=aus). Diese Einstellung wird nicht bei allen AnaGate CAN Modellvarianten unterstützt. HighSpeedMode Aktuelle Einstellung für den High-Speed Modus (true=ein, false=aus).
  • Seite 125: Ls_Cangetglobals

    CAN Funktionen LS_CANGetGlobals LS_CANGetGlobals — Ermittelt die globalen Einstellungen, mit denen auf dem CAN- Bus gearbeitet wird. Syntax int RC, int Baudrate, uint8 OperatingMode, bool Termination, bool HighSpeedMode, bool TimeStampOn = LS_CANGetGlobals(int Handle); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_CANOpenDevice.
  • Seite 126 CAN Funktionen verlieren. In diesem Modus werden die gesendeten bzw. empfangenen Telegramme auf Protokollebene nicht mehr bestätigt und die via LS_CANSetFilter definierten Filter werden ignoriert. Beschreibung Ermittelt die globalen Geräte-Einstellungen der verwendeten CAN-Schnittstelle. Diese Einstellungen sind für alle gleichzeitigen Verbindungen auf der entsprechenden CAN-Schnittstelle gültig.
  • Seite 127: Ls_Canwrite

    CAN Funktionen LS_CANWrite LS_CANWrite — Sendet ein Datentelegramm über die AnaGate-Hardware auf den CAN-Bus. Syntax int RC = LS_CANWrite(int Handle, int32 CANID, table(uint8[DataLen]) Data, uint8 DataLen, uint8 Flags); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_CANOpenDevice. CANID CAN-Identifier des Absenders. Mittels Flags kann definiert werden, ob die Adresse im sog.
  • Seite 128 CAN Funktionen die Länge des Puffers entsprechend der zu erwartenden Datenlänge anzugeben. Im folgenden ein Programmier-Beispiel, das ein Datentelegramm auf den CAN-Bus sendet. local tabData = {} for i = 1, 8, 1 do table.insert(tabData, i) local nFlags = 0x0 // 11bit address + standard (not remote frame) local nCANId = 0x25 // send with CAN ID 0x25;...
  • Seite 129: Ls_Canwriteex

    CAN Funktionen LS_CANWriteEx LS_CANWriteEx — Sendet ein Datentelegramm über die AnaGate-Hardware auf den CAN-Bus. Syntax int RC, int32 Seconds, int32 Microseconds = LS_CANWriteEx(int Handle, int32 CANID, table(uint8[DataLen]) Data, uint8 DataLen, uint8 Flags); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_CANOpenDevice. CANID CAN-Identifier des Absenders.
  • Seite 130 CAN Funktionen der zu erwartenden Datenlänge gesetzt werden, auf dem CAN-Bus selbst werden dabei keine Daten versendet. Bei Verwendung der Funktionen LS_CANWrite bzw. LS_CANWriteEx ist beim Versenden von Remoteframes sowohl ein Datenpuffer als auch die Länge des Puffers entsprechend der zu erwartenden Datenlänge anzugeben.
  • Seite 131: Ls_Cangetmessage

    CAN Funktionen LS_CANGetMessage LS_CANGetMessage — Liest eine CAN-Message aus dem internen Empfangspuffer. Syntax int Available, int32 CANID, uint8 DataLen, table(uint8[Length]) Data, uint8 Flags, int32 Seconds, int32 Microseconds = LS_CANGetMessage(int Handle, int Timeout); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_CANOpenDevice. Timeout Maximale Zeitspanne in Millisekunden, die auf ein neues Datentelegramm gewartet werden soll.
  • Seite 132 CAN Funktionen Über den Parameter Timeout kann gesteuert werden, wie lange die Funktion auf ein neues Datenpaket warten soll, wenn aktuell keine Telegramme im internen Puffer vorhanden sind. Ist nach Ablauf der angegebenen Wartezeit kein Paket empfangen worden, gibt die Funktion in Available den Rückgabewert -10 (ERR_NO_DATA) zurück.
  • Seite 133: Ls_Cansetfilter

    CAN Funktionen LS_CANSetFilter LS_CANSetFilter — Setzt die Software-Filter für die aktuelle Verbindung. Syntax int RC = LS_CANSetFilter(int Handle, table(uint32[16]) Filter); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_CANOpenDevice. Filter Tabelle mit 8 Filtereinträgen (jeweils 4 Maskenfilter und 4 Bereichsfilter). Ein Filtereintrag besteht grundsätzlich aus zwei 32-Bit-Werten. Es müssen immer alle Filter gleichzeitig gesetzt werden.
  • Seite 134: Ls_Cangetfilter

    CAN Funktionen LS_CANGetFilter LS_CANGetFilter — Liefert die Filtereinstellungen für die aktuelle Verbindung zurück. Syntax int RC, table(uint32[16]) Filter = LS_CANGetFilter(int hHandle); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_CANOpenDevice. Rückgabewert Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 135: Ls_Cansettime

    CAN Funktionen LS_CANSetTime LS_CANSetTime — Setzt die System-Uhrzeit auf dem AnaGate CAN Gerät für den Zeitstempel-Modus. Syntax int RC = LS_CANSetTime(int Handle, int32 Seconds, int32 Microseconds); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs von CANOpenDevice. Seconds Aktuelle Uhrzeit in Sekunden seit dem 01.01.1970. Microseconds Zusätzlicher Anteil der Mikrosekunden für die aktuelle Uhrzeit.
  • Seite 136: Ls_Canerrormessage

    CAN Funktionen LS_CANErrorMessage LS_CANErrorMessage — Gibt eine textuelle Beschreibung eines Rückgabewertes aus einer API-Funktion zurück. Syntax string ErrorMsg = LS_CANErrorMessage(int RetCode); Parameter RetCode Fehlercode, dessen Fehlerbeschreibung ermittelt werden soll. Rückgabewert ErrorMsg Textuelle Beschreibung des Fehlercodes (in englischer Sprache). Beschreibung Gibt eine textuelle Beschreibung des übergebenen Rückgabewertes zurück (siehe auch Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 137: Ls_Canreaddigital

    CAN Funktionen LS_CANReadDigital LS_CANReadDigital — Liest die aktuellen Werte der digitalen Ein-/Ausgabe-Register der AnaGate-Hardware zurück. Syntax int RC, uint32 InputBits, uint32 OutputBits = LS_CANReadDigital(int Handle); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_CANOpenDevice. Rückgabewert Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 138 CAN Funktionen Siehe auch LS_CANWriteDigital © 2007-2015 Analytica GmbH...
  • Seite 139: Ls_Canwritedigital

    CAN Funktionen LS_CANWriteDigital LS_CANWriteDigital — Setzt das digitale Ausgabe-Register der AnaGate-Hardware auf einen neuen Wert. Syntax int RC = LS_CANWriteDigital(int Handle, uint32 OutputBits); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_CANOpenDevice. OutputBits Neuer Wert des Registers mit den digitalen Ausgängen. Dabei entsprechen Bit 0 bis Bit 3 den vier digitalen Ausgängen;...
  • Seite 140: Ls_Canreadanalog

    CAN Funktionen LS_CANReadAnalog LS_CANReadAnalog — Liest die aktuellen Werte der analogen Eingänge der AnaGate- Hardware zurück. Syntax int RC, uint32 PowerSupply, table(uint8[min(ReadCount,InputCount)]) AnalogInputs, uint16 ReadCount = LS_CANReadAnalog(int Handle, uint16 InputCount); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_CANOpenDevice. InputCount Anzahl der analogen Eingänge der AnaGate-Hardware. Rückgabewert Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 141: Ls_Canwriteanalog

    CAN Funktionen LS_CANWriteAnalog LS_CANWriteAnalog — Setzt die analogen Ausgänge der AnaGate-Hardware auf neue Werte. Syntax LS_CANWriteAnalog(int Handle, table(uint32[OutputCount]) AnalogOutputs, uint16 OutputCount); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_CANOpenDevice. AnalogOutputs Array mit neuen Werten der analogen Ausgänge in Millivolt. OutputCount Anzahl der Werte in AnalogOutputs.
  • Seite 142: Spi Funktionen

    Kapitel 14. SPI Funktionen Der Serial Peripheral Interface (kurz SPI) ist ein von Motorola entwickeltes Bus-System für einen synchronen seriellen Datenbus, mit dem digitale Schaltungen nach dem Master-Slave- Prinzip miteinander verbunden werden können. Die SPI-Gateways aus der AnaGate-Serie bieten einen Zugriff auf den SPI Bus über einen herkömmlichen Netzwerkanschluss. Mit den Funktionen der SPI API können diese SPI-Gateways und damit der SPI Bus auf einfache Art und Weise angesprochen werden.
  • Seite 143: Ls_Spiopendevice

    SPI Funktionen LS_SPIOpenDevice LS_SPIOpenDevice — Baut eine Netzwerkverbindung zu einem AnaGate SPI auf. Syntax int RC, int Handle = LS_SPIOpenDevice(string IPAddress, int Timeout); Parameter IPAddress Netzwerkadresse des AnaGate-Partners. Timeout Standard-Timeout für AnaGate-Zugriffe in Millisekunden. Ein Timeout wird festgestellt, wenn die AnaGate-Hardware nicht innerhalb der vereinbarten Timeout-Zeit antwortet.
  • Seite 144 SPI Funktionen Siehe auch LS_SPICloseDevice © 2007-2015 Analytica GmbH...
  • Seite 145: Ls_Spiclosedevice

    SPI Funktionen LS_SPICloseDevice LS_SPICloseDevice — Schließt eine geöffnete Netzwerk-Verbindung zu einem AnaGate SPI Device. Syntax int RC = LS_SPICloseDevice(int Handle); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_SPIOpenDevice. Rückgabewert RC Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 146: Ls_Spisetglobals

    SPI Funktionen LS_SPISetGlobals LS_SPISetGlobals — Setzt die globalen Einstellungen, mit denen auf dem AnaGate SPI gearbeitet werden soll. Syntax int RC = LS_SPISetGlobals(int Handle, uint32 Baudrate, uint8 SigLevel, uint8 AuxVoltage, uint8 ClockMode); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_SPIOpenDevice. Baudrate Baudrate, mit der gearbeitet werden soll.
  • Seite 147 SPI Funktionen • 1 für CPHA=0 und CPOL=1. • 2 für CPHA=1 und CPOL=0. • 3 für CPHA=1 und CPOL=1. Rückgabewert RC Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ). Beschreibung Setzt die globalen Geräte-Einstellungen, mit denen auf der SPI-Schnittstelle des AnaGate SPI bzw.
  • Seite 148: Ls_Spigetglobals

    SPI Funktionen LS_SPIGetGlobals LS_SPIGetGlobals — Ermittelt die globalen Einstellungen, mit denen auf dem AnaGate SPI gearbeitet wird. Syntax int RC, uint32 Baudrate, uint8 SigLevel, uint8 AuxVoltage, uint8 ClockMode = LS_SPIGetGlobals(int Handle); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_SPIOpenDevice. Rückgabewerte Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 149 SPI Funktionen Siehe auch LS_SPISetGlobals © 2007-2015 Analytica GmbH...
  • Seite 150: Ls_Spidatareq

    SPI Funktionen LS_SPIDataReq LS_SPIDataReq — Führt einen Datentransfer auf dem SPI-Bus durch. Syntax int RC, table(uint8[ReadLen]) ReadData = LS_SPIDataReq(int Handle, table(uint8[WriteLen]) WriteData, uint16 WriteLen, uint16 ReadLen); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_SPIOpenDevice. WriteData Puffer mit den Daten, die an den SPI-Partner gesendet werden sollen. WriteLen Länge des Datenpuffers WriteData (Anzahl Bytes).
  • Seite 151 SPI Funktionen local nRC, hHandle = SPIOpenDevice("192.168.1.254", 5000) if nRC == 0 then local tabRead // send 1 byte and receive 1 byte nRC, tabRead = LS_SPIDataReq(hHandle, tabWrite, 1, 1) // send 1 byte and receive 5 byte nRC, tabRead = LS_SPIDataReq(hHandle, tabWrite, 1, 5) // send 2 byte and receive 1 byte nRC, tabRead = LS_SPIDataReq(hHandle, tabWrite, 2, 1) LS_SPICloseDevice(hHandle)
  • Seite 152: Ls_Spierrormessage

    SPI Funktionen LS_SPIErrorMessage LS_SPIErrorMessage — Gibt eine textuelle Beschreibung eines Rückgabewertes aus einer API-Funktion zurück. Syntax string ErrorMsg = LS_SPIErrorMessage(int ErrorCode); Parameter ErrorCode Fehlercode, dessen Fehlerbeschreibung ermittelt werden soll. Rückgabewert ErrorMsg Textuelle Beschreibung des Fehlercodes (in englischer Sprache). Beschreibung Gibt eine textuelle Beschreibung des übergebenen Rückgabewertes zurück (siehe auch Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 153: Ls_Spireaddigital

    SPI Funktionen LS_SPIReadDigital LS_SPIReadDigital — Liest die aktuellen Werte der digitalen Ein-/Ausgabe-Register der AnaGate-Hardware zurück. Syntax int RC, uint32 InputBits, uint32 OutputBits = LS_SPIReadDigital(int Handle); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_SPIOpenDevice. Rückgabewert Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 154 SPI Funktionen Siehe auch LS_SPIWriteDigital © 2007-2015 Analytica GmbH...
  • Seite 155: Ls_Spiwritedigital

    SPI Funktionen LS_SPIWriteDigital LS_SPIWriteDigital — Setzt das digitale Ausgabe-Register der AnaGate-Hardware auf einen neuen Wert. Syntax int RC = LS_SPIWriteDigital(int Handle, uint32 OutputBits); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_SPIOpenDevice. OutputBits Neuer Wert des Registers mit den digitalen Ausgängen. Dabei entsprechen Bit 0 bis Bit 3 den vier digitalen Ausgängen;...
  • Seite 156: I2C-Funktionen

    Kapitel 15. I2C-Funktionen I2C, für engl. Inter-Integrated Circuit, im Deutschen gesprochen als I-Quadrat-C, ist ein von Philips Semiconductors (heute NXP Semiconductors) entwickelter serieller Datenbus. Er wird hauptsächlich geräteintern für die Kommunikation zwischen verschiedenen Schaltungsteilen mit geringer Übertragungsgeschwindigkeit benutzt, z. B. zwischen einem Controller und Peripherie-ICs.
  • Seite 157: Ls_I2Copendevice

    I2C-Funktionen LS_I2COpenDevice LS_I2COpenDevice — Baut eine Netzwerkverbindung zu einem AnaGate I2C (bzw. AnaGate Universal Programmer) auf. Syntax int RC, int Handle = LS_I2COpenDevice(uint32 Baudrate, string IPAddress, int Timeout); Parameter Baudrate Baudrate, mit der der I2C-Bus betrieben werden soll. Die Werte können individuell eingestellt werden, z.B.
  • Seite 158 I2C-Funktionen eine bestehende Verbindung aufrechterhalten wird, wird jeder neuer Verbindungsversuch abgelehnt. Im folgenden ein Programmier-Beispiel für den initialen Zugriff auf das Gerät. local nRC, nHandle = LS_I2COpenDevice(1000000, "192.168.1.254", 5000) if nRC ~= 0 then print(LS_I2CErrorMessage(nRC)) os.exit() -- now do something LS_I2CCloseDevice(nHandle) Siehe auch LS_I2CCloseDevice...
  • Seite 159: Ls_I2Copendeviceex

    I2C-Funktionen LS_I2COpenDeviceEx LS_I2COpenDeviceEx — Baut eine Netzwerkverbindung zu einem AnaGate I2C (bzw. AnaGate Universal Programmer) auf. Dabei muss zusätzlich zur LS_I2COpenDevice- Funktion noch der Port mit angegeben werden. Syntax Handle LS_I2COpenDeviceEx(uint32 Baudrate, uint8 DevicePort, string IPAddress, int Timeout); Parameter Baudrate Baudrate, mit der der I2C-Bus betrieben werden soll.
  • Seite 160 I2C-Funktionen Anmerkung Das AnaGate I2C (bzw. die I2C-Schnittstelle eines AnaGate Universal Programmers) erlaubt nur eine einzige Netzwerkverbindung. Solange eine bestehende Verbindung aufrechterhalten wird, wird jeder neuer Verbindungsversuch abgelehnt. Im folgenden ein Programmier-Beispiel für den initialen Zugriff auf das Gerät. local nRC, nHandle = LS_I2COpenDeviceEx(1000000, 0, "192.168.1.254", 5000) if nRC ~= 0 then print(LS_I2CErrorMessage(nRC)) os.exit()
  • Seite 161: Ls_I2Cclosedevice

    I2C-Funktionen LS_I2CCloseDevice LS_I2CCloseDevice — Schließt eine geöffnete Netzwerk-Verbindung zu einem AnaGate I2C Device. Syntax int RC = LS_I2CCloseDevice(int Handle); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_I2COpenDevice. Rückgabewert RC Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ). Beschreibung Schließt eine geöffnete Netzwerk-Verbindung zu einem AnaGate I2C Device.
  • Seite 162: Ls_I2Creset

    I2C-Funktionen LS_I2CReset LS_I2CReset — Setzt den I2C-Controller auf dem AnaGate I2C Device zurück. Syntax int RC = LS_I2CReset(int Handle); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_I2COpenDevice. Rückgabewert RC Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ). Beschreibung Setzt den I2C-Controller auf dem AnaGate I2C Device zurück.
  • Seite 163: Ls_I2Cread

    I2C-Funktionen LS_I2CRead LS_I2CRead — Liest Daten von einem I2C-Partner. Syntax int RC, table(uint8[BufferLen]) Data = LS_I2CRead(int Handle, uint16 SlaveAddress, uint16 BufferLen); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_I2COpenDevice. SlaveAddress Slave-Adresse des I2C-Partners. Die Slave-Address kann eine sog. 7 oder 10-Bit Adresse darstellen (siehe Anhang B, Adressierung auf dem I2C-Bus ).
  • Seite 164: Ls_I2Cwrite

    I2C-Funktionen LS_I2CWrite LS_I2CWrite — Schreibt Daten zu einem I2C-Partner. Syntax int RC, uint16 ErrorByte = LS_I2CWrite(int Handle, uint16 nSlaveAddress, table(uint8[BufferLen]) Buffer, uint16 BufferLen); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs I2COpenDevice. SlaveAddress Slave-Adresse des I2C Partners. Die Slave-Address kann eine sog. 7 oder 10-Bit Adresse darstellen (siehe Anhang B, Adressierung auf dem I2C-Bus ).
  • Seite 165: Ls_I2Csequence

    I2C-Funktionen LS_I2CSequence LS_I2CSequence — Schreibt eine beliebige Folge von I2C-Schreib- und Lese- Kommandos als Sequenz zu einem I2C-Partner. Syntax uint16 NumberOfBytesRead, uint16 ByteNumberLastError, table(uint8[NumberOfBytesToRead]) ReadBuffer LS_I2CSequence(int Handle, table(uint8[NumberOfBytesToWrite]) WriteBuffer, uint16 NumberOfBytesToWrite, uint16 NumberOfBytesToRead); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs von LS_I2COpenDevice.
  • Seite 166 I2C-Funktionen Schreibkommando Beschreibung Bit 15: Ist dieses Bit gesetzt, wird am Ende des Schreibkommandos kein Stop-Bit an den Slave gesendet. N Bytes Datenbytes. NumberOfBytesToWrite Länge des pcWriteBuffers NumberOfBytesToRead Erwartete Gesamtlänge der empfangenen Daten. Rückgabewerte Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API- Funktionen ).
  • Seite 167: Ls_I2Creaddigital

    I2C-Funktionen LS_I2CReadDigital LS_I2CReadDigital — Liest die aktuellen Werte der digitalen Ein-/Ausgabe-Register der AnaGate-Hardware zurück. Syntax int RC, uint32 InputBits, uint32 OutputBits = LS_I2CReadDigital(int Handle); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_I2COpenDevice. Rückgabewert Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 168 I2C-Funktionen Siehe auch LS_I2CWriteDigital © 2007-2015 Analytica GmbH...
  • Seite 169: Ls_I2Cwritedigital

    I2C-Funktionen LS_I2CWriteDigital LS_I2CWriteDigital — Setzt das digitale Ausgabe-Register der AnaGate-Hardware auf einen neuen Wert. Syntax int RC = LS_I2CWriteDigital(int Handle, uint32 OutputBits); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs LS_I2COpenDevice. OutputBits Neuer Wert des Registers mit den digitalen Ausgängen. Dabei entsprechen Bit 0 bis Bit 3 den vier digitalen Ausgängen;...
  • Seite 170: Ls_I2Cerrormessage

    I2C-Funktionen LS_I2CErrorMessage LS_I2CErrorMessage — Gibt eine textuelle Beschreibung eines Rückgabewertes aus einer API-Funktion zurück. Syntax string ErrorMsg = LS_I2CErrorMessage(int ErrorCode); Parameter ErrorCode Fehlercode, dessen Fehlerbeschreibung ermittelt werden soll. Rückgabewert ErrorMsg Textuelle Beschreibung des Fehlercodes (in englischer Sprache). Beschreibung Gibt eine textuelle Beschreibung des übergebenen Rückgabewertes zurück (siehe auch Anhang A, Rückgabewerte aus den API-Funktionen ).
  • Seite 171: Ls_I2Creadeeprom

    I2C-Funktionen LS_I2CReadEEProm LS_I2CReadEEProm — Liest Daten von einem EEPROM am I2C-Bus. Syntax int RC, table(uint8[DataLen]) Data = LS_I2CReadEEProm(int Handle, uint16 SubAddress, uint32 Offset, uint16 OffsetFormat, uint16 DataLen); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs I2COpenDevice. SubAddress Subadresse des EEPROMs, mit dem kommuniziert werden soll. Die gültigen Werte für die SubAddress werden von der Einstellung des Parameters OffsetFormat (Bit 8-10) beeinflusst.
  • Seite 172 I2C-Funktionen Rückgabewerte Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ). Data Enthält die vom EEPROM gelesenen Daten. Beschreibung Die Funktion LS_I2CReadEEProm liest Daten von einem seriellen I2C-EEPROM. Der Zugriff auf eine Speicheradresse auf einem I2C-EEPROM wird prinzipiell über eine normale Schreib- bzw.
  • Seite 173: Ls_I2Cwriteeeprom

    I2C-Funktionen LS_I2CWriteEEProm LS_I2CWriteEEProm — Beschreibt ein serielles EEPROM am I2C-Bus. Syntax int RC = LS_I2CWriteEEProm(int Handle, uint16 SubAddress, uint32 Offset, table(uint8[DataLen]) Data, uint16 DataLen, uint16 nOffsetFormat); Parameter Handle Gültiges Zugriffs-Handle eines erfolgreichen Aufrufs I2COpenDevice. SubAddress Subadresse des EEPROMs, mit dem kommuniziert werden soll. Die gültigen Werte für die SubAddress werden von der Einstellung des Parameters OffsetFormat (Bit 8-10) beeinflusst.
  • Seite 174 I2C-Funktionen des Adressbytes und 1 zusätzliches Bit. Damit können über die 9 Bits insgesamt 512 Bytes adressiert werden. Rückgabewert RC Die Funktion gibt im Erfolgsfall 0 zurück, andernfalls einen Fehlercode (Anhang A, Rückgabewerte aus den API-Funktionen ). Beschreibung Die Funktion LS_I2CWriteEEProm schreibt Daten auf ein serielles I2C-EEPROM. Der Zugriff auf eine Speicheradresse auf einem I2C-EEPROM wird prinzipiell über eine normale Schreib- bzw.
  • Seite 175 I2C-Funktionen Siehe auch LS_I2CReadEEProm Anhang C, Programmierung von I2C-EEPROM © 2007-2015 Analytica GmbH...
  • Seite 176: Lua-Programmier-Beispiele

    Kapitel 16. Lua-Programmier-Beispiele 16.1. Beispiele für Geräte mit CAN-Schnittstelle In diesem Beispiel wird eine Verbindung zu zwei AnaGate CAN-Devices aufgebaut, die über den CAN-Bus miteinander verbunden sind. Sollte die Verbindung fehlschlagen, wird eine Fehlermeldung ausgegeben und das Script beendet. Bei erfolgreicher Verbindung werden die globalen Einstellungen des AnaGate CAN-Device gesetzt.
  • Seite 177: 16.2. Beispiele Für Geräte Mit Spi-Schnittstelle

    Lua-Programmier-Beispiele -- 1 Datenpakete auf dem 1. AnaGate CAN Device versenden nRC = LS_CANWrite(nHandle, 1, aSendData, #aSendData, 0) LS_Sleep(20) -- 20Millisekunden warten -- Datenpaket auf 2. AnaGate CAN Device empfangen local nAvail, ID, Len, Data, Flags, Sec, Microsec = LS_CANGetMessage(nHandle2, 10) while nAvail>=0 do nAvail, ID, Len, Data, Flags, Sec, Microsec = LS_CANGetMessage(nHandle2, 10) until false...
  • Seite 178: 16.3. Beispiele Für Geräte Mit I2C-Schnittstelle

    Lua-Programmier-Beispiele -- Statusregister des SPI-Partners abfragen nRC, Value = LS_SPIDataReq(nHandle, OPStatusReg, #OPStatusReg, 2) for i, v in ipairs(Value) do printf("Data Status: %02X\n", v) -- Lesen von 20 Bytes ab Adresse 0x00 nRC, Value = LS_SPIDataReq(nHandle, OPRead, #OPRead, 20) for i, v in ipairs(Value) do printf("Data Status: %02X\n", v) -- Alle digitalen Ausgaenge zuruecksetzen LS_SPIWriteDigital(nHandle, 0)
  • Seite 179 Lua-Programmier-Beispiele for i, v in ipairs(Value) do printf("%02X ", v) if i % 16 == 0 then printf("\n") --Write EEPROM CountBytes = #aSendData for Address = 0, CountBytes * 10, CountBytes do nRC = LS_I2CWriteEEProm(nHandle, 1, Address, aSendData, CountBytes, 16) LS_I2CWriteDigital(nHandle, 0) LS_I2CCloseDevice(nHandle) Beispiel 16.3.
  • Seite 180: Beispiel 16.5. I2C-Lua-Scriptbeispiel Sequence

    Lua-Programmier-Beispiele LS_I2CWriteDigital(nHandle, 0) LS_I2CCloseDevice(nHandle) Beispiel 16.4. I2C - Lua Scriptbeispiel I2C-Direkt 3. Beispiel • Sequenz an Anagate I2C Device senden --************************************************** local function printf(...) io.write(string.format(...)) io.flush() --************************************************** function main() local aSendData = {} for i = 1, 128, 1 do table.insert(aSendData, i-1) local nRC, nHandle = LS_I2COpenDevice(1000000, "10.1.2.162", 5000) if nRC ~= 0 then...
  • Seite 181: A. Rückgabewerte Aus Den Api-Funktionen

    Anhang A. Rückgabewerte aus den API-Funktionen Im folgenden eine Liste mit den Rückgabewerten der API-Funktionen. Die Werte sind in der Header-Datei AnaGateErrors.h definiert. Wert Name Beschreibung ERR_NONE Kein Fehler aufgetreten. 0x000001 ERR_OPEN_MAX_CONN Open fehlgeschlagen, maximale Anzahl von Verbindungen erreicht. 0x0000FF ERR_OP_CMD_FAILED Kommando unbekanntem...
  • Seite 182: A.3. Rückgabewerte Für Anagate Can

    Rückgabewerte aus den API-Funktionen Wert Name Beschreibung 0x000125 ERR_I2C_POLL_TIMEOUT Acknowledge-Polling-Timeout nach Schreibzugriff Tabelle A.2. Rückgabewerte für AnaGate I2C Eine textuelle Beschreibung Rückgabewertes kann Funktion I2CErrorMessage() ermittelt werden. Die Beschreibung ist in englischer Sprache. Wert Name Beschreibung 0x000220 ERR_CAN_NACK CAN-NACK 0x000221 ERR_CAN_TX_ERROR CAN Transmit Error 0x000222 ERR_CAN_TX_BUF_OVERLOW CAN buffer overflow...
  • Seite 183: A.6. Rückgabewerte Für Lua Scripting

    Rückgabewerte aus den API-Funktionen Wert Name Beschreibung ERR_SYNTAX Syntax-Fehler ERR_RANGE Wert außerhalb des gültigen Bereichs. ERR_NOT_A_NUMBER Parameter ist nicht vom Typ number. ERR_NOT_A_STRING Parameter ist nicht vom Typ string. ERR_NOT_A_BOOL Parameter ist nicht vom Typ boolean. ERR_NOT_A_TABLE Parameter ist nicht vom Typ table. ERR_NO_DATA Keine Daten vorhanden.
  • Seite 184: B. Adressierung Auf Dem I2C-Bus

    Anhang B. Adressierung auf dem I2C- Eine Standard-I2C-Adresse ist das erste vom Master gesendete Byte, wobei die ersten sieben Bit die eigentliche Adresse darstellen und das achte Bit (R/W-Bit) die Lese- oder Schreibrichtung festlegt. I2C nutzt daher einen Adressraum von 7 Bit, was bis zu 112 Knoten auf einem Bus erlaubt (16 der 128 möglichen Adressen sind für Sonderzwecke reserviert).
  • Seite 185: B.1. Adressierungs-Beispiele Von I2C-Eeproms

    Adressierung auf dem I2C-Bus Device Type Identifier Chip Enable EEPROM- Speicher M24C01 128 byte M24C02 256 byte M24C04 512 byte M24C08 1024 byte M24C16 2048 byte M24C64 8192 byte E0, E1 und E2 dienen der Ansteuerung des Speichermoduls über dessen externe Pins. A10, A9 und A8 werden als höchstwertige Bits der Speicheradresse interpretiert.
  • Seite 186: C. Programmierung Von I2C-Eeprom

    Anhang C. Programmierung von I2C- EEPROM Das AnaGate I2C und der AnaGate Universal Programmer eignen sich u.a. auch für die Programmierung von seriellen I2C-EEPROM. Zur Unterstützung dieser speziellen Anforderung werden die beiden API-Funktionen I2CReadEEProm und I2CWriteEEProm zur Verfügung gestellt. Wie alle I2C-fähigen Bausteine werden auch EEPROM über die Angabe einer Slave- Adresse auf dem I2C-Bus adressiert (siehe hierzu auch Anhang B, Adressierung auf dem I2C-Bus ).
  • Seite 187: Modus 1 Verwendung Beschreibung 0X6

    Programmierung von I2C-EEPROM Modus Verwendung Beschreibung A1-A0-E0 Die Bits E2 und E1 werden für die Adressierung verwendet. E1 entspricht dabei dem Adressbit A8 bzw. A16 und E2 dem Adressbit A9 bzw. A17. ist bei den API-Funktionen I2CReadEEProm und I2CWriteEEProm im Parameter nOffsetFormat (Bit 8-10) entsprechend zu verwenden.
  • Seite 188: D. Faq - Häufig Gestellte Fragen

    Anhang D. FAQ - Häufig gestellte Fragen Im folgenden eine Aufstellung von häufig gestellten Fragen hinsichtlich der Inbetriebnahme und Verwendung der unterschiedlichen AnaGate-Hardware. D.1. Allgemeine Fragen Keine Netzwerk-Verbindung (1) Überprüfen Sie bitte zuerst, ob eine physische Netzwerkverbindung zum Gerät vorhanden ist. Grundsätzlich muss das AnaGate direkt mit einem PC oder einer aktiven Netzwerkkomponente (Hub, Switch) über ein LAN-Kabel verbunden sein.
  • Seite 189 FAQ - Häufig gestellte Fragen 5001 ein, wobei a.b.c.d durch die IP-Adresse des Geräts zu ersetzen ist. Sollte dieser Befehl eine Fehlermeldung erzeugen, prüfen Sie, ob auf Ihrem PC eine Firewall aktiviert ist oder im Netzwerk zwischen Ihrem PC und dem AnaGate ein Paketfilter aktiv ist.
  • Seite 190: D.1. Nutzung Anagate-Hardware Mit Firewall

    FAQ - Häufig gestellte Fragen Verwendung einer Firewall Bei Verwendung einer Firewall muss der entsprechende Port für die Kommunikation mit dem AnaGate freigeschaltet sein: Gerät Portnummer AnaGate I2C 5000 AnaGate I2C X7 5100, 5200, 5300, 5400, 5500, 5600, 5700 AnaGate CAN 5001 AnaGate CAN USB 5001...
  • Seite 191: Fragen Zur Spi-Schnittstelle

    FAQ - Häufig gestellte Fragen Wenn zwei CAN-Ports auf einem AnaGate CAN bzw. zwei Ports auf unterschiedlichen AnaGate CAN mit einem CAN-Kabel direkt verbunden werden sollen, muss auf beiden Seiten die interne Terminierung eingeschaltet werden. Ein CAN-Netzwerk muss auf beiden Seiten eine Terminierung aufweisen. Anmerkung Es ist auf jeden Fall zu empfehlen, die Terminierung einzuschalten, auch...
  • Seite 192: Fragen Zur Jtag-Schnittstelle

    FAQ - Häufig gestellte Fragen 4. Prüfen Sie, dass keine weiteren elektronischen Bauelemente Kommunikation auf dem I2C zwischen Gerät und dem I2C-Device stören können. 5. Prüfen Sie, dass die Chip-Enable-Adresse vom I2C-Device und der Software identisch sind. Welche Reihenfolge ist bei der Kontaktierung von GND, SCL und SDA bei Verwendung eines externen Stromversorgung zu beachten? Um potentielle Schäden am AnaGate UP 2.0 zu vermeiden, muss immer zuerst der GND-Pin mit dem Application Board verbunden werden;...
  • Seite 193: E. Faq Zu Den Programmier-Schnittstellen

    Anhang E. FAQ zu den Programmier- Schnittstellen Im folgenden eine Aufstellung von häufig gestellten Fragen in Bezug zur Programmier-API bzw. der Programmierung als solches. E.1. Fragen zum Kommunikationsprotokoll Die Berechnung der Prüfsumme (CRC) für die AnaGate-Telegramme ist unklar. Die folgende Abbildung zeigt den grundsätzlichen Aufbau eines AnaGate- Befehlstelegramms: Als Prüfsumme wird ein Byte benutzt, das sich durch ein XOR von sämtlichen Bytes eines Befehlstelegramms ohne die Längen-Bytes und CRC selbst...
  • Seite 194: F. Technischer Support

    Anhang F. Technischer Support Die Hardware-Serie AnaGate, die vorhandenen Programmierschnittstellen sowie verschiedene Tools werden von der Analytica GmbH entwickelt und unterstützt. Technische Unterstützung kann wie folgt angefordert werden: Internet Die AnaGate-Website [http://www.anagate.de] der Analytica GmbH enthält Informationen und Software-Downloads für Benutzer der AnaGate Library: •...
  • Seite 195: Literaturverzeichnis

    Literaturverzeichnis Bücher [LuaRef2006-EN] Roberto Ierusalimschy, Luiz Henrique Figueiredo und Waldemar Celes. Copyright © 2006 R. Ierusalimschy, L. H. de Figueiredo, W. Celes. ISBN 85-903798-3-3. Lua.org. Lua 5.1 Reference Manual. [LuaProg2006-EN] Roberto Ierusalimschy. Copyright © 2006 Roberto Ierusalimschy, Rio de Janeiro. ISBN 85-903798-2-5. Lua.org. Programming in Lua (second edition). [LuaProg2006-DE] Roberto Ierusalimschy.