IMbnSignal
COM公式ドキュメント
モバイルブロードバンド接続の無線信号品質を取得します。
解説(Remarks)
呼び出し側アプリケーションは、IMbnInterface の QueryInterface メソッドを呼び出すことでこのインターフェースを取得できます。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
デバイスが受信した信号強度を取得します。
| signalStrength | DWORD* | out | デバイスが受信した信号品質へのポインター。信号強度が不明であるか、デバイスで検出できない場合は MBN_RSSI_UNKNOWN に設定されます。 このメソッドが S_OK 以外の値を返した場合、このパラメーターは 0 になります。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターンコード | 説明 |
|---|---|
| メソッドは正常に完了しました。 | |
| 信号品質を利用できません。モバイルブロードバンドサービスは、この情報を取得するために現在デバイスを調べています。信号品質が利用可能になると、モバイルブロードバンドサービスは IMbnSignalEvents の OnSignalStateChange メソッドを呼び出します。 |
解説(Remarks)
GetSignalStrength は、モバイルブロードバンドデバイスが受信した信号強度を報告します。GSM ベースのデバイスの場合、受信した信号強度をコード化された値として報告します。CDMA デバイスの場合、Raw RSSI ではなく Compensated RSSI(ノイズを考慮)に基づいて報告します。
次の表は、返される可能性のあるコード化された値を示しています。
| 信号強度(dBm) | コード化された値(最小: 0 最大: 31) |
|---|---|
| -113 以下 | 0 |
| -111 | 1 |
| -109 | 2 |
| ... | ... |
| ... | ... |
| -51 以上 | 31 |
| 不明または検出不可 | MBN_RSSI_UNKNOWN |
回復可能なエラー E_MBN_PIN_REQUIRED および E_MBN_RADIO_POWER_OFF の場合、モバイルブロードバンドサービスは、エラー状態が解消されたときに信号状態についてデバイスを再度クエリします。このメソッドは、クエリ操作が完了するまで E_PENDING を返します。新しいクエリが完了すると、モバイルブロードバンドサービスは IMbnSignalEvents の OnSignalStateChange メソッドを呼び出します。
受信した信号のエラー率を取得します。
| signalError | DWORD* | out | 受信した信号のエラー率へのポインター。 モバイルブロードバンドインターフェースは、信号エラー率を、エラー率のパーセンテージ範囲に対応するコード化された値として報告します。これは GSM の場合はチャネルビットエラー率、CDMA の場合はフレームエラー率です。どちらの場合も、MBN_ERROR_RATE_UNKNOWN は不明なエラー率を示します。 次の表は、エラー率コードの値を示しています。
|
戻り値
このメソッドは次のいずれかの値を返します。
| リターンコード | 説明 |
|---|---|
|
メソッドは正常に完了しました
。 |
|
| エラー率はまだ利用できません。モバイルブロードバンドサービスは、情報を取得するために現在デバイスを調べています。エラー率が利用可能になると、モバイルブロードバンドサービスは IMbnSignalEvents の OnSignalStateChange メソッドを呼び出します。 |
解説(Remarks)
モバイルブロードバンドインターフェースは、信号エラー率を、エラー率のパーセンテージ範囲に対応するコード化された値として報告します。これは GSM の場合はチャネルビットエラー率、CDMA の場合はフレームエラー率です。どちらの場合も、MBN_ERROR_RATE_UNKNOWN は不明なエラー率を示します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IMbnSignal "{DCBBBAB6-2003-4BBB-AAEE-338E368AF6FA}" #usecom global IMbnSignal IID_IMbnSignal "{}" #comfunc global IMbnSignal_GetSignalStrength 3 var #comfunc global IMbnSignal_GetSignalError 4 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IMbnSignal "{DCBBBAB6-2003-4BBB-AAEE-338E368AF6FA}" #usecom global IMbnSignal IID_IMbnSignal "{}" #comfunc global IMbnSignal_GetSignalStrength 3 sptr #comfunc global IMbnSignal_GetSignalError 4 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。