Die vorliegende Dokumentation beschreibt ein mittels yamp erzeugbares Messprogramm. yamp steht für yet another measurement programm. Es ist der Arbeitstitel eines, seit April 2012 entwickelten Softwaresystems.
Grundidee
Die Grundidee von yamp ist, nicht ein konkretes Messprogramm zu erstellen, sondern eine Ausführungskontext für Messaufgaben zu bieten. Dieser zusammen mit den konkret benannten Messablauf, formuliert in einem Messprogrammdokument, ergibt dann das Messprogramm. Das bedeutet, dass sich die Erstellung eines Messprogramms im Wesentlichen auf die Formulierung der Abläufe in einem Messprogrammdokument beschränkt.
Analogie
Hier sind verschiedene Analogien zur Verdeutlichung möglich:
- Eine geeignet parametrisierte Funktion kann, je nach Wahl der Parameter Ergebnisse liefern: f(a) = yamp( messprogrammdokument ) = Messprogramm.
- Bei einem Diaprojektor entsteht zusammen mit einem austauschbarem Dia ein projiziertes Bild. Hier würde yamp dem Projektor und dem Messprogrammdokument dem Dia entsprechen. Das projizierte Bild entspricht dann dem konkreten Messprogramm.
Url
Dies zeigt sich auch im url-Schema des entsprechenden Messprogramms:
http://server/datenbank/_design/yamp/_show/go/messprogrammdokument
oder in Projektoranalogie:
http://220VDose/projektor/zeige/dia
Die vorliegende Seite ist dann:
http://220VDose/projektor/beschreibe/dia
Messprogrammdokumente (das Dia)
Konkret benannten Messabläufe, die _messprogrammdokument_e, sind Datenbankobjekte im JSON-Format; d. h. sie sind unabhängig von yamp und können verschiedentlich benutzt werden. Ein Beispiel einer solchen Nutzung ist wie bereits erwähnt, die vorliegende Dokumentation. Sie ist eine altenative Darstellung des messprogrammdokuments. Über die url
http://server/datenbank/messprogrammdokument
können sie im Rohformat abgerufen werden. Eine etwas benutzerfreundlichere Version bietet futon.
Das Messprogrammdokument hat die folgende Struktur:
{ _id:dia yamp:{ InfoPages:[ { Title: Seite1, AutoRun:true, NoOfRepeats:1, Description: Dokumentation der 1. Seite bzw. des 1. Tabs, Elements:[ ... ], Rezepte:[ [Task_a,Task_b,Task_c], [Task_d], [Task_e,Task_f,Task_g] ] }, { Title: Seite2, ... }, ], Recipes:[ {RecipeClass:messurement, Conditions:[...], Recipe:[...] }, {...} ], Tasks:[ {Taskname:Task_a, Action: ..., Comment: ..., }, {...} ] } }
Die hier angedeutete Struktur spiegelt sich auch in diesem Dokument wieder: der Abschnitt Seiten/Tabs wird aus InfoPages erzeugt, Tasks aus Tasks und Rezepte aus Recipes.
yamp (der Projektor)
yamp ist in JavaScript geschrieben. Dies zusammen mit der Tatsache, dass es sich dabei um ein CouchDB-Datenbankobjekt handelt, sorgt dafür, dass sich die Installation auf das Aufrufen einer url mit einem Browser beschränkt.
Datenbankobjekte
Als Datenbankobjekt stehen für yamp sowie für die Messprogrammdokumente alle diesbezüglichen Möglichkeiten zur Verfügung (kopieren, suchen, löschen, replizieren).
Quelltexte
Die Quelltexte werden in einem git-Repositorium (Repo) gepflegt. Die derzeit aktuelle Version findet sich unter: http://a73434/gitblit/yamp.git bzw. https://github.com/wactbprot/yamp.