Team.Gripper.Controls.Wpf 0.1.0

Team.Gripper.Controls.Wpf

WPF 电爪控件库:参数设置、动作控制与状态监控。只依赖 Team.Gripper.Abstractions, 品牌无关——绑上去的是 IGripper 契约,大寰(今天)或未来任何品牌(明天)都直接可用。 内置多语言(简体中文 / English / 日本語 / 繁體中文),运行时可切换。

控件一览

控件 作用
GripperTuningPanel 组合面板(推荐入口):控制 + 状态 + 头部(初始化/立即刷新)+ 内置轮询 + GripDropped 掉落事件
GripperMotionPad 位置/力/速度输入(量程自动取自 Limits,输入层先兜一道越界)+ 下发参数/运动/张开/闭合
GripperStatusBar 只读状态条:连接灯、初始化、夹持状态语义色、当前位置行程条、电机电流
NumericSliderUpDown 原子数值输入:滑条 + 数值框 + [±] 步进

快速开始

xmlns:controls="clr-namespace:Team.Gripper.Controls.Wpf.Controls;assembly=Team.Gripper.Controls.Wpf"

<controls:GripperTuningPanel x:Name="GripperPanel"
                             GripDropped="OnGripDropped"
                             StatusPollIntervalMs="500" />
// 宿主负责连接(串口/参数是品牌特定知识,留在宿主):
_gripper = new DhPgeGripper(new DhGripperOptions { PortName = "COM3" });
await _gripper.ConnectAsync();

// 一个属性接入,面板自动识别能力并开始轮询:
GripperPanel.Gripper = _gripper;

轮询与手动模式

  • StatusPollIntervalMs 默认 500ms,设 0 关闭轮询:此时宿主自己读状态后赋值 Status / MotorCurrent,面板纯展示;
  • 轮询读到 GripperConnectionException 会自动停表并在底部报错——重连后调 StartPolling() 或重新赋值 Gripper 即可恢复;
  • 每个轮询周期 = ReadStatusAsync(3 次寄存器读)+ ReadMotorCurrentAsync(1 次), 大寰 115200 波特率下绰绰有余。

本地化(与 Team.Feeder.Controls.Wpf 同构)

XAML 文案经 WPFLocalizeExtension 的 {lex:Loc} 绑定,code-behind 文案经 LocalizedText.Get(key) / GripperText.Get(枚举) 取词,资源为 Resources/Languages/Lang.resx(中性=简体中文)+ en / ja / zh-Hant 卫星程序集。

// 运行时切换语言(任一处调用即可,全局生效):
Team.Gripper.Controls.Wpf.Localization.LocalizationService.Instance
    .ChangeCulture(new System.Globalization.CultureInfo("en"));

// 订阅切换事件刷新宿主自己的文本:
LocalizationService.Instance.CultureChanged += (_, _) => RefreshMyTexts();

ChangeCulture 会同步四处状态: XAML 绑定、Lang 静态资源访问器、 线程默认文化,并按语言设置首选字体(简中→微软雅黑、繁中→微软正黑、日文→Yu Gothic UI)。 三个控件均已订阅 CultureChanged,切换后自动重绘。

设计边界(刻意为之)

  • 只依赖 Abstractions:不把 System.IO.Ports 拖进纯 UI 宿主;串口枚举、DhGripperOptions 构造、FullInitializeAsync(大寰 0x00A5 专有)留在宿主。需要"开箱即用全流程"时, 再加一个引用 Dh 的薄包;
  • 操作失败不抛异常到宿主 UI 线程:卡片内文字提示 + LastError 属性暴露;
  • 状态文本由本包的 GripperText 按当前文化返回(枚举是品牌中立的);
  • 状态语义色:绿=夹住/已连接,黄=运动中/初始化中,红=掉落/错误,灰=未连接/未夹到。

No packages depend on Team.Gripper.Controls.Wpf.

Version Downloads Last updated
0.1.0 9 09/07/2026