注意

这是最新开发分支的文档,可能包含尚未在发布版本中提供的功能。如果您在寻找特定版本的文档,请使用左侧的下拉菜单选择。

使用有线网例程讲解#

例程位置#

  • 开发板固件路径:/sdcard/examples/14-Socket/network_lan.py

  • SDK 源码路径:src/canmv/resources/examples/14-Socket/network_lan.py

环境准备#

将开发板支持的 USB 以太网适配器或 USB 4G ECM/NCM 网卡接入开发板,并连接到 能够提供 DHCP 的路由器或网络。USB LAN 的设备名会动态分配,例程通过逻辑 LAN 接口选择设备,不依赖固定名称。

代码流程#

导入公共网络函数#

from libs.Network import configure_ip, connect_network, network_device_name
  • connect_network():选择 LAN、启动 DHCP、等待 IP,并设置默认上行;

  • configure_ip():应用静态地址或 DHCP,并等待地址生效;

  • network_device_name():读取当前 LAN 对应的实际 netdev 名称。

使用 DHCP 连接 LAN#

a, ip = connect_network("lan")
print(a.active())
print(a.ifconfig())

anetwork.LAN 对象,ip 是等待成功后取得的 IPv4 地址。active() 在 RT-Smart 上用于查询接口是否可用,不用于关闭设备。ifconfig() 返回:

(IP 地址, 子网掩码, 默认网关, DNS 服务器)

临时切换为静态地址#

configure_ip(a, (
    "192.168.0.4",
    "255.255.255.0",
    "192.168.0.1",
    "8.8.8.8",
))
print(a.ifconfig())

四个值必须与实际网络匹配。示例地址只用于演示;若网段或网关不匹配,切换后 网络通信会中断。

恢复 DHCP#

ip = configure_ip(a, "dhcp")
print("LAN device:", network_device_name(a))
print("LAN address:", ip)

configure_ip() 不只发起 DHCP,还会等待非零 IP,因此后续 Socket 代码无需 自行轮询 ifconfig()

查询 MAC 地址#

print(a.config("mac"))

返回值为 6 字节 MAC。需要冒号分隔字符串时,可使用 libs.Network.mac_address(a)

运行与验证#

  1. 在 CanMV IDE 中打开 /sdcard/examples/14-Socket/network_lan.py

  2. 确认网卡和网线已连接,再运行脚本。

  3. 第一次 ifconfig() 应显示 DHCP 地址。

  4. 静态地址阶段应显示示例四元组。

  5. 恢复 DHCP 后,LAN address 应重新显示路由器分配的地址。

重要

静态地址 192.168.0.4 可能与现有设备冲突。正式使用前必须根据实际网段修改, 或删去静态地址测试,只保留 DHCP 部分。

USB 4G ECM/NCM 的 Python 使用方式与 LAN 相同。支持的模组和驱动配置可参考 EC200M-CN。完整接口见 network 模块 API 手册

评论列表
条评论
登录