Die DCOP-Schnittstelle erlaubt die Steuerung von Kpl durch andere KDE-Anwendungen und Skripte.
Für eine KDE-Anwendung, die von der DCOP-Schnittstelle von Kpl Gebrauch machen soll, sollten Sie die Header-Datei kpl_stub.h einbinden, die im Verzeichnis $KDEDIR/include installiert ist. Sie müssen außerdem die Datei kpl_stub.cpp aus $KDEDIR/share/apps/kpl übersetzen und zu Ihrer Anwendung binden. Diese beiden Dateien stellen die DCOP-Schnittstellenfunktionen von Kpl als Methoden der Klasse KplApp_stub zur Verfügung. Ein C++-Beispiel demo1.cpp, das sie nutzt, ist im Verzeichnis $KDEDIR/share/apps/kpl installiert.
Der KDE XmlRpc Daemon (kxmlrpcd) eröffnet einen Weg, die DCOP-Schnittstelle von Kpl von Skripten verschiedener Sprachen durch remote procedure calls (RPC) mittels XML und HTTP zu nutzen. Ein in Python geschriebenes Beispiel demo1.py ist im Verzeichnis $KDEDIR/share/apps/kpl installiert. Es läßt praktisch dasselbe wie das C++-Beispiel ablaufen. Um es auzuführen, müssen Sie die Python-XML-RPC-Bibliothek http://www.pythonware.com/downloads/xmlrpc-0.9.8-990621.zip in Ihr Python-Verzeichnis (z. B. /usr/lib/python1.5) entpacken. Beachten Sie, daß der Authentifizierungsmechanismus von kxmlrpc als allerersten Parameter die Authentifizierungszeichenkette beim Aufruf jeder Schnittstellenfunktion benötigt.
Um die DCOP-Schnittstelle von Kpl zu testen, können Sie auch die KDE-DCOP-Hilfsprogramme dcop (Kommandozeile) und kdcop (GUI) benutzen.
Bei einigen Installationen führt der XmlRpc Daemon von KDE 2.1.1 leider noch zu Fehlern aufgrund von unvollständigen remote procedure calls, wenn dabei mehr als 1 KByte übertragen werden müssen. Dies passiert bei Nutzung von Funktionen mit sehr langen Parameterlisten wie newFrameItem() (siehe unten). Bis das Problem auf gründlichere Weise gelöst ist, können Sie einen Patch auf den Quellcode von kxmlrpcd anwenden. Die Patch-Datei mit dem Namen kxmlrpcserver-patch ist im Verzeichnis $KDEDIR/share/apps/kpl installiert. Sie vergrößert einfach die Größe eines Puffers von 1 K auf 4 K. Sie müssen das Paket mit dem Quellcode von kdebase-2.1.1 (erhältlich auf ftp://ftp.kde.org/pub/kde/) entpacken und den Patch im Verzeichnis kdebase-2.1.1/kxmlrpc anwenden durch Eingabe von
% patch -p0 < kxmlrpcserver-patch |
Danach sollten Sie im Verzeichnis kdebase-2.1.1
% ./configure |
starten und (zumindest im Verzeichnis kdebase-2.1.1/kxmlrpc)
% make |
und (als root)
% make install |
Die gepatchte Version von kxmlrpc wird dann bei Ihrem nächsten Login aktiv.
Die DCOP-Schnittstelle von Kpl stellt die folgenden Funktionen zur Verfügung:
bool openPlot(const QString& url); |
Öffnet eine Plotdatei.
Parameter:
URL der Datei.
Rückgabewert: true bei Erfolg.
bool openData(const QString& url); |
Öffnet eine Datendatei.
Parameter:
URL der Datei.
Rückgabewert: true bei Erfolg.
bool savePlot(const QString& url); |
Speichert Plotdatei.
Parameter:
URL der Datei.
Rückgabewert: true bei Erfolg.
bool savePS(const QString& url, int landscape); |
Erzeugt PostScript-Datei.
Parameter:
URL der Datei.
true für Querformat.
Rückgabewert: true bei Erfolg.
bool printPlot(const QString& printerName, const QString& fileName, int landscape, int numCopies); |
Druckt aktuellen Plot aus.
Parameter:
Name des Druckers.
Name einer Ausgabedatei (leer bei Ausgabe auf Drucker).
true für Querformat.
Anzahl Kopien.
Rückgabewert: true bei Erfolg.
void setAutoplotOption(int setting); |
Legt Autoplot-Einstellung fest.
Parameter:
true für automatisches Plotten nach Änderungen.
void setAddFilesOption(int setting); |
Legt Einstellung für Dateien hinzufügen fest.
Parameter:
true für Hinzufügen von Plot- und Datendateien zu existierenden Plots.
void setPathOption(int setting); |
Legt Einstellung für Abspeicherung absoluter/relativer Pfade fest.
Parameter:
true für Speichern absoluter Pfade.
void setBoundingBoxOption(int setting); |
Legt Einstellung für Berechnung der PostScript Bounding Box fest.
Parameter:
true für automatisches Berechnen der Bounding Box.
void setPageFormat(double w, double h); |
Stellt Seitenformat ein.
Parameter:
Breite in cm.
Höhe in cm.
void setColors(const QString& colFrame, const QString& colGrid, const QString& colData); |
Stellt Standardfarben ein (hexadezimalkodierte RGB-Zeichenketten, z. B. "ff" für rot).
Parameter:
Farbe für Rahmen und Beschriftung.
Farbe für Gitter und Tickmarken.
Farbe für Linien und Symbole.
void setOutputFormat(const QString& pres, int prec); |
Stellt Format für numerische Ausgaben ein.
Parameter:
Darstellungszeichen entsprechend der Funktion printf().
Genauigkeit.
void setAutoplot(double x0, double w, double y0, double h, int gridmode, const QString& sx, const QString& sy, const QString& sh, int pathHeading, int ix, int iy, int ie, int logx, int logy, int errbars, int symb, int autoNorm, int autoFit); |
Setzt Autoplot-Einstellungen.
Parameter:
linker Seitenrand in cm.
Breite des Datenfensters in cm.
unterer Seitenrand in cm.
Höhe des Datenfensters in cm.
0 für nur Rahmen, 1 für Achsen mit Tickmarken, 2 für Achsen mit Tickmarken und Beschriftung, 3 für Gitter, 4 für Gitter mit Beschriftung.
x-Achsentext.
y-Achsentext.
Kopfzeilentext.
true für Kopfzeile = Pfad.
x-Spaltenindex.
y-Spaltenindex.
Fehlerspaltenindex.
true für logarithmische Skalierung der x-Achse.
true für logarithmische Skalierung der y-Achse.
true für Zeichnen von Fehlerbalken.
0 für Kreise, < 0 für verschiedene Symbole, >0 für verschiedene Linienarten.
true für automatische Normierung.
true für automatische Parameteranpassung.
void setAutofit(const QString& path, const QString& name, int nonLin, int errCol, const QString& errModPath, const QString& errModName, int itMax, double tol, int symb, const QString& color, int showDlg, int savePar, int follow); |
Setzt Autofit-Einstellungen.
Parameter:
absoluter Pfad der Bibliothek mit der anzupassenden Funktion.
Name der anzupassenden Funktion.
true für nichtlineare Parameteranpassung.
true für Wichten der Daten durch Fehlerspalte, false für Wichten durch Fehlermodellfunktion.
absoluter Pfad der Bibliothek mit der Fehlermodellfunktion.
Name der Fehlermodellfunktion.
maximale Anzahl Iterationen (nur nichtlineare Anpassung).
Toleranz (nur nichtlineare Anpassung).
Funktionsplot: 0 für Kreise, < 0 für verschiedene Symbole, >0 für verschiedene Linienarten.
Farbe für Funktionsplot.
true für Anzeige des Dialogs Parameteranpassung.
true für Speichern der resultierenden Parameter in Dateienfiles.
true für Parametern folgen bei Serien von Anpassungen.
bool loadAutofitPar(const QString& url); |
Lädt Parametersatz der Autofit-Funktion von Datei.
Parameter:
URL der Datei.
Rückgabewert: true bei Erfolg.
bool setAutofitPar(int iPar, double value); |
Setzt Wert eines Parameters für Autofit-Funktion.
Parameter:
Parameterindex.
Parameterwert.
Rückgabewert: true bei Erfolg.
bool enableFitPar(int iPar, int fit); |
Legt anzupassende und nicht anzupassende Parameter fest.
Parameter:
Parameterindex.
true stellt Parameter als anzupassend ein.
Rückgabewert: true bei Erfolg.
bool loadErrModPar(const QString& url, int iArr); |
Lädt Parametersatz für Fehlermodellfunktion von Datei.
Parameter:
URL der Datei.
Feldlistenindex.
Rückgabewert: true bei Erfolg.
bool setErrModPar(int iPar, double value, int iArr); |
Setzt Wert eines Parameters einer Fehlermodellfunktion.
Parameter:
Parameterindex.
Parameterwert.
Feldlistenindex.
Rückgabewert: true bei Erfolg.
bool deleteItem(int iItem); |
Löscht Plot-Bestandteil.
Parameter:
Index des Bestandteils.
Rückgabewert: true bei Erfolg.
bool moveItem(int is, int id); |
Verschiebt Plot-Bestandteil.
Parameter:
Quellindex des Bestandteils.
Zielindex des Bestandteils.
Rückgabewert: true bei Erfolg.
void newFrameItem(double x0, double w, double y0, double h, double xmin, double xmax, double ymin, double ymax, int logx, int logy, int ndigx, int ndigy, const QString& colFrame, const QString& colGrid, double xtic, double ytic, int mticx, int mticy, int gridmode, int iex, int iey, const QString& sx, const QString& sy, const QString& sh, double relSize, int active); |
Fügt neuen Rahmen-Bestandteil hinzu.
Parameter:
linker Seitenrand in cm.
Breite in cm.
unterer Seitenrand in cm.
Höhe in cm.
x-Wert für linken Rand des Datenfensters in Benutzereinheiten.
x-Wert für rechten Rand des Datenfensters in Benutzereinheiten.
y-Wert für unteren Rand des Datenfensters in Benutzereinheiten.
y-Wert für oberen Rand des Datenfensters in Benutzereinheiten.
true für logarithmische Skalierung der x-Achse.
true für logarithmische Skalierung der y-Achse.
Anzahl Nachkommastellen für x-Achse.
Anzahl Nachkommastellen für y-Achse.
Farbe für Rahmen und Beschriftung.
Farbe für Gitter und Tickmarken.
Abstand zwischen großen Tickmarken der x-Achse.
Abstand zwischen großen Tickmarken der y-Achse.
Anzahl Intervalle zwischen großen Tickmarken der x-Achse.
Anzahl Intervalle zwischen großen Tickmarken der y-Achse.
0 für nur Rahmen, 1 für Achsen mit Tickmarken, 2 für Achsen mit Tickmarken und Beschriftung, 3 für Gitter, 4 für Gitter mit Beschriftung.
Logarithmus des Normierungsfaktors für x-Achse.
Logarithmus des Normierungsfaktors für y-Achse.
x-Achsentext.
y-Achsentext.
Kopfzeilentext.
relative Größe für Text, Symbole und Linienbreiten.
true für sichtbaren Bestandteil.
bool newArrayItem(const QString& path, int ix, int iy, int ie, int istart, int n, int errbars, int symb, const QString& color, double fx, double fy, int active); |
Fügt neuen Feld-Bestandteil hinzu.
Parameter:
absoluter Pfad der Datendatei.
x-Spaltenindex.
y-Spaltenindex.
Fehlerspaltenindex.
Startzeilenindex.
Anzahl Datenpunkte.
true für Zeichnen von Fehlerbalken.
0 für Kreise, < 0 für verschiedene Symbole, >0 für verschiedene Linienarten.
Farbe für Datenplot.
Normierungsfaktor für x-Werte.
Normierungsfaktor für y-Werte.
true für sichtbaren Bestandteil.
Rückgabewert: true bei Erfolg.
bool newFunItem(const QString& path, const QString& name, double xmin, double xmax, double dx, int symb, const QString& color, double fx, double fy, int active); |
Fügt neuen Funktions-Bestandteil hinzu.
Parameter:
absoluter Pfad der Funktionsbibliothek.
Name der Funktion.
minimaler Wert des Arguments.
maximaler Wert des Arguments.
Schrittweite der Argumentenwerte.
0 für Kreise, < 0 für verschiedene Symbole, >0 für verschiedene Linienarten.
Farbe für Funktionsplot.
Normierungsfaktor für x-Werte.
Normierungsfaktor für y-Werte.
true für sichtbaren Bestandteil.
Rückgabewert: true bei Erfolg.
bool newParFunItem(const QString& pathx, const QString& namex, const QString& pathy, const QString& namey, double tmin, double tmax, double dt, int symb, const QString& color, double fx, double fy, int active); |
Fügt neuen Bestandteil Parametrische Funktion hinzu.
Parameter:
absoluter Pfad der Bibliothek mit derFunktion für die y-Werte.
Name der Funktion für die x-Werte.
absoluter Pfad der Bibliothek mit der Funktion für die y-Werte.
Name der Funktion für die y-Werte.
minimaler Wert des Arguments.
maximaler Wert des Arguments.
Schrittweite der Argumentenwerte.
0 für Kreise, < 0 für verschiedene Symbole, >0 für verschiedene Linienarten.
Farbe für Funktionsplot.
Normierungsfaktor für x-Werte.
Normierungsfaktor für y-Werte.
true für sichtbaren Bestandteil.
Rückgabewert: true bei Erfolg.
void newLegendItem(int symb, const QString& colSymb, double x, double y, const QString& text, const QString& colText, double xoff, double yoff, double relSize, int active); |
Fügt neuen Legenden-Bestandteil hinzu.
Parameter:
0 für Kreise, < 0 für verschiedene Symbole, >0 für verschiedene Linienarten.
Farbe des Symbols oder der Linie.
x-Position in cm.
y-Position in cm.
Text.
Farbe des Texts.
x-Offset des Texts in cm.
y-Offset des Texts in cm.
relative Zeichengröße.
true für sichtbaren Bestandteil.
void newTextItem(const QString& text, const QString& color, int align, double x, double y, double dir, double relSize, int active); |
Fügt neuen Text-Bestandteil hinzu.
Parameter:
Text.
Farbe des Texts.
1: linksbündig, 2: zentriert, 3: rechtsbündig.
x-Position in cm.
y-Position in cm.
Richtung in Grad.
Relative Zeichengröße.
true für sichtbaren Bestandteil.
void newLineItem(int symb, const QString& color, double x, double y, double dir, double len, double relSize, int active); |
Fügt neuen Linien-Bestandteil hinzu.
Parameter:
1 bis 9 für verschiedene Linienarten.
Farbe der Linie.
x Startposition in cm.
y Startposition in cm.
Richtung in Grad.
Länge in cm.
Relative Breite.
true für sichtbaren Bestandteil.
void newArrowItem(const QString& color, double x, double y, double dir, double len, double relSize, int active); |
Fügt neuen Pfeil-Bestandteil hinzu.
Parameter:
Farbe des Pfeils.
x Position der Spitze in cm.
y Position der Spitze in cm.
Richtung in Grad.
Gesamtlänge in cm.
Relative Größe der Pfeilspitze.
true für sichtbaren Bestandteil.
void newRectangleItem(const QString& color, double x, double y, double w, double h, double relSize, int fill, int active); |
Fügt neuen Rechteck-Bestandteil hinzu.
Parameter:
Farbe des Rechtecks.
x-Position der linken Seite in cm.
y-Position der unteren Seite in cm.
Breite in cm.
Höhe in cm.
relative Linienbreite.
true für mit Farbe gefülltes Rechteck.
true für sichrbaren Bestandteil.
void newEllipseItem(const QString& color, double x, double y, double w, double h, double relSize, int fill, int active); |
Fügt neuen Ellipse-Bestandteil hinzu.
Parameter:
Farbe der Ellipse.
x-Position des Zentrums in cm.
y-Position des Zentrums in cm.
Breite in cm.
Höhe in cm.
relative Linienbreite.
true für mit Farbe gefüllte Ellipse.
true für sichrbaren Bestandteil.
bool autoScaleFrame(int iItem, int autoNorm); |
Skaliert Rahmen automatisch gemäß allen zugehörigen Bestandteilen.
Parameter:
Index des Rahmen-Bestandteils.
true für zusätzliche automatische Normierung.
Rückgabewert: true bei Erfolg.
bool loadPar(const QString& url, int iItem, int yFun); |
Lädt Parametersatz für Funktion von Datei.
Parameter:
URL der Datei.
Index des Funktions-Bestandteils.
true für y-Funktionsparameter, false für x-Funktionsparameter (nur für parametrische Funktionen).
Rückgabewert: true bei Erfolg.
bool setPar(int iItem, int iPar, double value, int yFun); |
Setzt Wert eines Funktionsparameters.
Parameter:
Index des Funktions-Bestandteils.
Parameterindex.
Parameterwert.
true für y-Funktionsparameter, false für x-Funktionsparameter (nur für parametrische Funktionen).
Rückgabewert: true bei Erfolg.
bool setArrayRange(int iItem, int iStart, int n); |
Legt Zeilenbereich eines Felds fest.
Parameter:
Index des Feld-Bestandteils.
Startzeilenindex.
Anzahl Datenpunkte.
Rückgabewert: true bei Erfolg.
bool addFitItems(int erase, int iArr, int iFun, int errCol, const QString& errModPath, const QString& errModName); |
Fügt Feld- und Funktions-Bestandteile zu Listen für (multidimensionale) Parameteranpassung hinzu.
Parameter:
true: löscht Liste vorher.
Index des Feld-Bestandteils.
Index des Funktionsbestandteils.
true für Wichten der Daten durch Fehlerspalte, false für Wichten durch Fehlermodellfunktion.
absoluter Pfad der Bibliothek mit der Fehlermodellfunktion.
Name der Fehlermodellfunktion.
Rückgabewert: true bei Erfolg.
bool fit(int nonLin, int savePar, int follow); |
Führt Parameteranpassung durch.
Parameter:
true für nichtlineare Parameteranpassung.
true für Speichern der resultierenden Parameter in Datei.
true für Parametern folgen bei Serienanpassungen.
Rückgabewert: true bei Erfolg.
double chiSquare(); |
Gibt Chi-Quadrat-Wert der letzen Parameteranpassung zurück.
Rückgabewert: Chi-Quadrat.
bool saveFitPar(const QString& url); |
Speichert aus einer Anpassung resultierende Parameter und ihre Fehler in einer Datei.
Parameter:
URL der Datei.
Rückgabewert: true bei Erfolg.
bool exportValues(const QString& url, int iItem); |
Exportiert Funktionswertetabelle in Datei.
Parameter:
URL der Datei.
Index des Funktions-Bestandteils.
Rückgabewert: true bei Erfolg.