Я пытаюсь реализовать протокол onvif на стороне камеры (сервере) с помощью микроконтроллера, без какой-либо реализации, я пытаюсь использовать файлы wsdl на сайте onvif (например, http://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl) для создания заголовков и файлы реализации.
Итак, я использовал gsoap с командой wsdl2h -c -o devicemgmt.h http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl
, и он генерирует мне devicemgmt.h. Затем, когда я делаю soapcpp2 devicemgmt.h
, у меня
`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`
Вот фрагмент заголовочного файла, в котором возникают ошибки:
`/// "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. `
Может кто-то помочь мне, пожалуйста ? Я не знаю, что делать, в чем проблема с ns1__EndpointReferenceType и где эта синтаксическая ошибка? что мне добавить в заголовки Onvif, если есть что добавить?