Har du prøvet at lave brugerflader med Web Module i LabVIEW NXG? Her i blogindlægget giver Poul Lindholm Pedersen, Ph.D. Physics et overblik over mulighederne.
En af de store nyskabelser i LabVIEW NXG er Web Module. Web Module åbner op for at lave websider direkte i LabVIEW, og gør overgangen mellem VIs og internettet langt simplere. Det gøres gennem de nye webVIs, hvor man kort sagt kan lave frontpanelet om til en webside, mens man beholder blokdiagrammets funktionalitet.
WebVIs
Fordelene ved webVIs er, at man som LabVIEW-udvikler let kan lave en webside uden at skulle bekymre sig om HTML, CSS, JavaScript osv. Det er nemt at forbinde en webVI med en almindelig VI, så man kan let lave en mere moderne brugerflade til sin applikation, der kan tilgås overalt. Modsat web-publishing i tidligere versioner af LabVIEW så kræver webVIs ikke nogen downloads for at fungere – alle browsere vil kunne åbne den.
WebVIs fungerer på mange måder som almindelige VIs. De normale kontroller på frontpanelet er erstattet af widgets, men det grafiske udtryk er præcist det samme. Når webVI’en kompileres, bliver frontpanelet oversat til HTML/CSS, og blokdiagrammet bliver oversat til JavaScript. Da hele websiden består af HTML og JavaScript, er det også nemt at modificere koden uden for LabVIEW, ligesom man også kan tilføje tredjeparts widgets gennem den indbyggede JavaScript Library Interface.
For at gøre webVIs kompatible med mobile enheder og tablets er det i Web Module gjort nemt at skalere frontpanelet, så siden kan ses på alle størrelser af skærme. Det sker i praksis ved at gruppere widgets i bokse, der dynamisk tilpasser sig skærmens størrelse.
Data services
Ud over WebVIs er der i Web Module også forskellige data-services tilgængeligt, så websiden kan forbindes til f.eks. en backend. Der er pt. mulighed for at bruge tre forskellige API’er: HTTP, WebSocket og SystemLink. HTTP er den velkendte protokol fra internettet, og fra en webVI kan man tilgå et hvilket som helst API, der overholder REST-kravene. WebSocket er en kontinuert TCP-forbindelse, og i modsætning til HTTP-protokollen er den fuld duplex. Det vil sige, at der kan transmitteres data i begge retninger på samme tid. SystemLink er NI’s service til at integrere og administrere distribuerede systemer.
HTTP er et godt allround valg, da den giver høj fleksibilitet, og er meget udbredt. Websocket egner sig godt til streaming og kommunikation med lav latenstid, men kan være mere besværlig at implementere på server-siden, da der endnu ikke eksisterer en løsning, hvor sikkerheden er implementeret. SystemLink egner sig godt til at kommunikere mellem LabVIEW-applikationer eller op mod en NI Web Server.
NI Web server
NI Web Server er også en del af Web Module, og med den kan man opsætte en server, der kan hoste en webVI. En af de vigtigste features er, at serveren har indbygget sikkerhedsopsætning, så man kan sikre adgangen til ens brugerflade. Som et alternativ til NI Web Server, kan man også hoste sin webVI gennem SystemLink Cloud, så man undgår selv at skulle vedligeholde en server.