op-packages/luci-app-hypercpe/luasrc/controller/admin/cpe.lua
github-actions[bot] 32600acc60 🌴 Sync 2026-03-05 23:51:42
2026-03-05 23:51:42 +08:00

165 lines
4.5 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

module("luci.controller.admin.cpe", package.seeall)
I18N = require "luci.i18n"
translate = I18N.translate
function index()
entry({"admin", "modem"}, firstchild(), translate("移动数据"), 25).dependent=false
entry({"admin", "modem", "nets"}, template("cpe/net_status"), translate("信号状态"), 0)
entry({"admin", "modem", "get_csq"}, call("action_get_csq"))
entry({"admin", "modem", "send_atcmd"}, call("action_send_atcmd"))
-- entry({"admin", "modem", "sms"}, template("cpe/sms"), translate("短信信息"), 1)
-- entry({"admin", "modem", "band"}, template("cpe/band"), translate("锁频段/锁PCI"), 1)
entry({"admin", "modem", "at"}, template("cpe/at"), translate("AT工具"), 98)
if not nixio.fs.access("/etc/config/modem") then
return
end
entry({"admin", "modem", "modem"}, cbi("cpe/modem"), _("模块设置"), 99)
end
function action_send_atcmd()
local rv ={}
local file
local p = luci.http.formvalue("p")
local set = luci.http.formvalue("set")
fixed = string.gsub(set, "\"", "~")
port= string.gsub(p, "\"", "~")
rv["at"] = fixed
rv["port"] = port
os.execute("/usr/share/cpe/atcmd.sh \'" .. port .. "\' \'" .. fixed .. "\'")
result = "/tmp/result.at"
file = io.open(result, "r")
if file ~= nil then
rv["result"] = file:read("*all")
file:close()
else
rv["result"] = " "
end
os.execute("/usr/share/cpe/delatcmd.sh")
luci.http.prepare_content("application/json")
luci.http.write_json(rv)
end
-- function action_get_csq()
-- local file
-- stat = "/tmp/cpe_cell.file"
-- file = io.open(stat, "r")
-- local rv ={}
-- rv["modem"] = file:read("*line")
-- rv["conntype"] = file:read("*line")
-- rv["modid"] = file:read("*line")
-- rv["cops"] = file:read("*line")
-- rv["port"] = file:read("*line")
-- rv["tempur"] = file:read("*line")
-- rv["proto"] = file:read("*line")
-- file:read("*line")
-- rv["imei"] = file:read("*line")
-- rv["imsi"] = file:read("*line")
-- rv["iccid"] =file:read("*line")
-- rv["phone"] = file:read("*line")
-- file:read("*line")
-- rv["mode"] = file:read("*line")
-- rv["csq"] = file:read("*line")
-- rv["per"] = file:read("*line")
-- rv["rssi"] = file:read("*line")
-- rv["ecio"] = file:read("*line")
-- rv["ecio1"] = file:read("*line")
-- rv["rscp"] = file:read("*line")
-- rv["rscp1"] = file:read("*line")
-- rv["sinr"] = file:read("*line")
-- rv["netmode"] = file:read("*line")
-- file:read("*line")
-- rssi = rv["rssi"]
-- ecio = rv["ecio"]
-- rscp = rv["rscp"]
-- ecio1 = rv["ecio1"]
-- rscp1 = rv["rscp1"]
-- if ecio == nil then
-- ecio = "-"
-- end
-- if ecio1 == nil then
-- ecio1 = "-"
-- end
-- if rscp == nil then
-- rscp = "-"
-- end
-- if rscp1 == nil then
-- rscp1 = "-"
-- end
-- if ecio ~= "-" then
-- rv["ecio"] = ecio .. " dB"
-- end
-- if rscp ~= "-" then
-- rv["rscp"] = rscp .. " dBm"
-- end
-- if ecio1 ~= " " then
-- rv["ecio1"] = " (" .. ecio1 .. " dB)"
-- end
-- if rscp1 ~= " " then
-- rv["rscp1"] = " (" .. rscp1 .. " dBm)"
-- end
-- rv["mcc"] = file:read("*line")
-- rv["mnc"] = file:read("*line")
-- rv["rnc"] = file:read("*line")
-- rv["rncn"] = file:read("*line")
-- rv["lac"] = file:read("*line")
-- rv["lacn"] = file:read("*line")
-- rv["cid"] = file:read("*line")
-- rv["cidn"] = file:read("*line")
-- rv["lband"] = file:read("*line")
-- rv["channel"] = file:read("*line")
-- rv["pci"] = file:read("*line")
-- rv["date"] = file:read("*line")
-- rv["crate"] = translate("快速(每5秒更新一次)")
-- luci.http.prepare_content("application/json")
-- luci.http.write_json(rv)
-- end
function action_get_csq()
local stat = "/tmp/cpe_cell.file"
local file = io.open(stat, "r")
-- 检查文件是否成功打开
if not file then
-- 处理文件打开失败的情况
return
end
local rv = {}
local keys = {"modem", "conntype", "modid", "cops", "port", "tempur", "proto", "skip", "imei", "imsi", "iccid", "phone", "skip", "mode", "csq", "per", "rssi", "ecio", "ecio1", "rscp", "rscp1", "sinr", "netmode", "skip", "mcc", "mnc", "rnc", "rncn", "lac", "lacn", "cid", "cidn", "lband", "channel", "pci", "date", "crate"}
for i, key in ipairs(keys) do
local value = file:read("*line")
-- 跳过分隔行
if key ~= "skip" then
rv[key] = value or "" -- 使用空字符串替换 nil未设置或空行
end
end
file:close()
-- 设置额外的字段
rv["crate"] = translate("快速(每5秒更新一次)")
luci.http.prepare_content("application/json")
luci.http.write_json(rv)
end