Windows Mobile からの お手軽デバイス利用術 CH3COOH( 酢酸 )
自己紹介 <ul><li>CH3COOH( 酢酸 ) です </li></ul><ul><li>携帯電話用のアプリ開発に携わった後、 現在は、業務系システムを VB.NET で開発しています </li></ul><ul><li>プライベートで、...
Windows Mobileとは <ul><li>Windows CE をベースにした PDA 向けのプラットフォーム </li></ul><ul><li>国内では、 WILLCOM の W-ZERO3 シリーズを始めとして、「スマートフォン」...
Windows Mobile 端末に 搭載されているデバイスの例 <ul><li>カメラ </li></ul><ul><li>GPS </li></ul><ul><li>BlueTooth </li></ul><ul><li>赤外線 </li>...
.NET Compact Framework で サポートされているデバイス <ul><li>カメラ </li></ul><ul><li>GPS </li></ul><ul><li>BlueTooth </li></ul><ul><li>赤外線...
.NET Compact Framework からの デバイスの利用例 <ul><li>.NET Compact Framework で、 未サポートのデバイスを使用するには、 Win32API を P/Invoke で呼び出します </li>...
P/Invoke を使った 長~~~いコード (1) <ul><li>LED とバイブレータを制御する NLedAPI を呼び出すために P/Invoke の定義を行います </li></ul><ul><li>Public Class Led ...
P/Invoke を使った 長~~~いコード (2) <ul><li>NLedAPI に渡す構造体の定義を行います </li></ul><ul><li>Private Structure NLED_SETTINGS_INFO </li></ul...
P/Invoke を使った 長~~~いコード  (3) <ul><li>Public Shared Function GetLedCount() As Integer </li></ul><ul><li>Dim info As New NLED...
P/Invoke を使った 長~~~いコード  (4) <ul><li>バイブレーションをさせる為のクラスを定義しましたので、実際にバイブをさせる処理です </li></ul><ul><li>    Private Sub Button2_Cl...
OpenNETCF を使った 短くシンプルなコード <ul><li>OpenNETCF.WindowsCE.dll を参照して、 実際にバイブをさせる処理です </li></ul><ul><li>   Private Sub Button1_C...
OpenNETCF とは <ul><li>.NET Compact FrameworkからWindows Mobileを使いやすくする為のシェアソースのクラスライブラリ </li></ul><ul><li>コードをそのままでなければ販売出来るし...
デバイスを活用した ソリューションの提案 <ul><li>GPS を使った営業支援システム </li></ul><ul><ul><li>GPS ロガーで経路を記録して、 そのまま営業日報として配信 </li></ul></ul><ul><li>...
まとめ <ul><li>手間の掛かるデバイス制御の部分に OpenNETCF を使うことで、 本質の部分にリソースを投入する事が 出来るのではないでしょうか? </li></ul>
最後に <ul><li>Windows Mobile CF  プログラミング  Tips </li></ul><ul><ul><li>http://ch3cooh.jp/tips/wm/ </li></ul></ul><ul><ul><li>C...
<ul><li>ご清聴ありがとうございました </li></ul>
Upcoming SlideShare
Loading in …5
×

Windows Mobileからのお手軽デバイス利用術

3,469 views

Published on

2009/05/29に開催予定だった Tech Fielders セミナー 大阪[忙しい IT エンジニアに贈る『最新開発テクノロジーことはじめ』~あるエバンジェリストの視点で。] のLTでお披露目する予定のセッション資料です。

Windows Mobileからデバイスをお手軽に利用するために「OpenNETCF」のお話をさせて頂く予定でした。

  • Be the first to comment

  • Be the first to like this

