using Assets.Scripts.Devices.Ant.Pages.CalibrationPages;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Assets.Scripts.Devices.Ant.Pages
{
///
/// 设备校准的处理函数
///
public class CalibrationPageHandler : IPageHandler
{
private readonly IList _calibrationPageHandlers = new List()
{
new CtfCalibrationPage(),
new FecCalibrationPage(),
new FailureCalibrationPage(),
new SuccessCalibrationPage()
};
public bool CanHandle(byte pageNumber)
{
if ((int)pageNumber != 1)
{
return (int)pageNumber == 240;
}
return true;
}
public void Handle(byte[] dataPayload, AbstractAntDevice device)
{
var calibrationPage = this._calibrationPageHandlers.FirstOrDefault(ph => ph.CanHandle(dataPayload[1]));
if (calibrationPage == null)
return;
calibrationPage.Handle(dataPayload, device);
}
}
}