lte関数は、LTEでインターネットに接続する製品のセルラーモデムを操作します。
OS7.1.0以降
lte.at(command, timeout_ms)
任意のATコマンドをLTEモデムへ送信し、その応答を返します。
この関数は、セルラー回線で接続しているときにのみ利用できます。現在のネットワークインターフェースがセルラーでない場合は、すぐにfatalのステータスを返します。
引数
| 引数 | 型 | 説明 |
|---|---|---|
command |
string | 送信するATコマンドです。 |
timeout_ms |
number | 任意。応答を待つ時間(ミリ秒)です。既定値は10000です。 |
返り値
応答とステータスコードの2つの値を返します。
| 返り値 | 型 | 説明 |
|---|---|---|
response |
string | nil | モデムからの応答です。正常に完了しなかった場合はnilです。 |
status |
number | ステータスコードです(下表を参照)。 |
| ステータス | 意味 |
|---|---|
0 |
正常です。 |
1 |
モデムがエラーを返しました。 |
2 |
タイムアウトしました。 |
3 |
致命的なエラーです(モデムがない、回線がセルラーでない、またはモデムが処理中)。 |
Example: 電波強度を問い合わせる
以下の例では、obniz.jsからコマンドを受け取るたびに、モデムへ電波強度を問い合わせるAT+CSQコマンドを送ります。
function on_command(command)
os.log("command received: " .. command);
-- obniz.jsから受け取ったATコマンドをモデムへ送信する
local resp, status = lte.at(command);
os.log("response: " .. tostring(resp));
os.log("status: " .. tostring(status));
-- 応答をobniz.jsへ返す
if resp ~= nil then
cloud.pluginSend(resp);
end
end
obniz.jsからは、ATコマンドをプラグインのデータとして送信します。
// Javascript Example
obniz.plugin.send("AT+CSQ");