デジタル入力 サンプルコード
// 使用する名前空間の宣言
using Y2.UsbIO.Ub; // UBシリーズのデバイスを使用する場合
// デバイスのインスタンスを生成(DIO-8/8B-UBTを使用する場合)
var device = new Dio88bUbt();
// デバイスに接続
device.Connect(); // 識別スイッチ位置を0で使用する場合
//device.Connect(DeviceSwitch.PositionA); // 識別スイッチ位置をAで使用する場合
// 全てのデジタル入力端子の状態を読み込み
Span<OnOffValue> values = stackalloc OnOffValue[device.Din.ChannelCount];
//Span<OnOffValue> values = new OnOffValue[device.Din.ChannelCount]; でも可
device.Din.Input(values);
if(values[0].IsOn)
Console.WriteLine("IN0がオンです。");
if(values[1].IsOn)
Console.WriteLine("IN1がオンです。");
// デバイスのインスタンスを破棄(usingを使用しても可)
device.Dispose();
Spanの代わりに配列を使う場合
// デバイスのインスタンスを生成(DIO-8/8B-UBTを使用する場合)
var device = new Dio88bUbt();
// デバイスに接続
device.Connect(); // 識別スイッチ位置を0で使用する場合
//device.Connect(DeviceSwitch.PositionA); // 識別スイッチ位置をAで使用する場合
// 全てのデジタル入力端子の状態を読み込み
var values = new OnOffValue[device.Din.ChannelCount];
device.Din.Input(values);
// デバイスのインスタンスを破棄(usingを使用しても可)
device.Dispose();
一部のデジタル入力端子の状態のみを読み込む場合
// デバイスのインスタンスを生成(DIO-8/8B-UBTを使用する場合)
var device = new Dio88bUbt();
// デバイスに接続
device.Connect(); // 識別スイッチ位置を0で使用する場合
//device.Connect(DeviceSwitch.PositionA); // 識別スイッチ位置をAで使用する場合
// IN2~IN5のデジタル入力端子の状態を読み込み
Span<OnOffValue> values = stackalloc OnOffValue[4]; // 読み込むチャネル数のスパンまたは配列を用意
device.Din.Input(values, 2); // 読み込みを開始するチャネルを指定して読み込む
// デバイスのインスタンスを破棄(usingを使用しても可)
device.Dispose();
尚、読み込んだ入力値を整数に変換したい場合は「OnOffValues.To~」メソッドで変換できます。
device.Din.Input(values);
// 符号付き32ビット整数値に変換する場合
var int32 = OnOffValues.ToInt32(values);
// 符号なし32ビット整数値に変換する場合
var uint32 = OnOffValues.ToUInt32(values);
// 符号なし64ビット整数値に変換する場合
var uint64 = OnOffValues.ToUInt64(values);