How ni/grpc-device works
NI gRPC Device Server exposes remote, protobuf-defined control of NI instrumentation rather than replacing NI drivers. The principal workflow is: a client sends an API request, the server dispatches it to a generated or custom driver service, the service resolves sessions and converts data, then calls an NI driver library and returns a protobuf response. Metadata-driven generation and staged client artifacts support the broad DAQ, power, measurement, RF, scope, switching, synchronization, VISA, and XNET API surface. Runtime wiring is partly inferred from sampled custom services and repository helpers.
Components 20
Client API
- Protobuf Contracts
imports/protobuf/nidevice.proto - Client Artifacts
source/codegen/stage_client_files.py
Protocol Generation
- Driver Metadata
source/codegen/metadata - Service Generator
source/codegen/generate_service.py
Server Runtime
- gRPC Endpoint
- Generated Services
source/codegen/generate_service.py - Custom Services
source/custom - Data Converters
source/server/converters.h - Session Repository
source/server/session_repository.cpp - Resource Mapping
source/server/session_resource_repository.h - Session Reservations
source/server/session_repository.cpp
Instrument Domains
- DAQ Power Measurement
source/codegen/metadata - Digital FPGA Generation
source/codegen/metadata - RF Instrumentation
source/codegen/metadata - Scope Switch Sync
source/codegen/metadata - VISA XNET
source/codegen/metadata
External Systems
- NI Driver Libraries
- NI Hardware
- NI System Configuration
Other components
- gRPC Client
Connections 19
- gRPC Client → gRPC Endpoint: sends requests
- gRPC Endpoint → Generated Services: dispatches calls
- Protobuf Contracts → Generated Services: defines messages
- Driver Metadata → Service Generator: configures generation
- Service Generator → Generated Services: generates services
- Service Generator → Client Artifacts: generates clients
- Custom Services → Session Repository: accesses sessions
- Custom Services → Resource Mapping: maps resources
- Resource Mapping → Session Repository: manages sessions
- Custom Services → Session Reservations: uses reservations
- Custom Services → Data Converters: converts data
- Custom Services → NI Driver Libraries: calls driver APIs
- NI Driver Libraries → NI Hardware: controls hardware
- DAQ Power Measurement → Generated Services: defines APIs
- Digital FPGA Generation → Generated Services: defines APIs
- RF Instrumentation → Generated Services: defines APIs
- Scope Switch Sync → Generated Services: defines APIs
- VISA XNET → Generated Services: defines APIs
- Custom Services → NI System Configuration: reads properties