MQTT(1)

CodeZineというWebサイトに、

『IoT時代を支えるプロトコル「MQTT」』という

解説記事が掲載されていました。

⇒記事はこちら



先日開催されたWindows Embedded Community Dayでも、

MVPの古賀さんが解説されていましたが、

遅ればせながら、最近ちゃんとMQTTについて理解しようと、

いろいろと記事を読み漁ってます。


ワイヤレスM2Mだと携帯通信網を使用するケースが多々あるんですが、

そこで従量制だった場合にやはり通信量が気になってくるので、

軽量なプロトコルも必要だなぁ・・・と。

いまさらですが(汗)。


まぁ、実際のところは通信頻度やらデータ圧縮やら省電力やら

いろいろと考えないといけないポイントがあって、

プロトコルだけの単純な話じゃないんですが。



Web上の記事では、Pythonを使ったデモをよく見かけますが、

Windows Embeddec Compactだと、.NETCFアプリで使える

MQTT Clientのライブラリが、CodePlexにアップされています。

⇒ページはこちら


まずはこれを動かしてみようかと思うのですが、

例によって自分はC++でアプリを組みたいので、

他プラットフォームのC++版Clientを移植してみようかな。



コメント ( 0 ) | Trackback ( 0 )

OSイメージのみでデバイスにEthernetダウンロード

OSイメージ(nk.bin)をPlatform BuilderがインストールされたVisual Studioで開くことができて、

ファイルやレジストリ初期値を確認することができることは

これまでの開発経験で知っていましたが、

それだけではなくて、OSイメージをEthernet経由でデバイスにダウンロードさせて

起動できることを最近知りました。

そう、OSイメージのプロジェクトファイル無しで。



もちろん、デバイス側がVisual Studio経由でのEthernetブートに対応している必要がありますが。



プロジェクトファイルといった開発用のファイルがなくても、

nk.binがあればOSイメージを確認できるっていいですね。



手順も単純で、Visual Studio起動させて、

ファイルメニューで[開く]->[プロジェクト/ソリューション]を選択して、

ファイル選択ダイアログで任意のnk.binを選択して、

開いたらTARGETメニューからAttachを選択。

以降は通常の開発でのEthenetブートの手順と同じ。


OSイメージ開発用のプロジェクトファイルがないと、

Ethernetダウンロードとかできないと思っていたので、

これはちょっと衝撃的でした(^_^;)






コメント ( 0 ) | Trackback ( 0 )

リモートでのデバイスアタッチに失敗した後の復帰方法

原因はわかっていませんが、とりあえず対処方法だけ・・・。


Windows Embedded Compact 2013で、

リモート(Ethernet経由)でデバイスにOSイメージを送り込む時に、

対象のデバイスからBootMeパケットを送信させている状態で

Visual Studio 2013のTARGETメニューから[Attach]を選択し、

対象デバイスを選択しますが、

その直後になぜか接続が切れ、OSイメージが転送できず、

さらにVisual Studio側で以下のメッセージが表示される場合があります。





このメッセージが出ると、Visual Studio側の操作ができません・・・。

⇒Visual Studio側で何か操作しようとすると、上記の画面が表示され、

 この画面を閉じ、再度操作しようとするとまた上記画面が出る・・・。


この現象が出たら、タスクマネージャーを起動し、

[Platform Builder Windows Embedded Compact Service Host]を

強制的に終了させてください。





終了させても、再度サービスは起動して表示されますが、

これでVisual Studio側の操作ができるようになっているはずです。

Visual Studioが操作できるようになったら、再度Attach操作を行ってみてください。
コメント ( 0 ) | Trackback ( 0 )

Minimal Shellのカスタマイズ(2)

以前の記事で、Minimal Shellにメニューを追加しましたが、

今回は背景画像を変える方法。


背景画像はRegistryでは変更できなくて、

Minimal Shellの画像ファイルを変更してビルドしてやる必要があります。


①ソースコードを適当なフォルダ(例えばC:\WINCE800\others)にコピーする。

 Minimal Shellのソースコードは以下のフォルダにあります。

 C:\WINCE800\public\shell\oak\MinShell


②OSイメージのプロジェクトのSubprojectにコピーしたMinimal Shellを追加

③sourcesファイルを書き換え

 ・RELEASETYPEをLOCALに変更

 ・_ISVINCPATHを追加し、必要なヘッダファイルが格納されたフォルダを指定

  $(_WINCEROOT)\public\common\sdk\incなど

 ・TARGETLIBSのLibファイルの指定を修正。

  $(_COREDLL) ⇒ $(SG_OUTPUT_ROOT)\sdk\lib\$(_CPUINDPATH)\coredll.libなど


④背景画像(desktop.bmp)を変更

 表示したい画像をdesktop.bmpという名前にして、既存のファイルを上書きするか、

 minshell.rc内のIDB_DESKTOP BITMAPに定義されているファイル名を変更するかしてください。


⑤レジストリの追加

 以下の内容がレジストリに含まれるようにしてください。

 [HKEY_LOCAL_MACHINE\init]
"Launch80"="minshell.exe"
"Depend80"=hex:1e,00, 3c, 00


⑥カタログでMinimal Shellを指定していたら、チェックを外してください。

⑦OSをビルド。


すると、たとえばこんな感じで背景画像を変更できます(笑)。










コメント ( 0 ) | Trackback ( 0 )

WEC2013のShell系API

