Home - ni/grpc-device GitHub Wiki

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