实现连接设备界面
This commit is contained in:
1 parent
996f924719
commit
ec7589096f
88 files changed
+11344
-156
No files matched your search
@@ -0,0 +1,112 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Assets.Scripts.Devices.Ant.LegacyPages
|
||||
{
|
||||
public class RotationData
|
||||
{
|
||||
private static readonly TimeSpan TimeBeforeRollover = TimeSpan.FromSeconds(63.0);
|
||||
private const int MaxUpdateValue = 65535;
|
||||
private const int MaxCountValue = 65535;
|
||||
private int? _update;
|
||||
private int? _count;
|
||||
private DateTimeOffset? _lastUpdatedTime;
|
||||
private int _rpm;
|
||||
|
||||
public int? CalculateRpm(DateTimeOffset now, int newUpdate, int newCount)
|
||||
{
|
||||
DateTimeOffset time = now;
|
||||
if (!this._lastUpdatedTime.HasValue)
|
||||
{
|
||||
this._update = new int?(newUpdate);
|
||||
this._count = new int?(newCount);
|
||||
this._lastUpdatedTime = new DateTimeOffset?(now);
|
||||
return new int?();
|
||||
}
|
||||
if (this.HasNotMoved(newUpdate, time))
|
||||
return new int?(0);
|
||||
if (this.HasMoreThanOneRolloverOccurred(time))
|
||||
{
|
||||
this._lastUpdatedTime = new DateTimeOffset?(time);
|
||||
this._update = new int?(newUpdate);
|
||||
this._count = new int?(newCount);
|
||||
return new int?();
|
||||
}
|
||||
if (this.HasNotUpdated(newUpdate))
|
||||
return new int?(this._rpm);
|
||||
if (this.HasUpdateRolledOver(newUpdate))
|
||||
{
|
||||
int? nullable = this._update;
|
||||
this._update = nullable.HasValue ? new int?(nullable.GetValueOrDefault() - (int)ushort.MaxValue) : new int?();
|
||||
}
|
||||
if (this.HasCountRolledOver(newCount))
|
||||
{
|
||||
int? nullable = this._count;
|
||||
this._count = nullable.HasValue ? new int?(nullable.GetValueOrDefault() - (int)ushort.MaxValue) : new int?();
|
||||
}
|
||||
this._rpm = (int)Math.Round((double)(newCount - this._count.Value) / (double)(newUpdate - this._update.Value) * 1024.0 * 60.0);
|
||||
this._lastUpdatedTime = new DateTimeOffset?(time);
|
||||
this._update = new int?(newUpdate);
|
||||
this._count = new int?(newCount);
|
||||
return new int?(this._rpm);
|
||||
}
|
||||
|
||||
private bool HasMoreThanOneRolloverOccurred(DateTimeOffset time)
|
||||
{
|
||||
DateTimeOffset dateTimeOffset = time;
|
||||
DateTimeOffset? nullable1 = this._lastUpdatedTime;
|
||||
TimeSpan? nullable2 = nullable1.HasValue ? new TimeSpan?(dateTimeOffset - nullable1.GetValueOrDefault()) : new TimeSpan?();
|
||||
TimeSpan timeSpan = RotationData.TimeBeforeRollover;
|
||||
if (!nullable2.HasValue)
|
||||
return false;
|
||||
return nullable2.GetValueOrDefault() > timeSpan;
|
||||
}
|
||||
|
||||
private bool HasCountRolledOver(int newCount)
|
||||
{
|
||||
int num = newCount;
|
||||
int? nullable = this._count;
|
||||
int valueOrDefault = nullable.GetValueOrDefault();
|
||||
if (num >= valueOrDefault)
|
||||
return false;
|
||||
return nullable.HasValue;
|
||||
}
|
||||
|
||||
private bool HasUpdateRolledOver(int newUpdate)
|
||||
{
|
||||
int num = newUpdate;
|
||||
int? nullable = this._update;
|
||||
int valueOrDefault = nullable.GetValueOrDefault();
|
||||
if (num >= valueOrDefault)
|
||||
return false;
|
||||
return nullable.HasValue;
|
||||
}
|
||||
|
||||
private bool HasNotUpdated(int newUpdate)
|
||||
{
|
||||
int num = newUpdate;
|
||||
int? nullable = this._update;
|
||||
int valueOrDefault = nullable.GetValueOrDefault();
|
||||
if (num != valueOrDefault)
|
||||
return false;
|
||||
return nullable.HasValue;
|
||||
}
|
||||
|
||||
private bool HasNotMoved(int newUpdate, DateTimeOffset time)
|
||||
{
|
||||
DateTimeOffset dateTimeOffset = time - TimeSpan.FromSeconds(4.0);
|
||||
DateTimeOffset? nullable1 = this._lastUpdatedTime;
|
||||
if ((nullable1.HasValue ? (dateTimeOffset >= nullable1.GetValueOrDefault() ? 1 : 0) : 0) == 0)
|
||||
return false;
|
||||
int num = newUpdate;
|
||||
int? nullable2 = this._update;
|
||||
int valueOrDefault = nullable2.GetValueOrDefault();
|
||||
if (num != valueOrDefault)
|
||||
return false;
|
||||
return nullable2.HasValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 057a1149cfd54d24bb329df54a9c9dfa
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in new issue
Block a user