spresense LTE拡張ボードでFTPクライアント通信を行う方法


Spresense本体ボード+
LTE拡張ボードの構成で、SpresenseのFTPクライアントから、ネットワークサーバー上のFTPサーバへアクセス(ファイル書き込み、ファイル読み出し）を実現したいと考えています。  
「Networkチュートリアル」には、「FTPサンプルアプリケーション」の実例が掲載されていますが、WiFi環境(IDY Wi-Fi Add-on
Board iS110B搭載)が前提となっています。  
そこで、このFTPサンプルアプリケーションをWiFi通信からLTE-M通信へ変更する方法を教えていただけないでしょうか。  
LTE-M関連の設定は自己解決するとして、WiFiもLTEにはTCP/IP通信レベルで互換があると思うので、何かの設定などで実現できると助かるのですが。  
「LTE-M経由でIoTデータをファイルサーバーへ定期的にUPしたい」、というのが最終目標です。




ドンピシャリという回答ではないですが、次の実装が参考になると思います。

<https://github.com/sonydevworld/spresense/tree/master/examples/lte_http_get>

ここで、wget_initialize でHTTPサーバーとやりとりを行っているのですが、grep で引っ掛けてみた所、次のところに実装がありました。

<https://github.com/sonydevworld/spresense-nuttx-apps/blob/new-
master/netutils/webclient/webclient.c>  
注意）Spresense SDK をダウンロードすると spresense/sdk/apps/netutils
以下に展開されます。このあたりちょっと分かりにくい・・・

webclinet.c の中を見てもわかるように、こちらはよくある socket を使ったプログラミングになってます。

ですので、lte_http_get サンプルの中のLteのコネクション部分をもってきて、wget_initialize(), wget()
の部分をFTPに入れ替えればよいかと思います。思いっきり端折ったコードを書くとこんな感じでしょうか…。

[code]

    int main(int argc, FAR char *argv[])
    {
      ... 省略 ....
    
      app_mq_create(APP_MQUEUE_NAME);
      lte_initialize();
      lte_set_report_restart(app_restart_cb);
      lte_power_on();
      lte_set_report_localtime(app_localtime_report_cb);
      lte_radio_on_sync();
    
      /* Set the APN to be connected. */
      ...　省略 ...
      lte_activate_pdn_sync(&apnsetting, &pdn);
      app_show_pdn(&pdn);
      data_pdn_sid = pdn.session_id;
    
      ...　省略 ...
    
      /* ↓ここにFTPのソケットコード実装を書く↓ */
    
    　FTP初期化
    　FTPサーバーに接続
    　FTPサーバーにデータ送信
    
      /* ↑ここにFTPのソケットコード実装を書く↑ */
    
      lte_deactivate_pdn_sync(data_pdn_sid);
      lte_radio_off_sync();
      lte_power_off();
      lte_finalize();
      app_mq_delete(APP_MQUEUE_NAME);
    
      return 0;
    }
    
[/code]

FTPクライアントのソケット実装は、次のサイトとかが参考になるかと。ご参考まで。

[http://x68000.q-e-d.net/~68user/net/c-ftp-1.html](http://x68000.q-e-d.net/%7E68user/net/c-ftp-1.html)

