======================================
  写真送信サンプルプログラムについて
======================================

写真送信サンプルプログラムについて説明します。

■ファイル構成

  - server.js : PC 上で実行する Node.js プログラム
  - client.js : GR-PEACH 上で実行する IoT.js プログラム

■動作説明

  PC がHTTPサーバ、GR-PEACH がHTTPクライアントとして動作します。

  GR-PEACH では、一定周期でカメラから取り込んだ画像をJPEGエンコードし、
  JPEGデータをサーバへ送信します。

  PC では受信したJPEGデータをファイルに保存します。
  ファイル数の上限を超えた場合、ファイル名をローテートし、古いファイルを
  上書きします。

■動作設定

  必要に応じてプログラム内のサーバ・クライアントの設定を変更してください。
  （★）の部分は必須項目になります。

  - server.js

  以下の設定の変更が可能です。

     7: const port      = 8000;         // HTTPサーバのポート番号
    +1: const maxFileNo = 100;          // JPEGファイル数の上限
    +1: const path      = './jpeg/';    // JPEGファイル保存フォルダ

  - client.js

  ご使用の環境に合わせて送信先サーバを指定してください。

    15: var server = {
    +1:     host: "172.27.1.196",       // HTTPサーバのIPアドレス（★）
    +1:     port: 8000                  // HTTPサーバのポート番号
    +1: };

  初期設定では GR-PEACH のネットワーク設定には DHCP を使用します。
  DHCP を使用しない場合は以下の変数を false にしてください。

    21: var dhcp = true;                // DHCP使用フラグ

  DHCP を使用しない場合、ご使用の環境に合わせて、GR-PEACHのネットワーク設定を
  行ってください。（DHCP を使用する場合、以下の設定は無効です）

    22: var ifconfig = {
    +1:     ip: "172.27.1.234",         // IPアドレス
    +1:     netmask: "255.255.255.0",   // サブネットマスク
    +1:     gateway: "172.27.1.1",      // デフォルトゲートウェイ
    +1:     dns: "8.8.8.8"              // DNSサーバ
    +1: };

  JPEGデータの送信周期を変更する場合は、以下の値を変更してください。

    29: var interval = 1000;            // JPEGデータ送信周期(ミリ秒)

■実行準備

  PC に Node.js の実行環境を構築します。

    動作確認環境
      OS : Windows 8.1 Pro 64bit
      Node.js : Windows Binary 64-bit v10.15.1

  以下のURLより、Node.js の Windows Binary (.zip) をダウンロードします。

    https://nodejs.org/en/download/

  ダウンロードしたファイルを任意の場所に解凍します。
  解凍したフォルダ内に server.js を配置します。

■実行方法

  - サーバの実行

    server.js を配置したフォルダにて、以下のコマンドを実行します。

      node server.js

  - クライアントの実行

    GR-PEACH を起動すると、シリアルコンソールに以下のメッセージが表示されます。

        IoT.js for mbed-os...
           mbed-os version: 5.9.3 
           build timestamp: MMM DD YYYY HH:MM:SS 

        input js fullpath here: 

    [Enter]キーを送信して、コードの入力モードに移行します。

        input javascript code here: 

    client.js の内容を全てコピーして貼り付けると処理が始まります。

■動作確認結果

  JPEGデータの送信周期を1ミリ秒に設定し、100時間以上連続して動作することを確認しました。

以上
