private static void ConfigureDeviceChannel(a.IDenseDacEvalBoard device, DeviceConfig deviceConfig,
                                                   a.ChannelAddress channel)
        {
            var dacChannelConfiguration = GetDACChannelConfiguration(channel, deviceConfig);

            device.SetDacChannelDataValueA(channel,
                                           dacChannelConfiguration?.InitialState?.DataValueA ?? (ushort)0x8000);

            device.SetDacChannelDataValueB(channel,
                                           dacChannelConfiguration?.InitialState?.DataValueB ?? (ushort)0x8000);

            device.SetDacChannelOffset(channel,
                                       dacChannelConfiguration?.Calibration?.Offset ?? (ushort)0x8000);

            device.SetDacChannelGain(channel,
                                     dacChannelConfiguration?.Calibration?.Gain ?? (ushort)0xFFFF);
        }
        private void SetDACChannelOutputValue(AnalogSignal outputSignal, a.DacChannelDataSource dacChannelDataSource)
        {
            if (!outputSignal.Index.HasValue || _device == null)
            {
                return;
            }

            var value          = (ushort)((outputSignal.State + 10.0000) / 20.0000 * 0xFFFF);
            var channelAddress = (a.ChannelAddress)outputSignal.SubSource;

            if (dacChannelDataSource == a.DacChannelDataSource.DataValueA)
            {
                _device.SetDacChannelDataValueA(channelAddress, value);
            }
            else
            {
                _device.SetDacChannelDataValueB(channelAddress, value);
            }
        }