跳转至

mobile - 蜂窝网络

以下为关键点梳理

一、设备信息获取

1. mobile.imei()

  • 功能:获取 IMEI
  • 参数:无
  • 返回值:IMEI 字符串
  • 示例:无

2. mobile.muid()

  • 功能:获取 MUID ,模组唯一ID,不同模组不重复,不可更改,不可擦除;
  • 参数:无
  • 返回值:MUID 字符串
  • 示例:无

二、SIM卡相关操作

1. mobile.simid(id)

  • 功能:设置或获取当前使用的SIM卡通道
  • 参数:

    • id:0表示SIM0,1表示SIM1,2表示自动识别
    • boolean:可选,true表示SIM0优先
  • 返回值:当前使用的SIM卡通道状态

  • 示例:
mobile.simid(0) -- 固定使用SIM0
mobile.simid(1) _-- 固定使用SIM1
mobile.simid(2) _-- 自动识别SIM0和SIM1
mobile.simid(2, true) _-- 自动识别且SIM0优先

2. mobile.simPin(id, operation, pin1, pin2)

  • 功能:检测 SIM 卡状态及进行 PIN 码操作
  • 参数:
    • id:SIM 卡 ID
    • operation:操作类型(如 mobile.PIN_VERIFY 表示验证 PIN 码)
    • pin1:PIN1 码
    • pin2:PIN2 码
  • 返回值:操作成功返回 true,失败返回 false
  • 示例:
local cpin_is_ready = mobile.simPin() -- 检测SIM卡是否准备好
local succ = mobile.simPin(0, mobile.PIN_VERIFY, "1234") -- 验证PIN码

3. mobile.number()

  • 功能:获取手机卡号(需先写入)
  • 参数:无
  • 返回值:手机号字符串(未写入时为空)
  • 示例:无

4. mobile.imsi()

  • 功能:获取 IMSI
  • 参数:无
  • 返回值:IMSI 字符串
  • 示例:无

5. mobile.iccid()

  • 功能:获取 SIM 卡 ICCID
  • 参数:无
  • 返回值:ICCID 字符串
  • 示例:无

三、网络连接配置

1. mobile.apn(index, cid, new_apn_name, user_name, password, ip_type, protocol)

  • 功能:获取或设置APN
  • 参数: - index:索引 - cid:连接ID - new_apn_name:新的APN名称 - user_name:用户名 - password:密码 - ip_type:IP类型 - protocol:协议
  • 返回值:无
  • 示例:
mobile.apn(0, 1, "cmiot", "", "", nil, 0) -- 设置移动公网卡APN_
mobile.apn(0, 1, "name", "user", "password", nil, 3) -- 设置专网卡APN

2. mobile.ipv6(onff)

  • 功能:开启或关闭 IPV6 功能
  • 参数: - onff:true 表示开启,false 表示关闭
  • 返回值:无
  • 示例:
-- 开启 IPV6 功能(注意会增加开机联网时间)

3. mobile.reset()

  • 功能:重启协议栈
  • 参数:无
  • 返回值:无
  • 示例:无

