using FLY.Thick.Base.Common;
using FObjBase.Reflect;
using System;
using System.ComponentModel;
namespace FLY.Thick.Base.IService
{
///
/// 膜位置检测;
/// 通过辊接近开关,或者编码器2;
/// 支持同步;
///
public interface IFilmPositionDetectService : INotifyPropertyChanged
{
#region 状态
///
/// 线速度 m/min
///
double FilmVelocity { get; }
///
/// 膜位置, m
///
double FilmPosition { get; }
///
/// 复位标识,从同步服务器发送过来的
///
int ResetMark { get; }
#endregion
#region 参数
///
/// 线速度阀值,低于阀值,速度直接变为0
///
double FilmVThreshold { get; set; }
///
/// 线速度来源
///
FilmVSRC FilmVSrc { get; set; }
///
/// 线速度:编码器2 mm/pulse
///
double Encoder2_mmpp { get; set; }
///
/// 线速度:1圈多少mm
///
double MmOfR { get; set; }
#endregion
///
/// 设置膜位置为某值
///
/// 极片位置m
void Reset(double filmPos);
///
/// 让同步信号输出 1->0
///
void SyncSysTime();
///
/// 纵向光纤传感器检测到 0到1 变化 事件
/// 或
/// sysTime同步信号触发 0到1 变化 事件
///
[Push(typeof(SysTimeFilmPosEventArgs))]
event EventHandler SysTimeFilmPosEvent;
///
/// 设置膜位置为某值; 同步服务器调用的
///
/// 极片位置m
/// AD盒sysTime
/// 复位标识
void Reset(double filmPos, DateTime sysTime, int resetMark);
}
///
/// 从 0 到 1 时极片位置事件
///
public class SysTimeFilmPosEventArgs : EventArgs
{
///
/// sysTime 的同步信号触发
///
public bool IsSysTimeSync;
///
/// AD盒的SysTime
///
public DateTime SysTime;
///
/// 极片位置单位m, 精度0.000m
///
public double FilmPos;
}
///
///
///
///
///
public delegate void SysTimeFilmPosEventHandler(object s, SysTimeFilmPosEventArgs e);
}