实现连接设备界面

This commit is contained in:
suntao committed 2021-04-01 11:09:53 +08:00
1 parent 996f924719
commit ec7589096f
88 files changed
+11344 -156

No files matched your search

@@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Assets.Scripts.Devices.Ant.Pages
{
public class PowerOnlyPageHandler : IPageHandler
{
private DateTime _lastEventChange = DateTime.UtcNow;
private byte _previousEventCount;
public bool CanHandle(byte pageNumber)
{
return (int)pageNumber == 16;
}
public void Handle(byte[] dataPayload, AbstractAntDevice device)
{
var powerDevice = device as PowerDevice;
if (powerDevice == null)
{
return;
}
//var dataPayload = response.messageContents.Skip(1).ToArray();
byte currentVal = dataPayload[1];
if ((int)ByteExtensions.GetDifference(currentVal, this._previousEventCount) > 0) //ByteExtensions
this._lastEventChange = DateTime.UtcNow;
this._previousEventCount = currentVal;
powerDevice.Power = this.IsNotMovingDueToNoEventChanges() ? 0 : (ushort)((uint)dataPayload[6] | (uint)dataPayload[7] << 8);
if ((int)dataPayload[3] != (int)byte.MaxValue)
powerDevice.Cadence = (this.IsNotMovingDueToNoEventChanges() ? 0 : (int)dataPayload[3]);
else
powerDevice.Cadence = 0;
//int num1 = (int)dataPayload[2];
//int num2 = 128;
//bool flag = (uint)(num1 & num2) > 0U;
//int num3 = (int)sbyte.MaxValue;
//int num4 = num1 & num3;
//int num5 = (int)byte.MaxValue;
}
private bool IsNotMovingDueToNoEventChanges()
{
return this._lastEventChange.AddSeconds(3.0) <= DateTime.UtcNow;
}
}
}