Team.Feeder.Service 2.0.0

Team.Feeder.Service

Team.Feeder.Service 提供多设备协调层。它解决的问题不是“如何控制某一台设备”,而是“当宿主同时管理很多台设备时,如何注册、查询、批量操作、汇总状态,并把事件统一转发给上层”。

适用场景

  • 你的桌面程序或 CLI 需要同时管理多台 Feeder。
  • 你不想在宿主里自己维护一个 Dictionary<Guid, IFeeder>。
  • 你需要批量初始化、批量连接、批量断开和统一结果汇总。

包内提供的核心对象

类型 作用
IFeederManager 多设备管理接口
FeederManager 默认实现,负责注册、移除、批量操作和事件转发
FeederManagerOptions 批量失败时是否继续、是否抛异常等策略
FeederManagerSnapshot 聚合快照,适合给 UI 或监控层使用
FeederManagerOperationResult 单设备操作结果
FeederManagerBatchOperationResult 批量操作结果

安装

dotnet add package Team.Feeder.Service

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

最小使用示例

using Team.Feeder.Service.Management;
using Team.Feeder.Service.Models;

var manager = new FeederManager(new FeederManagerOptions
{
	ContinueBatchOnError = true,
	ThrowOnBatchFailure = false,
});

manager.Register(feederA);
manager.Register(feederB);

var connectResult = await manager.ConnectAllAsync();
Console.WriteLine($"Succeeded: {connectResult.SucceededCount}");
Console.WriteLine($"Failed: {connectResult.FailedCount}");

var snapshot = manager.GetSnapshot();
Console.WriteLine($"Total: {snapshot.TotalCount}, Connected: {snapshot.ConnectedCount}");

事件转发

FeederManager 会订阅所有已注册设备的 StatusChanged,然后通过自己的 FeederStatusChanged 事件把变化以管理层语义重新转发出去。这样做的好处是:

  • 宿主只需要订阅一个入口。
  • 可以在一个地方统一做日志、监控和 UI 刷新。
  • 不需要为每台设备单独维护事件订阅生命周期。

单设备操作与批量操作

IFeederManager 同时支持两类调用:

  • 面向单设备:InitializeAsync(Guid)、ConnectAsync(Guid)、DisconnectAsync(Guid) 等。
  • 面向全部设备:InitializeAllAsync()、ConnectAllAsync()、DisconnectAllAsync() 等。

如果你希望“某一台失败就立即停下”,把 ContinueBatchOnError 设为 false。如果你希望“最后统一拿结果,由上层决定怎么提示”,保留默认的结构化结果返回即可。

何时需要它,何时不需要

适合使用本包:

  • 宿主维护多台设备。
  • 需要统一注册和批量操作。
  • 需要聚合快照和统一事件出口。

可以不使用本包:

  • 你的程序只控制一台设备。
  • 你已经有自己的多设备管理框架,并且只想复用 IFeeder。

与其他包的关系

  • 设备实例通常来自 Team.Feeder.FFFeeder 或其他实现包。
  • 如果还需要宿主持久化注册表、恢复设备实例、导入导出配置,一般继续引用 Team.Feeder.Host。
  • 如果需要 WPF 直接绑定多设备状态,可继续接 Team.Feeder.Controls.Wpf。

边界说明

  • 这里不实现任何具体设备协议。
  • 这里不负责设备发现和网络扫描。
  • 这里不包含 UI 控件。
  • 这里不替代设备专属能力接口,例如振动参数、序列编辑、背光控制。

本包的职责只有一个:把多设备宿主的协调逻辑做稳定,而不是把所有设备功能都堆进管理器。

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

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 12 09/19/2026
2.0.1 5 09/14/2026
2.0.0 6 09/02/2026
2.0.0-alpha2 8 09/02/2026