Aind.Ni.DigitalOutput.Configuration 1.2.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Aind.Ni.DigitalOutput.Configuration --version 1.2.0
                    
NuGet\Install-Package Aind.Ni.DigitalOutput.Configuration -Version 1.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Aind.Ni.DigitalOutput.Configuration" Version="1.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Aind.Ni.DigitalOutput.Configuration" Version="1.2.0" />
                    
Directory.Packages.props
<PackageReference Include="Aind.Ni.DigitalOutput.Configuration" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Aind.Ni.DigitalOutput.Configuration --version 1.2.0
                    
#r "nuget: Aind.Ni.DigitalOutput.Configuration, 1.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Aind.Ni.DigitalOutput.Configuration@1.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Aind.Ni.DigitalOutput.Configuration&version=1.2.0
                    
Install as a Cake Addin
#tool nuget:?package=Aind.Ni.DigitalOutput.Configuration&version=1.2.0
                    
Install as a Cake Tool

aind-ni-digitaloutput-configuration

License .NET Framework Bonsai

A Bonsai library for configuring NI-DAQmx Digital Output Channels externally from workflows.

Overview

This package provides a node for exposing NI-DAQmx Digital Output Channel configuration properties that can be set externally from workflows, instead of only through the Bonsai UI. This enables programmatic configuration and better workflow automation for digital output tasks.

Version 1.2.0 includes new property mapping capabilities to fix "Expression must be writeable" errors and compatibility fixes for CI/CD builds with published Bonsai.DAQmx NuGet packages.

Installation

To install the aind-ni-digitaloutput-configuration package:

  1. Open Bonsai
  2. Click on the "Tools" menu and select "Manage Packages"
  3. Click on "Settings" and add the NuGet package source where this package is hosted
  4. Search for "Aind.Ni.DigitalOutput.Configuration" and install

Prerequisites

  • Windows Operating System - Bonsai and NI-DAQmx are Windows-only
  • NI-DAQmx Runtime - Install the National Instruments DAQmx drivers
  • Bonsai - Version 2.9.0 or later

Key Components

  • DigitalOutputConfigurationSource: Generates a configuration object for Digital Output Channels that can be used with other DAQmx nodes
  • DigitalOutputConfig: Configuration object containing channel setup parameters
  • DigitalLineGrouping: Enum specifying how to group digital lines into virtual channels

Example

See the examples directory for sample workflows:

Usage

When you need to configure the Channels property of a DigitalOutput node directly:

  1. Add a ConfigureDigitalOutputChannels node to your workflow
  2. Configure the properties:
    • ChannelName: Name for the virtual channel
    • Lines: Physical lines to use (e.g., "Dev1/port0/line0:7")
    • Grouping: How to group the lines
  3. Connect the output directly to the Channels property of a DigitalOutput node
  4. This approach avoids the "Expression must be writeable" error

Method 2: Configuration Source (For general configuration)

When you need to generate configuration data for custom processing:

  1. Add a DigitalOutputConfigurationSource node to your Bonsai workflow
  2. Configure the properties as needed:
    • ChannelName: Name for the virtual channel
    • Lines: Physical lines to use (e.g., "Dev1/port0/line0:7")
    • Grouping: How to group the lines
  3. Connect the output to custom nodes that process DigitalOutputConfig objects

Method 3: External Configuration Class

For advanced scenarios requiring custom property mapping:

  1. Use the DigitalOutputChannelConfig class in your custom combinators
  2. This class provides implicit conversion to DigitalOutputChannelConfiguration
  3. Suitable for building reusable configuration components

Configuration

  • ChannelName: The name to assign to the local created virtual channel. If not specified, the physical channel name will be used.
  • Lines: The names of the digital lines or ports used to create the local virtual channel (e.g., "Dev1/port0", "Dev1/port0/line0:7").
  • Grouping: Specifies how to group digital lines into one or more virtual channels:
    • OneChannelForEachLine: Create one virtual channel for each line
    • OneChannelForAllLines: Create one virtual channel for all lines

DigitalOutputConfigurationSource Properties (For Configuration Data Generation)

  • ChannelName: The name to assign to the local created virtual channel. If not specified, the physical channel name will be used.
  • Lines: The names of the digital lines or ports used to create the local virtual channel (e.g., "Dev1/port0", "Dev1/port0/line0:7").
  • Grouping: Specifies how to group digital lines into one or more virtual channels:
    • OneChannelForEachLine: Create one virtual channel for each line
    • OneChannelForAllLines: Create one virtual channel for all lines

Output

ConfigureDigitalOutputChannels Output

This node produces DigitalOutputChannelConfiguration objects that can be directly connected to the Channels property of DigitalOutput nodes. This is the recommended approach for property mapping scenarios.

DigitalOutputConfigurationSource Output

This node produces DigitalOutputConfig objects that contain:

  • ChannelName: The configured channel name
  • Lines: The configured physical lines
  • Grouping: The configured line grouping

This configuration object can be consumed by custom nodes or used to programmatically configure digital output channels.

Deployment

This package is automatically deployed to NuGet.org via a GitHub Actions workflow when a new tag is created on the main branch.

To trigger a deployment:

  1. Ensure the Version property in src/Aind.Ni.DigitalOutput.Configuration/Aind.Ni.DigitalOutput.Configuration.csproj is updated to the desired new version.
  2. Commit and push any changes to the main branch.
  3. Manually trigger the "Tag and Publish" workflow in the Actions tab of the GitHub repository.
    • Set the "Publish to NuGet" input to true.
    • The workflow will:
      • Read the version from the .csproj file.
      • Create a new Git tag in the format v<version>.
      • Build the project.
      • Pack the NuGet package.
      • Push the package to NuGet.org using the NUGET_API_KEY repository secret.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Product Compatible and additional computed target framework versions.
.NET Framework net472 is compatible.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.10.0 168 7/3/2025
1.9.0 154 7/3/2025
1.8.15 143 7/3/2025
1.8.14 144 7/3/2025
1.8.8 147 7/3/2025
1.8.7 145 7/2/2025
1.8.6 139 7/2/2025
1.8.5 140 7/2/2025
1.8.3 137 7/2/2025
1.8.2 141 7/2/2025
1.8.1 142 7/2/2025
1.8.0 140 7/2/2025
1.7.0 145 7/2/2025
1.6.0 149 6/30/2025
1.5.1 235 6/9/2025
1.2.0 126 6/7/2025
1.1.0 123 6/7/2025