4. mobile.setAuto(check_sim_period, get_cell_period, search_cell_time, auto_reset_stack, network_check_period)

  • 功能:用于设置一些辅助周期性或自动功能,目前支持以下功能:
    • SIM 卡自动恢复:当 SIM 卡暂时脱离后,设备会尝试自动恢复连接。
    • 周期性获取小区信息:设备会按照设定的时间间隔,周期性地获取当前所在小区的信息。
    • 网络自动恢复:当网络遇到严重故障时,设备会尝试自动恢复网络连接。
  • 注意事项:
    • SIM 卡自动恢复时间和飞行模式/SIM 卡切换冲突:不能在同一时间使用,必须错开执行。
    • 周期性获取小区信息会增加部分功耗:需要在功能需求和功耗之间进行权衡。
    • 每次搜索小区时最大搜索时间不要超过 8 秒:过长的搜索时间可能会浪费资源。
    • 网络自动恢复功能和飞行模式/SIM 卡切换冲突:开启时需谨慎,避免与其他功能产生冲突。
  • 其它说明:
    • 功能选择:根据实际需求选择需要开启的功能,如 SIM 卡自动恢复、周期性获取小区信息、网络自动恢复等。
    • 参数设置:为每个功能设置合适的参数值,注意参数的取值范围和限制条件。
    • 功能冲突处理:确保所选功能之间不存在冲突,如 SIM 卡自动恢复时间和飞行模式/SIM 卡切换不能同时使用。
    • 功耗与性能平衡:考虑到周期性获取小区信息会增加功耗,在设置相关参数时需要权衡功耗与性能的需求。
    • 网络稳定性保障:通过合理设置网络检查周期和无网恢复时长,确保网络的稳定性和可靠性。
  • 参数:
参数名称 参数类型 是否必填 默认值 参数说明
check_sim_period int 0 SIM卡自动恢复时间,单位毫秒。建议设置为5000~10000。写0或者不写则是关闭此功能。
get_cell_period int 0 周期性获取小区信息的时间间隔,单位毫秒。写0或者不写则是关闭此功能。
search_cell_time int 0 每次搜索小区时最大搜索时间,单位秒。不要超过8秒。
auto_reset_stack boolean FALSE 网络遇到严重故障时尝试自动恢复。true为开启,false为关闭。开始状态是false,留空则不做改变。
network_check_period int 0 设置定时检测网络是否正常并且在检测到长时间无网时通过重启协议栈来恢复,无网恢复时长,单位ms。建议60000以上,为网络搜索网络保留足够的时间,留空则不做更改。
  • 返回值:无

四、信号质量查询

1. mobile.csq()

  • 功能:获取CSQ值
  • 参数:无
  • 返回值:CSQ值
  • 示例:
-- 注意,4G模块的CSQ值仅供参考

2. mobile.rssi()

  • 功能:获取 RSSI 值
  • 参数:无
  • 返回值:RSSI 值
  • 示例:无

3. mobile.rsrp()

  • 功能:获取 RSRP 值(参考信号接收功率)
  • 参数:无
  • 返回值:RSRP 值
  • 示例:无

4. mobile.rsrq()

  • 功能:获取 RSRQ 值(参考信号发送功率)
  • 参数:无
  • 返回值:RSRQ 值
  • 示例:无

5. mobile.snr()

  • 功能:获取 SNR 值(信噪比)
  • 参数:无
  • 返回值:SNR 值
  • 示例:无

五、基站信息获取

1. mobile.eci()

  • 功能:获取当前服务小区的 ECI
  • 参数:无
  • 返回值:ECI 值
  • 示例:无

2. mobile.tac()

  • 功能:获取当前服务小区的 TAC 或 LAC
  • 参数:无
  • 返回值:TAC 或 LAC 值
  • 示例:无

3. mobile.enbid()

  • 功能:获取当前服务小区的 eNBID
  • 参数:无
  • 返回值:eNBID 值
  • 示例:无

4. mobile.scell()

  • 功能:获取当前服务小区的详细信息
  • 参数:无
  • 返回值:包含小区详细信息的表
  • 示例:
log.info("cell", json.encode(mobile.scell()))_-- 返回值示例_{"mnc": 11,"mcc": 460,"rssi": -78,"pci": 115,"rsrp": -107,"tac": 30005,"eci": 124045360,"cid": 124045360,"rsrq": -9,"snr": 15,"earfcn": 1850}

5. mobile.getCellInfo()

  • 功能:获取基站信息
  • 参数:无
  • 返回值:基站信息表
  • 示例:
mobile.reqCellInfo(60)
sys.subscribe("CELL_INFO_UPDATE", function()
    log.info("cell", json.encode(mobile.getCellInfo()))end)

