Built on WebSocket. Uses binary format for value updates and JSON for other info, which gives you the maximum efficiency and flexibility.
Extensible to any data source from any area: SCADA, Science, Finance, Health, Internet of Things and much more. EPICS and OPC support are currently included.
Can be implemented with any language that supports WebSocket. Current implementation is based on JSR356 on server side and JavaScript on client side.
Focus on your data, instead of communications. Allows binding a
widget to data in one line of code.
Built-in authentication and authorization support. Data can be
encrypted with TLS.
Few lines code would allow you connecting to your data:
var wsUrl = "ws://localhost:8080/webpda/webpda"; var wp = new WebPDA(wsUrl, "myname", "mypassword"); var pv = wp.createPV("sim://noise", 1000, false); pv.addCallback(function(evt, pv, data) { switch (evt) { case "conn": //connection state changed break; case "val": //Value changed. Add code here to process the new data break; case "bufVal": //Buffered values changed break; case "error": //error happened break; case "writePermission": // write permission changed. break; case "writeFinished": // write operation finished. break; default: break; } }); //Write PV. pv.setValue(10); //Close PV pv.close();
Pre-wrapped widgets allows binding a widget with PV in one line of code:
<div class="webpda-widgets" data-widget="rgraph-gauge" data-pvname="sim://noise"></div>