Skip to content
ni-siray edited this page May 5, 2021 · 29 revisions

NI Device gRPC Server and Client API Wiki

This wiki contains detailed information on using the NI Device gRPC Server and its corresponding client APIs beyond what is described in the readme.

This repo provides software capability that allows NI’s instrumentation to be accessed and controlled through a remote interface via pre-defined APIs on multiple platforms using a client/server architecture. It contains both the NI Device gRPC Server and .proto files that can be used to generate the interfaces necessary for a client to interact with the server and supported devices connected to the server. It provides the following benefits:

  • Allows users to remotely control NI instrumentation through an API that mirrors NI's existing C driver API
  • The API is not built into each instrument driver and instead is a layer on top of the driver. As a result no driver install is needed on the client machine.
  • The client can be used on multiple platforms and users can use the API in their preferred programming language (see list of supported languages).

The underlying technology used for network communication is the Google-invented, open-source, remote procedure technology called gRPC. Read more about gRPC here.

Additional benefits of this client/server architecture are:

  • Flexibility when integrating NI solutions into existing test infrastructure
  • Enables control of test system from client machines where NI driver stack is not available
  • Avoids driver installation on client machines
  • Minimizes time to first measurement

Supported NI drivers

|NI Driver|Minimum Version Tested (Windows)|Minimum Version Tested (Linux)|Minimum Version Tested (Linux RT)| | :- | :- | | NI-DCPOWER | 20.6 ||| | NI-DMM | 20.0.0 ||| | NI-SCOPE | 20.7 ||| | NI-SWITCH | 20.0.0 |||

Table of Contents

Internal Development

Creating and Setting Up a gRPC Server

Server Security Support

Creating a gRPC Client

gRPC Client Examples

Session Utilities API Reference

Driver Documentation

gRPC API Differences From C API

Sharing Driver Sessions Between Clients

C API Docs
NI-DAQmx
NI-DCPOWER
NI-DIGITAL PATTERN DRIVER
NI-DMM
NI-FGEN
NI-FPGA
NI-RFmx Bluetooth
NI-RFmx NR
NI-RFmx WCDMA
NI-RFmx GSM
NI-RFmx CDMA2k
NI-RFmx Instr
NI-RFmx LTE
NI-RFmx SpecAn
NI-RFmx TD-SCDMA
NI-RFmx WLAN
NI-RFSA
NI-RFSG
NI-SCOPE
NI-SWITCH
NI-TCLK
NI-XNET
Clone this wiki locally