デジタル出力 サンプルコード
// 使用する名前空間の宣言
using Y2.UsbIO.Ub; // UBシリーズのデバイスを使用する場合
// デバイスのインスタンスを生成(DIO-8/8B-UBTを使用する場合)
var device = new Dio88bUbt();
// デバイスに接続
device.Connect(); // 識別スイッチ位置を0で使用する場合
//device.Connect(DeviceSwitch.PositionA); // 識別スイッチ位置をAで使用する場合
// OUT0をオフ、OUT1は現在の状態を保持、OUT2をオン、その他の出力端子は現在の状態を保持する場合
ReadOnlySpan<OutputValue> values = stackalloc OutputValue[] { OutputValue.Off, OutputValue.Keep, OutputValue.On };
device.Dout.Output(values);
// OUT2をオフ、OUT3は現在の状態を保持、OUT4をオン、その他の出力端子は現在の状態を保持する場合
values = stackalloc OutputValue[] { OutputValue.Off, OutputValue.Keep, OutputValue.On };
device.Dout.Output(values, 2);
// デバイスのインスタンスを破棄(usingを使用しても可)
device.Dispose();
ReadOnlySpanの代わりにSpanを使う場合
// デバイスのインスタンスを生成(DIO-8/8B-UBTを使用する場合)
var device = new Dio88bUbt();
// デバイスに接続
device.Connect(); // 識別スイッチ位置を0で使用する場合
//device.Connect(DeviceSwitch.PositionA); // 識別スイッチ位置をAで使用する場合
// OUT0をオフ、OUT1は現在の状態を保持、OUT2をオン、その他の出力端子は現在の状態を保持する場合
Span<OutputValue> values = stackalloc OutputValue[3];
//Span<OutputValue> values = new OutputValue[3]; でも可
values[0] = OutputValue.Off;
values[1] = OutputValue.Keep;
values[2] = OutputValue.On;
device.Dout.Output(values);
// OUT2をオフ、OUT3は現在の状態を保持、OUT4をオン、その他の出力端子は現在の状態を保持する場合
values = stackalloc OutputValue[3];
values[0] = OutputValue.Off;
values[1] = OutputValue.Keep;
values[2] = OutputValue.On;
device.Dout.Output(values, 2);
// デバイスのインスタンスを破棄(usingを使用しても可)
device.Dispose();
ReadOnlySpanの代わりに配列を使う場合
// デバイスのインスタンスを生成(DIO-8/8B-UBTを使用する場合)
var device = new Dio88bUbt();
// デバイスに接続
device.Connect(); // 識別スイッチ位置を0で使用する場合
//device.Connect(DeviceSwitch.PositionA); // 識別スイッチ位置をAで使用する場合
// デジタル出力
// OUT0をオフ、OUT1は現在の状態を保持、OUT2をオン、その他の出力端子は現在の状態を保持する場合
var values = new[] { OutputValue.Off, OutputValue.Keep, OutputValue.On };
device.Dout.Output(values);
// デバイスのインスタンスを破棄(usingを使用しても可)
device.Dispose();
整数で出力値を指定したい場合は、OutputValues.From...で整数から配列に変換して使用できます。
// using Y2.UsbIO.UsbPc104.Dio;
// デバイスのインスタンスを生成(DIO-32/64A-Uを使用する場合)
using var device = new Dio3264aU();
// デバイスに接続
device.Connect(); // 識別スイッチ位置を0で使用する場合
//device.Connect(DeviceSwitch.PositionA); // 識別スイッチ位置をAで使用する場合
// OUT0をオン、OUT1をオフ、OUT2をオン、OUT3をオン、その他の出力端子は現在の状態を保持する場合(2進数表記)
device.Dout.Output(OutputValues.FromInt(0b1101, 4));
// OUT0をオフ、OUT1をオン、OUT2をオフ、OUT3をオン、その他の出力端子は現在の状態を保持する場合(16進数表記)
device.Dout.Output(OutputValues.FromInt(0xa, 4));
// 符号なし32ビット整数で出力値を指定する場合
device.Dout.Output(OutputValues.FromUint(0x12345678, device.Dout.ChannelCount));
// 符号なし64ビット整数で出力値を指定する場合
device.Dout.Output(OutputValues.FromUlong(0x123456789abcdef0, device.Dout.ChannelCount));
// デバイスのインスタンスを破棄(usingを使用しても可)
device.Dispose();