Team.Feeder.Abstractions 2.0.0
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用于收敛最近一次失败,不要求调用方解析底层异常类型。
扩展一个新设备时通常怎么用
如果你在编写一个新的设备实现包,通常会:
- 用
FeederOptions或其派生类承载配置。 - 实现
IFeeder,或在Team.Feeder.Core中基于FeederBase扩展。 - 对宿主暴露
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 |