2016-06-22 6 views
1

Ich versuche das Onvif - Protokoll auf der Kameraseite (Server) mit einem Mikrocontroller zu implementieren, ohne irgendeine Implementierung, versuche ich von der Wsdl-Dateien der Onvif-Site (wie http://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl), um die Header und die Implementierungsdateien zu generieren.Fehler bei der Verwendung von soapcpp2 mit einer ONVIF - Header - Datei, generiert mit wsdl2h (GSOAP mit Linux)

So habe ich gsoap, mit dem Befehl wsdl2h -c -o devicemgmt.h http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl, und es erzeugt mir die devicemgmt.h, Dann, wenn ich soapcpp2 devicemgmt.h tun habe ich

`devicemgmt.h(12328): syntax error 
devicemgmt.h(12327): Syntax error: declaration expected 
devicemgmt.h(12330): syntax error 
devicemgmt.h(12329): Syntax error: declaration expected 
devicemgmt.h(12332): syntax error 
devicemgmt.h(12331): Syntax error: declaration expected 
devicemgmt.h(12333): syntax error 
devicemgmt.h(12339): Syntax error: declaration expected 
devicemgmt.h(12342): syntax error 
devicemgmt.h(12341): Syntax error: input before ; skipped 
devicemgmt.h(12371): syntax error 
devicemgmt.h(12370): Syntax error: declaration expected 
devicemgmt.h(12373): syntax error 
devicemgmt.h(12372): Syntax error: declaration expected 
devicemgmt.h(12375): syntax error 
devicemgmt.h(12374): Syntax error: declaration expected 
devicemgmt.h(12377): syntax error 
devicemgmt.h(12376): Syntax error: declaration expected 
devicemgmt.h(12415): syntax error 
devicemgmt.h(12414): Syntax error: declaration expected 
devicemgmt.h(12417): syntax error 
devicemgmt.h(12416): Syntax error: declaration expected 
Critical error: too many syntactic errors, bailing out` 

Hier ist die oportion der Header-Datei ist, wo die Fehler auftreten werden :

`/// "http://docs.oasis-open.org/wsn/b-2":NotificationMessageHolderType is a complexType. 
struct ns4__NotificationMessageHolderType 
{ 
/// Element reference "http://docs.oasis-open.org/wsn/b-2":SubscriptionReference. 
///JUST BELOW THATS THE LINE 12328 WHERE THE ERROR IS 
ns1__EndpointReferenceType*   SubscriptionReference   0; ///< Optional element. 
    /// Element reference "http://docs.oasis-open.org/wsn/b-2":Topic. 
     struct ns4__TopicExpressionType*  Topic       0; ///< Optional element. 
    /// Element reference "http://docs.oasis-open.org/wsn/b-2":ProducerReference. 
     ns1__EndpointReferenceType*   ProducerReference    0; ///< Optional element. 
     struct _ns4__NotificationMessageHolderType_Message 
     { 
    /// TODO: <any namespace="##any" minOccurs="1" maxOccurs="1"> 
    /// TODO: Schema extensibility is user-definable. 
    ///  Consult the protocol documentation to change or insert declarations. 
    ///  Use wsdl2h option -x to remove this element. 
    ///  Use wsdl2h option -d for xsd__anyType DOM (soap_dom_element). 
     _XML         __any       0; ///< Catch any element content in XML string. 
     }         Message      1; ///< Required element. 
    }; 


    /// Top-level root element "http://docs.oasis-open.org/wsn/b-2":NotificationProducerRP 

    /// "http://docs.oasis-open.org/wsn/b-2":NotificationProducerRP is a complexType. 
    struct _ns4__NotificationProducerRP 
    { 
    /// Size of the dynamic array of struct ns4__TopicExpressionType* is 0..unbounded 
     $int         __sizeTopicExpression   0; 
    /// Array struct ns4__TopicExpressionType* of length 0..unbounded 
     struct ns4__TopicExpressionType*  TopicExpression    0; 
    /// Element reference "http://docs.oasis-open.org/wsn/b-2":FixedTopicSet. 
     enum xsd__boolean*     FixedTopicSet     0; ///< Optional element. 
    /// Size of the dynamic array of xsd__anyURI* is 0..unbounded 
     $int         __sizeTopicExpressionDialect 0; 
    /// Array xsd__anyURI* of length 0..unbounded 
     xsd__anyURI*       TopicExpressionDialect   0; 
    /// Element reference "http://docs.oasis-open.org/wsn/t-1":TopicSet. 
     struct ns7__TopicSetType*   ns7__TopicSet     0; ///< Optional element. 
    }; 


    /// Top-level root element "http://docs.oasis-open.org/wsn/b-2":SubscriptionManagerRP 

    /// "http://docs.oasis-open.org/wsn/b-2":SubscriptionManagerRP is a complexType. 
    struct _ns4__SubscriptionManagerRP 
    { 
    /// Element reference "http://docs.oasis-open.org/wsn/b-2":ConsumerReference. 
     ns1__EndpointReferenceType   ConsumerReference    1; ///< Required element. 
    /// Element reference "http://docs.oasis-open.org/wsn/b-2":Filter. 
     struct ns4__FilterType*    Filter       0; ///< Optional element. 
    /// Element reference "http://docs.oasis-open.org/wsn/b-2":SubscriptionPolicy. 
     struct ns4__SubscriptionPolicyType* SubscriptionPolicy    0; ///< Optional element. 
    /// Element reference "http://docs.oasis-open.org/wsn/b-2":CreationTime. 
     time_t*        CreationTime     0; ///< Optional element. 
    }; 


    /// Top-level root element "http://docs.oasis-open.org/wsn/b-2":Notify 

    /// "http://docs.oasis-open.org/wsn/b-2":Notify is a complexType. 
    struct _ns4__Notify 
    { 
    /// Size of the dynamic array of struct ns4__NotificationMessageHolderType* is 1..unbounded 
     $int         __sizeNotificationMessage  1; 
    /// Array struct ns4__NotificationMessageHolderType* of length 1..unbounded 
     struct ns4__NotificationMessageHolderType* NotificationMessage   1; 
    /// TODO: <any namespace="##other" minOccurs="0" maxOccurs="unbounded"> 
    /// TODO: Schema extensibility is user-definable. 
    ///  Consult the protocol documentation to change or insert declarations. 
    ///  Use wsdl2h option -x to remove this element. 
    ///  Use wsdl2h option -d for xsd__anyType DOM (soap_dom_element). 
    /// Size of the array of XML or DOM nodes is 0..unbounded 
     $int         __size      0; 
     _XML         __any       0; ///< Catch any element content in XML string. 
    }; 


    /// Top-level root element "http://docs.oasis-open.org/wsn/b-2":UseRaw 

    /// "http://docs.oasis-open.org/wsn/b-2":UseRaw is a complexType. 
    struct _ns4__UseRaw 
    { 
    }; 


    /// Top-level root element "http://docs.oasis-open.org/wsn/b-2":Subscribe 

    /// "http://docs.oasis-open.org/wsn/b-2":Subscribe is a complexType. 
    struct _ns4__Subscribe 
    { 
    /// Element ConsumerReference of type "http://www.w3.org/2005/08/addressing":EndpointReferenceType. 
     ns1__EndpointReferenceType   ConsumerReference    1; ///< Required element. 
    /// Element Filter of type "http://docs.oasis-open.org/wsn/b-2":FilterType. 
     struct ns4__FilterType*    Filter       0; ///< Optional element. ` 

Kann mir bitte jemand helfen? Ich weiß nicht, was zu tun ist, was ist das Problem mit ns1__EndpointReferenceType und wo ist dieser Syntaxfehler? Was sollte ich den Onvif-Headern hinzufügen, wenn etwas hinzuzufügen ist?

+0

Wahrscheinlich ein Problem mit Ihrem typemap.dat, weil ich deine Befehle erfolgreich ausgeführt werden. Haben Sie [gSOAP FAQ] (http://www.genivia.com/resources.html#How_do_I_use_gSOAP_with_the_ONVIF_specifications?) Gelesen? – mpromonet

+0

Hallo, ich habe gerade hineingeschaut, und ich habe die Datei typemap.dat modifiziert, indem ich die Dateien hinzugefügt habe, die nicht hier waren, aber es ist immer nicht erfolgreich. Ich habe auch die Befehle, die von den gSOAP-FAQ vorgeschlagen werden, versucht, aber sie funktionieren nicht. Kannst du mir helfen, warum zu verstehen? – samyh

+0

Wenn ich die Befehle der FAQ hinzufügen bekomme ich eine leere Kopfzeile, er sagt, dass er die typemap.dat nicht öffnen kann – samyh

Antwort

0

Stellen Sie sicher, dass Sie die typemap.dat verwenden, die mit der Distribution gsoap 2.8.x geliefert wurde. Diese typemap.dat-Datei enthält die Bindungen ONVIF, sondern auch die WS-Addressing wsa5.h für das EndpointReference element binding:

#import "wsa5.h" 
... 
class wsnt__NotificationMessageHolderType 
{ public: 
    /// Element reference "http://docs.oasis-open.org/wsn/b-2:""http://docs.oasis-open.org/wsn/b-2":SubscriptionReference. 
    wsa5__EndpointReferenceType*   SubscriptionReference   0; 
Verwandte Themen