Aufgabe: Ein SOAP-Client

Eine kleine Wetterstation, die täglich die Lufttemperatur und die Niederschlagshöhe messen kann, ist mit einem Steuerungschip ausgestattet, der die täglichen Werte der letzten drei Jahre speichert. Auf diesem Steuerungschip bietet außerdem ein Webdienst an, mit dem man über das Internet diese Werte abfragen kann. Ihre Aufgabe ist es nun zunächst diese Daten über MATLAB abzufragen und eine kleine automatisierte Analyse auf diesen Daten in MATLAB zu implementieren.

a)      Stellen Sie eine Verbindung zu dem Webdienst unter der Adresse

http://iktwebservice.iim.maschinenbau.tu-darmstadt.de:8081/services/wetterService?WSDL

(Achtung: Dieser Link funktioniert nur an einem Computer im IiM-Pool.)

her, fragen Sie alle Messwerte aus dem Jahr 2012 ab und speichern Sie die Rückgabewerte in einer Variablen ergebnis ab.

 

Hinweise:

Rufen Sie die Methode getMesswerte(obj, von: Datum, bis: Datum) des Webdienstes auf. Hierbei ist Datum ein Struct folgender Struktur:

 

Struct Datum:

  • tag: Ganzzahl
  • monat: Ganzzahl
  • jahr: Ganzzahl

Die Methode getMesswerte gibt Ihnen ein Array von Messwerten im Zeitraum [von, bis] zurück.

b)      Lesen Sie die Messwerte für Temperatur und Niederschlagshöhe aus der in Teilaufgabe (a) erzeugten Variablen ergebnis aus und plotten Sie den Verlauf der Temperatur und der Niederschlagshöhe in zwei Plots in einem neu erzeugten Fenster. Die x-Achsenbeschriftung ist hierbei jeweils das Datum der Messung.

 

Hinweise:

                Die Variable ergebnis ist ein Struct Messwerte mit folgender Struktur:

                Struct Messwerte:

  • messwerte: Array of Messwert

Struct Messwert:

  • datum: Datum
  • temperatur: String, der eine Gleitkommazahl repräsentiert (zu parsen mit str2double())
  • niederschlagshoehe: String, der eine Gleitkommazahl repräsentiert (zu parsen mit str2double())

               

c)       Ermitteln Sie automatisiert den Tag, an dem es am meisten Niederschlag gab und lassen Sie die Daten (Datum, Temperatur, niederschlagshoehe) an diesem Tag auf der Konsole ausgeben.