6. mobile.reqCellInfo(timeout)

  • 功能:发起基站信息查询(含临近小区)
  • 参数:
    • timeout:超时时间
  • 返回值:无
  • 示例:
参考 mobile.getCellInfo 函数_

六、飞行模式与同步时间配置

1. mobile.flymode(index, enable)

  • 功能:进出飞行模式
  • 参数: - index:索引 - enable:true表示开启,false表示关闭
  • 返回值:无
  • 示例:无

  • mobile.syncTime(enable)

  • 功能:配置基站同步时间开关

  • 参数: - enable:true表示开启,false表示关闭
  • 返回值:无
  • 示例:
mobile.syncTime() _-- 获取当前开关状态
mobile.syncTime(false) _-- 关闭基站同步时间

七、网络状态查询

mobile.status()

  • 功能:获取网络状态
  • 参数:无
  • 返回值:网络状态码(0-8,具体含义见示例)
  • 示例:
  • lua 复制
-- 状态描述-- 0:网络未注册-- 1:网络已注册-- 2:正在搜网中-- 3:网络注册被拒绝-- 4:网络状态未知-- 5:漫游,且已注册-- 6:仅SMS可用-- 7:仅SMS可用,且漫游状态-- 8:仅紧急呼叫

八、数据流量管理

mobile.dataTraffic(clearUplink, clearDownlink)

  • 功能:数据量流量处理
  • 参数:

    • clearUplink:true 表示清空上行流量累计值
    • clearDownlink:true 表示清空下行流量累计值
    • 返回值:

    • uplinkGB:上行流量累计值(GB)

    • uplinkB:上行流量累计值(字节)
    • downlinkGB:下行流量累计值(GB)
    • downlinkB:下行流量累计值(字节)
    • 示例:
local uplinkGB, uplinkB, downlinkGB, downlinkB = mobile.dataTraffic()
mobile.dataTraffic(true, true) _-- 清空上下行流量累计值

九、特殊网络配置

mobile.config(item, value)

  • 功能:网络特殊配置
  • 参数:

    • item:配置项
    • value:配置值
    • 返回值:无
    • 示例:
-- 配置小区重选信号差值门限_
mobile.flymode(0, true)
mobile.config(mobile.CONF_RESELTOWEAKNCELL, 15)
mobile.config(mobile.CONF_STATICCONFIG, 1) -- 开启网络静态优化
mobile.flymode(0, false)

以下为详细说明

示例

-- 简单演示

log.info("imei", mobile.imei())
log.info("imsi", mobile.imsi())
log.info("muid", mobile.muid())
log.info("iccid", mobile.iccid())
log.info("csq", mobile.csq())
log.info("rssi", mobile.rssi())
log.info("rsrq", mobile.rsrq())
log.info("rsrp", mobile.rsrp())
log.info("snr", mobile.snr())
log.info("simid", mobile.simid())

常量

