05.11.2013 Aufrufe

Entwicklung einer Automatenbedienung mit einer leistungsfähigen ...

Entwicklung einer Automatenbedienung mit einer leistungsfähigen ...

Entwicklung einer Automatenbedienung mit einer leistungsfähigen ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

5.5. Wichtiges<br />

In diesem Kapitel werden noch einige wichtige Bemerkungen als Abschluss der<br />

Beschreibung von asrLib gemacht, die für die beiden weiteren Kapitel nützlich sein<br />

können. Die Tabelle auf der nächsten Seite gibt einen Überblick über die Actionen aus<br />

dem Plugin „Actions“, die man bei den Konfigurationsdateien für Dialogsysteme<br />

verwenden kann. Wie schon oben erwähnt wurde, muss für jedes Dialogsystem<br />

mindestens eine solche Datei vorhanden sein. Man kann aber auch mehrere<br />

Konfigurationsdateien erstellen und zwischen diesen <strong>mit</strong> „LOAD_STAT“ (s. Tabelle)<br />

wechseln während das System läuft. Dabei werden die meisten Daten gelöscht, die bei<br />

der Verarbeitung der aktuellen Konfigurationsdatei erstellt und im Speicher von<br />

StateMachine abgelegt wurden. Deshalb gibt es bei diesem Projekt zwei Möglichkeiten,<br />

die Daten währen der Laufzeit <strong>einer</strong> Applikation abzuspeichern.<br />

Die erste Möglichkeit ist ein „lokaler“ Speicher, der die Daten nur für die aktuelle<br />

Konfigurationsdatei behält. Wird eine andere '*.stat'- Datei geladen, wird ein neues<br />

Zustandsautomat erzeugt und StateMachine vernichtet die ganze Information in diesem<br />

Speicher. Die Klasse „Buffer“ aus der „StateMachine“- Bibliothek ist für diesen<br />

Speicher zuständig, der im Weiteren einfach als Buffer bezeichnet wird. Buffer ist an<br />

StateMachine gebunden und kann Daten von allen möglichen Typen abspeichern. In<br />

<strong>einer</strong> Konfigurationsdatei sind diese Daten meistens vom Typ „std::string“ und<br />

„std::vector“ (oder auch 2- und 3- dimensionale Vektoren). Dabei müssen<br />

die Namen vom Buffer <strong>mit</strong> „B_“ anfangen, z.B. „B_syntax“ für ein Buffer, in dem der<br />

Pfad zu <strong>einer</strong> Syntax- Datei gespeichert ist. Bei Verwendung des Buffers im Quellcode<br />

werden diese Regeln nicht beachtet, man kann beliebige Namen und Typen nehmen.<br />

Die zweite Art des Speichers wird vorwiegend im Quellcode benutzt und kann bei<br />

jedem Objekt angewendet werden, der von der Klasse „Base“ abgeleitet wurde. In der<br />

Konfigurationsdatei wird dieser Speicher zum Anlegen vom Spracherkennungssystem<br />

verwendet, dessen Name <strong>mit</strong> „M_“ anfangen soll, um sich vom Buffer zu<br />

unterscheiden. Wird eine andere Konfigurationsdatei geladen, bleibt dieses System<br />

erhalten. Der Speicher muss extra gelöscht werden, wenn der nicht mehr benutzt wird.<br />

stateMachine->addBuffer(new Buffer("B_Name", "Wert"));<br />

stateMachine->addProperty("M_Name", "Wert");<br />

stateMachine->rmProperty("M_Name");<br />

Seite 27

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!