Windows CE (.NET) とか IoTとか

組込みWindows と IoTの話を扱います

Visual Studio .NET 2005でのSmart Device開発 (その2)

現状のVisual Stuido .NET 2005をPlatform Builderで構築したCE 5.0環境で動作させるには、TCP/IP接続が鍵になりそうです。

まず以下のドキュメントを見てみてください。

How to: Connect to Windows CE Device Without ActiveSync

http://msdn2.microsoft.com/en-us/library/ms228708.aspx

VS.NET 2005においても、以前のVS.NETと同じくFileメニューの"New -> Project"でプロジェクトウィザードを起動してプロジェクト生成します。ウィザードではVisual C#Visual Basic、Visual C++ともに"Smart Device"カテゴリを選ぶことで、Win32/MFC/ATLや"Windows CE 5.0"Managed プロジェクトを作成することができます。

まずWin32プロジェクトを作ってみると、最初にSDKを選ぶ画面が出てきます。

VSPROJ_WIN32_1

VSPROJ_WIN32_2

次にプロジェクトの種類をウインドウアプリ/コンソールアプリ/DLL/スタティックライブラリなどから選びます。このままFinishすると、いわゆるHello Worldアプリのプロジェクトが作成されます。何も変更せずにBuildメニューからBuild Solutionを実行すると、

========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

となってビルド成功です。次に何も設定変更せずにBuildメニューから"Deploy Solution"を実行してみると、

Device is not ready. If target is an ActiveSync device, verify whether ActiveSync connection is running.

Connect to device failed.

となって、どうもActiveSync接続を想定しているようなエラーが出ます。

ここで、上記ドキュメントの記述を参考に、以下の手順でx86エミュレータイメージを接続、デバッグすることができました。

(以下、STANDARD SDK 5.0を想定した手順を説明しますが、実際には各自PB5.0でSDKx86エミュレータイメージを作成してください。)

[デバイス側の準備]

0. ターゲットのCE機をネットワークに接続します。エミュレータの場合はネットワークを"Virtual Switch"にするのを忘れずに

1. \Program Files\Common Files\Microsoft Shared\CoreCon\1.0\Target\wce400\ 以下の5つのファイルをデバイスの\Windowsフォルダにコピーする

(リモートファイルビューアなど使ってみてください)

2. ipconfigなどでCEデバイスIPアドレスを確認する

3. CEデバイスの\Windows\conmanclient2.exeを起動する

起動すると一時フォルダが作成されますが、ウインドウなどは開かずに常駐プロセスとなります。

[VS.NET 2005側の準備]

1. ToolsメニューのOptionでOptionダイアログを表示し、ツリービューのDevice Tools - Devices項目を選択

VSPROJ_WIN32_3

2. Devices リストビュー項目で"STANDARDSDK_500"などSDK項目を選ぶと、その中で定義されているデバイスがリストビューに表示されます。ここでは"CEPC: X86 Win32 (WCE x86)"を選んでみました

(実際にはPlatform Managerと同じで、任意の新しいデバイス名を付けることができるようです)

3. 右の"Properties"ボタンを押して、Transportに"TCP Connect Transport"を選び、右の"Configure"ボタンを押して"Device IP Address"に"Use specific IP Address"を選び、2で調べたIPアドレスを入力してOK

(開発用PCからPingが通ることを確認しておくとよいかもしれません)

[いよいよ接続]

1. デバイス側でcMaccept.exeを実行します。このモジュールを実行してから3分間接続が開くそうです。実行しても特にウインドウが開くわけではありません。

2. 開発機でTarget Device表示が上記と同じもの(たとえば"CEPC: X86 Win32 (WCE x86)")になっていることを確認してBuild メニューから"Deploy Solutin"をやってみましょう。今度は成功するはずです。

3. Deployに成功したら、(デバッグビルドの場合)DebugメニューからStart Debuggingを実行するとGUIデバッグモードになりデバッグセッションが開始されます。実はEthernetで接続していると、むしろActiveSync接続よりも高速に通信できるようです。

4. ToolsメニューのConnect To Deviceで接続を確認することができます。WM5.0エミュレータではこの操作でエミュレータ起動できるのですが、TCP/IP接続では特に必要ありません。"Done"ボタンを押してダイアログを閉じます。

VSPROJ_WIN32_4

VSPROJ_WIN32_5