Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IP-Kamera steuern/auslesen mit ONVIF - WSDL-Import (https://www.delphipraxis.net/187875-ip-kamera-steuern-auslesen-mit-onvif-wsdl-import.html)

TERWI 11. Jan 2016 13:10

IP-Kamera steuern/auslesen mit ONVIF - WSDL-Import
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich möchte gerne div. IP-/WLAN-Kameras, welche den ONVIF-Standard unterstützen neben dem Stream auch mittels ONVIF auslesen und auch einstellen (Helligkeit, Kontrast, Farbe etc., Zoom, PTZ sofern vorhanden u.a).

Das mit dem Stream auslesen hat nach anfänglichen Schwierigkeiten recht einfach geklappt (via DirectShow mit DS-Pack), wenn man die richtige und vollständige Ansage per URL kennt.

Aber beim sonstigen Zugriff tue ich mich schwer, weil noch nie mit so was gearbeitet.
Diverses suchen sagte mir: Du must dir erst mal von Delphi eine Unit aus einer entsprechnden WSDL-Datei bauen lassen.

Hat auch ne Weile gedauert, bis ich dahintergekommen bin, wie das geht .... nun hab ich hier 23 XML-Dateien für den tuto-kompletto-Gesamtzugriff - wovon allerdings sicherlich nur ein paar wenige gebraucht werden.

ABER:
Ich bekomme nicht eine einzige fehlerfrei gelesen !

Da komme ich nicht weiter, weil auch keinen Plan über den Aufbau und Zusammenhängen von/in XML-Dateien. Noch nie was mit am Hut gehabt.
Ich habe mal 2 vermeintlich wichtige davon zusammengepakt und anhehängt.
Könnte mal jemand den Versuch machen, die zu laden ?!
Mache ich das was falsch oder sind die Quelldateien irgendwie nicht kompatibel, bez. fehlen irgendwelche Bezüge ?
1000 Dank im voraus.

Fast vergessen: Ich arbeite (noch) mit Delphi 7.

himitsu 11. Jan 2016 13:38

AW: IP-Kamera steuern/auslesen mit ONVIF - WSDL-Import
 
Muß dann auch erstmal in Ruhe reinsehn, wenn ich demächst bissl Zeit finde.

Eine öffentliche Kamera zum Testen wurde hier irgendwo schon genannt? (glaub ich)

TERWI 11. Jan 2016 14:22

AW: IP-Kamera steuern/auslesen mit ONVIF - WSDL-Import
 
Ergänzende Erklärung noch:
Zuerst kam der Importer mit zig Fehlermeldung in zig Zeilen: Kann nicht lesen, ungültiges Zeichen, ....
Hab mir die Datei mit dem Notepad++ mal angesehen und lauter lustige x93, x94 "Markierungen" gefunden, die ich dann nach und nach alle gelöscht habe.
Ok - kein Gemecker mehr dazu, ABER:

Dann kam: Missing <definition> node of namespace "http://schemas.xmlsoap.org/wsdl/"

TERWI 16. Jan 2016 13:34

AW: IP-Kamera steuern/auslesen mit ONVIF - WSDL-Import
 
Liste der Anhänge anzeigen (Anzahl: 2)
.... etwas weiter gekommen:
Irgenwie hatte ich den Verdacht, die aus den WEBseiten kopierten WSDL-Dateien sind wohl nicht so das gelbe, habe ich weitergesucht und mir letztendlich von dem Sourcefourge-Projekt "ONVIF-Device Manager" den Source gezogen.
Dort gibt es im Unterordner /ONVIF/Schemas eine Latte WSDL-Dateien (mit anderen), welche doch irgendwie anders aussehen....
Hab ich mal für Interessierte angehängt: ONVIF_WDSL_Org.rar

Versuch 1 mit Delphi 7 auf XP:
Diverse WSDL's ließen sich fehlerfrei lesen und importieren.
Bei einigen konnten irgendwelche Quelldaten nicht gelesen werden, bei wieder anderen kamen Access-Fehler.
Nicht so prickelnd.

Versuch 2 mit Delphi 2010 unter Win7:
Bis auf 2 von 17 WSDL's sind alle ohne Gemecker importierbar !
Bei "deviceio.wsdl" wird gemault, er kann "media.wsdl" irgendwo im Delphi-Verzeichnis (!?!?!) nicht finden (die gibt es aber im ONVIF-Verzeichnis).
Bei "onvif.wsdl" stänkert das Gerät, "DTD HTML" wäre ungültig in der Dateil "event.wsdl".

Vergleicht ich dann mal die Importe aus D7 und D2010, sind doch erhebliche Unterschiede im Umfang festzustellen.
.... scheint dann wohl doch so, dass D7 langsam out of Date ist .... ?!
Ich habe dazu mal die Importe in der Datei ONVIF_WDSL_Delphi.rar angehängt.
Alle Dateien OHNE 1 hinter dem Namen sind von D7, alle MIT der 1 dahinter von D2010.


Nun werde ich mal den "ONVIF_WG-APG-Application_Programmer's_Guide.pdf" weiter studieren und schauen, wie ich mit meinen bescheidenen Kenntnissen hoffentlich einen kleinen Erfolg erziehlen kann.
Hilfe dazu und den o.g. Fehlern sind logo weiterhin sehr willkommen.

TERWI 17. Feb 2016 15:44

AW: IP-Kamera steuern/auslesen mit ONVIF - WSDL-Import
 
... ein Monat nach dem letzten Posting ist rum.
Völlig neue Erkenntnisse haben sich hier aufgetan !
WEIL:
- niemand konnte/wollte helfen, was beitragen ...
- WSDL-Support scheint ja auch in neueren Delphi-Versionen nocht nicht so ganz prickelnd zu sein ...
- SOAP-XML generieren scheint ja aktuell auch noch nicht wirklich ausgekocht zu sein ?!
- Und betreff WSDL bin ich auch noch nicht (wirklich) schlauer geworden.

Hab ich mich also mal eben schnell hingesetzt und mittels ONVIF-Doku und dem lauschen an der Datenkommunkation zwischen PC und Kamera mittels WireShark was ausgebröselt,

OHNE (!) zusatzliche Komponenten hab ich eine noch sehr kleine Klasse erst mal nur für das DeviceManagement gebastelt, um Daten von der/den Kamera(s) zu bekommen und zu setzen.
SOAP-XML Kommandos wie Ergebnisse werte ich manuell mit eigenen Routinen aus.
Klappt so weit tadellos !

So bald ich was habe, was optimiert, fehlerfrei und für die die DP-CodeLib tauglich ist, werden ich dort was einstellen.

Eine Bitte noch:
Hoffentlich bin ich hier nicht der einzige, welcher sich mit ONVIF-tauglichen Kameras beschäftigt...
... Fragen, Wünsche, Tipps & weiteres KnowHow sind logo wilkkommen !

Sir Rufo 17. Feb 2016 17:08

AW: IP-Kamera steuern/auslesen mit ONVIF - WSDL-Import
 
Es ist bestimmt nicht böse gemeint, wenn hier so gut wie keiner schreibt/antwortet.

Meine bescheidenen Erkenntnisse zum Thema WSDL/SOAP mit Delphi sind schnell zusammengefasst:
Zitat:

Wenn der Importer auf Anhieb kein vernünftiges Ergebnis liefert, sofort die Finger davon lassen!
Wenn der SOAP-Service Zertifikate benötigt werfe ich den Delphi-Importer gar nicht erst an!
Ich persönlich erstelle mir dann einfach mit C# (der WSDL-Import dort hat bis dato immer einwandfrei funktioniert) eine DLL, die ich dann von Delphi aus einbinde.

Das ist zugegeben eine Fleißaufgabe, die aber schneller und zuverlässiger funktioniert als das Herumbasteln mit Delphi.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz