Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main.cpp
- Revision:
- 45:01a33363bc21
- Parent:
- 44:2e0045042a59
- Child:
- 46:6398237672a0
diff -r 2e0045042a59 -r 01a33363bc21 main.cpp
--- a/main.cpp Thu Mar 05 12:18:37 2015 +0000
+++ b/main.cpp Sun Mar 08 15:59:14 2015 +0000
@@ -12,14 +12,72 @@
void rangeAndDisplayAll(){
node.requestRangingAll(); // Request ranging to all anchors
- for (int i = 1; i <= 4; i++) { // Output Results
- myprintf("D: %f, ", node.distances[i]);
- myprintf("T:%f", node.roundtriptimes[i]);
- myprintf("\r\n");
+ for (int i = 1; i <= 5; i++) { // Output Results
+ myprintf("%f, ", node.distances[i]);
+ //myprintf("T:%f", node.roundtriptimes[i]);
+ //myprintf("\r\n");
}
- myprintf("\r\n\n");
+ myprintf("\r\n");
}
+void calibrationRanging(int destination){
+
+ const int numberOfRangings = 100;
+ float rangings[numberOfRangings];
+ int index = 0;
+ float mean = 0;
+ float start, stop;
+
+ Timer localTimer;
+ localTimer.start();
+
+ start = localTimer.read();
+
+ while (1) {
+
+ node.requestRanging(destination);
+ if(node.overflow){
+ myprintf("Overflow! Measured: %f\r\n", node.distances[destination]);
+ }
+
+ if (node.distances[destination] == -1) {
+ myprintf("Measurement timed out\r\n");
+ wait(0.001);
+ continue;
+ }
+
+ if (node.distances[destination] < 100) {
+ rangings[index] = node.distances[destination];
+ //myprintf("%f\r\n", node.distances[destination]);
+ index++;
+
+ if (index == numberOfRangings) {
+ stop = localTimer.read();
+
+ for (int i = 0; i < numberOfRangings - 1; i++)
+ rangings[numberOfRangings - 1] += rangings[i];
+
+ mean = rangings[numberOfRangings - 1] / numberOfRangings;
+ myprintf("\r\n\r\nMean %i: %f\r\n", destination, mean);
+ myprintf("Elapsed Time for %i: %f\r\n", numberOfRangings, stop - start);
+
+ mean = 0;
+ index = 0;
+
+ //wait(2);
+
+ start = localTimer.read();
+ }
+ }
+
+ else myprintf("%f\r\n", node.distances[destination]);
+
+ }
+
+}
+
+// -----------------------------------------------------------------------------------------------
+
int main() {
pc.printf("\r\nDecaWave 1.0 up and running!\r\n"); // Splashscreen
dw.setEUI(0xFAEDCD01FAEDCD01); // basic methods called to check if we have a working SPI connection
@@ -27,7 +85,8 @@
pc.printf("EUI register: %016llX\r\n", dw.getEUI());
pc.printf("Voltage: %fV\r\n", dw.getVoltage());
- node.isAnchor = true; // declare as anchor or beacon
+ node.isAnchor = false;
+ // declare as anchor or beacon
if (node.isAnchor) {
node.address = 1;
myprintf("This node is Anchor node %d \r\n", node.address);
@@ -37,10 +96,15 @@
}
while(1) {
- if (!node.isAnchor)
+ if (!node.isAnchor){
rangeAndDisplayAll();
- else
+ //calibrationRanging(4);
+
+
+
+ }else
myprintf(".\r");
- wait(0.3);
+
+ wait(0.3);
}
}
\ No newline at end of file
