Code Monkey home page Code Monkey logo

nipm-api-labview's Introduction

nipm-api-labview

NI Package Manager API (Beta) for LabVIEW 2014 or later.

Overview

My goal is to provide users with a beta API for NI Package Manager tasks. Please feel free to use this API, give feedback, and contribute. NI will use this feedback to create an official NIPM API in the future.

You can use this API to:

  • Install/uninstall/upgrade packages
  • Get package attributes
  • Create feeds, add packages to feeds, remove packages from feeds, list packages in feeds
  • Register/unregister feeds
  • ...

alt text

You can find content, tutorials, and additional tools for NI package management at bit.ly/nipkg

How to Install

Prerequisites:

  • LabVIEW 2014 or later
  • NI Package Manager 17.5 or later
  • Operating System: Refer to the OS requirements for NI Package Manager

Installation Instructions

  1. From LabVIEW, launch Tools»VI Package Manager, search for "NIPM API", and install it. alt text
  2. In LabVIEW, access the NIPM API by going to the Functions Palette»Addons»NIPM API.
  3. (Optional) Install the NIPM Feed Manager (Beta), and use it to manage NIPM feeds and packages.

Note: If necessary, you can find historical versions in the Exports folder.

Documentation

Refer to the Context Help and examples that ship with the installed API.

Support

This API is not officially supported by National Instruments. You can use this GitHub repository to find the source code, report issues, and contribute.

Source Code

  • Source folder - Contains the source code for this API. At a low-level, this API calls the nipkg command-line interface (CLI).
  • Build Spec folder - Contains the VIPM build spec (.vipb) used to create the .vip file.
  • Export folder - Contains versions of the VIPM package (.vip), which you can use to install this API.

nipm-api-labview's People

Contributors

allenh-ni avatar eisenwr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nipm-api-labview's Issues

Packing a package results in Error -125043: "Attribute name 'Package' does not exist."

NIPM_API.lvlib:Pack.vi always returns error -125043.

This occurs even when using the provided example [Advanced] Modify an Existing Package File (Unpack Modify Pack).vi and unpacking then repacking a package with no changes.

Possible reason(s):

Error -125043: Attribute name 'Package' does not exist.

Complete call chain:
     NIPM_API.lvlib:Call NIPKG CLI.vi
     NIPM_API.lvlib:Pack.vi
     [Advanced] Modify an Existing Package File (Unpack Modify Pack).vi

I am using version 3.2.1.9 which was distributed on VIPM. I uninstalled and reinstalled the library to confirm the bug.

Need a timeout input on "Call NIPKG CLI (runas admin).vi"

In "\vi.lib\National Instruments\NIPM API (Beta)_support\Call NIPKG CLI (runas admin).vi" there is a while loop that polls to see if nipkg.exe has completed its execution. It polls once every half second. However it runs the risk of hanging without a timeout. The user should be able to specify a timeout.

Also, there may be an alternative to the polling method to determine if installation is complete. In "https://forums.ni.com/t5/LabVIEW/SysExec-cmd-Run-as-administrator/m-p/3941031/highlight/true?profile.language=en#M1120633" rolf says that an alternative to shellExecuteA is ShellExecuteExA. But it has a complex input struct which is hard to program in LabVIEW. (https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shellexecuteexa)

Please make "Call NIPKG CLI" public.

"vi.lib\National Instruments\NIPM API (Beta)_support\Call NIPKG CLI.vi" is a very useful function. I'm not sure why this is private. Since this API doesn't expose all functions available via the command line I need to invoke this function in my code so I have access to the full command line api offered by NIPM.

UNC Package Destination Folderpath - Error

I am using a feed located on a share with UNC notation (e.g. \servername\folder...).

When the application NIPM Feed Manager is started, it reads the file Feeds.ini.
Here is the problem:
The first Read String.vi has the Boolean read raw string? set to true and the second one not.

This result in a wrong interpretation of the server name (\servername instead of \\servername).

I set the Boolean read raw string to true for the second Read String.vi and everything is ok.

Have a nice day.
Christophe

Add get-dependencies

We are missing VI that corresponds to the get-dependencies NIPM CLI call. We should add that functionality.

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.