10 namespace Treehopper {
namespace Libraries {
namespace Sensors {
namespace Optical {
54 class EnableRegister :
public Register 60 int alsInterruptEnable;
61 int sleepAfterInterrupt;
62 int noPersistInterruptEnable;
64 long getValue() {
return ((powerOn & 0x1) << 0) | ((alsEnable & 0x1) << 1) | ((alsInterruptEnable & 0x1) << 4) | ((sleepAfterInterrupt & 0x1) << 6) | ((noPersistInterruptEnable & 0x1) << 7); }
65 void setValue(
long val)
67 powerOn = (int)((val >> 0) & 0x1);
68 alsEnable = (int)((val >> 1) & 0x1);
69 alsInterruptEnable = (int)((val >> 4) & 0x1);
70 sleepAfterInterrupt = (int)((val >> 6) & 0x1);
71 noPersistInterruptEnable = (int)((val >> 7) & 0x1);
75 class ConfigRegister :
public Register 83 void setAlsTime(
AlsTimes enumVal) { alsTime = (int)enumVal; }
85 void setAlsGain(
AlsGains enumVal) { alsGain = (int)enumVal; }
87 long getValue() {
return ((alsTime & 0x7) << 0) | ((alsGain & 0x3) << 3) | ((systemReset & 0x1) << 7); }
88 void setValue(
long val)
90 alsTime = (int)((val >> 0) & 0x7);
91 alsGain = (int)((val >> 3) & 0x3);
92 systemReset = (int)((val >> 7) & 0x1);
96 class InterruptLowThresholdRegister :
public Register 102 long getValue() {
return ((value & 0xFFFF) << 0); }
103 void setValue(
long val)
105 value = (int)((val >> 0) & 0xFFFF);
109 class InterruptHighThresholdRegister :
public Register 115 long getValue() {
return ((value & 0xFFFF) << 0); }
116 void setValue(
long val)
118 value = (int)((val >> 0) & 0xFFFF);
122 class NoPersistLowThresholdRegister :
public Register 128 long getValue() {
return ((value & 0xFFFF) << 0); }
129 void setValue(
long val)
131 value = (int)((val >> 0) & 0xFFFF);
135 class NoPersistHighThresholdRegister :
public Register 141 long getValue() {
return ((value & 0xFFFF) << 0); }
142 void setValue(
long val)
144 value = (int)((val >> 0) & 0xFFFF);
148 class PersistRegister :
public Register 152 int interruptPersistanceFilter;
156 long getValue() {
return ((interruptPersistanceFilter & 0xF) << 0); }
157 void setValue(
long val)
159 interruptPersistanceFilter = (int)((val >> 0) & 0xF);
163 class PackageIdRegister :
public Register 169 long getValue() {
return ((value & 0xFF) << 0); }
170 void setValue(
long val)
172 value = (int)((val >> 0) & 0xFF);
176 class DeviceIdRegister :
public Register 182 long getValue() {
return ((value & 0xFF) << 0); }
183 void setValue(
long val)
185 value = (int)((val >> 0) & 0xFF);
189 class StatusRegister :
public Register 195 int noPersistInterrupt;
197 long getValue() {
return ((alsValud & 0x1) << 0) | ((alsInterrupt & 0x1) << 4) | ((noPersistInterrupt & 0x1) << 5); }
198 void setValue(
long val)
200 alsValud = (int)((val >> 0) & 0x1);
201 alsInterrupt = (int)((val >> 4) & 0x1);
202 noPersistInterrupt = (int)((val >> 5) & 0x1);
212 long getValue() {
return ((value & 0xFFFF) << 0); }
213 void setValue(
long val)
215 value = (int)((val >> 0) & 0xFFFF);
225 long getValue() {
return ((value & 0xFFFF) << 0); }
226 void setValue(
long val)
228 value = (int)((val >> 0) & 0xFFFF);
232 EnableRegister enable;
233 ConfigRegister config;
234 InterruptLowThresholdRegister interruptLowThreshold;
235 InterruptHighThresholdRegister interruptHighThreshold;
236 NoPersistLowThresholdRegister noPersistLowThreshold;
237 NoPersistHighThresholdRegister noPersistHighThreshold;
238 PersistRegister persist;
239 PackageIdRegister packageId;
240 DeviceIdRegister deviceId;
241 StatusRegister status;
245 Tsl2591Registers(SMBusDevice& device) :
RegisterManager(device, true), enable(*this), config(*this), interruptLowThreshold(*this), interruptHighThreshold(*this), noPersistLowThreshold(*this), noPersistHighThreshold(*this), persist(*this), packageId(*this), deviceId(*this), status(*this), ch0(*this), ch1(*this)
247 registers.push_back(&enable);
248 registers.push_back(&config);
249 registers.push_back(&interruptLowThreshold);
250 registers.push_back(&interruptHighThreshold);
251 registers.push_back(&noPersistLowThreshold);
252 registers.push_back(&noPersistHighThreshold);
253 registers.push_back(&persist);
254 registers.push_back(&packageId);
255 registers.push_back(&deviceId);
256 registers.push_back(&status);
257 registers.push_back(&ch0);
258 registers.push_back(&ch1);
Definition: Register.h:11
Definition: RegisterManager.h:10
AlsGains
Definition: Tsl2591Registers.h:22
InterruptPersistanceFilters
Definition: Tsl2591Registers.h:30
AlsTimes
Definition: Tsl2591Registers.h:12