常量 类型 解释
mobile.UNREGISTER number 未注册
mobile.REGISTERED number 已注册
mobile.SEARCH number 正在搜索中
mobile.DENIED number 注册被拒绝
mobile.UNKNOW number 未知
mobile.REGISTERED_ROAMING number 已注册,漫游
mobile.SMS_ONLY_REGISTERED number 已注册,仅SMS
mobile.SMS_ONLY_REGISTERED_ROAMING number 已注册,漫游,仅SMS
mobile.EMERGENCY_REGISTERED number 已注册,紧急服务
mobile.CSFB_NOT_PREFERRED_REGISTERED number 已注册,非主要服务
mobile.CSFB_NOT_PREFERRED_REGISTERED_ROAMING number 已注册,非主要服务,漫游
mobile.CONF_RESELTOWEAKNCELL number 小区重选信号差值门限,需要飞行模式设置
mobile.CONF_STATICCONFIG number 网络静态模式优化,需要飞行模式设置
mobile.CONF_QUALITYFIRST number 网络切换以信号质量优先,需要飞行模式设置,0不开,1开启,2开启并加速切换,功耗会增加
mobile.CONF_CE_MODE number attach模式,0为EPS ONLY 2为混合,遇到IMSI detach脱网问题,设置为0,注意设置为EPS ONLY时会取消短信功能
mobile.CONF_SIM_WC_MODE number SIM写入次数的配置和读取
mobile.CONF_FAKE_CELL_BARTIME number 伪基站禁止接入的时间,取值为0时取消,0xffff永久
mobile.CONF_RESET_TO_FACTORY number 删除已保存的协议栈参数,重启后会使用默认配置
mobile.CONF_USB_ETHERNET number 蜂窝网络模块的usb以太网卡控制,bit0开关1,开0关,bit1模式1NAT,0独立IP(在usb以太网卡开启前可以修改,开启过就不行),bit2协议1ECM,0RNDIS,飞行模式里设置
mobile.CONF_DISABLE_NCELL_MEAS number 关闭邻区测量 1关,0开,除了功耗测试外不建议使用
mobile.PIN_VERIFY number 验证PIN码操作
mobile.PIN_CHANGE number 更换PIN码操作
mobile.PIN_ENABLE number 使能PIN码验证
mobile.PIN_DISABLE number 关闭PIN码验证
mobile.PIN_UNBLOCK number 解锁PIN码

mobile.imei()

获取工作的SIM卡的IMEI

返回值

返回值类型 解释
string 当前的IMEI值,若失败返回nil

例子


mobile.imsi()

获取当前工作的SIM卡的IMSI

返回值

返回值类型 解释
string 当前的IMSI值,若失败返回nil

例子


mobile.muid()

获取MUID,模组唯一ID,不同模组不重复,不可更改,不可擦除;

参数

返回值

返回值类型 解释
string 当前的MUID值,若失败返回nil

例子


mobile.iccid(id)

获取SIM卡ICCID

参数

传入值类型 解释
int SIM卡的编号, 例如0, 1, 默认0

返回值

返回值类型 解释
string ICCID值,若失败返回nil

例子


mobile.number()

获取当前工作的SIM卡的卡号(手机号),注意,只有先主动写入将卡号写入软件后才能读出,SIM卡自身并没提供卡号信息,因此,在不主动先写入卡号到软件的情况下读出来的卡号是空的

参数

传入值类型 解释
int SIM卡的编号, 例如0, 1, 默认0

返回值

返回值类型 解释
string number值,若失败返回nil

例子


mobile.simid(id)

设置使用SIM0还是SIM1,或者自适应使用SIM0和SIM1;

获取当前使用的SIM硬件通道状态,是SIM0,还是SIM1;

Air780EPM的其它资料中,有时会用SIM1和SIM2来描述,此时:
其它资料中描述的SIM1,相当于这里的SIM0;
其它资料中描述的SIM2,相当于这里的SIM1;

参数

传入值类型 解释
int SIM卡硬件通道的编号, 0, 1,2;
0,SIM0,代表第一路SIM卡通道;
1,SIM1,代表第二路SIM卡通道;
2,自适应识别两路SIM卡,检测到SIM0则不再检测SIM1,检测不到SIM0则继续检测SIM1;如果SIM0和SIM1两路SIM通道都有插SIM卡,则根据第二个 boolean 传入值来判断优先使用SIM0还是SIM1;
boolean 是否优先用SIM0,只有在SIM卡硬件通道编号写2自适应时才有用!!!。
true,优先用SIM0,SIM0不存在时再检测并使用SIM1;
false,优先用SIM0,SIM0不存在时再检测并使用SIM1;
对Air780EPM来说,本传入值true和false没有区别;

返回值

返回值类型 解释
int 当前sim卡槽编号,若失败返回-1

例子

mobile.simid(0) -- 固定使用SIM0
mobile.simid(1) -- 固件使用SIM1
mobile.simid(2) -- 自动识别SIM0, SIM1, 优先级看具体平台
mobile.simid(2, true) -- -- 自动识别SIM0, SIM1, 且SIM0优先
-- 提醒, 自动识别是会增加时间的

