映翰通 IG系列边缘计算网关:通过Device Supervisor Agent获取Cellular与GPS信息实战
> 摘要:本文基于InHand IG系列工业边缘计算网关,实战演示如何通过Python QuickFunction调用mobiuspi_lib库中的Cellular与GPS模块,获取设备的蜂窝网络状态(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 官网
更多推荐


所有评论(0)