Team.Feeder.Discovery 2.0.0

Team.Feeder.Discovery

Team.Feeder.Discovery 是 FFFeeder 的可选配套包,负责局域网发现和网络参数接入。它的定位很明确:只告诉你“网络里有哪些设备、它们当前的网络参数是什么、能否从当前网卡到达”,不负责创建设备实例,也不负责 UI。

适用场景

  • 你的宿主需要在局域网里扫描 FFFeeder 设备。
  • 你希望把“发现设备”和“连接设备”这两条链路拆开。
  • 你要在桌面程序、CLI 或服务程序中复用同一套发现逻辑。

包内提供的核心对象

类型 作用
IFFFeederDiscoveryService 发现服务抽象
FFFeederUdpDiscoveryService 默认 UDP 广播实现
FFFeederDiscoveryRequest 扫描参数,控制网卡、超时、端口和去重策略
FFFeederDiscoveryResult 单个发现命中结果,包含设备类型、固件、MAC、网络参数、本地网卡信息
FFFeederNetworkSettings 设备当前或目标网络参数
LocalNetworkInterfaceInfo 本机参与扫描的 IPv4 网卡快照

安装

dotnet add package Team.Feeder.Discovery

安装本包时会自动拉取 Team.Feeder.Abstractions。

最小扫描示例

using Team.Feeder.Discovery.Models;
using Team.Feeder.Discovery.Services;

var service = new FFFeederUdpDiscoveryService();
var results = await service.DiscoverAsync(new FFFeederDiscoveryRequest());

foreach (var item in results)
{
    Console.WriteLine($"{item.DeviceType} {item.MacAddress}");
    Console.WriteLine($"  IP: {item.NetworkSettings.IPv4Address}:{item.NetworkSettings.Port}");
    Console.WriteLine($"  Reachable: {item.IsReachableFromLocalInterface}");
    Console.WriteLine($"  NIC: {item.LocalInterface?.Name}");
}

典型接法:发现后再交给设备实现包

发现结果本身不是 IFeeder。通常你会把命中的网络参数转成 FFFeederOptions,再交给 Team.Feeder.FFFeeder:

var hit = results.First(item => item.IsReachableFromLocalInterface);

var options = new FFFeederOptions
{
    MacAddress = hit.MacAddress,
    FirmwareVersion = hit.FirmwareVersion,
    ConnectionOptions = new FFFeederConnectionOptions
    {
        IPv4Address = hit.NetworkSettings.IPv4Address,
        Port = hit.NetworkSettings.Port,
    },
};

自定义扫描参数

你可以通过 FFFeederDiscoveryRequest 控制:

  • 指定参与扫描的网卡列表。
  • 覆盖广播端口和本地绑定端口。
  • 控制单轮接收超时、总扫描窗口和最大接收轮数。
  • 通过 Deduplicate 决定是否按 MAC 去重。

网络参数写入

本包还提供:

  • ResetNetworkParametersAsync
  • UpdateNetworkSettingsAsync

这两个接口适合放在“发现页”或“部署页”调用,而不是设备运行时主链路。调用成功的判据是设备对广播命令做了预期回显。

与其他包的关系

  • 想真正连接和控制设备:继续引用 Team.Feeder.FFFeeder。
  • 想把扫描结果加入宿主注册表:通常继续引用 Team.Feeder.Host。
  • 想在 WPF 中直接复用现成的发现界面:引用 Team.Feeder.Controls.Wpf。

边界说明

  • 这里不创建 IFeeder 实例。
  • 这里不维护多设备注册表。
  • 这里不承担 UI 展示和本地化。
  • 这里不依赖 Team.Feeder.FFFeeder,避免发现层反向耦合到设备实现层。

Showing the top 20 packages that depend on Team.Feeder.Discovery.

Packages Downloads
Team.Feeder.Host
Shared host-side infrastructure for Team.Feeder desktop and CLI applications.
9
Team.Feeder.Controls.Wpf
WPF controls and resources for Team.Feeder.
8
Team.Feeder.Controls.Wpf
WPF controls and resources for Team.Feeder.
7
Team.Feeder.Host
Shared host-side infrastructure for Team.Feeder desktop and CLI applications.
6
Team.Feeder.Controls.Wpf
WPF controls and resources for Team.Feeder.
6
Team.Feeder.Host
Shared host-side infrastructure for Team.Feeder desktop and CLI applications.
5

.NET Standard 2.0

Version Downloads Last updated
2.0.2 14 09/19/2026
2.0.1 4 09/14/2026
2.0.0 7 09/02/2026
2.0.0-alpha2 7 09/02/2026