SDK/Tools
Aktuelle Kernel-Version: 2.50
Vorraussetzungen
Delphi 2007 + neusten Indy's für SOAP Client
Hinweise
Das Empfangen von Variants über SOAP ist in Delphi fehlerbehaftet. Wer die Professional Version von Delphi besitzt, kann im "source\win32\soap" Ordner die Quelldateien wie in den QC Reports Beschrieben verändern. Damit die Änderungen kompiliert werden, muss der Pfad "source\win32\soap" in den Suchpfad hinzufügt werden. Nach dem Kompilieren sollten in den Dateien (z.B. OPToSOAPDomConv) die blauen Kreise (Möglichen Breakpoints) im Editor erscheinen.
Diese Maßnahme wird nur benötigt, wenn der MessageReader verwendet werden soll. Soll nur über die SOAP Schnittstelle auf IP-Symcon zugegriffen werden, sind diese Änderungen nur in den seltensten Fällen notwendig.
Adressen zu den relevanten QC Reports:
QualityCentral
QualityCentral
Die neusten Indy Komponenten gibt es hier: ftp://ftp.fulgan.com/ZIP/IndyTiburon.zip
Alternativ kann man diese auch direkt aus dem Indy Project SVN auschecken. (branches\Tibueron)
Für das Entwickeln normaler IP-Symcon Module, muss nichts gepatcht werden.
Wesentliche Änderungen von Version 1.0 nach Version 2.0
- Das registrierte Interface (ModuleRegistry.RegisterModule(*)) wird automatisch nach PHP weitergereicht. Die Handle PHP Funktion entfällt komplett.
- Zurückgegebene Objekte müssten vom Typ TIPSRemotable sein (UIPSModuleTypes)
- Zurückgegebene Objekte werden automatisch in Array's in PHP umgewandelt
- Versenden von Daten zwischen Modulen geschieht nun typsicher. Dazu muss jedes Modul bestimmte Interfaces anbieten, auf die dann die anderen Module zugreifen können. (Siehe das Beispiel Modul, UIPSDataTypes)
- Status Variablen werden direkt über die Hauptklasse TIPSModuleObject (UIPSTypes) verwaltet.
Wesentliche Änderungen von Version 2.0 nach Version 2.1
- Konstantaten sind jetzt in 100er Schritten definiert
- Kategoriefunktionen vom ObjectManager in den CategoryManager verschoben
- LinkManager für die symbolischen Links
- Variablenprofile werden über Strings verknüpft und müssen vorher im VariableManager registriert werden
Wesentliche Änderungen von Version 2.1 nach Version 2.2
- PHP Engine kann nun partielle Daten (flush) direkt weiterleiten
Wesentliche Änderungen von Version 2.2 nach Version 2.3
- PHP Engine kann nun mit $_POST und $_FILES umgehen
- GetFunctionList gibt leserliche Namen für Enumerations zurück
Wesentliche Änderungen von Version 2.3 nach Version 2.4
- Keine. Das SDK ist vollständig kompatibel zur 2.3
Wesentliche Änderungen von Version 2.4 nach Version 2.5
Die Handling der StatusVariablen wurde umgebaut, sodass es nicht mehr so kompliziert ist. Eine StatusVariable kann jetzt jederzeit über RegisterVariable bzw MaintainVariable erstellt/gelöscht werden. Ein ApplyChanges sollte somit nicht mehr im Code ausgeführt werden, wenn zur Laufzeit Variablen erstellt werden mussten.
Die StatusVariable sind ab der 2.5 lose gekoppelt. Sie werden nur über den ObjectIdent gesucht und dann entsprechend erstellt, modifiziert oder gelöscht.
Best Practice:
- Statische Variable im Constructor per RegisterVariable konfigurieren
- Dynamische Variablen im ApplyChanges per MaintainVariable konfigurieren
Anpassungen:
- RegisterVariable/MaintainVariable war im LoadSettings teilweise notwendig, damit IP-Symcon die Variable zur Laufzeit "wiedererkennt". Durch die lose Kopplung ist dies jetzt komplett überflüssig und sehr einfach geworden.
- Die Parameterreihenfolge hat sich bei MaintainVariable geändert
- Der ActionHandler wird jetzt direkt bei RegisterVariable/MaintainVariable mit übergeben
- Beim ActionHandler hat sich der erste Parameter geändert
- Die Funktion GeDefaultProfiles wurde entfernt. Bitte direkt die equivalenten Strings eintragen
Bestandteile des "SDK"
- Das WinLIRC Modul mit Quellcode.
- Ein simpler SOAP Client mit Ausleseroutine für Events (Bitte Hinweise oben beachten!)
- Automatischer Proxyklassen Generator für alle SubModule von IP-Symcon.
Der Server muss lokal gestartet sein, damit der Generator funktioniert.
Changelog
2.04
Geänderte Funktionen:
- IIPSEventMananger.SetEventCyclic
- IIPSScriptEngine.ExecuteText(Ex) - Zur Zeit noch dummys.
2.10
Geänderte Funktionen:
- IIPSEventMananger.SetEventScript (Nimmt nun den auszuführenden Text statt der ID des Skriptes)
- IIPSEventMananger.GetEvent (Index: TriggerVariable -> TriggerVariableID)
- IIPSModule.GetStatusVariableIDs -> IPS_GetStatusVariableIdents
- IIPSInstanceManager.GetInstancesByModuleType -> GetInstanceListByModuleType
- IIPSInstanceManager.GetInstancesByModuleID -> GetInstanceListByModuleID
Neue Funktionen:
- IIPSInstanceManager.GetInstancesByModuleType
- IIPSVariableManager.SetVariableCustomProfile
- IIPSVariableManager.SetVariableCustomAction
- IIPSVariableManager.CreateVariableProfile
- IIPSVariableManager.DeleteVariableProfile
- IIPSVariableManager.SetVariableProfileText
- IIPSVariableManager.SetVariableProfileValues
- IIPSVariableManager.SetVariableProfileDigits
- IIPSVariableManager.SetVariableProfileAssociation
- IIPSVariableManager.SetVariableProfileAssociations
- IIPSVariableManager.SetVariableProfileIcon
- IIPSVariableManager.VariableProfileExists
- IIPSVariableManager.CheckVariableProfile
- IIPSVariableManager.GetVariableProfile
- IIPSVariableManager.GetVariableProfileList
- IIPSVariableManager.GetVariableProfileListByType
- IIPSEventManager.GetEventListByType
- IIPSLinkManager.CreateLink
- IIPSLinkManager.DeleteLink
- IIPSLinkManager.SetLinkChildID
- IIPSLinkManager.LinkExists
- IIPSLinkManager.CheckLink
- IIPSLinkManager.GetLink
- IIPSLinkManager.GetLinkList
- IIPSLinkManager.IIPSLinkManager.GetLinkList
- IIPSSOAPServer.RemoveSessionFilter
- IIPSSOAPServer.GetSessionFilter
Entfernte Funktionen:
- IIPSObjectManager.HasFlag
- IIPSObjectManager.SetFlag
2.20
Neue Funktionen:
- IIPSObjectManager.GetParent
2.30
Keine Änderung der vorhandenen Funktionen
2.40
Keine Änderung der vorhandenen Funktionen
2.50
Geänderte Funktionen:
- TIPSModuleObject.MaintainVariable (geänderte Parameterreihenfolge!)
- TIPSModuleObject.RegisterVariable (geänderte Parameterreihenfolge!)
Neue Funktionen:
- IIPSObjectManager.SetIdent
- IIPSObjectManager.GetObjectIDByIdent
Entfernte Funktionen:
- TIPSModuleObject.RegisterActionHandler
- IIPSModule.StatusVariableExists
- IIPSModule.GetStatusVariable
- IIPSModule.GetStatusVariables
- IIPSModule.GetStatusVariableIdents
- IIPSModule.SetStatusVariableUseAction
- IIPSModule.SetStatusVariableID
Downloads