モデム

概要

モデム関連の情報を取得する方法を紹介します。

取得できるモデム関連の情報

モデム関連の情報として取得できる値は以下の通りとなります。
IMEIやIMSIは端末識別番号としてクラウド側の管理番号として使われる事が多いため、ここから取得して利用することが出来ます。

情報 補足
電波強度 LTE基地局から受信している電波の強度
IMEI 本製品の識別番号
IMSI SIMに紐づく識別番号
電話番号 SIMに紐づく電話番号

モデム情報取得

モデム関連の情報取得API

モデム関連の情報取得をするAPIは以下となります。

API 内容
1 MMG_GetAntLevel() LTE基地局から受信している電波の強度の取得
2 MMG_GetIMEI() 本製品の識別番号の取得(IMEI)
3 MMG_GetIMSI() SIMに紐づく識別番号の取得(IMSI)
4 MMG_GetNUM() SIMに紐づく電話番号の取得

MMG_GetAntLevel()

電波強度を取得するAPIとなります。

MMG_GetAntLevel(int32 timeout, uint8 sync, uint8 ex_result)
    timeout   :   タイムアウト値[msec]
    sync      :   同期方式 (EAPI_SYNC_RESULTの指定固定)
    ex_result :   API実行結果<成功0>
戻り値
    04電波強度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);

}

MMG_GetIMEI(), MMG_GetIMSI()

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);

}

MMG_GetNUM()

電話番号を取得する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してください。


サンプルコードの解説

「0901_電波強度情報を取得する」

このサンプルコードではボタン押下(1秒以上4秒未満)するとディスプレイに電波強度の数字を表示をします。1秒以内のボタン押下では時計画面が表示されますので、そこにアンテナピクトも表示されます。その本数と同じ数字が出力されていることを確認ください。

「0902_IMEI、IMSI情報を読み出す」

このサンプルコードではボタン押下(1秒以内)するとIMEIとIMSIを取得して結果をディスプレイへ表示します。

「0903_電話番号を読み出す」

このサンプルコードではボタン押下(1秒以内)すると電話番号を取得して結果をディスプレイへ表示します。

関連情報等

各サンプルコードについて動作確認を行っておりますが、全ての環境において動作を保証するものではありません。正しく動作することを確認の上でご利用ください。

対応機種:KC4-C-100A/KC4-C-101A