2007-09-14

LED制御

MSDNを読んでいたら適当にクリックしていたら、 NLedSetDeviceなるものを発見しました。
 
どうやら、指定したLEDを点灯・消灯・点滅させることができる APIみたいです。 早速、適当に動かしてみることにします。
NLED_SETTINGS_INFO ledSetting;
ledSetting.LedNum      = 0; // LED 0番
ledSetting.OffOnBlink  = 1; // 点灯

if (!NLedSetDevice(NLED_SETTINGS_INFO_ID, &ledSetting)) {
    CString strErrorMessage;

    strErrorMessage.Format(_T("Error : %d"), GetLastError());
    MessageBox(NULL, strErrorMessage, _T("NLedSetDevice"), MB_OK);
}
 
このコードで充電ランプが黄緑色に点灯しました。
 
ところが同じように LedNumに 1を指定すれば 電波状態ランプが点灯すると思ったのですが、 実行しても何も光りませんでした。
 
念のため LedNumに 2を指定してみましたが、 今度は ERROR_INVALID_PARAMETER(87)のエラーが発生しました。
 
確認のために NLedGetDeviceInfoで LEDの数を取得してみたところ、2個あることになっているみたいです。
NLED_COUNT_INFO ledCount;
INT iCount = 0;

if(NLedGetDeviceInfo(NLED_COUNT_INFO_ID, (PVOID) &ledCount)) {
    iCount = ledCount.cLeds;
}
 
てっきり 0, 1, 2で充電、電波状態、無線LANのランプが制御できると思っていたのですが、 電波状態と無線LANのランプはどこで制御するのでしょうか?
 
また、システムに登録されている 2番目のLEDはどこに行ってしまったのでしょうか?
 

2 件のコメント:

beckn さんのコメント...

WiFiInfo、いつも有り難く使わせて貰っています。
LEDで思い出しましたが、こちらの情報は関係ありますか?
http://w03holic.seesaa.net/article/51492435.html
すでにご存知だったり無関係ならば失礼します。

kazuaki さんのコメント...

becknさん こんばんは。

教えていただいたページを拝見しましたが、全く知らない情報でした(笑
ありがとうございます。

実は無線LANの省電力モードを切り替えたときに LEDの点灯方法を変えられたらいいな...と思っていたのですが、NLedSetDeviceでは実現できなさそうですね。

それにしても "WLanPowOn"といい "LedDrvOnEventWLAN"といい、みなさんどうやって調べてくるのでしょうね。