-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathLightHouse.cs
More file actions
124 lines (111 loc) · 2.74 KB
/
Copy pathLightHouse.cs
File metadata and controls
124 lines (111 loc) · 2.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
using System;
using System.Configuration;
namespace BSManager
{
internal class Lighthouse
{
public string Name { get; private set; }
public ulong Address { get; private set; }
public bool ProcessDone { get; set; }
public bool PoweredOn { get; set; }
public bool V2PoweredOn { get; set; }
public int LastPowerState { get; set; }
public int ErrorTotal { get; set; }
public int OpsTotal { get; set; }
public string ErrorStrings { get; set; }
private LastCmd _lastCmd;
private DateTime _lastCmdStamp;
public BSManufacturer Manufacturer;
public DateTime LastCmdStamp
{
get
{
return _lastCmdStamp;
}
}
public LastCmd LastCmd
{
get {
return _lastCmd;
}
set {
_lastCmd = value;
_lastCmdStamp = DateTime.Now;
}
}
public Action Action { get; set; }
public bool V2 { get; set; }
private int _errCnt;
public string HowManyErrors
{
get
{
return _errCnt.ToString();
}
}
public bool TooManyErrors
{
get {
ErrorTotal++;
if (_errCnt > 5)
{
_errCnt = 0;
return true;
}
else
{
_errCnt++;
return false;
}
}
set {
_errCnt = 0;
ErrorStrings = "";
}
}
public Lighthouse(string name, ulong address)
{
Name = name;
Address = address;
PoweredOn = false;
V2PoweredOn = false;
LastCmd = LastCmd.NONE;
Action = Action.NONE;
Manufacturer = BSManufacturer.HTC;
_errCnt = 0;
LastPowerState = 0;
ProcessDone = false;
ErrorStrings = "";
ErrorTotal = 0;
OpsTotal = 0;
}
public override bool Equals(object obj)
{
return obj is Lighthouse lighthouse &&
Name == lighthouse.Name &&
Address == lighthouse.Address;
}
public override int GetHashCode()
{
return HashCode.Combine(Name, Address);
}
}
public enum LastCmd
{
NONE,
ERROR,
WAKEUP,
SLEEP
}
public enum BSManufacturer
{
HTC,
VIVE
}
public enum Action
{
NONE,
WAKEUP,
SLEEP
}
}