mobile.simPin(id,operation,pin1,pin2)

检测当前SIM卡是否准备好,对SIM卡的PIN码做相关操作

参数

传入值类型 解释
int SIM卡的编号, 例如0, 1, 支持双卡单待的模组型号才需要选择
int PIN码操作类型,只能是mobile.PIN_XXXX,不操作就留空
string 更换pin时操作的pin码,或者验证操作的pin码,或者解锁pin码时的PUK,4~8字节
string 更换pin码操作时的新的pin码,解锁pin码时的新PIN,4~8字节

返回值

返回值类型 解释
boolean 当无PIN操作时,返回SIM卡是否准备好,有PIN操作时,返回是否成功

例子

local cpin_is_ready = mobile.simPin() -- 当前sim卡是否准备好,一般返回false就是没卡
local succ = mobile.simPin(0, mobile.PIN_VERIFY, "1234")    -- 输入pin码验证

mobile.setAuto(check_sim_period, get_cell_period, search_cell_time, auto_reset_stack, network_check_period)

设置一些辅助周期性或者自动功能,目前支持SIM卡暂时脱离后恢复,周期性获取小区信息,网络遇到严重故障时尝试自动恢复

参数

传入值类型 解释
int SIM卡自动恢复时间,单位毫秒,建议5000~10000,和飞行模式/SIM卡切换冲突,不能在同一时间使用,必须错开执行。写0或者不写则是关闭功能
int 周期性获取小区信息的时间间隔,单位毫秒。获取小区信息会增加部分功耗。写0或者不写则是关闭功能
int 每次搜索小区时最大搜索时间,单位秒。不要超过8秒
boolean 网络遇到严重故障时尝试自动恢复,和飞行模式/SIM卡切换冲突,true开启,false关闭,开始状态是false,留空则不做改变
int 设置定时检测网络是否正常并且在检测到长时间无网时通过重启协议栈来恢复,无网恢复时长,单位ms,建议60000以上,为网络搜索网络保留足够的时间,留空则不做更改

返回值

返回值类型 解释
nil 无返回值

例子


mobile.apn(index, cid, new_apn_name, user_name, password, ip_type, protocol)

获取或设置APN,设置APN必须在入网前就设置好,比如在SIM卡识别完成前就设置好

参数

传入值类型 解释
int 编号,默认0. 在支持双卡的模块上才会出现0或1的情况
int cid, 默认0,如果要用非默认APN来激活,必须>0
string 新的APN,不填就是获取APN, 填了就是设置APN, 是否支持设置取决于底层实现
string 新的APN的username,如果APN不是空,那必须填写,如果没有留个空字符串""。如果APN是空的,那可以nil
string 新的APN的password,如果APN不是空,那必须填写,如果没有留个空字符串""。如果APN是空的,那可以nil
int 激活APN时的IP TYPE,1=IPV4 2=IPV6 3=IPV4V6,默认是1
int 激活APN时,如果需要username和password,就要写鉴权协议类型,1~3,默认3,代表1和2都尝试一下。不需要鉴权的写0
boolean 是否删除APN,true是,其他都否,只有参数3新的APN不是string的时候才有效果

返回值

返回值类型 解释
string 如果网络注册成功,返回注册用的APN值,反之是nil。设置好不会立刻有返回值,需要等网络注册成功

例子

mobile.apn(0,1,"cmiot","","",nil,0) -- 移动公网卡设置APN为cmiot,一般不用设置
mobile.apn(0,1,"name","user","password",nil,3) -- 专网卡设置的demo,name,user,password联系卡商获取

mobile.ipv6(onff)

是否默认开启IPV6功能,必须在LTE网络连接前就设置好

参数

传入值类型 解释
boolean 开关 true开启 false 关闭

返回值

