espress_streamのRaspberry Pi Pico W(以降Pico W)上への移植を行いました。 linux用とは以下のような違いがあります。
その他、小リソース向けに設定値を変更しています。
なお、開発環境にはRaspberry Pi Pico C/C++ SDKを用いました。 OSは未使用(ベア環境)です。
本ソフトウェアはソースパッケージにて提供しています。以下をダウンロードしてください。
本ソフトウェアはRaspberry Pi Pico C/C++ SDKを用いてソースコードから作成します。 SDKの導入、ソフトウェア作成方法、SDKを用いて作成したソフトウェアのPico Wへの導入等の方法はSDKのドキュメントを参照してください。
SDKを導入されているディレクトリpico-sdkが存在するディレクトリでパッケージの解凍を行っておきます。
$ tar zxvf espress_stream_for_pico_w.########.tar.gz
パッケージには移植されたespress_streamとサンプルアプリケーションが含まれています。 サンプルアプリケーションはlinux用のes_ftxを移植したものです。 es_ftxはクライアントアプリケーションで、サーバーアプリケーションes_frxに対してファイルを送信する機能を持ちます。 移植されたes_ftxはtest.datというファイル名で1MBのダミーデータを送信するように作られています。
以下ではSDKの導入が完了していることを前提に、サンプルアプリケーションを動作させるためのバイナリーを作成するまでの手順を示します。
$ cd espress_stream_for_pico_w
$ vi wifi_config.h
$ vi app_main.c
$ mkdir build
$ cd build
$ PICO_SDK_PATH=../../pico-sdk PICO_BOARD=pico_w cmake ..
$ make espress_stream_app_lwip_background
wifi_config.hではwifiアクセスポイントの設定を行っています。
#define WIFI_SSID "MY_WIFI_SSID"
#define WIFI_PASSWORD "my_wifi_password"
以上のような内容で作成してください。
app_main.cではサーバーのアドレス、ポート、公開鍵およびユーザーID、パスワードを設定していますので、この部分を編集します。
#define ADDRESS "192.168.1.2"
#define PORT "12345"
#define PUBLIC_KEY { \
0x73, 0x35, 0xe6, 0x3a, 0x76, 0x21, 0x23, 0xa9, 0x41, 0xa2, 0x5e, 0x5e, 0x53, 0x8d, 0xd4, 0xd2, \
0xe4, 0x7d, 0x86, 0x92, 0x80, 0xf8, 0x3a, 0xf7, 0x81, 0x0e, 0x0b, 0x3d, 0xae, 0x80, 0x69, 0xc9 \
}
#define USER_ID "foo"
#define USER_PASSWORD "tpfBTht8"
公開鍵、ユーザーID、パスワードはes_frxの設定に合わせる必要があります。詳細は「linux用のes_ftx、es_frx」を参照してください。
以上の手順でbuildディレクトリにespress_stream_app_lwip_background.uf2が作成されます。 これをPico Wに導入してください。
現在のところ、メイク時ワーニングが出ます。 同じコードはlinux用でもメイクされますが、ワーニングは出ておらず、問題ないと判断しています。
linuxにてサーバーアプリケーションes_frxを起動、ファイル受信の準備をしておいてください。 ソフトウェア導入済みのPico Wを起動すればファイルの転送を開始します。 このとき、USB経由でシリアルコンソールを接続しておくと、ファイル転送プログレス等の情報が表示されます。
espress_streamディレクトリ以下をディレクトリごとRaspberry Pi Pico C/C++ SDKを用いたアプリケーション作成環境にコピーしてください。
CMakeLists.txtに設定を追加します。
UDPを使うため、pico_cyw43_arch_lwip_threadsafe_backgroundをライブラリーに追加し、lwIPを導入しています。lwIPはオプションをlwipopts.hに設定します。これを作成し、いずれかのインクルードパスにおいてください。詳細はpico-examplesのpico_w/wifi/lwipopts_examples_common.hを参照してください。
アプリケーションからespress_streamを利用するためのAPIはlinux用ライブラリーと同じです。 詳細は「linux用のライブラリー使用方法」を参照してください。
MITライセンスに基づいてリリースされています。
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.