实现连接设备界面
This commit is contained in:
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user