読者です 読者をやめる 読者になる 読者になる

Xojo日本語ブログ

マルチプラットフォーム対応アプリが開発できるXojoのブログです。

Xojoを使ったRaspberry Piのリモートデバッグについて

Raspberry Pi向けのソフトウェアを開発する場合、多くはPythonかNode.jsを使うかと思います。そして、Raspberry PiSSHで接続してコードを編集するでしょう。その際、viやEmacsを使ってコーディングを行うと思います。つまり、普段のソフトウェア開発とは全く異なるスタイルでの開発を強いられているはずです。さらにデバッグ機能がうまく使えないことも多く、標準出力を使ったデバッグで一つ一つ確認していくことになるでしょう。これは生産性が高いやり方とは言えません。

今回はXojoの新機能であるRaspberry Piのリモートデバッグ機能を紹介します。これを使えば普段使っているXojo IDEからRaspberry Piアプリの開発やブレークポイントを使ったデバッグができるようになります。

X Window必須

f:id:moongift:20170406080312p:plain

一点注意点として、Raspberry Pi側でX WindowGTK)が必須になります。これはコンソールアプリしか開発しない場合でも必要です。そのため、Rasbian Liteでは動かないので、別途apt-getを使うか、フルのRaspberry Piを使ってください。後はデフォルトでSSHDが立ち上がっていないので、raspi-configを使って立ち上げた方が良いでしょう。

f:id:moongift:20170406080409p:plain

リモートデバッガーを転送する

次にリモートデバッガーのLinux ARM.zipをSCPなどを使って転送します。このリモートデバッガーはXojoのExtraフォルダに入っています。macOSであれば次のようなコマンドになります。複数のデバッガーがありますが、ARMなので注意してください。

scp /Applications/Xojo\ 2017\ Release\ 1/Extras/Remote\ Debugger\ Desktop/Linux\ ARM.zip pi@your_raspi_address:/home/pi/Desktop

リモートデバッガーを起動する

f:id:moongift:20170406080607p:plain

リモートデバッガーを転送したら、Zipを解凍して起動します。下の画像のようなウィンドウが表示されればOKです。コンソールアプリの場合は、ここでRaspberry Piのディスプレイは不要になります。

f:id:moongift:20170406080640p:plain

Xojoで開発する

後は自分のメインマシンに戻ってXojo IDEで開発を行っていきます。ビルド環境としてARM 32bitとしておくのを忘れないでください。

リモートデバッガーを登録する

デバッグしたいと思ったら、まずリモートデバッガーのアドレスを設定します。これはXojo IDEの設定画面で行えます。

f:id:moongift:20170406080702p:plain

IPアドレスを設定して、分かりやすい名称をつければ完了です。

f:id:moongift:20170406080713p:plain

リモートデバッグを実行する

ではいよいよリモートデバッグを開始します。プロジェクトメニューのリモート端末で実行を選択し、先ほど作ったリモートデバッガーを選択します。

f:id:moongift:20170406080721p:plain

実行するとコンパイルされて、Raspberry Piに転送されます。

f:id:moongift:20170406080759p:plain

デスクトップアプリの場合は、そのまま起動します。コンソールアプリの場合、リモートデバッガーのあるディレクトリにDebugと頭についてビルドされた実行ファイルができますので、これをコンソールから実行します。

$ ./DebugRaspberryPiDemo

そうするとブレークポイントがあるところで実行処理が停止します。

f:id:moongift:20170406080825p:plain

注意点

コンソールアプリの場合、ビルドされたアプリをデバッグできるのは一度だけになります。もう一度デバッグする場合はリモートデバッグを再実行してください。

転送に若干時間がかかることがあります。何度も頻繁に行うのには向かないかも知れません。


Raspberry Piアプリの開発はコンソールベースで行うことが多く、普段の使い慣れた環境が使えず面倒に感じることが多々あります。そんな中、Xojoであれば日常的に使っているXojo IDEを使って、デバッガーを組み合わせて効率的にアプリ開発できるようになります。ぜひRaspberry PiのXojoを使ってIoT開発をはじめてみてください。