C++ Soap, IIPSArchiveControl, GetLoggedValues

Hallo,
ich habe unter Qt und C++ die SOAP-Schnittstelle mit gSOAP soweit im Griff.
Ich versuche jetzt, auf die geloggten Werte zuzugreifen.
Leider finde ich über diese Methoden keine Informationen.
Ich bekomme bei dem Aufruf
struct ns6__GetLoggedValuesResponse retVal;

result = m_pServerService->GetLoggedValues(variableID.getValue(), startDate.toTime_t() , endDate.toTime_t(), 1000, retVal);

immer den Wert 2 als Fehler zurück.

Der SOAP Fehler lautet:
No class registered for invokable interface IIPSArchiveControl

Kann mir jemand helfen?

Danke.

Gruß,
Darnat

Die Fehlermeldung habe ich gelöst.
Den Fehlerstring aus gSOAP zu bekommen, war das eigentliche Problem.

Danach „Suchfunktion“ :smiley:

Gruß,
Darnat

Hallo IPSler,
nachdem ich den Fehler mit der Header-ID gelöst hatte, gab die Routine auch keine Fehlermeldung mehr, aber auch keine gültigen Daten.

Die ID der Variable ist richtig, der Server auch so konfiguriert, dass er die Variable loggt.
Aber alle Element enthalten keinen Werte sondern nur NULL-Pointer.
Hier der Code:


	int result = SOAP_OK;

	struct ns3__TIDHeader header;
	struct ns6__GetLoggedValuesResponse retVal;

	header.ID = IPSSenderID::ARCHIVE_HANDLER_INSTANCE;
	m_pServerService->soap_header(&header);
	result = m_pServerService->GetLoggedValues(variableID.getValue(), startDate.toTime_t() , endDate.toTime_t(), 0, retVal);

	int count = retVal.return_->__size;
	for (int i=0; i < count; ++i)
	{
		ns3__TIPSLoggedValue* loggedValue = retVal.return_->__ptr[i];

		xsd__anyType* value = loggedValue->Value;
		const float* floatValuePointer = reinterpret_cast<const float*>(value->__item);

		if (0x0 != floatValuePointer)
		{
			QString debugString;
			debugString = "" + debugString.arg(i) + ":" + debugString.arg(*floatValuePointer);
			qDebug(debugString.toStdString().c_str());
		}

	}

Kann mir jemand einen Tip geben?

Gruß,
Darnat