iSCP 2.0 Client Library for C# を用いて、.NET アプリケーションから intdash へデータを送受信するためのサンプル集です。
- Windows 11
- Visual Studio 2022
- .NET 8 SDK
- intdash REST API v2.7.0 or later
- iSCP 2.0 Client Library for C#(
iscp-csサブモジュールとして同梱)
コンソールアプリのサンプルが3つ、GUIアプリ (Windows Forms) のサンプルが1つあります。
| サンプル | 説明 |
|---|---|
| IntdashUpstreamSample | データポイントを送信する最小サンプルです。アップストリームによる送信の基本的な方法を示します。例としてString型のデータポイントを送信します。 |
| IntdashDownstreamSample | 他のエッジから送信されたデータを受信する最小サンプルです。ダウンストリームによる受信の基本的な方法を示します。 |
| IntdashBridgeAppSample | app_settings.json の設定を使い、Hosted Serviceとしてアップストリームとダウンストリームを同時に動かすサンプルです。 |
詳細については、 ConsoleAppSamples README を参照してください。
| サンプル | 説明 |
|---|---|
| IntdashFormAppSample | サインイン、エッジ選択、複数のデータ型でのリアルタイム送受信(アップストリームとダウンストリーム)、REST APIによる過去データの参照までを行う総合的なGUIアプリのサンプルです。 |
詳細については、 FormAppSamples README を参照してください。
本プロジェクトは git submodule を利用しています。クローン時に --recursive を付けてください。
git clone --recurse-submodules https://github.com/aptpod/iscp-cs-samples.gitまたは、既にクローン済みの場合はリポジトリルートで以下を実行してサブモジュールを取得してください。
git submodule update --init --recursiveコンソールアプリ:
dotnet build .\ConsoleAppSamples\ConsoleAppSamples.slnWindows Formsアプリ:
dotnet build .\FormAppSamples\FormAppSamples.slnVisual Studio 2022 で各 .sln を開いてビルド、実行することもできます。
各サンプルを動かすには、接続先intdashサーバーと認証情報が必要です。ここでは、サンプル間で共通して登場する項目をまとめます。
実際にどのように設定するかについては、コンソールアプリは ConsoleAppSamples README、Windows Formsアプリは FormAppSamples README を参照してください。
| 項目 | 用途 |
|---|---|
| Server URL | 接続先intdashサーバーのURLです。例: https://example.intdash.jp |
| Project UUID | 使用するプロジェクトのUUIDを指定します。プロジェクトのUUIDはProject Consoleで確認できます。 |
| Edge UUID | エッジのUUIDです。送信を行うサンプルでは、どのエッジとして送信するかを指定します。受信を行うサンプルではどのエッジからのデータを受信するかを指定します。 |
| API Token | ユーザーアカウントとしてintdashサーバーにアクセスする場合に必要です。My PageでユーザーのAPIトークンを発行して設定します。 |
| Edge Client Secret | エッジアカウントとしてintdashサーバーにアクセスする場合にはクライアントIDとクライアントシークレットが必要です。クライアントIDとしては、エッジのUUIDを使用します。エッジのUUIDとクライアントシークレットは、エッジアカウントを作成したときに発行されます。 |
| OAuth2 Client ID / Secret | OAuth2クライアントとしてintdashサーバーにアクセスする場合に必要です。OAuth2クライアントは、intdash APIで登録します。 |
| Callback URL | Windows FormsアプリでWebサインイン(OAuth2 + PKCE)をする場合に必要です。 |
ユーザーのAPIトークンの発行方法、エッジアカウントの作成方法については、ドキュメントサイト「intdash / VM2M Documentation」を参照してください。
各サンプルが参照している intdash REST API クライアント(本リポジトリ直下の intdash)は、OpenAPI定義ファイル openapi_public.yaml をもとに、OpenAPI Generator を使って生成したものです。
openapi-generator-cli version-manager set 6.1.0
rd /s /q intdash
openapi-generator-cli generate -i openapi_public.yaml -g csharp-netcore --library httpclient -o intdash --additional-properties=netCoreProjectFile=true,targetFramework=netstandard2.0,packageName=intdash,validatable=false,supportsRetry=false