pvbrowser, pvb® - The Process Visualiation Browser.

  • English
  • Deutsch

pvslib

Controlling the pvbrowser client

The functions from pvslib control the pvbrowser client. Their names start with the letters pv for process visualization. The first parameter of nearly all pv-functions is the PARAM structure which describes the connection to pvbrowser. Especially the network socket used for communication is included there. The second parameter of nearly all pv-functions is the id of the widget you want to control. The id's are defined when you graphically design you masks and are listed in the enum at the start of each mask.

A typical pv-function

pv-functions send a "\n" terminated string to the pvbrowser client. The client will interpret this string and call the appropriate Qt function.

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 reference

The reference can also be read within the help of pvdevelop.

Hint: You can find all the functions that are related to a widget type under topic Contruction within the reference.

Communication

The communication between pvbrowser and pvserver is bidirecional. When you call a pv-function within a pvserver the according string is send to pvbrowser without a response. Thus there are no round trips within the communication. Only very few pv-functions request information from pvbrowser. The pvbrowser client will also send "\n" terminated strings to your pvserver. These strings will be parsed within the event loop of your mask and result in a call to the according slotFunction.

This type of communication results in high update rates that are possible with pvbrowser because there is no influence of the ping time round trip delays are avoided.

Further more our communication is connection oriented. That is our communication stays open for your whole session. This is in contrast to http where connectionless communication is used. This also has the advantage that a pvserver can update the pvbrowser client without the need of polling.