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;
}
}
}