using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FLY.Thick.Blowing
{
public interface IBlowingDetectInServer:INotifyPropertyChanged
{
double FilmLength { get; set; }
double FilmVelocity { get; }
TimeSpan RenZiJiaPeriod { get; }
///
/// 获取当前在膜上的测量点,对应于膜泡的角度信息, 当时间点,比LimitList.Last.dt+RenZiJiaPeriod还要后,更新RenZiJiaPeriod
/// 返回 -1, 当前的时间点在列表以前;
/// 返回 0, 当前的时间点在列表中;
/// 返回 1, 当前的时间点在列表的未来;
///
/// 被压扁后的膜宽度
/// 探头所在膜的横向位置
/// 测量的时间点
///
int GetFilmInfo(out FilmInfo filminfo, DateTime dt, double filmWidth, double filmPosH);
event FilmInfoChangedEventHandler FilmInfoChangedEvent;
event ClearEventHandler ClearEvent;
}
public delegate void FilmInfoChangedEventHandler(object sender, FilmInfoChangedEventArgs e);
public delegate void ClearEventHandler(object sender);
public class FilmInfo
{
///
/// 上层 位于膜泡的角度 0~360°
///
public double angle1;
///
/// 下层 位于膜泡的角度 0~360°
///
public double angle2;
///
/// 膜泡旋转方向
///
public Misc.DIRECTION direction;
///
/// 线速度
///
public double filmVelocity;
///
/// 累计旋转次数
///
public int rotationCnt;
///
/// 在匀速阶段; 在限位信号 开始~结束 期间 inCV = false
///
public bool inCV;
}
public class FilmInfoChangedEventArgs : EventArgs
{
public FilmInfoChangedEventArgs(DateTime time)
{
Time = time;
}
///
/// 开始时间点
///
public DateTime Time
{
get;
set;
}
}
}