Aind.Ni.DigitalOutput.Configuration
1.2.0
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
<PackageReference Include="Aind.Ni.DigitalOutput.Configuration" Version="1.2.0" />
<PackageVersion Include="Aind.Ni.DigitalOutput.Configuration" Version="1.2.0" />
<PackageReference Include="Aind.Ni.DigitalOutput.Configuration" />
paket add Aind.Ni.DigitalOutput.Configuration --version 1.2.0
#r "nuget: Aind.Ni.DigitalOutput.Configuration, 1.2.0"
#:package Aind.Ni.DigitalOutput.Configuration@1.2.0
#addin nuget:?package=Aind.Ni.DigitalOutput.Configuration&version=1.2.0
#tool nuget:?package=Aind.Ni.DigitalOutput.Configuration&version=1.2.0
aind-ni-digitaloutput-configuration
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:
- Open Bonsai
- Click on the "Tools" menu and select "Manage Packages"
- Click on "Settings" and add the NuGet package source where this package is hosted
- 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:
- DigitalOutputExample.bonsai - Basic digital output configuration
Usage
Method 1: Property Mapping (Recommended for DigitalOutput.Channels)
When you need to configure the Channels
property of a DigitalOutput
node directly:
- Add a
ConfigureDigitalOutputChannels
node to your workflow - Configure the properties:
ChannelName
: Name for the virtual channelLines
: Physical lines to use (e.g., "Dev1/port0/line0:7")Grouping
: How to group the lines
- Connect the output directly to the
Channels
property of aDigitalOutput
node - 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:
- Add a
DigitalOutputConfigurationSource
node to your Bonsai workflow - Configure the properties as needed:
ChannelName
: Name for the virtual channelLines
: Physical lines to use (e.g., "Dev1/port0/line0:7")Grouping
: How to group the lines
- Connect the output to custom nodes that process
DigitalOutputConfig
objects
Method 3: External Configuration Class
For advanced scenarios requiring custom property mapping:
- Use the
DigitalOutputChannelConfig
class in your custom combinators - This class provides implicit conversion to
DigitalOutputChannelConfiguration
- Suitable for building reusable configuration components
Configuration
ConfigureDigitalOutputChannels Properties (Recommended for Property Mapping)
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 lineOneChannelForAllLines
: 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 lineOneChannelForAllLines
: 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 nameLines
: The configured physical linesGrouping
: 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:
- Ensure the
Version
property insrc/Aind.Ni.DigitalOutput.Configuration/Aind.Ni.DigitalOutput.Configuration.csproj
is updated to the desired new version. - Commit and push any changes to the
main
branch. - 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.
- Read the version from the
- Set the "Publish to NuGet" input to
License
This project is licensed under the MIT License - see the LICENSE file for details.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net472 is compatible. net48 was computed. net481 was computed. |
-
.NETFramework 4.7.2
- Bonsai.Core (>= 2.9.0)
- Bonsai.DAQmx (>= 0.4.0)
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 |