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?
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
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
Wenn ich die Befehle der FAQ hinzufügen bekomme ich eine leere Kopfzeile, er sagt, dass er die typemap.dat nicht öffnen kann – samyh