Programmer`s Guide
Transcription
Programmer`s Guide
LabVIEW WebPager 0.61.2 [email protected] No front panel should be a hostage! Version: 0.61.2 Programmer’s Guide August 2014 Programmer’s Guide 1 LabVIEW WebPager 0.61.2 [email protected] Overview WebPager is a LabVIEW add-on that allows accessing LabVIEW front panel from a browser without any modifications in the LabVIEW block diagram and without installing any plugins in user’s browser. It doesn’t require LabVIEW RunTime Engine on client machines. The user interface created by WebPager uses only standard web-technologies – HTML5, CSS3, JavaScript. WebPager maintains quasi real-time control over front panel via Internet from any browser-enabled device and operating system – Windows, Mac, Linux, Android, iPad, etc. Moreover, WebPager also provides API for programmatic access of its functionality. WebPager is suitable for all types of developers. First, it can be used for putting LabVIEW application online in one click via Wizard - without any modifications in the LabVIEW source code. Second, it can be used in a more flexible ways by programmatically controlling WebPager (and not using Wizard). And third, WebPager can be used for merging LabVIEW front panel and external HTML code together for those with a good knowledge of web technologies, thus allowing having user interfaces and effects that are impossible to achieve on LabVIEW front panel itself. WebPager features: - Accessing LabVIEW front panel from a browser without any modifications in the LabVIEW block diagram (via Wizard). - Solid API for programmatic control of front panel in the browser. - Users don’t need to install neither plugins nor LabVIEW Run-Time Engine. - Cross-platform access through HTML5 capable browsers. Programmer’s Guide 2 LabVIEW WebPager 0.61.2 [email protected] - Ability to merge together LabVIEW front panel and external HTML and CSS. - One-to-one correspondence of front panel and generated HTML-page. - “Value Change” events are fired in LabVIEW program when a remote user interacts with a web-page. - UTF-8 support (you can use Russian or Chinese characters on the front panel and in transmitted data). - There is no need to install any servers or open any ports for your clients in the Internet. Now let’s talk about underlying technology. While we invest our time and our best efforts, that’s clearly not the only magical part in our recipe. What you’ll be using is possible due to the new Internet communication protocol – the web sockets. In the pre-HTML5 era one sure way to update the web page (without using plugins like Adobe Flash Player or Microsoft Silverlight) was to use polling techniques (polling, long-polling, streaming). What it means for us, LabVIEW developers? Suppose you have a very simple front panel with the only UI element on in – Boolean Push Button. When user clicks that button on the web page, LabVIEW application has to know somehow that it happened (remember, in HTML world server can’t send any information to the client – only client can request it and server respond). So, in order to know, both clients would poll the server on regular basis, let’s say once per second. With this polling each request would contain our information (state of the Boolean in the body section of the request, 8 bytes) and an ‘overhead’ (all the information in the header section, up to 1.5 kb). In this situation we would have constant traffic on both sides and big latencies for zero useful information (if there are no updates). With web sockets protocol all this has changed – main problems solved, and it’s a high time to bring this change to the LabVIEW world. Programmer’s Guide 3 LabVIEW WebPager 0.61.2 [email protected] Usage Notes LabVIEW WebPager transforms LabVIEW front panel layout (with supported UI elements) into HTML5 page and organizes the communication between a target VI and a newly created web page in the modern browser. Notes: - For consistent appearance application font should be changed to any named font (for example, to “Courier New”). Any encountered “Application Font” will be treated as “Arial”. - Currently only one pane per VI is supported. - Only HTML5-capable browsers will be able to display generated webpage. Browsers that fail adhere to WWW standards will also fail to draw front panel correctly. It is currently recommended to use following browsers (in descending order of preference): Google Chrome, Mozilla Firefox, Opera, and Internet Explorer. Programmer’s Guide 4 LabVIEW WebPager 0.61.2 [email protected] Using WebPager Publishing Wizard. WebPager Wizard is available from LabVIEW menu Tools >> WebPager >> Publishing Wizard. It can be launched at any time during program operation. When target VI is stopped WebPager Wizard also stops. Read WebPager Wizard Reference to know more. Programmer’s Guide 5 LabVIEW WebPager 0.61.2 [email protected] Using WebPager API. WebPager API VIs are accessible from LabVIEW Functions ‘Data Communication’ palette: In the simplest case you can use Express API VI like this (from WebPager examples folder <LabVIEW>\examples\vfpsoft.com\WebPager\Examples\API Usage\Express API usage (WebPager Demo).vi): Read WebPager API Reference to know more. Programmer’s Guide 6 LabVIEW WebPager 0.61.2 [email protected] Supported Programmatic properties of the Front Panel Elements Waveform Graph: № 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Property Position Size (width x height) Caption or Label text value Caption or Label text position Caption or Label text size Caption or Label text color Caption or Label text font Caption or Label text style Autoscale X Autoscale Y Min X, Max X Min Y, Max Y Plot interpolation Plot point styles 15 16 17 Plot point fill color Fill base line Bar Plots 18 19 20 21 Plot Line Width Plot Color Plot tooltip text Plot Legend Comments Plain, bold, italic, underline or strikeout If autoscale of axis X is turned off If autoscale of axis Y is turned off None, Linear, Stepwise None, circles, filled circles, squares, filled squares, triangles, filled triangles, crosses, diamonds, filled diamonds None, zero. When used, defaults to plot line color. Only plain text (no XML tags) On, Off Example: WebPager Programmer’s Guide 7 LabVIEW WebPager 0.61.2 [email protected] Waveform Chart: № 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Property Position Size (width x height) Caption or Label text value Caption or Label text position Caption or Label text size Caption or Label text color Caption or Label text font Caption or Label text style Autoscale X Autoscale Y Min X, Max X Min Y, Max Y Plot interpolation Plot point styles 15 16 17 Plot point fill color Fill base line Bar Plots 18 19 20 21 Plot Line Width Plot Color Plot tooltip text Plot Legend Comments Plain, bold, italic, underline or strikeout If autoscale of axis X is turned off If autoscale of axis Y is turned off None, Linear, Stepwise None, circles, filled circles, squares, filled squares, triangles, filled triangles, crosses, diamonds, filled diamonds None, zero. When used, defaults to plot line color. Only plain text (no XML tags) On, Off Example: WebPager Programmer’s Guide 8 LabVIEW WebPager 0.61.2 [email protected] String Control: № 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Property Position Size (width x height) Caption or Label text value Caption or Label text position Caption or Label text size Caption or Label text color Caption or Label text font Caption or Label text style Enabled State Display Style Text Justification Text value Text size Text color Text font Text style Tooltip text Comments Plain, bold, italic, underline or strikeout Enabled, disabled, disabled and grayed out Normal, Password Left, Center, Right Plain, bold, italic, underline or strikeout Only plain text (no XML tags) Example: WebPager Programmer’s Guide 9 LabVIEW WebPager 0.61.2 [email protected] String Indicator: № 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Property Position Size (width x height) Caption or Label text value Caption or Label text position Caption or Label text size Caption or Label text color Caption or Label text font Caption or Label text style Enabled State Display Style Text Justification Text value Text size Text color Text font Text style Tooltip text Comments Plain, bold, italic, underline or strikeout Enabled, disabled, disabled and grayed out Normal, Password Left, Center, Right Plain, bold, italic, underline or strikeout Only plain text (no XML tags) Example: WebPager Programmer’s Guide 10 LabVIEW WebPager 0.61.2 [email protected] Text Decorations: № 1 2 3 4 5 6 7 Property Position Text value Text Justification Text size Text color Text font Text style Comments Left, Center, Right Plain, bold, italic, underline or strikeout Example: WebPager Programmer’s Guide 11 LabVIEW WebPager 0.61.2 [email protected] Front Panel: № 1 2 3 4 5 Property Size (width x height) Background color Background image Background image position Front Panel Title Comments Corresponds to minimum width and height of the web-page PNG, JPG, GIF, BMP Tile (default), Stretch, Center Window Title in the VI Properties >> Window Appearance if “Same as VI name” unchecked, or VI name otherwise Example: WebPager Programmer’s Guide 12 LabVIEW WebPager 0.61.2 [email protected] Numeric Control: № 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Property Position Size (width x height) Caption or Label text value Caption or Label text position Caption or Label text size Caption or Label text color Caption or Label text font Caption or Label text style Enabled State Display Style Text Justification Text value Text size Text color Text font Text style Tooltip text Comments Plain, bold, italic, underline or strikeout Enabled, disabled, disabled and grayed out Normal, Password Left, Center, Right Plain, bold, italic, underline or strikeout Only plain text (no XML tags) Example: WebPager Programmer’s Guide 13 LabVIEW WebPager 0.61.2 [email protected] Slider Control: № 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Property Position Size of the range bar (width x height) Caption or Label text value Caption or Label text position Caption or Label text size Caption or Label text color Caption or Label text font Caption or Label text style Enabled State Orientation Scale styles Comments Plain, bold, italic, underline or strikeout Enabled Horizontal/Vertical Slider styles Range Bar fill color Modern, Silver (via style definition) Tooltip text Only plain text (no XML tags) Example: WebPager Programmer’s Guide 14 LabVIEW WebPager 0.61.2 [email protected] Boolean Controls and Indicators: № 1 2 3 4 5 6 7 8 9 10 Property Position Size (width x height) Caption or Label text value Caption or Label text position Caption or Label text size Caption or Label text color Caption or Label text font Caption or Label text style Enabled State Mechanical Action Comments Plain, bold, italic, underline or strikeout Enabled, disabled, disabled and grayed out Only Booleans with “Switch” Mechanical Action can be controlled via web interface. Latched Booleans appear disabled and grayed out with a following tooltip: “To make this button accessible via web interface, change its mechanical action from 'latch' to 'switch' (button context menu->Mechanical Action)”. 11 12 13 14 15 16 17 Multiple strings Colors Boolean text value Boolean text color Icons (decals) On text, off text On, Off states colors for Round LED, Square LED, … Tooltip text Only plain text (no XML tags) Supported for “Silver” theme Example: WebPager Programmer’s Guide 15 LabVIEW WebPager 0.61.2 [email protected] Table (partially supported): № 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Property Position Size (width x height) Caption or Label text value Caption or Label text position Caption or Label text size Caption or Label text color Caption or Label text font Caption or Label text style Enabled State Visible Items: Row Headers Visible Items: Column Headers Visible Items: Vertical Lines Visible Items: Horizontal Lines Value 17 Tooltip text Comments Plain, bold, italic, underline or strikeout Enabled, disabled, disabled and grayed out All lines are visible when both Vertical Lines and Horizontal Lines are set to ‘True’, otherwise all lines are invisible At present the value is the cells is not updated dynamically – only once upon page upload. Only plain text (no XML tags) Example: WebPager Programmer’s Guide 16 LabVIEW WebPager 0.61.2 [email protected] Web-Page customization. WebPager allows adding custom HTML and CSS blocks to generated web-page. This feature gives the developer an opportunity to add purely HTML elements such as animations, pictures and other external to LabVIEW elements into the GUI. Programmer’s Guide 17 LabVIEW WebPager 0.61.2 [email protected] Appendix A. WebPager demos. Appendix A presents LabVIEW GUIs generated by WebPager automatically, i.e. without any development efforts and code modifications. This is done by calling Tools >> WebPager >> Wizard similar to “Web Publishing Tool” as far as user experience is concerned. On the left you can see LabVIEW GUIs during operation, on the right – fully interactive web-pages generated by WebPager. Programmer’s Guide 18 LabVIEW WebPager 0.61.2 Programmer’s Guide [email protected] 19 LabVIEW WebPager 0.61.2 Programmer’s Guide [email protected] 20 LabVIEW WebPager 0.61.2 [email protected] Appendix B. WebPager error codes. Errors. Error Code 500000 500001 500002 500003 500004 500005 500006 500007 500008 500009 500010 500011 500012 500013 500014 500015 500016 Error Description GUI upload to the server failed There is no info about this target VI. Probably it hasn't been uploaded yet. You are trying to use invalid or empty reference. Before calling any WebPager API VIs make sure first that you uploaded the GUI and initialized the VI reference. The plan has already expired. You can activate it from 'Account' tab in the WebPager Wizard. License key is not valid. Your current WebPager plan is 'Basic'. You can use Express API only with 'Economy', 'Pro' and 'Deluxe' accounts. To enable this functionality please upgrade to one of these plans from the WebPager Wizard ('Account' tab). You can use Basic API VIs ('Upload', 'Start' and 'Stop') only with 'Pro' and 'Deluxe' accounts. To enable this functionality please upgrade to one of these plans from the WebPager Wizard ('Account' tab). Such account doesn't exist. Register the account at WebPager first. License key for local network is not found. License key for the Internet is not found. This VI cannot access the referenced item. Use only public API VIs presented on the WebPager palette. You shouldn't use any of the private scope WebPager VIs - they are for internal use only, not supported and their interface may change at any moment. Server side error happened during activating new license. Check your registration data and account balance. If error persists, contact support. WebPager instance with the same license is already running on another computer. WebPager cannot access local network from this computer. WebPager cannot access the Internet from this computer. Upload to LAN failed. Port is already in use. Upload to LAN failed. Warnings. Error Code 500101 500102 Warning Description You are trying to start FP-WP synchronization for the VI that is already synchronized. Synchronization VI hasn't been started yet. Call 'Start FP-WP Synchronization' VI or 'WP Express' first. Programmer’s Guide 21 LabVIEW WebPager 0.61.2 Programmer’s Guide [email protected] 22