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 去重。
网络参数写入
本包还提供:
ResetNetworkParametersAsyncUpdateNetworkSettingsAsync
这两个接口适合放在“发现页”或“部署页”调用,而不是设备运行时主链路。调用成功的判据是设备对广播命令做了预期回显。
与其他包的关系
- 想真正连接和控制设备:继续引用
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
- Team.Feeder.Abstractions (>= 2.0.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 |