using System; using XP.Hardware.MotionControl.Abstractions; using XP.Hardware.MotionControl.Config; using XP.Hardware.Plc.Abstractions; namespace XP.Hardware.MotionControl.Implementations { /// /// 基于 PLC 的实体摇杆实现 | PLC-based Physical Joystick Implementation /// 信号名称硬编码在 MotionSignalNames 中 | Signal names hardcoded in MotionSignalNames /// public class PlcJoystick : IJoystick { private readonly ISignalDataService _signalService; private bool _isJoystickActive; public PlcJoystick(ISignalDataService signalService) { _signalService = signalService ?? throw new ArgumentNullException(nameof(signalService)); } /// public bool IsJoystickActive => _isJoystickActive; /// public void UpdateStatus() { // 读取实体摇杆输入激活信号 | Read physical joystick input active signal _isJoystickActive = _signalService.GetValueByName(MotionSignalNames.Joystick_Active) == 10; } } }