返回值类型 解释
boolean true 当前是开启的,false 当前是关闭的

例子

-- 注意, 开启ipv6后, 开机联网会慢2~3秒

mobile.csq()

获取csq

参数

返回值

返回值类型 解释
int 当前CSQ值, 若失败返回0. 范围 0 - 31, 越大越好

例子

-- 注意, 4G模块的CSQ值仅供参考, rsrp/rsrq才是真正的信号强度指标

mobile.rssi()

获取rssi

参数

返回值

返回值类型 解释
int 当前rssi值,若失败返回0. 范围 0 到 -114, 越小越好

例子


mobile.rsrp()

获取rsrp,参考信号接收功率

参数

返回值

返回值类型 解释
int 当前rsrp值,若失败返回0. 取值范围: -44 ~ -140 ,值越大越好

例子


mobile.rsrq()

获取rsrq,参考信号发送功率

参数

返回值

返回值类型 解释
int 当前rsrq值,若失败返回0. 取值范围: -3 ~ -19.5 ,值越大越好

例子


mobile.snr()

获取snr,信噪比

参数

返回值

返回值类型 解释
int 当前snq值,若失败返回0.范围 0 - 30, 越大越好

例子


mobile.eci()

获取当前服务小区的ECI(E-UTRAN Cell Identifier)

参数

返回值

返回值类型 解释
int 当前eci值,若失败返回-1

例子


mobile.tac()

获取当前服务小区的TAC或者LAC

参数

返回值

返回值类型 解释
int 当前eci值,若失败返回-1. 如果尚未注册到网络,会返回0

例子

-- 本API于 2023.7.9 新增

mobile.enbid()

获取当前服务小区的eNBID(eNodeB Identifier)

参数

返回值

返回值类型 解释
int 当前enbid值,若失败返回-1

例子


mobile.scell()

获取当前服务小区更详细的信息

参数

返回值

返回值类型 解释
table 服务小区的信息

例子

-- 本API于 2024.9.12 新增
log.info("cell", json.encode(mobile.scell()))
-- 返回值示例
{
    "mnc": 11,
    "mcc": 460,
    "rssi": -78,
    "pci": 115,
    "rsrp": -107,
    "tac": 30005,
    "eci": 124045360,
    "cid": 124045360,
    "rsrq": -9,
    "snr": 15,
    "earfcn": 1850
}

mobile.flymode(index, enable)

进出飞行模式

参数

传入值类型 解释
int 编号,默认0. 在支持双卡的模块上才会出现0或1的情况
bool 是否设置为飞行模式,true为设置, false为退出,可选

返回值

返回值类型 解释
bool 原飞行模式的状态

例子


mobile.syncTime(enable)

配置基站同步时间开关,默认开启

参数

传入值类型 解释
bool 开启,true开启, false关闭, nil不设置

返回值

返回值类型 解释
bool 当前开关状态

例子

mobile.syncTime() --获取当前开关状态
mobile.syncTime(false) --关闭基站同步时间

mobile.status()

获取网络状态

参数

返回值

返回值类型 解释
int 当前网络状态

例子

-- 状态描述
-- 0:网络未注册
-- 1:网络已注册
-- 2:正在搜网中
-- 3:网络注册被拒绝
-- 4:网络状态未知
-- 5:漫游,且已注册
-- 6:仅SMS可用
-- 7:仅SMS可用,且漫游状态
-- 8:仅紧急呼叫. 注意, 国内不支持此状态,模块也不支持紧急呼叫

-- 不推荐使用本API判断联网状态, 建议使用socket.localIP()来判断

mobile.getCellInfo()

获取基站信息

参数

返回值

返回值类型 解释
table 包含基站数据的数组

例子

-- 注意: 从2023.06.20开始, 需要主动请求一次reqCellInfo才会有基站数据.

