pvbrowser, pvb® - The Process Visualiation Browser.

  • English
  • Deutsch

pvslib

Steuerung des pvbrowser Klienten

Die Funktionen von pvslib steuern den pvbrowser Klient. Ihre Namen beginnen mit den Buchstaben pv und stehen für Prozessvisualisierung. Der erste Parameter von nahezu allen pv-Funktionen ist eine PARAM-Struktur, die die Verbindung zum pvbrowser beschreibt. Insbesondere ist darin der Netzwerk-Socket für die Kommunikation enthalten. Der zweite Parameter von nahezu allen pv-Funktionen ist die id des Widgets das Sie steuern möchten. Die id's werden definiert, während Sie die Masken auf graphischem Wege entwerfen und werden in dem enum zu Beginn jeder Maske aufgelistet.

Eine typische pv-Funktion

Die pv-Funktionen senden "\n" terminierte Zeichenketten an den pvbrowser Klient. Der pvbrowser Klient interpretiert diese Zeichenfolgen und ruft Sie die entsprechende Qt-Funktion auf.

int pvSetValue(PARAM *p, int id, int value)
{
char buf[80];

  sprintf(buf,"setValue(%d,%d)\n",id,value);
  pvtcpsend(p, buf, strlen(buf));
  return 0;
}

pvslib Referenz

Die Referenz kann auch innerhalb der Hilfe von pvdevelop gelesen werden.

Tipp: Sie können alle Funktionen, die zu einem Widget-Typ verfügbar sind, unter der Rubrik Contruction innerhalb der Referenz finden.

Kommunikation

Die Kommunikation zwischen pvbrowser und pvserver ist bidirektional. Nur sehr wenige pv-Funktionen stellen Anfragen an pvbrowser. Wenn Sie eine pv-Funktion aufrufen, die eine Zeichenkette von einem pvserver an pvbrowser sendet, wird also keine Rückantwort erwartet, sondern die Befehle werden ohne Antwort ausgeführt. Auch der pvbrowser Klient sendet mit "\n" terminierte Zeichenketten zu Ihrem pvserver. Diese Zeichenketten werden im der Ereignis-Schleife der Maske in einem Aufruf der entsprechenden slotFunktion umgewandelt.

Diese Art der Kommunikation führt zu den hohen Aktualisierungsraten, die mit pvbrowser möglich sind, weil es keine Beeinflussung durch die Ping-Zeit gibt, also Rückantwort-Verzögerungen vermieden werden.

Außerdem ist unsere Kommunikation verbindungsorientiert. Das heißt, unsere Kommunikation bleibt während der gesamten Sitzung offen. Dies steht im Gegensatz zu der verbindungslosen Kommunikation beim http Protokoll. Dies hat auch den Vorteil, dass ein pvserver den pvbrowser Klienten aktualisieren kann, ohne Polling zu verwenden.