Skip to content

Commit 7909e5a

Browse files
committed
cleanup; make use of new methods ; simplify and improve output
1 parent dde1786 commit 7909e5a

File tree

1 file changed

+71
-141
lines changed

1 file changed

+71
-141
lines changed

examples/Example06_DistanceBasicReadings/Example06_DistanceBasicReadings.ino

Lines changed: 71 additions & 141 deletions
Original file line numberDiff line numberDiff line change
@@ -29,182 +29,112 @@ SparkFunXM125Distance radarSensor;
2929
// I2C default address
3030
uint8_t i2cAddress = SFE_XM125_I2C_ADDRESS;
3131

32-
// Setup Variables
33-
uint32_t startVal = 0;
34-
uint32_t endVal = 0;
35-
uint32_t numDistances = 9;
36-
uint32_t calibrateNeeded = 0;
37-
uint32_t measDistErr = 0;
38-
39-
// Error statuses
40-
uint32_t errorStatus = 0;
41-
uint32_t distanceSetupError = 0;
42-
43-
// Distance Variables
44-
int32_t distancePeakStrength0 = 0;
45-
uint32_t distancePeak0 = 0;
46-
int32_t distancePeakStrength1 = 0;
47-
uint32_t distancePeak1 = 0;
48-
int32_t distancePeakStrength2 = 0;
49-
uint32_t distancePeak2 = 0;
50-
int32_t distancePeakStrength3 = 0;
51-
uint32_t distancePeak3 = 0;
52-
int32_t distancePeakStrength4 = 0;
53-
uint32_t distancePeak4 = 0;
54-
int32_t distancePeakStrength5 = 0;
55-
uint32_t distancePeak5 = 0;
56-
int32_t distancePeakStrength6 = 0;
57-
uint32_t distancePeak6 = 0;
58-
int32_t distancePeakStrength7 = 0;
59-
uint32_t distancePeak7 = 0;
60-
int32_t distancePeakStrength8 = 0;
61-
uint32_t distancePeak8 = 0;
62-
int32_t distancePeakStrength9 = 0;
63-
uint32_t distancePeak9 = 0;
32+
// Presence range in mm used
33+
#define MY_XM125_RANGE_START 200
34+
#define MY_XM125_RANGE_END 2000
6435

6536
void setup()
6637
{
6738
// Start serial
6839
Serial.begin(115200);
40+
41+
Serial.println("");
42+
Serial.println("-------------------------------------------------------");
6943
Serial.println("XM125 Example 6: Basic Distance Readings");
44+
Serial.println("-------------------------------------------------------");
7045
Serial.println("");
7146

7247
Wire.begin();
7348

7449
// If begin is successful (0), then start example
75-
if (radarSensor.begin(i2cAddress, Wire) == 1)
76-
{
77-
Serial.println("Begin");
78-
}
79-
else // Otherwise, infinite loop
50+
if (radarSensor.begin(i2cAddress, Wire) == false)
8051
{
8152
Serial.println("Device failed to setup - Freezing code.");
8253
while (1)
8354
; // Runs forever
8455
}
85-
86-
int32_t setupError = radarSensor.distanceBegin();
56+
Serial.println("Starting Sensor...");
57+
Serial.println();
58+
// Start the sensor with the specified range values
59+
int32_t setupError = radarSensor.distanceBegin(MY_XM125_RANGE_START, MY_XM125_RANGE_END);
8760
if (setupError != 0)
8861
{
8962
Serial.print("Distance Detection Start Setup Error: ");
9063
Serial.println(setupError);
9164
}
92-
65+
Serial.println();
66+
Serial.print("Distance Detection Started - range: ");
67+
Serial.print(MY_XM125_RANGE_START);
68+
Serial.print("mm to ");
69+
Serial.print(MY_XM125_RANGE_END);
70+
Serial.println("mm");
71+
Serial.println();
9372
// New-line and 0.5 second delay for easier reading
9473
Serial.println();
9574
delay(500);
9675
}
9776

9877
void loop()
9978
{
100-
distanceSetupError = radarSensor.distanceDetectorReadingSetup();
101-
if (distanceSetupError != 0)
79+
uint32_t retCode = radarSensor.distanceDetectorReadingSetup();
80+
if (retCode != 0)
10281
{
10382
Serial.print("Distance Reading Setup Error: ");
104-
Serial.println(distanceSetupError);
83+
Serial.println(retCode);
10584
}
10685

107-
// Read PeakX Distance and PeakX Strength registers for the number of distances detected
108-
radarSensor.getDistancePeak0Distance(distancePeak0);
109-
radarSensor.getDistancePeak0Strength(distancePeakStrength0);
110-
radarSensor.getDistancePeak1Distance(distancePeak1);
111-
radarSensor.getDistancePeak1Strength(distancePeakStrength1);
112-
radarSensor.getDistancePeak2Distance(distancePeak2);
113-
radarSensor.getDistancePeak2Strength(distancePeakStrength2);
114-
radarSensor.getDistancePeak3Distance(distancePeak3);
115-
radarSensor.getDistancePeak3Strength(distancePeakStrength3);
116-
radarSensor.getDistancePeak4Distance(distancePeak4);
117-
radarSensor.getDistancePeak4Strength(distancePeakStrength4);
118-
radarSensor.getDistancePeak5Distance(distancePeak5);
119-
radarSensor.getDistancePeak5Strength(distancePeakStrength5);
120-
radarSensor.getDistancePeak6Distance(distancePeak6);
121-
radarSensor.getDistancePeak6Strength(distancePeakStrength6);
122-
radarSensor.getDistancePeak7Distance(distancePeak7);
123-
radarSensor.getDistancePeak7Strength(distancePeakStrength7);
124-
radarSensor.getDistancePeak8Distance(distancePeak8);
125-
radarSensor.getDistancePeak8Strength(distancePeakStrength8);
126-
radarSensor.getDistancePeak9Distance(distancePeak9);
127-
radarSensor.getDistancePeak9Strength(distancePeakStrength9);
128-
129-
// If a peak distance was detected, then read out the distance and strength
130-
if (distancePeak0 != 0)
131-
{
132-
Serial.print("Peak0 Distance, Strength: ");
133-
Serial.print(distancePeak0);
134-
Serial.print("mm, ");
135-
Serial.println(distancePeakStrength0);
136-
Serial.println();
137-
}
138-
if (distancePeak1 != 0)
139-
{
140-
Serial.print("Peak1 Distance, Strength: ");
141-
Serial.print(distancePeak1);
142-
Serial.print("mm, ");
143-
Serial.println(distancePeakStrength1);
144-
Serial.println();
145-
}
146-
if (distancePeak2 != 0)
147-
{
148-
Serial.print("Peak2 Distance, Strength: ");
149-
Serial.print(distancePeak2);
150-
Serial.print("mm, ");
151-
Serial.println(distancePeakStrength2);
152-
Serial.println();
153-
}
154-
if (distancePeak3 != 0)
155-
{
156-
Serial.print("Peak3 Distance, Strength: ");
157-
Serial.print(distancePeak3);
158-
Serial.print("mm, ");
159-
Serial.println(distancePeakStrength3);
160-
Serial.println();
161-
}
162-
if (distancePeak4 != 0)
163-
{
164-
Serial.print("Peak4 Distance, Strength: ");
165-
Serial.print(distancePeak4);
166-
Serial.print("mm, ");
167-
Serial.println(distancePeakStrength4);
168-
Serial.println();
169-
}
170-
if (distancePeak5 != 0)
171-
{
172-
Serial.print("Peak5 Distance, Strength: ");
173-
Serial.print(distancePeak5);
174-
Serial.print("mm, ");
175-
Serial.println(distancePeakStrength5);
176-
Serial.println();
177-
}
178-
if (distancePeak6 != 0)
179-
{
180-
Serial.print("Peak6 Distance, Strength: ");
181-
Serial.print(distancePeak6);
182-
Serial.print("mm, ");
183-
Serial.println(distancePeakStrength6);
184-
Serial.println();
185-
}
186-
if (distancePeak7 != 0)
187-
{
188-
Serial.print("Peak7 Distance, Strength: ");
189-
Serial.print(distancePeak7);
190-
Serial.print("mm, ");
191-
Serial.println(distancePeakStrength7);
192-
Serial.println();
193-
}
194-
if (distancePeak8 != 0)
86+
// How many distance values were detected? (0-9)
87+
uint32_t numDistances = 0;
88+
radarSensor.getDistanceNumberDistances(numDistances);
89+
90+
if (numDistances == 0)
91+
Serial.println("No distance values detected.");
92+
else
19593
{
196-
Serial.print("Peak8 Distance, Strength: ");
197-
Serial.print(distancePeak8);
198-
Serial.print("mm, ");
199-
Serial.println(distancePeakStrength8);
200-
Serial.println();
94+
Serial.print("Number of Distances Values Detected: ");
95+
Serial.println(numDistances);
20196
}
202-
if (distancePeak9 != 0)
97+
Serial.println();
98+
99+
uint32_t distance = 0;
100+
int32_t distanceStrength = 0;
101+
for (uint32_t i = 0; i < numDistances; i++)
203102
{
204-
Serial.print("Peak9 Distance, Strength: ");
205-
Serial.print(distancePeak9);
206-
Serial.print("mm, ");
207-
Serial.println(distancePeakStrength9);
103+
if (radarSensor.getDistancePeakDistance(i, distance) != ksfTkErrOk)
104+
{
105+
Serial.print("Error retrieving Distance Peak ");
106+
Serial.print(i);
107+
Serial.println();
108+
continue;
109+
}
110+
Serial.print("Distance Peak ");
111+
Serial.print(i);
112+
Serial.print(": ");
113+
if (distance < 100)
114+
{
115+
Serial.print(distance);
116+
Serial.println("mm");
117+
}
118+
else if (distance < 1000)
119+
{
120+
Serial.print(distance * 0.1);
121+
Serial.println("cm");
122+
}
123+
else
124+
Serial.print(distance * 0.001);
125+
Serial.println("m");
126+
127+
if (radarSensor.getDistancePeakStrength(i, distanceStrength) != ksfTkErrOk)
128+
{
129+
Serial.print("Error retrieving Distance Peak Strength");
130+
Serial.print(i);
131+
Serial.println();
132+
continue;
133+
}
134+
Serial.print("Distance Peak Strength");
135+
Serial.print(i);
136+
Serial.print(": ");
137+
Serial.println(distanceStrength);
208138
Serial.println();
209139
}
210140

0 commit comments

Comments
 (0)