File tree Expand file tree Collapse file tree 1 file changed +8
-7
lines changed Expand file tree Collapse file tree 1 file changed +8
-7
lines changed Original file line number Diff line number Diff line change @@ -90,8 +90,7 @@ sfTkError_t sfDevXM125Presence::getPresenceDistanceValuemm(uint32_t &presenceVal
90
90
{
91
91
// Check error bits
92
92
uint32_t errorStatus = 0 ;
93
- uint32_t presenceDetected = 0 ;
94
- uint32_t presenceDetectedSticky = 0 ;
93
+ uint32_t presenceStatus = 0 ;
95
94
96
95
sfTkError_t retVal = getPresenceDetectorErrorStatus (errorStatus);
97
96
if (retVal != ksfTkErrOk || errorStatus != 0 )
@@ -112,14 +111,16 @@ sfTkError_t sfDevXM125Presence::getPresenceDistanceValuemm(uint32_t &presenceVal
112
111
if (retVal != ksfTkErrOk || errorStatus != 0 )
113
112
return 4 ;
114
113
115
- // Read detector result register and determine detection status
116
- if (getPresenceDetectorPresenceDetected (presenceDetected ) != ksfTkErrOk)
114
+ // Read from 16-Bit Register to get the presence detection status
115
+ if (_theBus-> readRegister (SFE_XM125_PRESENCE_RESULT, presenceStatus ) != ksfTkErrOk)
117
116
return 5 ;
118
117
119
- if (getPresenceDetectorPresenceStickyDetected (presenceDetectedSticky) != ksfTkErrOk)
120
- return 6 ;
118
+ // Presence detected NOW or since last check (sticky)
119
+ bool bPresenceDetected = ((presenceStatus & SFE_XM125_PRESENCE_DETECTED_MASK) != 0 ) ||
120
+ ((presenceStatus & SFE_XM125_PRESENCE_DETECTED_STICKY_MASK) != 0 );
121
121
122
- if (presenceDetected == 1 || presenceDetectedSticky == 1 )
122
+ // If presence or a sticky presence is detected, get the distance and return
123
+ if (bPresenceDetected)
123
124
return getPresenceDistance (presenceVal);
124
125
125
126
return ksfTkErrOk;
You can’t perform that action at this time.
0 commit comments