sakura.ioの機能を簡単に試すことができるWindows向けGUIツール sakura.io Test をリリースしました。
sakura.io Testを利用することで、管理用APIを用いてプロジェクトの一覧を取得したり、WebSocket連携サービスを経由して通信モジュールとの通信を行ったりがGUI上で簡単に行えるようになります。
OSSとして公開していますので、C#が書ける方なら改造して専用ツールに転用するなどの応用も可能です。
ダウンロード
GithubのReleaseページから実行ファイルをダウンロードできます。
Releaseページを開いたら、sakuraio-test-0.1.0.zipと書かれたリンクを探し、ダウンロードしてください。
Google Chromeを使用している場合、一般的にダウンロードされていないファイルとの理由でダウンロードがブロックされることがありますが、ドロップダウンメニューから 継続
を選択することでダウンロードが継続できます。
信用できないという方はGithubからソースコードをダウンロードし、内容を確認の上ご自身の環境でビルドすることをおすすめします。
Visual Studio 2017 Communityに .NET デスクトップ開発
機能がインストールされていればビルド可能です。
使用方法
ダウンロードしたZIPファイルを解凍し、 SakuraIOTest.exe
を起動することでsakura.io Testが起動します。
最低限必要な準備として、sakura.io 管理APIのTokenをsakura.io Testに入力する必要があります。
管理API Tokenの取得・認証
管理APIのTokenは sakura.ioのコントロールパネル で作成・表示が可能です(ログインが必要です)。
sakura.io Testの画面に表示されている取得ページへのリンクをクリックすることでもアクセス可能です。
APIキーを作成して、表示画面まで進めると以下のような画面になります。このうち Token
と Secret
をコピーし、それぞれsakura.io Testの対応する欄に入力してください。
TokenとSecretを入力したら、 認証
ボタンを押すことで認証処理が実行されます。
認証ボタンの左、API state
の表示が 認証済み
となっていれば、プロジェクト一覧取得などの管理APIを用いた機能が使用できます。
(なお、本記事内で例として使用しているToken/Secretは記事公開時点で既に無効化してあります。)
プロジェクトやモジュールの一覧取得
事前に管理API Tokenの取得・認証の手順に従ってAPIの認証を行ってください。
プロジェクトの一覧を取得
ボタンを押すと、API Tokenを作成したユーザーが持っているプロジェクトの一覧が project
ドロップダウンに表示されます。
ドロップダウンでプロジェクトを選択し、 モジュール一覧取得
ボタンを押すことで、プロジェクトに所属しているモジュールの一覧が module
ドロップダウンに表示されるようになります。
通信モジュールのIDコピー
モジュール一覧のうち送信先としたいモジュールが選択された状態で、 送信対象モジュールとして設定
ボタンをクリックすると右ペインの送信メッセージキュー内の 送信先モジュールID
の欄にモジュールIDがコピーされます。
WebSocket 連携サービスのトークンを自動設定する
project
ドロップダウンの下にある WebSocket Token自動設定
ボタンを押すと、選択されているプロジェクトにWebSocket 連携サービスが紐付いているかをチェックして、紐付いていればそれを流用、紐付いていなければAPIを利用してWebSocket連携サービスを自動で作成した上でsakura.io TestでのWebSocketテスト用に使用できるように設定を行います。
自動設定が完了すると、API Tokenなどの入力欄下にある WebSocket Token
欄にWebSocket連携サービスのトークンがコピーされます。
WebSocketで接続を行う
WebSocket Token
欄にトークンが入力されている状態で、隣の 接続
ボタンをクリックするとWebSocket 連携サービスとsakura.io TestがWebSocketで接続され、双方向にメッセージのやりとりが可能な状態となります。
ウィンドウ左下のステータスバーに 通信中
と表示されていればWebSocketでの接続が確立しています。
WebSocketでメッセージ送信
事前にWebSocketで接続を行うの手順に従ってWebSocketの接続を行ってください。
送信したいデータを送信メッセージキューに追加し、 WebSocketで送信
ボタンを押すことでメッセージの送信が行えます。
channelは0~127までの値を取ります。valueに送出したいデータを入力し、typeを送りたいデータの型に合わせて選択します。
valueの表記方法についてはsakura.io メッセージ仕様をご覧下さい。
ただし、本記事の執筆時点(2019/05/13)ではbyte[8]の送信に対応していません。
通信モジュールからのメッセージを受信する
事前にWebSocketで接続を行うの手順に従ってWebSocketの接続を行ってください。
WebSocketでの接続が確立している状態でsakura.io モジュールからデータが送信された場合、sakura.io Testは自動でメッセージの受信を行います。
受信内容は 受信したメッセージ
のリストボックスに追加されていきます。
受信したメッセージを選択して右クリックすることで、受信したデータをクリップボードにコピーすることができます。
0, f, 28.249817, 2019-05-13T03:43:58.24665214Z
1, f, 29.553223, 2019-05-13T03:43:58.25865214Z
2, I, 24138, 2019-05-13T03:43:58.27065214Z
のように、受信したデータをCSV形式でコピーできるので、メモ帳などに貼り付けてCSV形式で保存すればExcel等で開くことが可能になります。
無効化されているエクスポートボタン使わせてくれとかExcelに直接貼り付けるにはTSV形式でコピーする必要があるとか、いろいろ詰めが甘いところがありますがそれは今後の課題ということでお願いします。
注意点
sakura.io TestはApache License 2.0に基づき提供されているソフトウェアです。
Apache License 2.0の条件に従って、再頒布、商用利用、改造などを自由に行うことができます。
sakura.io Testに関して、一切のサポート及び保証を行いません。使い方や不具合などについてお問い合わせいただいても対応致しかねますのでご了承の上でご利用ください。
サポート等は行いませんが、PRやIssueなど、Github上でのコントリビュートは歓迎しております。
(実際の所未実装の機能が山盛りの状態でリリースしていますので、いろいろ突っ込み所はあると思います)
最後に
今までのサンプルコードがPythonなどに偏っていたので、反対に何も書かずに使えるサンプルとは何だろう、と考えた結果Windows向けGUIツールであるという結論に至りました。
コンソールアプリなどに抵抗がある方でもマウスでポチポチと手軽にお試しいただけるかと思います。
このようなサンプルコードやツールの提供をさらに推し進めていきたいと考えておりますのでご期待下さい。