> 摘要:本文基于InHand IG系列工业边缘计算网关,实战演示如何通过Python QuickFunction调用mobiuspi_lib库中的CellularGPS模块,获取设备的蜂窝网络状态(IMEI、IMSI、信号强度等)和GNSS定位信息。适用于工业物联网、资产追踪等场景。


一、前言

在工业物联网(IIoT)和边缘计算场景中,边缘网关不仅是数据采集的入口,更是设备状态感知的关键节点。InHand Networks(映翰通)的IG系列边缘计算网关(如IG502、IG902、IG974等)内置了强大的Python二次开发平台 MobiusPi,并提供了丰富的系统API库 mobiuspi_lib

本文将聚焦两个核心能力:

  • Cellular模块:获取蜂窝调制解调器的实时状态(SIM卡信息、IMEI、IMSI、信号强度、网络类型等)
  • GPS/GNSS模块:获取设备的地理位置信息(经纬度、速度、定位时间等)

二、环境准备

2.1 硬件与固件要求

项目 要求
网关型号 IG502 / IG902 / IG974 等支持MobiusPi的型号
固件版本 支持Edge Computing & Python SDK的版本
天线 已安装Cellular天线(主天线必选,副天线可选)和GNSS/GPS天线
SIM卡 已插入可用的SIM卡并完成拨号

2.2 确认Python SDK状态

登录网关Web管理界面(默认IP:192.168.2.1),进入:Edge Computing → Python边缘计算

确认Python开发环境已启用,且mobiuspi_lib库可用。该库通常已预装在系统中,无需额外安装。

mobiuspi_lib 是InHand官方提供的Python SDK,封装了对网关硬件资源(蜂窝、GPS、串口、I/O、系统信息等)的访问接口。


三、实战:创建QuickFunction获取Cellular与GPS数据

3.1 创建QuickFunction

在网关Web界面中,进入:Edge Computing → QuickFunction List

点击 “Create”,配置如下:

参数 说明
Name cellular_GNSS_info 函数名称
Mode Periodic Trigger 周期性触发
Periodic 5 Second 每5秒执行一次
Entry Function main 入口函数名

3.2 编写Python代码

在QuickFunction编辑器中,输入以下代码:

from common.Logger import logger
from mobiuspi_lib.cellular import Cellular
from mobiuspi_lib.gps import GPS

def main():
    # 初始化Cellular模块
    cellular = Cellular()
    
    # 获取调制解调器(Modem)信息
    modem = cellular.get_modem()
    print("get modem: %s" % modem)
    
    # 初始化GPS模块
    gps = GPS()
    
    # 获取GPS定位状态
    position_status = gps.get_position_status()
    print("position_status: ")
    print(position_status)

在这里插入图片描述

3.3 代码解析

导入依赖

from common.Logger import logger          # 日志记录(可选,用于调试)
from mobiuspi_lib.cellular import Cellular # 蜂窝网络模块
from mobiuspi_lib.gps import GPS           # GPS/GNSS定位模块

Cellular模块:get_modem()
创建Cellular实例后,调用get_modem()方法获取蜂窝调制解调器的详细信息。该方法返回一个Python字典(dict),包含以下关键字段:

字段名 类型 说明
active_sim str 当前活跃的SIM卡槽,如 "SIM 1"
imei_code str 设备IMEI号(国际移动设备识别码)
imsi_code str SIM卡IMSI号(国际移动用户识别码)
iccid_code str SIM卡ICCID号(集成电路卡识别码)
phone_number str 本机号码(部分运营商支持)
signal_level int 信号强度等级(通常0-4或0-5)
dbm int 信号强度(dBm),如 -113
register_status int 网络注册状态码
operator str 运营商名称,如 "CHN-CT"
network_type str 网络类型,如 "4G""5G""3G"
lac str 位置区码(Location Area Code)
cell_id str 小区ID(Cell ID)
mcc_mnc int/str 移动国家码+移动网络码
apns str APN接入点
sinr int/float 信干噪比(Signal to Interference plus Noise Ratio)
model_temp int 模组温度

GPS模块:get_position_status()
创建GPS实例后,调用get_position_status()获取GNSS定位状态。返回字段如下:

