モデム関連の情報を取得する方法を紹介します。
モデム関連の情報として取得できる値は以下の通りとなります。
IMEIやIMSIは端末識別番号としてクラウド側の管理番号として使われる事が多いため、ここから取得して利用することが出来ます。
情報 | 補足 |
---|---|
電波強度 | LTE基地局から受信している電波の強度 |
IMEI | 本製品の識別番号 |
IMSI | SIMに紐づく識別番号 |
電話番号 | SIMに紐づく電話番号 |
モデム関連の情報取得をするAPIは以下となります。
API | 内容 | |
---|---|---|
1 | MMG_GetAntLevel() | LTE基地局から受信している電波の強度の取得 |
2 | MMG_GetIMEI() | 本製品の識別番号の取得(IMEI) |
3 | MMG_GetIMSI() | SIMに紐づく識別番号の取得(IMSI) |
4 | MMG_GetNUM() | SIMに紐づく電話番号の取得 |
電波強度を取得するAPIとなります。
MMG_GetAntLevel(int32 timeout, uint8 sync, uint8 ex_result)
timeout : タイムアウト値[msec]
sync : 同期方式 (EAPI_SYNC_RESULTの指定固定)
ex_result : API実行結果<成功:0>
戻り値
0〜4:電波強度(0:圏外 〜 4:強)
-1:失敗
※本APIはモデムが起動していない場合は起動してから値の取得をします。
このためtimeoutはモデム起動時間を加味した値が必要です。
ex_resultはモデムの故障等がなければ成功で返ります。
※SIMが挿入されてない場合、戻り値は0で返ります。
#incliude "modemMgrTask.h"
#incliude "eventLib.h"
~
func any_func() {
uint8 ex_result;
int32 ret;
// 電波強度を取得
ret = MMG_GetAntLevel( 10*1000, EAPI_SYNC_RESULT, ex_result);
}
IMEI, IMSIを取得するAPIとなります。
MMG_GetIMEI(int32 timeout, uint8 sync, uint8 ex_result)
timeout : タイムアウト値[msec]
sync : 同期方式 (EAPI_SYNC_RESULTのみ)
ex_result : API実行結果<成功:0>
戻り値
IMEI値 str 15文字、失敗時は空文字 ""
※本APIはモデムが起動していない場合は起動してから値の取得をします。
このためtimeoutはモデム起動時間を加味した値が必要です。
ex_resultはモデムの故障等がなければ成功で返ります。
MMG_GetIMSI(int32 timeout, uint8 sync, uint8 ex_result)
timeout : タイムアウト値[msec]
sync : 同期方式 (EAPI_SYNC_RESULTのみ)
ex_result : API実行結果<成功:0>
戻り値
IMSI値 str 15文字、失敗時は空文字 ""
※本APIはモデムが起動していない場合は起動してから値の取得をします。
このためtimeoutはモデム起動時間を加味した値が必要です。
ex_resultはモデムの故障等がなければ成功で返ります。
#incliude "modemMgrTask.h"
#incliude "eventLib.h"
~
func any_func() {
uint8 ex_result;
str imei[15];
str imsi[15];
// IMEI、IMSIを取得
imei = MMG_GetIMEI( 10*1000, EAPI_SYNC_RESULT, ex_result);
imsi = MMG_GetIMSI( 10*1000, EAPI_SYNC_RESULT, ex_result);
}
電話番号を取得するAPIです
MMG_GetNUM(int32 timeout, uint8 sync, uint8 ex_result)
timeout : タイムアウト値[msec]
sync : 同期方式 (EAPI_SYNC_RESULTのみ)
ex_result : API実行結果<成功:0>
戻り値
電話番号 str 一般的には11文字、失敗時は空文字 ""
※本APIはモデムが起動していない場合は起動してから値の取得をします。
このためtimeoutはモデム起動時間を加味した値が必要です。
ex_resultはモデムの故障等がなければ成功で返ります。
#incliude "modemMgrTask.h"
#incliude "eventLib.h"
~
func any_func() {
uint8 ex_result;
str telnum[15];
// 電話番号を取得
telnum = MMG_GetNUM(10*1000, EAPI_SYNC_RESULT, ex_result);
}
モデム機能は、LTE通信をしない場合はモデム機能をOFFすることで消費電量を抑えることができます。
電波強度やIMEI値などのAPIを利用した際に、モデム機能がOFFだった場合は、モデム機能はONに変更されています。この場合は必要に応じでモデム機能をOFFしてください。
このサンプルコードではボタン押下(1秒以上4秒未満)するとディスプレイに電波強度の数字を表示をします。1秒以内のボタン押下では時計画面が表示されますので、そこにアンテナピクトも表示されます。その本数と同じ数字が出力されていることを確認ください。
このサンプルコードではボタン押下(1秒以内)するとIMEIとIMSIを取得して結果をディスプレイへ表示します。
このサンプルコードではボタン押下(1秒以内)すると電話番号を取得して結果をディスプレイへ表示します。
各サンプルコードについて動作確認を行っておりますが、全ての環境において動作を保証するものではありません。正しく動作することを確認の上でご利用ください。
対応機種:KC4-C-100A/KC4-C-101A