WEC2013でExplorerシェルはなくなりましたが、

Shell APIは使えると思っていたのですが、

libの一部がなくなっている模様。

というか、APIは存在するけど、アプリに公開されていない・・・

というのが正しいのかも。



たとえば、「SHFileOperation」関数は

Ceshell.libをインポートすれば使えると思っていたけど、

そもそもこのCeshell.libが見当たらない。



Publicの以下のフォルダに、ソースコードは存在していました。

C:\WINCE800\public\shell\oak\shellapis\ceshell\api

なので、最終的にはどこかのDLLに含まれているとは思うんですが・・・。



含まれているDLLがわかれば、

最悪GetProcAddressで関数を動的に呼び出せるけど、

できればやりたくないなぁ・・・。



WEC7以前のソースコードを移植する際には、

こういったLibのチェックも必要ですね。


コメント ( 0 ) | Trackback ( 0 )

XAML for WECの変換ツール

Windows Embeddec Compact 7で、Silverlight for Windows Embeddedという仕掛けがありました。

GUIをXAMLで記述し、コードビハインドをC++で記述するアプリが作成できます。

WEC2013ではXAML for Windows Embeddedという名前に変わっています。


で、来週のセミナーのデモのために、

XAML for Windows Embeddedでアプリを作成していたところ、

そのままだとビルドが通らなかったので、

備忘録。


Visual Studio 2013には、SilverlightといったXAMLを使用するアプリを作成するために、

Blend for Visual Studio 2013というツールを提供しています。

このツールを使用して作成したSilverlight用のプロジェクトを

WEC2013向けにコンバートすることができます。



で、コンバートしたプロジェクトは、

WEC2013 OSのSubProjectとして取り込むことができますが、

なぜかビルドが通りませんでした。



その理由は、Silverlight用の設定が一部残ってしまっているためなようです。

コンバートしたプロジェクト内に、(プロジェクト名).xrpackというファイルがありますが、

この中にBlend for Visual Studio2013で作成した時のプロジェクト設定

が残ってしまっています。


 ⇒/Project=XXXX.csproj

この行を削除して、再度ビルドしてみてください。














コメント ( 0 ) | Trackback ( 0 )

Windows Embedded 8.1 Handheld搭載製品

先月Microsoft社とパナソニック社が開催したセミナーの記事が

ITProに掲載されていますね。

パナソニックとMSが「Windows Phone」開発者セミナー、CEからの移行狙う


パナソニック社のTOUGHPAD FZ-E1には

Windows Embedded 8.1 Handheld(以降、WE8Hと表記)が搭載されているそうです(Android搭載版もあるそうな)。


その昔、Windows Mobileと言われていたOSが名称変更して

Windows Emedded Handheld というOSができたんですが、

現在のWE8HはWindows Phoneベースです。



Windows Phone 8以降はベースがWindows RTということで、

Windows Embedded CE / Compact系のOSではなくなっています。



WE8Hを搭載した端末は、日本ではパナソニックしか出していないんじゃないですかね。


セミナーには参加できなかったんですが、

別の機会にTOUGHPADを触る機会があって、操作してみたんですが、

使い勝手はWindows Phoneと同様でいい感じでした。



コメント ( 0 ) | Trackback ( 0 )

WEC7とWEC2013の違いについて

以前の記事『WEC2013のデバッグツール』でも書きましたが、

WEC7からWEC2013になって、いくつかの機能が削除されていたりします。


WEC7とWEC2013のカタログアイテムの差異については、

MSDN内のCatalog Changes from Compact 7 to Compact 2013

まとめられています。


XPライクなStandard Shellがなくなったなんていうのは有名でしたが、

その他にもActiveSyncやSMBサーバ機能といったリモートでファイルを操作する機能、

スマートカード関連機能なんかも削除されていますね。



OS選定時には、要注意です。

場合によっては一つ前のバージョンであるWEC7を選択することも検討が必要ですね。

コメント ( 0 ) | Trackback ( 0 )

Windows Embedded Community Day 第4回が開催されます!

来たる9/1(月)に、Windows Embedded Community Dayの第4回目が開催されます!!

⇒どうでもいい話ですが、最近の子供たちの夏休み明けは、

 9/1じゃないんですね(汗)。


今回は

「IoT 時代の Windows とデバイス開発」

とタイトルにあるように、

今はやりのIoTとWindows Embeddedについて、

テクニカルな内容をお送りします。


私、今回も登壇します!

前回に引き続き、WECとクラウド連携について語ります。

ぜひご参加ください!



タイムテーブル及び詳細はこちらを参照ください。

Windows Embedded Community Day
第 4 回 - IoT 時代の Windows とデバイス開発




申し込みはこちらからドウゾ。

申し込みサイト

コメント ( 0 ) | Trackback ( 0 )

Minimal Shellのカスタマイズ

Minimal Shellにメニューを追加する方法の備忘録。

例として、前回移植したCERDispを起動するトリガーを作ってみました。


手順は簡単。

レジストリに以下のようなキーを追加します。

[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\Minshell\Remote Display]
"App"="cerdisp.exe"
"Param"="-c"

で、OSイメージを作成して実行してみると、

以下の通り。

コマンドプロンプトの下に、追加したキーが表示されます。





クリックすると、「cerdisp.exe」が実行時パラメータ「-c」を伴って呼び出されます。
コメント ( 0 ) | Trackback ( 0 )
« 前ページ