[TRIXI] SOAP-Wrapper - IPS-SDK für "Dummies" - Vorstellungsthread

Hi…

Ich arbeite schon seit langer Zeit an einem IPS-SDK für „Dummies“ (Anspielung auf gleichnamige Sachbuchserie). Die Idee ist dabei ein im Umfang reduziertes aber total einfaches SDK für IPS zur Verfügung zu stellen. Dabei handelt es sich um einen SOAP-Wrapper in Form einer DLL, die nur statisch geladen werden braucht. Dadurch sollte es möglich sein IPS aus den verschiedensten Programmiersprachen heraus anzusprechen.

Der Name des Projekts ist TRIXI (Tonis Rapid IPS X-Plattform Interface) - wobei sich „Plattform“ mehr auf die Programmierumgebung bezieht als auf das Betriebsystem, denn es handelt sich um eine Windows-DLL. Die Idee ist, dass auch einfache Hobby-Programmierer möglichst einfach an IPS heran können ohne zusätzlich Komponenten zu installieren und sich ewig in SOAP einlesen zu müssen. Ich würde mir wünschen, dass rund um IPS ein ganzer Haufen neuer, kleiner, bunter Programme aus dem Boden schießen. Denn Ideen gibt es ja genug hier in der Community.

Was kann man damit bisher machen?

[ul]
[li]Auf IPS zugreifen ohne das IPS-SDK verstehen oder auch nur herunter laden zu müssen
[/li][li]Erstellung von Programmen die mit IPS kommunizieren (Wie meine Tonsolen, mein Winamp Plugin oder der IPSWatchdog von APieroth. Auch die IPS-Konsole verwendet die SOAP Schnittstelle)
[/li][li]Verbindung Lokal und im Netzwerk. Theoretisch auch übers Internet mit DynDNS (ungetestet)
[/li][li]Voller Support fürs kostenlose (leider vergriffene) Turbo Delphi (Die vorhandenen Ristriktionen werden legal umgangen)
[/li][li]Voller Support von Lazarus (Eine Art Freeware-Delphi)
[/li][li]Eine SOAP-Verbindung zu IPS herstellen ohne selbst SOAP verstehen oder Komponenten installieren zu müssen
[/li][li]IPS Variablen setzen
[/li][li]IPS Variablen auslesen
[/li][li]IPS Scripte ausführen
[/li][li]Sich über eine Änderung/ein Update einer Variable informieren lassen (Callback)
[/li][/ul]

Was wird man damit auch zukünftig nicht machen können?

[ul]
[li]Eigene IPS-Module schreiben
[/li][/ul]

Ich habe folgende lauffähige Demos im Paket:

[ul]
[li]Turbo Delphi (theoretisch auch uralte Versionen)
[/li][li]Delphi mit Unicode support (Version 2009 und Neuer)
[/li][li]Lazarus
[/li][li]Delphi Prism (.Net)
[/li][li]VB.Classic
[/li][li]VB.Net (Herzlichen Dank an „Schablone“)
[/li][/ul]

Desweiteren erfolgreich getestet mit:

[ul]
[li]Delphi 7
[/li][li]C++ (Borland C++ Builder 2009)
[/li][li]C#
[/li][li]VBA (Excel 2007 Makro)
[/li][li]PureBasic
[/li][li]AutoIt
[/li][/ul]

Beispiel (Delphi) für das Ausführen eines Scripts:


// TRIXI.dll muss im selben Verzeichnis liegen wie die EXE
function Connect(Server: PAnsiChar; Port: Integer): Boolean; stdcall external 'TRIXI.DLL';
function IsOnline(): Boolean; stdcall external 'TRIXI.DLL';
function RunScript(Variable: Integer): Integer; stdcall external 'TRIXI.DLL';

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Connect(PAnsiChar('127.0.0.1'), 3773) then   // IP und Port des IPS Servers
    showmessage('Connect Okay.')
  else
    showmessage('Hat leider nicht geklappt...');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if isOnline() then   
    RunScript(12345);  // Script ID 
end;

Wenn Jemand die Demo in weitere Sprachen übersetzt, nehme ich sie gern mit credits in die Sammlung auf und er würde natürlich auch auf meiner Webseite erwähnt. Eine kleine Doku folgt.

TRIXI soll auf jeden Fall Freeware sein und bleiben. Wer die TRIXI.dll verwendet erklärt sich damit einverstanden dies nur daheim für sich selbst und den privaten Gebrauch zu tun oder „sein Werk“ der Community kostenlos zur Verfügung zu stellen. Wer Geld verdienen will verwendet bitte das offizielle SDK von paresy oder kontaktiert mich vorher um die Möglichkeiten und Grenzen abzuwägen. Danke.

Ich bitte um reges Feedback und hoffe, dass meine Idee auf fruchtbaren Boden fällt.

ToDo:

[ul]
[li]Doku
[/li][li]Variablen und Kategorien anlegen für installationsroutinen
[/li][li]Variablen suchen (rekursiv) - prüfen ob das überhaupt realisierbar ist
[/li][li]Debugfile: Irgendwie blöd, dass alles mit „Variable Update“ anfängt. (klick)
[/li][li]getVarInfo (klick)
[/li][/ul]

Gruß,

Toni

TRIXI_0.13.2.zip (1.56 MB)

Bissel unübersichtlich geworden. Hab mal eben ein bissel Aufgeräumt…

Fragen, Anregungen, etc:

Weitere Themen:

v0.13

  • Neu: Support für Zugriff aus AutoIt, PureBasic, CodeBlocks, etc
  • Neu: Erweitertes Debug. Mehr messages, mehr Exceptionhandling
  • Neu: Server pingen im Debug Modus
  • Neu: Portscan im Debug Modus
  • Fix: Sauberer Disconnect
  • Fix: Manueller Reconnect ist nun möglich.

v0.13.2

  • Fix: „Mondwerte“ bei .Net Callbacks beseitigt

Gruß,

Toni