Programmierung externer Funktionen

Beispiel zur Programmierung externer Funktionen für RedCrab Calculator


Schreiben externer Funktionen


RedCrab enthält eine integrierte Anwendungsschnittstelle (API). Die API kann Daten zur Berechnung an externe Programme senden.

Die Datei RedCrabAPI.dll muss in den externen Programmen enthalten sein, um mit RedCrab kommunizieren zu können. Suchen Sie die Datei im RedCrab Unterverzeichnis tools/bin .

Die externen Programme können in jeder Programmiersprache geschrieben werden. Wichtig ist, dass ein Entwicklungssystem verwendet wird, das das Einbinden der API-Datei ermöglicht.

Diese Seite beschreibt die Programmierung in der Programmiersprache Basic. Als Entwicklungswerkzeug wird Microsoft Microsoft Visual Studio verwendet. Das Microsoft Visual Studio Community kann kostenlos vom Microsoft-Server heruntergeladen werden. Es unterstützt C ++, c #, Visual Basic und andere Programmiersprachen.


Programmbeispiel in Visual Basic

Für das folgende Beispiel wird ein neues Windows Forms-Projekt in Visual Studio geöffnet.

Fügen Sie im Projektmappen-Explorer die Verweise zu RedCrapApi.dll und System.Numerics hinzu. Die Beschreibung dazu finden Sie hier


Quellcode

Das folgende Beispiel zeigt den minimalen Quellcode eines externen Programms. Es berechnet die Quadratwurzel des gesendeten Arguments. Das Unterprogramm Transfer ist die Funktion die direkt vom Arbeitsblatt über die Pipe aufgerufen wird.


Zeile 2:

Import der RedCrabApi.

Zeile 6:

Form1_Load Evend Handler wird beim Start des Programms ausgeführt.

Zeile 7:

Initialisierung des RedCrab Transfer Event Handler. Der Handler wird aufgerufen wenn RedCrab Daten sendet.

Zeile 10:

Initialisierung des PipeClient. Das Argument 0 legt fest, daß die Kommunikation über die Pipe Nummer 0 abgewickelt werden soll.

Zeile 12:

Implementation des RedCrab Transfer Event Handler

Zeile 14:

Die gesendeten Daten werden der Vaiable d zugewiesen.

Zeile 15: Ergebnis berechnen und an RedCrab senden.
   

Im folgenden Beispiel ist des Programms von oben um einige Zeilen erweitert worden.

 
 
Zeile 10

In dieser Zeile wird das Unterprogramm Info (Implementation Zeile 32) als Info Event Handler initialisiert.

Zu dieser Handler sendet die API Status Mitteilungen,z.B. wenn Daten gesendet oder Emfangen werden. Die Mitteilungen werden als Textstring im Argument e.Message gesendet. Sie dienen nur der Information und haben keinen Einfluß auf die Funktion. In dem Beispiel oben wird der Text in einer Textbox im Fenster ausgegeben

   
Zeile 18

In dieser Zeile wird der gesendete Daten-Type geprüft. Diese Prüfung sollte immer durchführt werden. Durch die Zuweisung eines falschen Daten types, z. B. decimal statt double, oder eine Liste oder Tabelle, läuft das Programm in eine Ausnahme-Situation und stürzt ab.

Wenn unterschiedliche Datentypen erwartet werden, können für die verschiedenen Typen entsprechende Behandlungs-Routinen installiert werden. Eine Liste der möglichen Typen finden Sie unten auf dieser Seite

   
Zeile 21

Prüfen des optionalen Kommando-Strings. Durch den Kommando-String können in einem Programm verschiedene Funktionen für den selben Daten-Type ausgeführt werden. In dem Beispiel oben wird der gesendete Wert ins Quadrat erhoben wenn im Argument e.Command "square" gesendet wird. Sonst wird der Wert mit 2 multipliziert

   
Zeile 27

Sendet eine Fehlermeldung als Text an RedCrab, wenn ein ungültiger Daten Type gesendet wurde

   

Liste der erlaubten Datentypen

 
  • Es können Daten vom Type double, decimal, Complex und String übertragen werden.

  • Die unterstützten Formate sind einfache Werte, einspaltige Listen und zweidimensionale Tabellen

  • Das gesendete Format wird durch das entsprechende RedCrabDataType Element angezeigt


Liste der in RedCrabDataType definierten Elemente


  Complex      
  ComplexList      
  ComplexTable      
  Decimal      
  DecimalList      
  DecimalTable      
  Double      
  DoubleList      
  DoubleTable      
  String      
  StringList      
  StringTable      
         

Elements of RedCrabEventArg


  Command String Optionaler Kommando String
  Data Object Die zu berechnenden Daten
  DataType RedCrabDataType Type der zu berechnenden Daten
  Length Integer Anzahl der Zeilen in einer Liste oder Tabelle
  Message String Message Text für Info Handler
  Width Integer Anzahl der Spalten einer Tabelle
         
 

Server Name


In den Beispielen hier wird davon ausgegangen, dass RedCrab und das externe Programm sich auf dem gleichen Rechner befinden.

Wenn RedCrab auf einem anderen Rechner läuft, muss der Name des Rechners im NamedPipeClient angegeben werden. In den Beispielen hier unter rc.ServerName.

 

Das folgende Bild zeigt ein Beispiel in C#

.