| 1 | = Azure IoT Hub 接続サンプル = |
| 2 | |
| 3 | Azure IoT Hub へ接続する[https://github.com/Azure/azure-iot-sdk-c Azure IoT Hub Device C SDK]を使ったサンプルです。 |
| 4 | ターゲットデバイスは、[http://gadget.renesas.com/ja/product/sakura.html GR-SAKURA]で、EthernetでHTTP通信します。 |
| 5 | MQTTも含んでいますが、現在のバージョンでは接続できていません。 |
| 6 | |
| 7 | == ダウンロード == |
| 8 | |
| 9 | GR-SAKURAのソースコードは[https://dev.toppers.jp/trac_user/contrib/browser/azure_iot_hub/trunk こちら]にあります。 |
| 10 | リストの下にある「Download in other formats:」の「Zip Archive」をクリックすると、zipファイルでダウンロードできます。 |
| 11 | |
| 12 | == 開発環境 == |
| 13 | |
| 14 | ビルドはGCC+Makefileで行います。RX向けGCCは[https://gcc-renesas.com/ja/rx-download-toolchains/ こちら]から入手できます。arm向けGCCはe2studioのインストーラで入れた「GNU Tools ARM Embedded 5.4 2016q3」を使用しました。 |
| 15 | IDEとして[https://www.renesas.com/ja-jp/products/software-tools/tools/ide/e2studio.html e² studio]V7.4.0を使用しました。 |
| 16 | Rubyの実行環境が必要なので、[https://www.ruby-lang.org/ja/downloads/ こちら]からダウンロードして、コマンドプロントから実行できるよう、環境変数でパスを通してください。 |
| 17 | e² studio V7.4.0のプロジェクトファイルも含まれているので、展開したフォルダをワークスペースとして開き、プロジェクトのインポートをこのフォルダに対して行うことで、取り込むことができます。 |
| 18 | |
| 19 | == フォルダ構成 == |
| 20 | |
| 21 | ||||||app_iothub_client||||サンプルプログラム|| |
| 22 | ||||||asp3_dcre||RTOS [http://www.toppers.jp/asp3-kernel.html TOPPERS/ASP3]|| |
| 23 | ||asp3_dcre||||tinet||[http://www.toppers.jp/tinet.html TINET 1.7]をRuby版CFG対応し、IGMPを追加したもの|| |
| 24 | ||asp3_dcre||syssvc||tlsf||メモリアロケータ[https://github.com/mattconte/tlsf tlsf]|| |
| 25 | ||||||azure_iohub||[https://github.com/Azure/azure-iot-sdk-c Azure IoT Hub Device C SDK]|| |
| 26 | ||||||curl-7.57.0||HTTPクライアント[https://curl.haxx.se/ cURL]|| |
| 27 | ||||||musl-1.1.18||標準Cライブラリ[http://www.musl-libc.org/ musl]|| |
| 28 | ||ntshell||||fatfs||FATファイルシステム [http://elm-chan.org/fsw/ff/00index_e.html FatFs]|| |
| 29 | ||ntshell||||ntshell||仮想ターミナル[https://www.cubeatsystems.com/ntshell/ NT-Shell]|| |
| 30 | ||ntshell||||src||Socket API、標準入出力、ファイルディスクリプタ|| |
| 31 | ||||||wolfssl-3.15.7||SSL/TLS ライブラリ[https://www.wolfssl.com/ wolfSSL]|| |
| 32 | ||||||zlib-1.2.11||圧縮・伸張ライブラリ[https://www.zlib.net/ zlib]|| |
| 33 | |
| 34 | == 標準Cライブラリ == |
| 35 | GCC付属の標準Cライブラリnewlibではなく、muslを使用しています。 |
| 36 | 付属のnewlibでは、dirent.hやsocket.hがないので、curlやwolfsslのコンパイルに向いていません。 |
| 37 | Linux向けのmuslを使用することで、POSIX向けのソースコードのコンパイルが難無く行えます。 |
| 38 | ただし、未実装のAPIがあってもリンクが通ってしまいます。 |
| 39 | このソフトでは、ntshell/srcに実装がありますが、サンプルを動作させる最小限の実装を行っています。 |