Y2.UsbIO
弊社製のUSB制御デバイス(ユニット・ボード)をオブジェクト指向で使用するためのライブラリです。
特徴
入出力の制御は、関数を呼び出すことで実現できますので、開発者はUSB接続であるという事を意識せずに使用することができます。
設定値などの主な値は値オブジェクトになっていますので、安全かつわかりやすい記述で使用する事ができます。
各シリーズのドライバAPIの違いをできるかぎり吸収していますので、機種・シリーズを変更しても同様のコードで制御することができます。
また同じ機能を搭載しているデバイスであれば、インターフェースを使用して全く同じように使用することができます。
異常時(デバイスとのアクセスに失敗した場合など)には例外をスローしますので、ドライバAPIのように関数実行のたびの戻り値の確認が不要になります。
NuGetからインストールできますので、簡単に利用可能です。
.NET Standard 2.0対応ですので、以下のフレームワークで使用することができます。
- .NET 6
- .NET 5
- .NET Core 3.1
- .NET Framework 4.6.1以降
- .NET Frameworkで使用する場合は、System.Memoryパッケージのインストールが必要です。
対応機種
- UBシリーズ
- USB-PC104シリーズ
- その他のシリーズについては準備中
使用例
// デバイスのインスタンスを生成(AIO-84/16/32A-Uを使用する場合)
using var device = new Aio841632aU();
// デバイスに接続
device.Connect();
// デジタル入力
Span<OnOffValue> values = stackalloc OnOffValue[device.Din.ChannelCount];
device.Din.Input(values);
if(values[2].IsOn)
Console.WriteLine("IN2はONです。");
// デジタル出力(OUT0をオフ、OUT1は現在の状態を保持、OUT2をオン、その他の出力端子は現在の状態を保持する場合)
ReadOnlySpan<OutputValue> outputValues = stackalloc OutputValue[] { OutputValue.Off, OutputValue.Keep, OutputValue.On };
device.Dout.Output(outputValues);
// アナログ入力
Span<Voltage> voltages = stackalloc Voltage[device.Ain.ChannelCount];
device.Ain.Input(voltages);
Console.WriteLine($"AIN3は{voltages[3].Millivolts}mVです。");
// アナログ出力(AOUT0に1.234V, AOUT1に5.678V, AOUT2に9.01Vを出力)
ReadOnlySpan<Voltage> outputVoltages = stackalloc Voltage[] { 1.234, Voltage.FromMillivolts(5678), 9.01 };
device.Aout.Output(outputVoltages);
詳細な使用方法については、サンプルコード・リファレンスを参考にしてください。
デバイスとの接続/切断・破棄について
接続にはConnect関数を使用します。
識別スイッチ番号(0であれば省略可能)・接続モード(出力オフであれば省略可能)が指定可能です。
切断はDisconnect関数を使用します。
Disconnectした後はConnect関数で再接続が可能です。
インスタンスの破棄はDispose関数を使用します。
接続状態からDisposeを実行した場合には破棄前に切断がおこなわれます。
(Disposeの前にDisconnect関数を実行する必要はありません)
// デバイスのインスタンスを生成(DIO-8/8B-UBTを使用する場合)
var device = new Dio88bUbt();
device.Connect();
...
device.Dispose();
usingを使用して破棄する場合
using var device = new Dio88bUbt();
device.Connect();
...
使用方法
Visual StudioのGUIからインストールする場合
使用するプロジェクトを右クリックし、[NuGetパッケージの管理] をクリックします。
[パッケージ ソース] として "nuget.org" を選択し、[参照] タブを選択し、一覧から以下のパッケージを選択し、 [インストール] を選択します。
- USB-PC104シリーズのデバイスを使用する場合
- Y2.UsbIO.UsbPc104 パッケージ(ライブラリ)
- Y2.UsbPc104.Driver.Win パッケージ(ドライバ)
- UBシリーズのデバイスを使用する場合
- Y2.UsbIO.Ub パッケージ(ライブラリ)
- Y2.Ub.Driver.Win パッケージ(ドライバ)
必要な名前空間を宣言して使用します。
using Y2.UsbIO;
// UBシリーズのデバイスを使用する場合
using Y2.UsbIO.Ub;
// USB-PC104シリーズの「AIO-」から始まる型番のデバイスを使用する場合
using Y2.UsbIO.UsbPc104.Aio;
// USB-PC104シリーズの「DIO-」から始まる型番のデバイスを使用する場合
using Y2.UsbIO.UsbPc104.Dio;
// USB-PC104シリーズの「PMC-S」から始まる型番のデバイスを使用する場合
using Y2.UsbIO.UsbPc104.Pmc;
// USB-PC104シリーズの「RLY-」から始まる型番のデバイスを使用する場合
using Y2.UsbIO.UsbPc104.Rly;
Visual Studioのパッケージマネージャーコンソールからインストールする場合
USB-PC104シリーズのデバイスを使用する場合
Install-Package Y2.UsbIO.UsbPc104
Install-Package Y2.UsbPc104.Driver.Win
UBシリーズのデバイスを使用する場合
Install-Package Y2.UsbIO.Ub
Install-Package Y2.Ub.Driver.Win
必要な名前空間を宣言して使用します。
dotnet CLIを使用してインストールする場合
USB-PC104シリーズのデバイスを使用する場合
dotnet add package Y2.UsbIO.UsbPc104
dotnet add package Y2.UsbPc104.Driver.Win
UBシリーズのデバイスを使用する場合
dotnet add package Y2.UsbIO.Ub
dotnet add package Y2.Ub.Driver.Win
必要な名前空間を宣言して使用します。