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