Skip to content

Repository files navigation

iSCP 2.0 Client Library for C# Samples

iSCP 2.0 Client Library for C# を用いて、.NET アプリケーションから intdash へデータを送受信するためのサンプル集です。

Requirements

  • 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 サブモジュールとして同梱)

Sample Projects

コンソールアプリのサンプルが3つ、GUIアプリ (Windows Forms) のサンプルが1つあります。

コンソールアプリ

サンプル 説明
IntdashUpstreamSample データポイントを送信する最小サンプルです。アップストリームによる送信の基本的な方法を示します。例としてString型のデータポイントを送信します。
IntdashDownstreamSample 他のエッジから送信されたデータを受信する最小サンプルです。ダウンストリームによる受信の基本的な方法を示します。
IntdashBridgeAppSample app_settings.json の設定を使い、Hosted Serviceとしてアップストリームとダウンストリームを同時に動かすサンプルです。

詳細については、 ConsoleAppSamples README を参照してください。

Windows Formsアプリ(GUIアプリ)

サンプル 説明
IntdashFormAppSample サインイン、エッジ選択、複数のデータ型でのリアルタイム送受信(アップストリームとダウンストリーム)、REST APIによる過去データの参照までを行う総合的なGUIアプリのサンプルです。

詳細については、 FormAppSamples README を参照してください。

Installation

本プロジェクトは git submodule を利用しています。クローン時に --recursive を付けてください。

git clone --recurse-submodules https://github.com/aptpod/iscp-cs-samples.git

または、既にクローン済みの場合はリポジトリルートで以下を実行してサブモジュールを取得してください。

git submodule update --init --recursive

Build

コンソールアプリ:

dotnet build .\ConsoleAppSamples\ConsoleAppSamples.sln

Windows Formsアプリ:

dotnet build .\FormAppSamples\FormAppSamples.sln

Visual Studio 2022 で各 .sln を開いてビルド、実行することもできます。

Connection & Authentication Settings

各サンプルを動かすには、接続先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」を参照してください。

Appendix: Regenerating the intdash API Client

各サンプルが参照している 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

Releases

Packages

Contributors

Languages