NI gRPC Support Resources & Compatibility

Overview

NI offers support for NI Remote-Ability, which leverages gRPC technology so that you can remotely access NI hardware. 

 

gRPC is not supported by NI technical support. Related questions or support are only available through github forums.

Supported Languages and Operating Systems for NI Remote-Ability

Currently there are multiple ways to use gRPC with NI instrumentation based on the type of hardware and software you want to use:

  • NI hardware with custom third-party programming languages 
  • NI gRPC Device Server and Client API
  • gRPC with LabVIEW 

Refer to the following table for information about the languages and operating systems NI supports for NI Remote-Ability.

 

NI Hardware with Custom Third-Party Programming Languages

If you are planning to use a programming language that is officially compatible with gRPC such as Python or C# (.NET), you can build your server with the help of the NI Python or .NET drivers:

You can create and implement gRPC Server and instrument control from one environment. However, notice that not every NI driver has Python or .NET support.

In this programming method, you will create and maintain the server and client in the programming language of your choice.

NI gRPC Device Server and Client API 

The server and the client APIs allow NI's instrumentation to be accessed and controlled through a remote interface through predefined APIs using a client/server architecture. The API is not a driver but instead a layer on top of the existing C driver APIs that provides remote capabilities. To use this method, you can download both the NI Device gRPC server and .proto files to generate the interfaces necessary for a client to interact with the server and to connect supported devices to the server.

In this programming method, you will create and maintain the server and client in the programming language of your choice.

Download NI gRPC Device Server and Client APIs

gRPC with LabVIEW 

You can also implement a gRPC server and client in LabVIEW. You can either use the service as defined to implement a generic server using gPRC or use the implementation as a pattern to implement a gRPC service of your design. It supports Windows, Linux, and Linux RT targets. In this method, both the server and client are created in LabVIEW.

Download gRPC Support for LabVIEW. Noteice that this repo contains the necessary C++ code and support VIs to implement. 

Exploring Examples

NI Remote-Ability examples are located in github at https://github.com/ni/grpc-labview/tree/master/examples. For information about getting started with Protobuf files refer to Protocol Buffers . 

Progamming LanguageOperating System  Compilers / SDK 
C/C++  Linux, Mac GCC 6.3+, Clang 6+  
C/C++ Windows 10+  Visual Studio 2017+ 
C#  Linux, Mac .NET Core, Mono 4+  
C# Windows 10+  .NET Core, NET 4.5+ 
Dart  Windows, Linux, Mac Dart 2.12+  
Go Windows, Linux, Mac  Go 1.13+ 
Java  Windows, Linux, Mac Java 8+ (KitKat+ for Android)  
Kotlin Windows, Linux, Mac  Kotlin 1.3+ 
Node.js  Windows, Linux, Mac Node v8+  
Objective-C macOS 10.10+, iOS 9.0+  Xcode 12+ 
PHP  Linux, Mac PHP 7.0+  
Python Windows, Linux, Mac  Python 3.5+ 
Ruby  Windows, Linux, Mac Ruby 2.3+