luci-app-qmodem: allow users to manually add devices via Web UI
Note: This change may lead to unexpected behavior in certain configurations.
This commit is contained in:
parent
8bb42936ea
commit
7afbeba939
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_NAME:=luci-app-qmodem-hc
|
||||
LUCI_TITLE:=Luci qwrt modem sim switch
|
||||
LUCI_PKGARCH:=all
|
||||
PKG_VERSION:=2.4.1
|
||||
PKG_VERSION:=2.7.0
|
||||
PKG_LICENSE:=GPLv3
|
||||
PKG_LINCESE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Tom <fjrcn@outlook.com>
|
||||
|
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_NAME:=luci-app-qmodem-mwan
|
||||
LUCI_TITLE:=Luci qwrt modem mwan support
|
||||
LUCI_PKGARCH:=all
|
||||
PKG_VERSION:=2.4.4
|
||||
PKG_VERSION:=2.7.0
|
||||
PKG_LICENSE:=GPLv3
|
||||
PKG_LINCESE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Tom <fjrcn@outlook.com>
|
||||
|
@ -5,6 +5,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-qmodem-sms
|
||||
LUCI_TITLE:=Luci qwrt modem sms support
|
||||
PKG_VERSION:=2.7.0
|
||||
LUCI_PKGARCH:=all
|
||||
PKG_VERSION:=1
|
||||
PKG_LICENSE:=GPLv3
|
||||
|
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_NAME:=luci-app-qmodem-ttl
|
||||
LUCI_TITLE:=Luci qwrt modem ttl support
|
||||
LUCI_PKGARCH:=all
|
||||
PKG_VERSION:=1
|
||||
PKG_VERSION:=2.7.0
|
||||
PKG_LICENSE:=GPLv3
|
||||
PKG_LINCESE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Tom <fjrcn@outlook.com>
|
||||
|
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_NAME:=luci-app-qmodem
|
||||
LUCI_TITLE:=LuCI support for QWRT Modem
|
||||
LUCI_PKGARCH:=all
|
||||
PKG_VERSION:=2.6.2
|
||||
PKG_VERSION:=2.7.0
|
||||
PKG_LICENSE:=GPLv3
|
||||
PKG_LINCESE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Tom <fjrcn@outlook.com>
|
||||
|
@ -30,6 +30,7 @@ function index()
|
||||
--Qmodem设置
|
||||
entry({"admin", "modem", "qmodem", "settings"}, cbi("qmodem/settings"), luci.i18n.translate("QModem Settings"),100).leaf = true
|
||||
entry({"admin", "modem", "qmodem", "slot_config"}, cbi("qmodem/slot_config")).leaf = true
|
||||
entry({"admin", "modem", "qmodem", "modem_config"}, cbi("qmodem/modem_config")).leaf = true
|
||||
end
|
||||
|
||||
--[[
|
||||
|
@ -50,6 +50,9 @@ end
|
||||
|
||||
o = s:option(DummyValue, "state", translate("Modem Status"))
|
||||
o.cfgvalue = function(t, n)
|
||||
if Value.cfgvalue(t,n) == nil then
|
||||
return translate("Unknown")
|
||||
end
|
||||
return translate(Value.cfgvalue(t, n):upper() or "-")
|
||||
end
|
||||
|
||||
|
120
luci/luci-app-qmodem/luasrc/model/cbi/qmodem/modem_config.lua
Normal file
120
luci/luci-app-qmodem/luasrc/model/cbi/qmodem/modem_config.lua
Normal file
@ -0,0 +1,120 @@
|
||||
m = Map("qmodem", translate("Modem Configuration"))
|
||||
m.redirect = luci.dispatcher.build_url("admin", "modem", "qmodem","settings")
|
||||
|
||||
s = m:section(NamedSection, arg[1], "modem-device", "")
|
||||
local slot_name = arg[1]
|
||||
local pcie_slots = io.popen("ls /sys/bus/pci/devices/")
|
||||
local pcie_slot_list = {}
|
||||
for line in pcie_slots:lines() do
|
||||
table.insert(pcie_slot_list, line)
|
||||
end
|
||||
pcie_slots:close()
|
||||
local usb_slots = io.popen("ls /sys/bus/usb/devices/")
|
||||
local usb_slot_list = {}
|
||||
for line in usb_slots:lines() do
|
||||
if not line:match("usb%d+") then
|
||||
table.insert(usb_slot_list, line)
|
||||
end
|
||||
end
|
||||
usb_slots:close()
|
||||
|
||||
|
||||
|
||||
is_fixed_device = s:option(Flag, "is_fixed_device", translate("Fixed Device"))
|
||||
is_fixed_device.description = translate("If the device is fixed, it will not be update when the device is connected or disconnected.")
|
||||
is_fixed_device.default = "0"
|
||||
|
||||
path = s:option(ListValue, "slot", translate("Slot Path"))
|
||||
local usb_match_slot = {}
|
||||
for i,v in ipairs(usb_slot_list) do
|
||||
local uci_name = v:gsub("%.", "_"):gsub(":", "_"):gsub("-", "_")
|
||||
if uci_name == slot_name then
|
||||
usb_match_slot[uci_name] = v
|
||||
path:value("/sys/bus/usb/devices/"..v.."/",v.."[usb]")
|
||||
end
|
||||
end
|
||||
|
||||
local pcie_match_slot = {}
|
||||
for i,v in ipairs(pcie_slot_list) do
|
||||
local uci_name = v:gsub("%.", "_"):gsub(":", "_"):gsub("-", "_")
|
||||
if uci_name == slot_name then
|
||||
pcie_match_slot[uci_name] = v
|
||||
path:value("/sys/bus/pci/devices/"..v.."/",v.."[pcie]")
|
||||
end
|
||||
end
|
||||
|
||||
data_interface = s:option(ListValue, "data_interface", translate("Interface Type"))
|
||||
data_interface:value("usb", translate("USB"))
|
||||
data_interface:value("pcie", translate("PCIe"))
|
||||
|
||||
alias = s:option(Value, "alias", translate("Alias"))
|
||||
alias.description = translate("Alias for the modem, used for identification.")
|
||||
alias.rmempty = true
|
||||
alias.default = ""
|
||||
alias.placeholder = translate("Enter alias name")
|
||||
|
||||
name = s:option(Value, "name", translate("Modem Model"))
|
||||
name.cfgvalue = function(t, n)
|
||||
local name = (Value.cfgvalue(t, n) or "-")
|
||||
return name
|
||||
end
|
||||
|
||||
define_connect = s:option(Value, "define_connect", translate("PDP Context Index"))
|
||||
define_connect.default = "1"
|
||||
|
||||
manufacturer = s:option(ListValue, "manufacturer", translate("Manufacturer"))
|
||||
manufacturer:value("quectel", "Quectel")
|
||||
manufacturer:value("simcom", "Simcom")
|
||||
manufacturer:value("sierra", "Sierra Wireless")
|
||||
manufacturer:value("fibocom", "Fibocom")
|
||||
|
||||
platform = s:option(Value, "platform", translate("Platform"))
|
||||
platform:value("lte", "lte")
|
||||
platform:value("lte12","lte12")
|
||||
platform:value("qualcomm", "qualcomm")
|
||||
platform:value("mediatek", "mediatek")
|
||||
platform:value("unisoc", "unisoc")
|
||||
platform:value("intel", "intel")
|
||||
|
||||
at_port = s:option(Value, "at_port", translate("AT Port"))
|
||||
at_port.description = translate("AT command port for modem communication.")
|
||||
|
||||
modes = s:option(DynamicList, "modes", translate("Supported Modes"))
|
||||
modes:value("ecm", "ECM")
|
||||
modes:value("mbim", "MBIM")
|
||||
modes:value("qmi", "QMI")
|
||||
modes:value("ncm", "NCM")
|
||||
|
||||
enabled = s:option(Flag, "enabled", translate("Enable"))
|
||||
enabled.default = "1"
|
||||
|
||||
wcdma_band = s:option(Value, "wcdma_band", translate("WCDMA Band"))
|
||||
wcdma_band.description = translate("WCDMA band configuration, e.g., 1/2/3")
|
||||
wcdma_band.placeholder = translate("Enter WCDMA band")
|
||||
|
||||
lte_band = s:option(Value, "lte_band", translate("LTE Band"))
|
||||
lte_band.description = translate("LTE band configuration, e.g., 1/2/3")
|
||||
lte_band.placeholder = translate("Enter LTE band")
|
||||
|
||||
nsa_band = s:option(Value, "nsa_band", translate("NSA Band"))
|
||||
nsa_band.description = translate("NSA band configuration, e.g., 1/2/3")
|
||||
nsa_band.placeholder = translate("Enter NSA band")
|
||||
|
||||
sa_band = s:option(Value, "sa_band", translate("SA Band"))
|
||||
sa_band.description = translate("SA band configuration, e.g., 1/2/3")
|
||||
sa_band.placeholder = translate("Enter SA band")
|
||||
|
||||
f = function(t, n)
|
||||
if Value.cfgvalue(t, n) == nil then
|
||||
return "null"
|
||||
else
|
||||
return Value.cfgvalue(t, n)
|
||||
end
|
||||
end
|
||||
|
||||
wcdma_band.cfgvalue = f
|
||||
lte_band.cfgvalue = f
|
||||
nsa_band.cfgvalue = f
|
||||
sa_band.cfgvalue = f
|
||||
|
||||
return m
|
@ -65,4 +65,52 @@ default_alias.cfgvalue = function(t, n)
|
||||
return alias
|
||||
end
|
||||
|
||||
|
||||
s = m:section(TypedSection, "modem-device", translate("Modem Config List"))
|
||||
s.addremove = true
|
||||
s.template = "cbi/tblsection"
|
||||
s.template_addremove = "qmodem/modem_config_add"
|
||||
s.extedit = d.build_url("admin", "modem", "qmodem", "modem_config", "%s")
|
||||
s.sectionhead = translate("Config Name")
|
||||
local pcie_slots = io.popen("ls /sys/bus/pci/devices/")
|
||||
local pcie_slot_list = {}
|
||||
for line in pcie_slots:lines() do
|
||||
table.insert(pcie_slot_list, line)
|
||||
end
|
||||
pcie_slots:close()
|
||||
local usb_slots = io.popen("ls /sys/bus/usb/devices/")
|
||||
local usb_slot_list = {}
|
||||
for line in usb_slots:lines() do
|
||||
if not line:match("usb%d+") then
|
||||
table.insert(usb_slot_list, line)
|
||||
end
|
||||
end
|
||||
usb_slots:close()
|
||||
local avalibale_name_list = {}
|
||||
for i,v in ipairs(pcie_slot_list) do
|
||||
local uci_name = v:gsub("%.", "_"):gsub(":", "_"):gsub("-", "_")
|
||||
avalibale_name_list[uci_name] = v.."[pcie]"
|
||||
end
|
||||
for i,v in ipairs(usb_slot_list) do
|
||||
local uci_name = v:gsub("%.", "_"):gsub(":", "_"):gsub("-", "_")
|
||||
avalibale_name_list[uci_name] = v.."[usb]"
|
||||
end
|
||||
s.avalibale_name = avalibale_name_list
|
||||
slot_type = s:option(DummyValue, "name", translate("Modem Model"))
|
||||
slot_type.cfgvalue = function(t, n)
|
||||
local name = translate(Value.cfgvalue(t, n) or "-")
|
||||
return name:upper()
|
||||
end
|
||||
|
||||
slot_path = s:option(DummyValue, "slot", translate("Slot Path"))
|
||||
slot_path.cfgvalue = function(t, n)
|
||||
local path = (Value.cfgvalue(t, n) or "-")
|
||||
return path
|
||||
end
|
||||
|
||||
default_alias = s:option(DummyValue, "alias", translate("Alias"))
|
||||
default_alias.cfgvalue = function(t, n)
|
||||
local alias = (Value.cfgvalue(t, n) or "-")
|
||||
return alias
|
||||
end
|
||||
return m
|
||||
|
@ -1,7 +1,7 @@
|
||||
m = Map("qmodem", translate("Slot Configuration"))
|
||||
m.redirect = luci.dispatcher.build_url("admin", "modem", "qmodem","settings")
|
||||
|
||||
s = m:section(NamedSection, arg[1], "modem-device", "")
|
||||
s = m:section(NamedSection, arg[1], "modem-slot", "")
|
||||
|
||||
slot_type = s:option(ListValue, "type", translate("Slot Type"))
|
||||
slot_type:value("usb", translate("USB"))
|
||||
|
16
luci/luci-app-qmodem/luasrc/view/qmodem/modem_config_add.htm
Normal file
16
luci/luci-app-qmodem/luasrc/view/qmodem/modem_config_add.htm
Normal file
@ -0,0 +1,16 @@
|
||||
<div class="cbi-section-create cbi-tblsection-create">
|
||||
<% if self.invalid_cts then -%>
|
||||
<div class="cbi-section-error"><%:Invalid%></div>
|
||||
<%- end %>
|
||||
|
||||
<div>
|
||||
<select type="text" class="cbi-section-create-name" id="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" data-type="uciname" data-optional="true" onchange="cbi_validate_named_section_add(this)"/>
|
||||
<option value=""><%:Please Select%></option>
|
||||
<% for uci_name, display_name in pairs(self.avalibale_name) do -%>
|
||||
<option value="<%=uci_name%>"><%=display_name%></option>
|
||||
<% end -%>
|
||||
</select>
|
||||
|
||||
</div>
|
||||
<input class="btn cbi-button cbi-button-add" type="submit" onclick="this.form.cbi_state='add-section'; return true" value="<%:Add%>" title="<%:Add%>" disabled="" />
|
||||
</div>
|
@ -546,3 +546,134 @@ msgstr ""
|
||||
|
||||
msgid "Clear AT Command"
|
||||
msgstr ""
|
||||
|
||||
# view/qmodem/modem_config.htm
|
||||
msgid "Fixed Device"
|
||||
msgstr "固定设备"
|
||||
|
||||
msgid "If the device is fixed, it will not be update when the device is connected or disconnected."
|
||||
msgstr "如果设备是固定的,则在设备连接或断开时不会更新。"
|
||||
|
||||
msgid "Slot Path"
|
||||
msgstr "插槽路径"
|
||||
|
||||
msgid "Interface Type"
|
||||
msgstr "接口类型"
|
||||
|
||||
msgid "USB"
|
||||
msgstr "USB"
|
||||
|
||||
msgid "PCIe"
|
||||
msgstr "PCIe"
|
||||
|
||||
msgid "Alias"
|
||||
msgstr "别名"
|
||||
|
||||
msgid "Alias for the modem, used for identification."
|
||||
msgstr "调制解调器的别名,用于标识。"
|
||||
|
||||
msgid "Enter alias name"
|
||||
msgstr "输入别名"
|
||||
|
||||
msgid "Modem Model"
|
||||
msgstr "调制解调器型号"
|
||||
|
||||
msgid "PDP Context Index"
|
||||
msgstr "PDP上下文序号"
|
||||
|
||||
|
||||
msgid "Manufacturer"
|
||||
msgstr "制造商"
|
||||
|
||||
msgid "Quectel"
|
||||
msgstr "移远"
|
||||
|
||||
msgid "Simcom"
|
||||
msgstr "芯讯通(Simcom)"
|
||||
|
||||
msgid "Sierra Wireless"
|
||||
msgstr "Sierra无线"
|
||||
|
||||
msgid "Fibocom"
|
||||
msgstr "广和通"
|
||||
|
||||
msgid "Platform"
|
||||
msgstr "平台"
|
||||
|
||||
msgid "lte"
|
||||
msgstr "LTE"
|
||||
|
||||
msgid "lte12"
|
||||
msgstr "LTE12"
|
||||
|
||||
msgid "qualcomm"
|
||||
msgstr "高通"
|
||||
|
||||
msgid "mediatek"
|
||||
msgstr "联发科"
|
||||
|
||||
msgid "unisoc"
|
||||
msgstr "紫光展锐"
|
||||
|
||||
msgid "intel"
|
||||
msgstr "英特尔"
|
||||
|
||||
msgid "AT Port"
|
||||
msgstr "AT端口"
|
||||
|
||||
msgid "AT command port for modem communication."
|
||||
msgstr "用于调制解调器通信的AT命令端口。"
|
||||
|
||||
msgid "Supported Modes"
|
||||
msgstr "支持的模式"
|
||||
|
||||
msgid "ECM"
|
||||
msgstr "ECM"
|
||||
|
||||
msgid "MBIM"
|
||||
msgstr "MBIM"
|
||||
|
||||
msgid "QMI"
|
||||
msgstr "QMI"
|
||||
|
||||
msgid "NCM"
|
||||
msgstr "NCM"
|
||||
|
||||
msgid "Enable"
|
||||
msgstr "启用"
|
||||
|
||||
msgid "WCDMA Band"
|
||||
msgstr "WCDMA频段"
|
||||
|
||||
msgid "WCDMA band configuration, e.g., 1/2/3"
|
||||
msgstr "WCDMA频段配置,例如:1/2/3"
|
||||
|
||||
msgid "Enter WCDMA band"
|
||||
msgstr "输入WCDMA频段"
|
||||
|
||||
msgid "LTE Band"
|
||||
msgstr "LTE频段"
|
||||
|
||||
msgid "LTE band configuration, e.g., 1/2/3"
|
||||
msgstr "LTE频段配置,例如:1/2/3"
|
||||
|
||||
msgid "Enter LTE band"
|
||||
msgstr "输入LTE频段"
|
||||
|
||||
msgid "NSA Band"
|
||||
msgstr "NSA频段"
|
||||
|
||||
msgid "NSA band configuration, e.g., 1/2/3"
|
||||
msgstr "NSA频段配置,例如:1/2/3"
|
||||
|
||||
msgid "Enter NSA band"
|
||||
msgstr "输入NSA频段"
|
||||
|
||||
msgid "SA Band"
|
||||
msgstr "SA频段"
|
||||
|
||||
msgid "SA band configuration, e.g., 1/2/3"
|
||||
msgstr "SA频段配置,例如:1/2/3"
|
||||
|
||||
msgid "Enter SA band"
|
||||
msgstr "输入SA频段"
|
||||
|
@ -568,3 +568,140 @@ msgstr "清空AT端口"
|
||||
|
||||
msgid "Clear AT Command"
|
||||
msgstr "清空AT命令"
|
||||
|
||||
# view/qmodem/modem_config.htm
|
||||
msgid "Fixed Device"
|
||||
msgstr "固定设备"
|
||||
|
||||
msgid "If the device is fixed, it will not be update when the device is connected or disconnected."
|
||||
msgstr "如果设备是固定的,则在设备连接或断开时不会更新。"
|
||||
|
||||
msgid "Slot Path"
|
||||
msgstr "插槽路径"
|
||||
|
||||
msgid "Interface Type"
|
||||
msgstr "接口类型"
|
||||
|
||||
msgid "USB"
|
||||
msgstr "USB"
|
||||
|
||||
msgid "PCIe"
|
||||
msgstr "PCIe"
|
||||
|
||||
msgid "Alias"
|
||||
msgstr "别名"
|
||||
|
||||
msgid "Alias for the modem, used for identification."
|
||||
msgstr "调制解调器的别名,用于标识。"
|
||||
|
||||
msgid "Enter alias name"
|
||||
msgstr "输入别名"
|
||||
|
||||
msgid "Modem Model"
|
||||
msgstr "调制解调器型号"
|
||||
|
||||
msgid "PDP Context Index"
|
||||
msgstr "PDP上下文序号"
|
||||
|
||||
|
||||
msgid "Manufacturer"
|
||||
msgstr "制造商"
|
||||
|
||||
msgid "Quectel"
|
||||
msgstr "移远"
|
||||
|
||||
msgid "Simcom"
|
||||
msgstr "芯讯通(Simcom)"
|
||||
|
||||
msgid "Sierra Wireless"
|
||||
msgstr "Sierra无线"
|
||||
|
||||
msgid "Fibocom"
|
||||
msgstr "广和通"
|
||||
|
||||
msgid "Platform"
|
||||
msgstr "平台"
|
||||
|
||||
msgid "lte"
|
||||
msgstr "LTE"
|
||||
|
||||
msgid "lte12"
|
||||
msgstr "LTE12"
|
||||
|
||||
msgid "qualcomm"
|
||||
msgstr "高通"
|
||||
|
||||
msgid "mediatek"
|
||||
msgstr "联发科"
|
||||
|
||||
msgid "unisoc"
|
||||
msgstr "紫光展锐"
|
||||
|
||||
msgid "intel"
|
||||
msgstr "英特尔"
|
||||
|
||||
msgid "AT Port"
|
||||
msgstr "AT端口"
|
||||
|
||||
msgid "AT command port for modem communication."
|
||||
msgstr "用于调制解调器通信的AT命令端口。"
|
||||
|
||||
msgid "Supported Modes"
|
||||
msgstr "支持的模式"
|
||||
|
||||
msgid "ECM"
|
||||
msgstr "ECM"
|
||||
|
||||
msgid "MBIM"
|
||||
msgstr "MBIM"
|
||||
|
||||
msgid "QMI"
|
||||
msgstr "QMI"
|
||||
|
||||
msgid "NCM"
|
||||
msgstr "NCM"
|
||||
|
||||
msgid "Enable"
|
||||
msgstr "启用"
|
||||
|
||||
msgid "WCDMA Band"
|
||||
msgstr "WCDMA频段"
|
||||
|
||||
msgid "WCDMA band configuration, e.g., 1/2/3"
|
||||
msgstr "WCDMA频段配置,例如:1/2/3"
|
||||
|
||||
msgid "Enter WCDMA band"
|
||||
msgstr "输入WCDMA频段"
|
||||
|
||||
msgid "LTE Band"
|
||||
msgstr "LTE频段"
|
||||
|
||||
msgid "LTE band configuration, e.g., 1/2/3"
|
||||
msgstr "LTE频段配置,例如:1/2/3"
|
||||
|
||||
msgid "Enter LTE band"
|
||||
msgstr "输入LTE频段"
|
||||
|
||||
msgid "NSA Band"
|
||||
msgstr "NSA频段"
|
||||
|
||||
msgid "NSA band configuration, e.g., 1/2/3"
|
||||
msgstr "NSA频段配置,例如:1/2/3"
|
||||
|
||||
msgid "Enter NSA band"
|
||||
msgstr "输入NSA频段"
|
||||
|
||||
msgid "SA Band"
|
||||
msgstr "SA频段"
|
||||
|
||||
msgid "SA band configuration, e.g., 1/2/3"
|
||||
msgstr "SA频段配置,例如:1/2/3"
|
||||
|
||||
msgid "Enter SA band"
|
||||
msgstr "输入SA频段"
|
||||
|
||||
msgid "Modem Config List"
|
||||
msgstr "模组配置列表"
|
||||
|
||||
msgid "Please Select"
|
||||
msgstr "请选择"
|
||||
|
@ -568,3 +568,140 @@ msgstr "清空AT端口"
|
||||
|
||||
msgid "Clear AT Command"
|
||||
msgstr "清空AT命令"
|
||||
|
||||
# view/qmodem/modem_config.htm
|
||||
msgid "Fixed Device"
|
||||
msgstr "固定设备"
|
||||
|
||||
msgid "If the device is fixed, it will not be update when the device is connected or disconnected."
|
||||
msgstr "如果设备是固定的,则在设备连接或断开时不会更新。"
|
||||
|
||||
msgid "Slot Path"
|
||||
msgstr "插槽路径"
|
||||
|
||||
msgid "Interface Type"
|
||||
msgstr "接口类型"
|
||||
|
||||
msgid "USB"
|
||||
msgstr "USB"
|
||||
|
||||
msgid "PCIe"
|
||||
msgstr "PCIe"
|
||||
|
||||
msgid "Alias"
|
||||
msgstr "别名"
|
||||
|
||||
msgid "Alias for the modem, used for identification."
|
||||
msgstr "调制解调器的别名,用于标识。"
|
||||
|
||||
msgid "Enter alias name"
|
||||
msgstr "输入别名"
|
||||
|
||||
msgid "Modem Model"
|
||||
msgstr "调制解调器型号"
|
||||
|
||||
msgid "PDP Context Index"
|
||||
msgstr "PDP上下文序号"
|
||||
|
||||
|
||||
msgid "Manufacturer"
|
||||
msgstr "制造商"
|
||||
|
||||
msgid "Quectel"
|
||||
msgstr "移远"
|
||||
|
||||
msgid "Simcom"
|
||||
msgstr "芯讯通(Simcom)"
|
||||
|
||||
msgid "Sierra Wireless"
|
||||
msgstr "Sierra无线"
|
||||
|
||||
msgid "Fibocom"
|
||||
msgstr "广和通"
|
||||
|
||||
msgid "Platform"
|
||||
msgstr "平台"
|
||||
|
||||
msgid "lte"
|
||||
msgstr "LTE"
|
||||
|
||||
msgid "lte12"
|
||||
msgstr "LTE12"
|
||||
|
||||
msgid "qualcomm"
|
||||
msgstr "高通"
|
||||
|
||||
msgid "mediatek"
|
||||
msgstr "联发科"
|
||||
|
||||
msgid "unisoc"
|
||||
msgstr "紫光展锐"
|
||||
|
||||
msgid "intel"
|
||||
msgstr "英特尔"
|
||||
|
||||
msgid "AT Port"
|
||||
msgstr "AT端口"
|
||||
|
||||
msgid "AT command port for modem communication."
|
||||
msgstr "用于调制解调器通信的AT命令端口。"
|
||||
|
||||
msgid "Supported Modes"
|
||||
msgstr "支持的模式"
|
||||
|
||||
msgid "ECM"
|
||||
msgstr "ECM"
|
||||
|
||||
msgid "MBIM"
|
||||
msgstr "MBIM"
|
||||
|
||||
msgid "QMI"
|
||||
msgstr "QMI"
|
||||
|
||||
msgid "NCM"
|
||||
msgstr "NCM"
|
||||
|
||||
msgid "Enable"
|
||||
msgstr "启用"
|
||||
|
||||
msgid "WCDMA Band"
|
||||
msgstr "WCDMA频段"
|
||||
|
||||
msgid "WCDMA band configuration, e.g., 1/2/3"
|
||||
msgstr "WCDMA频段配置,例如:1/2/3"
|
||||
|
||||
msgid "Enter WCDMA band"
|
||||
msgstr "输入WCDMA频段"
|
||||
|
||||
msgid "LTE Band"
|
||||
msgstr "LTE频段"
|
||||
|
||||
msgid "LTE band configuration, e.g., 1/2/3"
|
||||
msgstr "LTE频段配置,例如:1/2/3"
|
||||
|
||||
msgid "Enter LTE band"
|
||||
msgstr "输入LTE频段"
|
||||
|
||||
msgid "NSA Band"
|
||||
msgstr "NSA频段"
|
||||
|
||||
msgid "NSA band configuration, e.g., 1/2/3"
|
||||
msgstr "NSA频段配置,例如:1/2/3"
|
||||
|
||||
msgid "Enter NSA band"
|
||||
msgstr "输入NSA频段"
|
||||
|
||||
msgid "SA Band"
|
||||
msgstr "SA频段"
|
||||
|
||||
msgid "SA band configuration, e.g., 1/2/3"
|
||||
msgstr "SA频段配置,例如:1/2/3"
|
||||
|
||||
msgid "Enter SA band"
|
||||
msgstr "输入SA频段"
|
||||
|
||||
msgid "Modem Config List"
|
||||
msgstr "模组配置列表"
|
||||
|
||||
msgid "Please Select"
|
||||
msgstr "请选择"
|
||||
|
@ -453,3 +453,12 @@ _add_disabled_features()
|
||||
{
|
||||
json_add_string "" "$1"
|
||||
}
|
||||
|
||||
_copyright()
|
||||
{
|
||||
json_add_object "copyright"
|
||||
json_add_string "Vendor" "${_Vendor}"
|
||||
json_add_string "Author" "${_Author}"
|
||||
json_add_string "Maintainer" "${_Maintainer}"
|
||||
json_close_object
|
||||
}
|
||||
|
@ -117,46 +117,96 @@ json_init
|
||||
json_add_object result
|
||||
json_close_object
|
||||
case $method in
|
||||
"get_at_cfg")
|
||||
get_at_cfg
|
||||
exit
|
||||
"base_info")
|
||||
cache_file="/tmp/cache_$1_$2"
|
||||
try_cache 10 $cache_file base_info
|
||||
;;
|
||||
"cell_info")
|
||||
cache_file="/tmp/cache_$1_$2"
|
||||
try_cache 10 $cache_file cell_info
|
||||
;;
|
||||
|
||||
"clear_dial_log")
|
||||
json_select result
|
||||
log_file="/var/run/qmodem/${config_section}_dir/dial_log"
|
||||
[ -f $log_file ] && echo "" > $log_file && json_add_string status "1" || json_add_string status "0"
|
||||
json_close_object
|
||||
;;
|
||||
"delete_sms")
|
||||
json_select result
|
||||
index=$3
|
||||
[ -n "$sms_at_port" ] && at_port=$sms_at_port
|
||||
for i in $index; do
|
||||
tom_modem -d $at_port -o d -i $i
|
||||
touch /tmp/cache_sms_$2
|
||||
if [ "$?" == 0 ]; then
|
||||
json_add_string status "1"
|
||||
json_add_string "index$i" "tom_modem -d $at_port -o d -i $i"
|
||||
else
|
||||
json_add_string status "0"
|
||||
fi
|
||||
done
|
||||
json_close_object
|
||||
rm -rf /tmp/cache_sms_$2
|
||||
;;
|
||||
"do_reboot")
|
||||
reboot_method=$(echo $3 |jq -r '.method')
|
||||
echo $3 > /tmp/555/reboot
|
||||
case $reboot_method in
|
||||
"hard")
|
||||
hard_reboot
|
||||
;;
|
||||
"soft")
|
||||
soft_reboot
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
"get_at_cfg")
|
||||
get_at_cfg
|
||||
exit
|
||||
;;
|
||||
"get_copyright")
|
||||
_copyright
|
||||
;;
|
||||
"get_disabled_features")
|
||||
json_add_array disabled_features
|
||||
vendor_get_disabled_features
|
||||
get_modem_disabled_features
|
||||
get_global_disabled_features
|
||||
json_close_array
|
||||
;;
|
||||
"get_dns")
|
||||
get_dns
|
||||
;;
|
||||
"get_imei")
|
||||
get_imei
|
||||
;;
|
||||
"set_imei")
|
||||
set_imei $3
|
||||
"get_lockband")
|
||||
get_lockband
|
||||
;;
|
||||
"get_mode")
|
||||
get_mode
|
||||
;;
|
||||
"set_mode")
|
||||
set_mode $3
|
||||
"get_neighborcell")
|
||||
get_neighborcell
|
||||
;;
|
||||
"get_network_prefer")
|
||||
get_network_prefer
|
||||
;;
|
||||
"set_network_prefer")
|
||||
set_network_prefer $3
|
||||
"get_reboot_caps")
|
||||
get_reboot_caps
|
||||
exit
|
||||
;;
|
||||
"get_lockband")
|
||||
get_lockband
|
||||
"get_sms")
|
||||
get_sms 10 /tmp/cache_sms_$2
|
||||
exit
|
||||
;;
|
||||
"set_lockband")
|
||||
set_lockband $3
|
||||
"info")
|
||||
cache_file="/tmp/cache_$1_$2"
|
||||
try_cache 10 $cache_file get_info
|
||||
;;
|
||||
"get_neighborcell")
|
||||
get_neighborcell
|
||||
"network_info")
|
||||
cache_file="/tmp/cache_$1_$2"
|
||||
try_cache 10 $cache_file network_info
|
||||
;;
|
||||
"send_at")
|
||||
cmd=$(echo "$3" | jq -r '.at')
|
||||
@ -171,51 +221,18 @@ case $method in
|
||||
json_add_string status "0"
|
||||
fi
|
||||
;;
|
||||
"set_neighborcell")
|
||||
set_neighborcell $3
|
||||
;;
|
||||
"set_sms_storage")
|
||||
set_sms_storage $3
|
||||
;;
|
||||
"base_info")
|
||||
cache_file="/tmp/cache_$1_$2"
|
||||
try_cache 10 $cache_file base_info
|
||||
;;
|
||||
"sim_info")
|
||||
cache_file="/tmp/cache_$1_$2"
|
||||
try_cache 10 $cache_file sim_info
|
||||
;;
|
||||
"cell_info")
|
||||
cache_file="/tmp/cache_$1_$2"
|
||||
try_cache 10 $cache_file cell_info
|
||||
;;
|
||||
"network_info")
|
||||
cache_file="/tmp/cache_$1_$2"
|
||||
try_cache 10 $cache_file network_info
|
||||
;;
|
||||
"info")
|
||||
cache_file="/tmp/cache_$1_$2"
|
||||
try_cache 10 $cache_file get_info
|
||||
;;
|
||||
"get_sms")
|
||||
get_sms 10 /tmp/cache_sms_$2
|
||||
exit
|
||||
;;
|
||||
"get_reboot_caps")
|
||||
get_reboot_caps
|
||||
exit
|
||||
;;
|
||||
"do_reboot")
|
||||
reboot_method=$(echo $3 |jq -r '.method')
|
||||
echo $3 > /tmp/555/reboot
|
||||
case $reboot_method in
|
||||
"hard")
|
||||
hard_reboot
|
||||
;;
|
||||
"soft")
|
||||
soft_reboot
|
||||
;;
|
||||
esac
|
||||
"send_raw_pdu")
|
||||
cmd=$3
|
||||
[ -n "$sms_at_port" ] && at_port=$sms_at_port
|
||||
res=$(tom_modem -d $at_port -o s -p "$cmd")
|
||||
json_select result
|
||||
if [ "$?" == 0 ]; then
|
||||
json_add_string status "1"
|
||||
json_add_string cmd "tom_modem -d $at_port -o s -p \"$cmd\""
|
||||
json_add_string "res" "$res"
|
||||
else
|
||||
json_add_string status "0"
|
||||
fi
|
||||
;;
|
||||
"send_sms")
|
||||
cmd_json=$3
|
||||
@ -233,45 +250,27 @@ case $method in
|
||||
fi
|
||||
json_close_object
|
||||
;;
|
||||
"send_raw_pdu")
|
||||
cmd=$3
|
||||
[ -n "$sms_at_port" ] && at_port=$sms_at_port
|
||||
#res=$(sms_tool_q -d $at_port send_raw_pdu "$cmd" )
|
||||
res=$(tom_modem -d $at_port -o s -p "$cmd")
|
||||
json_select result
|
||||
if [ "$?" == 0 ]; then
|
||||
json_add_string status "1"
|
||||
json_add_string cmd "tom_modem -d $at_port -o s -p \"$cmd\""
|
||||
json_add_string "res" "$res"
|
||||
else
|
||||
json_add_string status "0"
|
||||
fi
|
||||
"set_imei")
|
||||
set_imei $3
|
||||
;;
|
||||
"delete_sms")
|
||||
json_select result
|
||||
index=$3
|
||||
[ -n "$sms_at_port" ] && at_port=$sms_at_port
|
||||
for i in $index; do
|
||||
# sms_tool_q -d $at_port delete $i > /dev/null
|
||||
tom_modem -d $at_port -o d -i $i
|
||||
touch /tmp/cache_sms_$2
|
||||
if [ "$?" == 0 ]; then
|
||||
json_add_string status "1"
|
||||
json_add_string "index$i" "tom_modem -d $at_port -o d -i $i"
|
||||
else
|
||||
json_add_string status "0"
|
||||
fi
|
||||
done
|
||||
json_close_object
|
||||
rm -rf /tmp/cache_sms_$2
|
||||
"set_lockband")
|
||||
set_lockband $3
|
||||
;;
|
||||
"get_disabled_features")
|
||||
json_add_array disabled_features
|
||||
#从vendor文件中读取对vendor禁用的功能
|
||||
vendor_get_disabled_features
|
||||
get_modem_disabled_features
|
||||
get_global_disabled_features
|
||||
json_close_array
|
||||
"set_mode")
|
||||
set_mode $3
|
||||
;;
|
||||
"set_neighborcell")
|
||||
set_neighborcell $3
|
||||
;;
|
||||
"set_network_prefer")
|
||||
set_network_prefer $3
|
||||
;;
|
||||
"set_sms_storage")
|
||||
set_sms_storage $3
|
||||
;;
|
||||
"sim_info")
|
||||
cache_file="/tmp/cache_$1_$2"
|
||||
try_cache 10 $cache_file sim_info
|
||||
;;
|
||||
esac
|
||||
json_dump
|
||||
|
@ -311,6 +311,8 @@ add()
|
||||
#section name is replace slot .:- with _
|
||||
section_name=$(echo $slot | sed 's/[\.:-]/_/g')
|
||||
is_exist=$(uci -q get qmodem.$section_name)
|
||||
is_fixed_device=$(uci -q get qmodem.@qmodem[0].fixed_device)
|
||||
[ -n "$is_fixed_device" ] && [ "$is_fixed_device" == "1" ] && return
|
||||
case $slot_type in
|
||||
"usb")
|
||||
scan_usb_slot_interfaces $slot
|
||||
|
@ -19,7 +19,9 @@ fastat()
|
||||
local atcmd="${new_str/\"/\"}"
|
||||
#过滤空行
|
||||
# sms_tool_q -t 1 -d $at_port at "$atcmd"
|
||||
tom_modem -d $at_port -o a -c "$atcmd" -t 1
|
||||
local at_port_num=${at_port##ttyUSB}
|
||||
sendat "$at_port_num" "$atcmd"
|
||||
#tom_modem -d $at_port -o a -c "$atcmd" -t 1
|
||||
}
|
||||
|
||||
log2file()
|
||||
|
@ -1,7 +1,13 @@
|
||||
#!/bin/sh
|
||||
# Copyright (C) 2023 Siriling <siriling@qq.com>
|
||||
|
||||
# Copyright (C) 2025 Fujr <fjrcn@outlook.com>
|
||||
_Vendor="fibocom"
|
||||
_Author="Siriling Fujr"
|
||||
_Maintainer="Fujr <fjrcn@outlook.com>"
|
||||
source /usr/share/qmodem/generic.sh
|
||||
|
||||
|
||||
|
||||
debug_subject="fibocom_ctrl"
|
||||
#获取拨号模式
|
||||
# $1:AT串口
|
||||
|
@ -1,5 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2023 Siriling <siriling@qq.com>
|
||||
# Copyright (C) 2025 Fujr <fjrcn@outlook.com>
|
||||
_Vendor="quectel"
|
||||
_Author="Siriling,Fujr"
|
||||
_Maintainer="Fujr <fjrcn@outlook.com>"
|
||||
source /usr/share/qmodem/generic.sh
|
||||
debug_subject="quectel_ctrl"
|
||||
#return raw data
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2025 Fujr <fjrcn@outlook.com>
|
||||
_Vendor="sierra"
|
||||
_Author="Fujr"
|
||||
_Maintainer="Fujr <fjrcn@outlook.com>"
|
||||
source /usr/share/qmodem/generic.sh
|
||||
debug_subject="quectel_ctrl"
|
||||
function unlock_advance(){
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2025 sfwtw
|
||||
_Vendor="simcom"
|
||||
_Author="sfwtw"
|
||||
_Maintainer="sfwtw <unkown>"
|
||||
source /usr/share/qmodem/generic.sh
|
||||
debug_subject="quectel_ctrl"
|
||||
#return raw data
|
||||
|
Loading…
x
Reference in New Issue
Block a user