Team.Feeder.Abstractions 2.0.1

Team.Feeder.Abstractions

Team.Feeder.Abstractions 是 Team.Feeder 体系的最小公共契约包。它只定义“宿主应该看到什么”,不定义“设备内部怎么实现”。如果你的代码希望面向接口编程、保持与具体设备协议解耦,这个包通常就是第一层依赖。

适用场景

  • 你的应用只想依赖 IFeeder / FeederStatus 这类公共契约,不直接依赖某个设备实现。
  • 你要编写新的设备驱动包,并希望遵守 Team.Feeder 的统一生命周期模型。
  • 你要写宿主层、监控层、日志层或测试替身,需要一个稳定的抽象层。

包内提供的核心对象

类型 作用
IFeeder 单设备公共接口,提供初始化、连接、断开、停止、刷新状态等生命周期操作
IFeederFactory 按设备类型创建 IFeeder 实例的工厂接口
IFeederDescriptorProvider 提供稳定设备描述信息的轻量接口
FeederOptions 公共配置模型,承载逻辑名、超时和扩展属性
FeederDescriptor 设备身份、展示名、型号、能力标签、端点摘要
FeederStatus 当前生命周期、健康状态、连接状态、最近错误
FeederCommandResult 命令执行结果的统一返回模型
FeederError 稳定错误码、消息和来源

安装

dotnet add package Team.Feeder.Abstractions

这是基础包,没有对其他 Team.Feeder 业务包的反向依赖。

最小用法

下面的代码演示如何在完全不知道具体设备实现的情况下,只面向 IFeeder 读取状态并执行连接:

using Team.Feeder.Abstractions.Contracts;

public static class FeederRuntime
{
	public static async Task PrintStatusAsync(IFeeder feeder, CancellationToken cancellationToken)
	{
		await feeder.InitializeAsync(cancellationToken);
		await feeder.ConnectAsync(cancellationToken);

		Console.WriteLine($"Name: {feeder.Name}");
		Console.WriteLine($"State: {feeder.Status.State}");
		Console.WriteLine($"Health: {feeder.Status.HealthState}");
		Console.WriteLine($"Connected: {feeder.Status.IsConnected}");
	}
}

事件与状态模型

  • IFeeder.StatusChanged 用于低频、结构化的设备状态变化通知。
  • FeederStatus.State 表示生命周期位置,例如 Created、Connected、Faulted。
  • FeederStatus.HealthState 表示健康程度,适合给 UI 或监控系统做健康展示。
  • FeederStatus.LastError 用于收敛最近一次失败,不要求调用方解析底层异常类型。

扩展一个新设备时通常怎么用

如果你在编写一个新的设备实现包,通常会:

  1. 用 FeederOptions 或其派生类承载配置。
  2. 实现 IFeeder,或在 Team.Feeder.Core 中基于 FeederBase 扩展。
  3. 对宿主暴露 IFeederFactory,让宿主按设备类型创建实例。

与其他包的关系

  • 想要复用状态机、基类和异常映射:继续引用 Team.Feeder.Core。
  • 想要使用现成的 FFFeeder TCP 客户端:引用 Team.Feeder.FFFeeder。
  • 想要管理多个设备:引用 Team.Feeder.Service。

边界说明

  • 这里不放 TCP、串口、UDP、Socket 等通信细节。
  • 这里不放 WPF 控件、ViewModel 或资源字典。
  • 这里不放 FFFeeder 专属参数和协议命令。

公共契约一旦放入本包,就会成为其他包共同依赖的稳定面。因此新增成员时应优先考虑跨设备通用性,而不是为某个单一设备定制语义。

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

Packages Downloads
Team.Feeder.Discovery
Optional UDP discovery package for Team.Feeder (FFFeeder local-network scan and network parameter helpers).
14
Team.Feeder.Core
Shared base types and validation helpers for Team.Feeder.
13
Team.Feeder.FFFeeder
FFFeeder TCP client implementation for Team.Feeder.
13
Team.Feeder.Service
Multi-device management services for Team.Feeder.
12
Team.Feeder.Host
Shared host-side infrastructure for Team.Feeder desktop and CLI applications.
9
Team.Feeder.Service
Multi-device management services for Team.Feeder.
8
Team.Feeder.Controls.Wpf
WPF controls and resources for Team.Feeder.
8
Team.Feeder.Discovery
Optional UDP discovery package for Team.Feeder (FFFeeder local-network scan and network parameter helpers).
7
Team.Feeder.Core
Shared base types and validation helpers for Team.Feeder.
7
Team.Feeder.Controls.Wpf
WPF controls and resources for Team.Feeder.
7
Team.Feeder.FFFeeder
FFFeeder TCP client implementation for Team.Feeder.
6
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.Service
Multi-device management services for Team.Feeder.
6
Team.Feeder.Core
Shared base types and validation helpers for Team.Feeder.
5
Team.Feeder.Host
Shared host-side infrastructure for Team.Feeder desktop and CLI applications.
5

.NET Standard 2.0

  • No dependencies.

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