字段名 类型 说明
op_enable int GPS功能是否启用:1为启用,0为禁用
gnss_type int GNSS类型标识
gps_time str GPS时间戳
latitude str 纬度
longitude str 经度
speed str 速度(单位通常为km/h或节,取决于模组配置)
  • 注意:GPS首次定位或信号不佳时,latitude、longitude、speed可能为空字符串。建议在业务代码中增加有效性校验。

四、运行结果与分析

4.1 Cellular输出示例

保存并启用QuickFunction后,在日志或调试输出中可以看到如下结果:

{
  "active_sim": "SIM 1",
  "imei_code": "811622048741556",
  "imsi_code": "411220441893359",
  "iccid_code": "84463317227780999882",
  "phone_number": "+8611162203133",
  "signal_level": 0,
  "dbm": 113,
  "rerp": 0,
  "rerq": 0,
  "register_status": 7,
  "operator": "",
  "mcc_mnc": 0,
  "apns": "",
  "network_type": "4G",
  "lac": "BB00",
  "cell_id": "DD788B81",
  "sinr": "",
  "arfcn": 0,
  "pci": 0,
  "network_submode": "UNKNOWN",
  "model_temp": 0
}

在这里插入图片描述

字段解读:

  • imei_code / imsi_code / iccid_code:设备的"三码",是设备管理和SIM卡管理的核心标识
  • signal_level: 0 + dbm: 113:当前信号较弱(-113dBm接近无信号边缘),建议检查天线安装
  • register_status: 7:需要参考Modem手册解读具体状态码含义
  • operator为空、mcc_mnc: 0:SIM卡可能未成功注册网络,或处于漫游/受限状态
  • network_type: “4G”:模组已识别到4G LTE网络
  • lac + cell_id:可用于基站定位(LBS)辅助校验

4.2 GPS输出示例

{
  "op_enable": 1,
  "gnss_type": 0,
  "gps_time": "",
  "latitude": "",
  "longitude": "",
  "speed": ""
}

在这里插入图片描述

状态分析:

  • op_enable: 1:GPS功能已正常启用
  • gps_time、latitude、longitude、speed均为空:表明GPS模组正在搜星,尚未完成首次定位(Fix)
    在工业场景中,冷启动首次定位可能需要30秒至数分钟。若长时间无定位数据,请检查:
  • GNSS天线是否正确连接到GNSS接口(非Cellular)
  • 天线是否置于室外或窗边,有无遮挡
  • 网关Web界面中 Services → GPS 页面是否已启用GPS功能

五、常见问题排查(FAQ)

Q1:get_modem()返回空字典或异常?
排查步骤:
确认SIM卡已正确插入,且Web界面中 Network → Cellular 显示已拨号成功
确认mobiuspi_lib版本是否过旧,尝试升级网关固件
检查代码中Cellular()实例化是否成功,可增加try-except捕获异常

Q2:GPS始终返回空经纬度?
排查步骤:
确认硬件天线连接正确:GNSS天线必须连接到标注为GNSS或GPS的SMA接口
在Web界面 Services → GPS 页面确认GPS功能已Enable
冷启动首次定位需30秒~5分钟,将设备移至室外开阔地带测试
若使用有源天线,确认天线供电正常(部分型号支持天线检测)

Q3:如何持续监控信号质量变化?
建议方案:
将QuickFunction的触发周期调整为30秒或60秒,避免过于频繁的API调用

六、总结

本文完整演示了在InHand IG系列边缘计算网关上:
✅ 通过mobiuspi_lib.cellular获取蜂窝网络详细信息(IMEI、IMSI、ICCID、信号强度、网络类型等)
✅ 通过mobiuspi_lib.gps获取GNSS定位状态(经纬度、速度、定位时间等)

这些能力在以下场景中具有重要价值:
工业资产追踪:监控部署在偏远地区的设备位置和在线状态
网络质量评估:长期采集dbm、sinr、network_type等指标,绘制覆盖热力图
故障诊断:通过register_status和operator快速定位SIM卡或运营商网络问题

七、参考资源

MobiusPi Python开发快速入门 - 中文文档
MobiusPi API Manual - 英文文档
InHand Networks 官网

更多推荐