スポンサーサイト

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    【WindowsMobile】【C#】バイブレータ制御

    久々の更新です。
    最近はWindowsMobile3.5な日々です。
    あるタイミングでWindowsMobile携帯をぶるぶるさせたくなったので調べました。
    バイブレータの制御の仕方。
    
            [DllImport("coredll.dll", SetLastError = true)]
            private static extern bool NLedGetDeviceInfo(uint h, ref NLED_SETTINGS_INFO pOutput);
            [DllImport("coredll.dll", SetLastError = true)]
            private static extern bool NLedSetDevice(uint h, ref NLED_SETTINGS_INFO pOutput);
    
            private struct NLED_SETTINGS_INFO
            {
                public uint LedNum;
                public int OffOnBlink;
                public long TotalCycleTime;
                public long OnTime;
                public long OffTime;
                public int MetaCycleOn;
                public int MetaCycleOff;
            }
    
            private const uint NLED_SETTINGS_INFO_ID = 2;
    
            private static void StartVibration()
            {
                NLED_SETTINGS_INFO ledSetting = new NLED_SETTINGS_INFO();
                ledSetting.LedNum = 1; // LED 1番 = バイブレータ
                ledSetting.OffOnBlink = 1; // 振動開始
                NLedSetDevice(NLED_SETTINGS_INFO_ID, ref ledSetting);
            }
    
            private static void StopVibration()
            {
                NLED_SETTINGS_INFO ledSetting = new NLED_SETTINGS_INFO();
                ledSetting.LedNum = 1; // LED 1番 = バイブレータ
                ledSetting.OffOnBlink = 0; // 振動終了
                NLedSetDevice(NLED_SETTINGS_INFO_ID, ref ledSetting);
            }
    

    OffOnBlinkが1で振動開始、0で振動終了のようです。
    今回はぶるぶるっとしてほしいだけなので、
            public static void DoVibration(int millisecondsTimeout)
            {
                StartVibration();
    
                System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(() =>
                {
                    System.Threading.Thread.Sleep(millisecondsTimeout);
                    StopVibration();
                }));
                thread.Start();
            }
    
    こんな感じで、指定時間後に止めるようにしました。
    (なんか、時間を500mSecくらいにセットすると、近い間隔でDoVibrationした場合、止まってくれない・・・。
     ま、そこは時間を調節してクリアってことで・・・)
    スポンサーサイト

    テーマ : プログラミング
    ジャンル : コンピュータ

    【WindowsMobile】エミュレーターのネットワーク設定

    なんだかんだで、気が付いたら今度は、Windows Mobile ですわ。6.5ですけど。

    で、まずはエミュレータの準備ですが、
    いわれるがまま、用意された3ファイルを順番にインストール。
    (バージョンは6.5.3と指定があったので)
    1-Windows Mobile 6 Professional SDK Refresh.msi
    2-Windows Mobile 6.5.3 Professional DTK.msi
    3-Windows Mobile 6.5.3 Professional Images (JPN).msi

    この順番に入れないとうまく入らないらしい。

    で、あとは、VisualStudioからスマートデバイスプロジェクトを作って
    とりあえず実行。

    すると、エミュレータが上がる。

    おお、こいつがWindows Mobileか。
    と思いつつも、実機も触ったことないので、何がどうなっているやら・・・。

    しばらくいじくりまわして、やっとUIに慣れてきた。

    さて、ネット見れるんかね。とおもいつつ
    IEを立ち上げて、なんか検索してみる。

    すると、接続できません。の画面に・・・。

    すなおには、つないでくれないか・・。

    あきらめてGoogle先生協力の元、エミュレーターをネットにつなぐべく、調べることに。
    Windows Mobile エミュレーターでインターネットに接続するには (修正版)... | tumblr | atsushi nagase * developments
    ↑このサイトが大変参考になりました。

    で、わかったこと。
    ・エミュレーターのネット接続には、VirtulPC2007が必要。

    なんでやねん!
    と思わず突っ込みを入れずにはいられなかったが。
    とりあえず、VirtualPCを取りにMicrosoft(のサイト)へ
    すると、ViutualPCの最新版は、どうも2007ではなく、ViutualPCというらしい。
    Windows7専用だとか。
    (ああ、あれね。XPModeのやつね。)

    ま、ネットワークドライバがほしいだけなので、こっちでもいいか。
    とその最新のViutualPCをインストールしてみることに。

    しかし、甘かった。
    インストールが終わって、エミュレータのネットワークを設定しようとしても、
    やはり、「ViutualPC2007が見つかりません」とかいうし。

    え~。違うんかい・・・。

    仕方ないので、ViutualPC2007もインストールをするか。

    そして、ViutualPC2007を取ってきて、インストールすべく、exeを実行したら
    このマシンは対応していません とかいうし・・・。

    なぜに?あ、あれか、ViutualPC入っているからか・・。
    共存、できないのね・・。

    仕方なく、ViutualPC(XPMode)をアンインストールして、やりなおすと、
    無事インストールできた。

    そして、先に引用したサイトに従い

    ・エミュレータのメニュー→「ファイル」→「構成」
    ・エミュレータのプロパティにて、「ネットワーク」タブ→「NE2000 PCMCIA ネットワーク アダプタを有効にし、 次の項目にバインドする」にチェックを入れる。(「接続されたネットワークカード」を選択する)

     →「OK」
    ・次にメニュー→「ファイル」→「リセット」→「ハード」を選択し、ハードリセット。
     (画面が真っ暗になり、しばらくしてからトップ画面に戻ればリセット完了)
    ・OSのネットワーク設定
     WindowsMobile内のスタートボタンをクリックして「設定」メニューを選択
     設定画面が開いたら、下のタブから「接続」を選択し、「接続」の項目を選択
     設定画面が開いたら「詳細設定」タブを選択し、「ネットワークの選択」ボタンをクリック
     「インターネットに自動的に接続するプログラムの接続方法」から「既定の社内ネットワーク設定」を選択して「編集…」ボタンをクリック
     タブから「プロキシの設定」を選択し、「このネットワークをインターネットに接続する」にチェックを入れる。
    で「OK」

    という具合に、進めていくと、見事つながりました。

    ここまでやって、別の仕事が入ってしまった。
    せっかくこれからWindowsMobleをいじろうと思ったのに・・・。

    と思いつつも、仕事仕事・・・

    テーマ : プログラミング
    ジャンル : コンピュータ

    プロフィール

    ざっち

    Author:ざっち
    ざっちのーと
    ♪自由なSEのメモ帳です♪

    ざっちのスキル一覧
    ----------------
    上級(手足も同然!)
    ・.net FrameWork
    ・C#
    ・SqlServer
    ・VisualBasic6.0
    ----------------
    中級(だいたいOK!)
    ・WPF(XAML)
    ・Android
    ・WindowsMobile6.5
    ・HTML
    ----------------
    下級(や、やればできるさ!)
    ・PHP
    ・JavaScript
    ・SilverLight
    ・SQLite
    ・Python(だってjetCreaterが・・・)
    ・C++(OpenCVいじってみたくて・・・)
    ----------------
    最近のお気に入り
    ・WPF(XAML)
    ・Android
    ・GoogleAPI
    ----------------

    最近の記事
    月別アーカイブ
    カテゴリー
    夢見る羊さん
    地球の名言Ⅱ

    presented by 地球の名言

    Twitter...A

    Twitter < > Reload

    ブロとも申請フォーム

    この人とブロともになる

    ブログ内検索
    RSSフィード
    リンク
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。