35 lines
1.3 KiB
C#
35 lines
1.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Assets.Scripts.Devices.Ant.Pages
|
|
{
|
|
public class CrankPowerPageHandler : IPageHandler
|
|
{
|
|
private readonly TorquePowerDataCalculator _torquePowerDataCalculator = new TorquePowerDataCalculator();
|
|
|
|
public bool CanHandle(byte pageNumber)
|
|
{
|
|
return (int)pageNumber == 18;
|
|
}
|
|
|
|
public void Handle(byte[] dataPayload, AbstractAntDevice device)
|
|
{
|
|
var powerDevice = device as PowerDevice;
|
|
if (powerDevice == null)
|
|
return;
|
|
byte eventCount = dataPayload[1];
|
|
int num = (int)dataPayload[3];
|
|
ushort period = (ushort)((uint)dataPayload[4] | (uint)dataPayload[5] << 8);
|
|
ushort accumulatedTorque = (ushort)(dataPayload[6] | (uint)dataPayload[7] << 8);
|
|
this._torquePowerDataCalculator.Update(eventCount, period, accumulatedTorque);
|
|
//powerDevice.UpdateCadence(new int?(this._torquePowerDataCalculator.Rpm));
|
|
//powerDevice.UpdatePower(new int?(this._torquePowerDataCalculator.Power));
|
|
powerDevice.Cadence = this._torquePowerDataCalculator.Rpm;
|
|
powerDevice.Power = this._torquePowerDataCalculator.Power;
|
|
}
|
|
}
|
|
}
|