Code Monkey home page Code Monkey logo

finale's Introduction

FINALE

FINALE is a lightweight WebApp to view LabVIEW code. FINALE stands for FINALE Is Not A LabVIEW Editor.

This solves many use cases like:

  • Code sharing: Sharing LabVIEW code with a person who does not have LabVIEW installed.
  • Viewing LabVIEW code without launching LabVIEW.
  • Viewing LabVIEW code saved in incompatible version.
  • Viewing LabVIEW code that is being used with TestStand.

Contents

  • Features
  • Setting up FINALE for your code

Features

  • A left pane to display project hierarchy.
  • Search functionality to find things of interest quickly.
  • Support for viewing the following file types:
    • VI
    • CTL
    • LVClass
    • LLB
    • LVProj
    • Polymorphic VI
  • Support for viewing Multi Frame Structures like:
    • Case Structures
    • Event Structures
    • Diagram Disable Structures
    • Stacked Sequence Structures
  • Navigation to SubVIs and Dynamic Dispatch SubVIs.

Note: FINALE is not supported by National Instruments and this is mostly internal tooling that we are exposing. This is a work in progress, and is not yet feature complete.

Setting up FINALE for your code

FINALE has two parts, the HTML Generator and the WebApp. The HTML Generator converts LabVIEW code to metadata in the form of JSONs, images etc. These are input to the WebApp which opens a web-based viewer for the files converted.

Prerequisites:

  • LabVIEW: Required only for converting the files.
  • Browser: Google Chrome/Firefox (Does not have complete support in Edge)
  • npm
  • npm http-server

Note: If there are errors with the npm http-server, try installing at this version:

npm install โ€“g [email protected]

The WebApp is developed using NPM. Run the following commands to produce binaries under a "build" directory.

git clone https://github.com/ni/finale && cd finale
npm install
npm run build-webapp

Running FINALE:

Follow these instructions to run FINALE:

  • Once you have the repository built and set up according to the above commands, proceed to the next step.

  • Converting LabVIEW code to JSON:

    • Navigate to "buid/HTMLGenerator/".

    • Open Main.vi and enter values for the following:

      • Source directory/files: Path to the source LabVIEW code file(s) or folder.
      • Destination Directory: Path to the destination directory. To view the files using the WebApp, make sure your destination is set to "<Path/to/FINALE/repo>/build/src".
      • Run Main.vi and click "Convert". Main.vi

      Note: If you require certain files/projects to be preloaded for converting the files, open GeneratorUI-Advanced.vi and enter values for the following:

      • Top level output path: <Path/to/FINALE/repo>/build/src
      • Files to Preload: Array of files you want to preload. If this is left empty it is equivalent to running Main.vi.
      • File(s)/Folder to convert: Path to the source LabVIEW code file(s) or folders.
      • Destination Folder (relative to output path): This is an optional field to specify an output path for the converted files. This must be relative to the Top level output path.
  • Launching the WebApp:

    • On cmd or powershell, navigate to the "build" directory in the repo and start the npm http-server:

    http-server

    • The above command will list the converted files in the project hierarchy on the left pane.
    • FINALE should now be ready to use!

Contributing to the project

Contributions to FINALE are welcome from all!

For more details, see Contributing.md

finale's People

Contributors

abahetik avatar dependabot[bot] avatar pratheekshasn avatar ribeirojose avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.