--示例输出(原始数据是table, 下面是json格式化后的内容)
--[[
[
    {"rsrq":-10,"rssi":-55,"cid":124045360,"mnc":17,"pci":115,"earfcn":1850,"snr":15,"rsrp":-85,"mcc":1120,"tdd":0},
    {"pci":388,"rsrq":-11,"mnc":17,"earfcn":2452,"snr":5,"rsrp":-67,"mcc":1120,"cid":124045331},
    {"pci":100,"rsrq":-9,"mnc":17,"earfcn":75,"snr":17,"rsrp":-109,"mcc":1120,"cid":227096712}
]
]]

mobile.reqCellInfo(60)
-- 订阅
sys.subscribe("CELL_INFO_UPDATE", function()
    log.info("cell", json.encode(mobile.getCellInfo()))
end)

-- 定期轮训式
sys.taskInit(function()
    sys.wait(3000)
    while 1 do
        mobile.reqCellInfo(15)
        sys.waitUntil("CELL_INFO_UPDATE", 15000)
        log.info("cell", json.encode(mobile.getCellInfo()))
    end
end)

mobile.reqCellInfo(timeout)

发起基站信息查询,含临近小区

参数

传入值类型 解释
int 超时时长,单位秒,默认15. 最少5, 最高60

返回值

返回值类型 解释
nil 无返回值

例子

-- 参考 mobile.getCellInfo 函数

mobile.lockCell(mode, earfcn, pci)

锁定/解锁小区,仅用于外场测试,没接触过的,或者生产环境中请勿使用

参数

传入值类型 解释
int 操作码 0删除优先的频点,1设置优先频点,2锁定小区,3解锁小区
int 下行频点
int phycellid

返回值

返回值类型 解释
bool 成功true 失败false

例子

mobile.lockCell(2,1860,32)    --锁定小区
mobile.lockCell(3)            --解锁小区

mobile.reset()

重启协议栈

参数

返回值

返回值类型 解释
nil 无返回值

例子

-- 重启LTE协议栈
mobile.reset()

数据量流量处理

参数

传入值类型 解释
boolean 清空上行流量累计值,true清空,其他忽略
boolean 清空下行流量累计值,true清空,其他忽略

返回值

返回值类型 解释
int 上行流量GB
int 上行流量B
int 下行流量GB
int 下行流量B

例子

-- 获取上下行流量累计值
-- 上行流量值Byte = uplinkGB * 1024 * 1024 * 1024 + uplinkB
-- 下行流量值Byte = downlinkGB * 1024 * 1024 * 1024 + downlinkB
local uplinkGB, uplinkB, downlinkGB, downlinkB = mobile.dataTraffic()

-- 清空上下行流量累计值
mobile.dataTraffic(true, true)

-- 仅记录开机后的流量,复位/重启会归零

mobile.config(item, value)

网络特殊配置

参数

传入值类型 解释
int 配置项目,看mobile.CONF_XXX
int 配置值,根据具体配置的item决定

返回值

返回值类型 解释
boolean 是否成功

例子

-- 配置小区重选信号差值门限,不能大于15dbm,必须在飞行模式下才能用
mobile.flymode(0,true)
mobile.config(mobile.CONF_RESELTOWEAKNCELL, 15)
mobile.config(mobile.CONF_STATICCONFIG, 1) --开启网络静态优化
mobile.flymode(0,false)

-- 设置SIM写入次数的统计
-- 关闭统计
mobile.config(mobile.CONF_SIM_WC_MODE, 0)
-- 开启统计, 默认也是开启的.
mobile.config(mobile.CONF_SIM_WC_MODE, 1)
-- 读取统计值,异步, 需要通过系统消息SIM_IND获取
sys.subscribe("SIM_IND", function(stats, value)
    log.info("SIM_IND", stats)
    if stats == "SIM_WC" then
        log.info("sim", "write counter", value)
    end
end)
mobile.config(mobile.CONF_SIM_WC_MODE, 2)
-- 清空统计值
mobile.config(mobile.CONF_SIM_WC_MODE, 3)