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.
Currently there are multiple ways to use gRPC with NI instrumentation based on the type of hardware and software you want to use:
Refer to the following table for information about the languages and operating systems NI supports for NI Remote-Ability.
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.
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
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.
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 Language | Operating 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+ |