Computer & RF Technology

LabToolのMac対応をアップデートして本家に取り込んでもらう

半年ほど前にLabToolを入手し、簡単なレポートと、アプリケーションをMacでビルドする方法について以前書きました。LabToolはオシロやロジアナとなるハードウェアです。WindowsやRaspberry Pi用に公式にアプリが提供されています。若干の手順を踏めばMacでもアプリを動作させることができていました。

image

(本題からは外れますが上のキャプチャは10kHz 30%のAM変調をかけた61MHz 0dBmの信号を、裸のLPC-Link2ボードに入れて60MHzでサンプリング、LabToolアプリで波形取得した例です。第3ナイキストなので、キャリアは1MHzに見えていますが61MHzの信号を入れています。実はLabToolボードを使っていない動作例です)

前回の試みではアイコンも付いていないビルドしっぱなしで、しかも通常のアプリケーションのようにダブルクリックでは起動できず、コマンドラインから特定のディレクトリにcdしてから、コマンドを入力する必要がありました。これを、普通のアプリケーションのようにダブルクリックで使えるようにしたいと思っていたのですが、Qtでのやりかたが判らなかったので放置していました。

そんなところに先日なんと秋月でもLabToolが販売開始されてしまいまいました。せっかくですので、興味を持たれる方がいらっしゃるかと思いますので、Mac対応をアップデートすることにしました。

最近のOSXのコンパイラはclangを使用しており、他の環境で広く使われているgccと微妙に差異があります。実は以前アップした手順では、ソースコードを書き換えずに済ませるために、gccを使用する手順となるようにしました。当初はコードを書き換えてビルドを通していたのですが、パッチせずに済ませたかったので、わざわざgccを使う手順にしていました。前回の記事をアップしてから追試をしてくださった方もあり、その結果も踏まえ、やはりデフォルトのコンパイラを使ったほうが良いと考え直しました。書き換えが必要なコードはほんのわずかなのですが、Qtのフレームワークを使った方法がわかりましたので、そちらを採用することにしました。(具体的には、GCC拡張である動的サイズのローカル配列を、QVectorクラスを使用するように変更した)

また、Mac OSにはバンドルという仕組みがあり、必要なファイルをすべてアプリケーションひとつに纏めてしまうのが普通です。LabToolは、アプリを起動したときにファームウェアをdfu-utilを使ってハードウェアにダウンロードしているのですが、これらのファイルをバンドルにまとめることができればMacらしいアプリケーションとなります。幸いQtにはMacのバンドルを作成するためのコマンドが用意されており、プロジェクトファイルに適切に記述することで、必要なコマンドやファイルをバンドルに含めることができます。またアプリケーション内でバンドル内のファイルにアクセスする方法もちゃんとQtのフレームワークに用意されていましたので、これを使うよう修正しました(普通のOSXアプリであればOSX固有のAPIを使用するのですが、APIが混ざるのは好ましいことではありません。その点Qtは各プラットフォームの事情も考慮した実装がされているようです)

それからアイコンもでっちあげました。RasPiやWindows用にはオシロスコープを象ったアイコンが使われていました。OSXではPDFまたは512x512の大きなアイコンが必要なのですが、解像度の低いicoファイルから、同じように見えるicnsファイルを作成しました。

以上の対応をしてアプリを作成しました。Mac版を追試してくださった方々にツイッターで知らせて、バイナリを試用してもらいました。案の定問題が見つかったのですが無事修正できました。

あとは本家EmbeddedArtistに取り込んでもらうべく、すべての修正とビルド手順をまとめてgithubに上げ、Pull Requestを送って反応を待ちました。そうしたところ一日でマージの通知が来ました。github上では特段何もコメントがありませんでしたが、ツィートは出ていました。

Update! A user contributed with Mac OSX support for LabTool SW https://t.co/HrzqxaRz0F https://t.co/e8ppNMIDGb

— Embedded Artists (@EmbeddedArtists)

2014, 6月 11

残念ながら本家のWebサイトではバイナリはアップされていませんが、代わりにこちらで本家にマージされたソースからビルドしたものをアップしておきます。記事末尾を参照ください。

@nxpfanさんも宣伝してくれました。

話題のEmbeddedArtists社のLabTool. @edy555 さんによりMac対応アプリのバイナリが公開されています.LabToolをお持ちのMacユーザの方はぜひお試し下さい! https://t.co/A3vhbnxwP4

— nxp fan (@nxpfan)

2014, 6月 10

さらに6/13に秋葉原で行われた「ARM Cortex-M マイコン・ワークショップ 2014」ではLPCのブースにてデモもしていただいていたようです。写真で確かにMacでLabToolが動いています。でっちあげたアイコンがDockに見えています。

Mac版LabToolデモ中。(^^) QuickJackのデモも!by くまさん pic.twitter.com/GS3RnOgYQD

— YoshiHonjo (@momo0sma)

2014, 6月 13

というわけですので、是非ご利用ください。

リファレンス

comments powered by Disqus