Windows Mobileからのお手軽デバイス利用術

  1. 1. Windows Mobile からの お手軽デバイス利用術 CH3COOH( 酢酸 )
  2. 2. 自己紹介 <ul><li>CH3COOH( 酢酸 ) です </li></ul><ul><li>携帯電話用のアプリ開発に携わった後、 現在は、業務系システムを VB.NET で開発しています </li></ul><ul><li>プライベートで、 Windows Mobile 向けの アプリを開発しています ( あまり公開していませんが…… ) </li></ul>
  3. 3. Windows Mobileとは <ul><li>Windows CE をベースにした PDA 向けのプラットフォーム </li></ul><ul><li>国内では、 WILLCOM の W-ZERO3 シリーズを始めとして、「スマートフォン」と呼ばれる分野で採用されています </li></ul><ul><li>先日開催された TechEd US のセッションでは、 最新バージョンの「 Windows Mobile 6.5 」の話が中心でした。 </li></ul>
  4. 4. Windows Mobile 端末に 搭載されているデバイスの例 <ul><li>カメラ </li></ul><ul><li>GPS </li></ul><ul><li>BlueTooth </li></ul><ul><li>赤外線 </li></ul><ul><li>無線 LAN </li></ul><ul><li>加速度センサ </li></ul><ul><li>バイブレータ </li></ul>
  5. 5. .NET Compact Framework で サポートされているデバイス <ul><li>カメラ </li></ul><ul><li>GPS </li></ul><ul><li>BlueTooth </li></ul><ul><li>赤外線 </li></ul><ul><li>無線 LAN </li></ul><ul><li>加速度センサ </li></ul><ul><li>バイブレータ </li></ul>
  6. 6. .NET Compact Framework からの デバイスの利用例 <ul><li>.NET Compact Framework で、 未サポートのデバイスを使用するには、 Win32API を P/Invoke で呼び出します </li></ul><ul><li>ここではバイブレーションを使用する為の P/Invoke と OpenNETCF を使ったサンプルコードをご紹介します </li></ul>
  7. 7. P/Invoke を使った 長~~~いコード (1) <ul><li>LED とバイブレータを制御する NLedAPI を呼び出すために P/Invoke の定義を行います </li></ul><ul><li>Public Class Led </li></ul><ul><li><DllImport(&quot;coredll.dll&quot;, SetLastError:=True)> _ </li></ul><ul><li>Private Shared Function NLedGetDeviceInfo(ByVal h As UInteger, _ </li></ul><ul><li>ByRef pOutput As NLED_COUNT_INFO) As Boolean </li></ul><ul><li>End Function </li></ul><ul><li><DllImport(&quot;coredll.dll&quot;, SetLastError:=True)> _ </li></ul><ul><li>Private Shared Function NLedSetDevice(ByVal h As UInteger, _ </li></ul><ul><li>ByRef pOutput As NLED_SETTINGS_INFO) As Boolean </li></ul><ul><li>End Function </li></ul><ul><li>Private Const NLED_COUNT_INFO_ID As UInteger = 0 </li></ul><ul><li>Private Const NLED_SETTINGS_INFO_ID As UInteger = 2 </li></ul>
  8. 8. P/Invoke を使った 長~~~いコード (2) <ul><li>NLedAPI に渡す構造体の定義を行います </li></ul><ul><li>Private Structure NLED_SETTINGS_INFO </li></ul><ul><li>Public LedNum As UInteger </li></ul><ul><li>Public OffOnBlink As Integer </li></ul><ul><li>Public TotalCycleTime As Long </li></ul><ul><li>Public OnTime As Long </li></ul><ul><li>Public OffTime As Long </li></ul><ul><li>Public MetaCycleOn As Integer </li></ul><ul><li>Public MetaCycleOff As Integer </li></ul><ul><li>End Structure </li></ul><ul><li>Private Structure NLED_COUNT_INFO </li></ul><ul><li>Public cLeds As UInteger </li></ul><ul><li>End Structure </li></ul>
  9. 9. P/Invoke を使った 長~~~いコード (3) <ul><li>Public Shared Function GetLedCount() As Integer </li></ul><ul><li>Dim info As New NLED_COUNT_INFO() </li></ul><ul><li>Dim LEDCount As Integer = 0 </li></ul><ul><li>If NLedGetDeviceInfo(NLED_COUNT_INFO_ID, info) Then </li></ul><ul><li>LEDCount = CInt(info.cLeds) </li></ul><ul><li>End If </li></ul><ul><li>Return LEDCount </li></ul><ul><li>End Function </li></ul><ul><li>Public Shared Sub SetLedStatus(ByVal ledID As Integer, _ </li></ul><ul><li>ByVal status As Integer) </li></ul><ul><li>Dim info As New NLED_SETTINGS_INFO() </li></ul><ul><li>With info </li></ul><ul><li>.LedNum = System.Convert.ToUInt32(ledID) </li></ul><ul><li>.OffOnBlink = System.Convert.ToUInt16(status) </li></ul><ul><li>End With </li></ul><ul><li>NLedSetDevice(NLED_SETTINGS_INFO_ID, info) </li></ul><ul><li>End Sub </li></ul><ul><li>End Class </li></ul>
  10. 10. P/Invoke を使った 長~~~いコード (4) <ul><li>バイブレーションをさせる為のクラスを定義しましたので、実際にバイブをさせる処理です </li></ul><ul><li>  Private Sub Button2_Click(ByVal sender As System.Object, _ </li></ul><ul><li>ByVal e As System.EventArgs) _ </li></ul><ul><li>Handles Button2.Click </li></ul><ul><li>' バイブレーション開始 </li></ul><ul><li>LedVibrate.SetLedStatus(1, 1) </li></ul><ul><li>' 2 秒間鳴動させた後、バイブを停止する </li></ul><ul><li>System.Threading.Thread.Sleep(2000) </li></ul><ul><li>LedVibrate.SetLedStatus(1, 0) </li></ul><ul><li>End Sub </li></ul>
  11. 11. OpenNETCF を使った 短くシンプルなコード <ul><li>OpenNETCF.WindowsCE.dll を参照して、 実際にバイブをさせる処理です </li></ul><ul><li>   Private Sub Button1_Click(ByVal sender As System.Object, _ </li></ul><ul><li>ByVal e As System.EventArgs) _ </li></ul><ul><li>Handles Button1.Click </li></ul><ul><li>' バイブレーション開始 </li></ul><ul><li>Dim led As New OpenNETCF.WindowsCE.Notification.Led() </li></ul><ul><li>led.SetLedStatus(1, OpenNETCF.WindowsCE.Notification.Led.LedState.On) </li></ul><ul><li>' 2 秒間鳴動させた後、バイブを停止する </li></ul><ul><li>System.Threading.Thread.Sleep(2000) </li></ul><ul><li>led.SetLedStatus(1, OpenNETCF.WindowsCE.Notification.Led.LedState.Off) </li></ul><ul><li>End Sub </li></ul>
  12. 12. OpenNETCF とは <ul><li>.NET Compact FrameworkからWindows Mobileを使いやすくする為のシェアソースのクラスライブラリ </li></ul><ul><li>コードをそのままでなければ販売出来るし、公開義務も発生しないので一部を取り込んで利用も出来ます(ライセンスに気をつけてください) </li></ul>
  13. 13. デバイスを活用した ソリューションの提案 <ul><li>GPS を使った営業支援システム </li></ul><ul><ul><li>GPS ロガーで経路を記録して、 そのまま営業日報として配信 </li></ul></ul><ul><li>カメラを使った出張買取サービス </li></ul><ul><ul><li>車の出張買取サービスで査定情報の入力や キズなどを撮影したデータを本部に配信 </li></ul></ul>
  14. 14. まとめ <ul><li>手間の掛かるデバイス制御の部分に OpenNETCF を使うことで、 本質の部分にリソースを投入する事が 出来るのではないでしょうか? </li></ul>
  15. 15. 最後に <ul><li>Windows Mobile CF プログラミング Tips </li></ul><ul><ul><li>http://ch3cooh.jp/tips/wm/ </li></ul></ul><ul><ul><li>CF のサンプルコードや P/Invoke を使ったデバイスの操作に関する Tips などを掲載しています </li></ul></ul><ul><li>スマートフォン勉強会 </li></ul><ul><ul><li>http://smartphone.techtalk.jp/ </li></ul></ul><ul><ul><li>スマートフォン全般の使い方や、アプリケーションの開発手法をみんなで学んでいく勉強会です </li></ul></ul><ul><ul><li>大阪は奇数月、東京では偶数月に開催してます </li></ul></ul>
  16. 16. <ul><li>ご清聴ありがとうございました </li></ul>

×