mirror of
https://dev.azure.com/TeilRad/sharee.bike%20App/_git/Code
synced 2024-12-27 01:26:26 +01:00
54 lines
1.9 KiB
C#
54 lines
1.9 KiB
C#
using System;
|
|
using TINK.Model.Bikes.Bike.BluetoothLock;
|
|
|
|
namespace TINK.Model.Bike.BluetoothLock
|
|
{
|
|
public class LockInfoMutable : ILockInfoMutable
|
|
{
|
|
/// <summary> Lock info object. </summary>
|
|
private LockInfo LockInfo { get; set; }
|
|
|
|
/// <summary> Constructs a bluetooth lock info object. </summary>
|
|
/// <param name="id">Id of lock must always been known when constructing an lock info object.</param>
|
|
public LockInfoMutable(
|
|
int id,
|
|
Guid guid,
|
|
byte[] userKey,
|
|
byte[] adminKey,
|
|
byte[] seed,
|
|
LockingState state)
|
|
{
|
|
LockInfo = new LockInfo.Builder() { Id = id, Guid = guid, UserKey = userKey, AdminKey = adminKey, Seed = seed, State = state }.Build();
|
|
}
|
|
|
|
public int Id => LockInfo.Id;
|
|
|
|
/// <summary> Changes during runtime: Can be unknown when set from copri and chang to a valid value when set from lock.</summary>
|
|
public Guid Guid
|
|
{
|
|
get => LockInfo.Guid;
|
|
set => LockInfo = new LockInfo.Builder(LockInfo) { Guid = value }.Build();
|
|
}
|
|
|
|
public byte[] Seed => LockInfo.Seed;
|
|
|
|
public byte[] UserKey => LockInfo.UserKey;
|
|
|
|
public byte[] AdminKey => LockInfo.AdminKey;
|
|
|
|
public LockingState State
|
|
{
|
|
get => LockInfo.State;
|
|
set => LockInfo = new LockInfo.Builder(LockInfo) { State = value }.Build();
|
|
}
|
|
|
|
/// <summary> Holds the percentage of lock battery.</summary>
|
|
public double BatteryPercentage { get; set; } = double.NaN;
|
|
|
|
/// <summary> Loads lock info object from values. </summary>
|
|
public void Load(int id, Guid guid, byte[] seed, byte[] userKey, byte[] adminKey)
|
|
{
|
|
LockInfo = new LockInfo.Builder(LockInfo) { Id = id, Guid = guid, Seed = seed, UserKey = userKey, AdminKey = adminKey}.Build();
|
|
}
|
|
}
|
|
}
|