using FLY.Thick.Base.Common;
using FLY.Thick.Base.IService;
using FObjBase.Reflect;
using System;
namespace FLY.Thick.Base.Client
{
///
///
///
public class FilmPositionDetectServiceClient : FObjBase.Reflect.Reflect_SeviceClient, IFilmPositionDetectService
{
protected override Type InterfaceType => typeof(IFilmPositionDetectService);
///
/// AD 曲线服务 客户端代理
///
///
public FilmPositionDetectServiceClient(UInt32 id) : base(id) { }
///
/// AD 曲线服务 客户端代理
///
/// 服务id
/// 连接器
public FilmPositionDetectServiceClient(UInt32 serviceId, string connName) : base(serviceId, connName) { }
#region 状态
///
/// 线速度 m/min
///
public double FilmVelocity { get; set; }
///
/// 膜位置, m
///
public double FilmPosition { get; set; }
///
/// 复位标识,从同步服务器发送过来的
///
public int ResetMark { get; set; }
#endregion
#region 参数
///
/// 线速度阀值,低于阀值,速度直接变为0
///
public double FilmVThreshold { get; set; }
///
/// 线速度来源
///
public FilmVSRC FilmVSrc { get; set; }
///
/// 线速度:编码器2 mm/pulse
///
public double Encoder2_mmpp { get; set; }
///
/// 线速度:1圈多少mm
///
public double MmOfR { get; set; }
#endregion
///
/// 设置膜位置为某值
///
/// 极片位置m
public void Reset(double filmPos)
{
Call(nameof(Reset), new { filmPos = filmPos });
}
///
/// 让同步信号输出 1->0
///
public void SyncSysTime()
{
Call(nameof(SyncSysTime));
}
///
/// 纵向光纤传感器检测到 0到1 变化 事件
/// 或
/// sysTime同步信号触发 0到1 变化 事件
///
[Push(typeof(SysTimeFilmPosEventArgs))]
public event EventHandler SysTimeFilmPosEvent;
public void Trigger_SysTimeFilmPosEvent(SysTimeFilmPosEventArgs e)
{
SysTimeFilmPosEvent?.Invoke(this, e);
}
///
/// 设置膜位置为某值; 同步服务器调用的
///
/// 极片位置m
/// AD盒sysTime
/// 复位标识
public void Reset(double filmPos, DateTime sysTime, int resetMark)
{
Call(nameof(Reset), new { filmPos = filmPos, sysTime = sysTime, resetMark = resetMark });
}
}
}