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.
Dependencies: mbed
main.cpp@3:147e7a35d2c3, 2017-02-16 (annotated)
- Committer:
- fjwats
- Date:
- Thu Feb 16 17:33:01 2017 +0000
- Revision:
- 3:147e7a35d2c3
- Parent:
- 2:7cb9c966a781
- Child:
- 4:54544a7dcbe0
telemSave made better
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| iainsc0574 | 0:6bf5faf294b7 | 1 | #include "mbed.h" |
| fjwats | 2:7cb9c966a781 | 2 | #include <fstream> |
| iainsc0574 | 0:6bf5faf294b7 | 3 | |
| fjwats | 1:832c213480a8 | 4 | #define MAX 0x0A |
| iainsc0574 | 0:6bf5faf294b7 | 5 | |
| iainsc0574 | 0:6bf5faf294b7 | 6 | DigitalOut led_1(LED1); //program running. |
| iainsc0574 | 0:6bf5faf294b7 | 7 | DigitalOut led_2(LED2); //sensors operating. |
| iainsc0574 | 0:6bf5faf294b7 | 8 | DigitalOut led_3(LED3); //is moving. |
| iainsc0574 | 0:6bf5faf294b7 | 9 | DigitalOut led_4(LED4); //is complete. |
| fjwats | 1:832c213480a8 | 10 | |
| fjwats | 1:832c213480a8 | 11 | DigitalOut Bit1(p25); // mux/ pins |
| fjwats | 1:832c213480a8 | 12 | DigitalOut Bit2(p24); // |
| fjwats | 1:832c213480a8 | 13 | DigitalOut Bit3(p23); // |
| iainsc0574 | 0:6bf5faf294b7 | 14 | |
| iainsc0574 | 0:6bf5faf294b7 | 15 | int rawUS_data[5]={0,0,0,0,0}; //raw data{chan1,chan2,chan3,chan4,chan5} |
| fjwats | 1:832c213480a8 | 16 | |
| fjwats | 1:832c213480a8 | 17 | int US1_mean[MAX]={0,0,0,0,0,0,0,0,0,0}; // Structures holding recently recorded distances for each respective |
| fjwats | 1:832c213480a8 | 18 | int US2_mean[MAX]={0,0,0,0,0,0,0,0,0,0}; // ultrasonic sensor. |
| iainsc0574 | 0:6bf5faf294b7 | 19 | int US3_mean[MAX]={0,0,0,0,0,0,0,0,0,0}; |
| iainsc0574 | 0:6bf5faf294b7 | 20 | int US4_mean[MAX]={0,0,0,0,0,0,0,0,0,0}; |
| iainsc0574 | 0:6bf5faf294b7 | 21 | int US5_mean[MAX]={0,0,0,0,0,0,0,0,0,0}; |
| iainsc0574 | 0:6bf5faf294b7 | 22 | |
| fjwats | 3:147e7a35d2c3 | 23 | std::string telemFile; //file holding info about telem data gathered since last power on |
| fjwats | 2:7cb9c966a781 | 24 | |
| iainsc0574 | 0:6bf5faf294b7 | 25 | void setActiveUS(int chan); |
| fjwats | 1:832c213480a8 | 26 | |
| iainsc0574 | 0:6bf5faf294b7 | 27 | int getPing(void); |
| iainsc0574 | 0:6bf5faf294b7 | 28 | |
| iainsc0574 | 0:6bf5faf294b7 | 29 | int main() { |
| iainsc0574 | 0:6bf5faf294b7 | 30 | int iCount = 0; |
| iainsc0574 | 0:6bf5faf294b7 | 31 | int measured = 0; |
| fjwats | 1:832c213480a8 | 32 | |
| iainsc0574 | 0:6bf5faf294b7 | 33 | while(iCount <= 5){ |
| iainsc0574 | 0:6bf5faf294b7 | 34 | setActiveUS(iCount); |
| iainsc0574 | 0:6bf5faf294b7 | 35 | measured = getPing(); |
| iainsc0574 | 0:6bf5faf294b7 | 36 | rawUS_data[iCount] = measured; |
| fjwats | 1:832c213480a8 | 37 | } |
| fjwats | 1:832c213480a8 | 38 | |
| iainsc0574 | 0:6bf5faf294b7 | 39 | US1_mean[0]=rawUS_data[0]; |
| iainsc0574 | 0:6bf5faf294b7 | 40 | US2_mean[0]=rawUS_data[1]; |
| iainsc0574 | 0:6bf5faf294b7 | 41 | US3_mean[0]=rawUS_data[2]; |
| iainsc0574 | 0:6bf5faf294b7 | 42 | US4_mean[0]=rawUS_data[3]; |
| iainsc0574 | 0:6bf5faf294b7 | 43 | US5_mean[0]=rawUS_data[4]; |
| fjwats | 1:832c213480a8 | 44 | |
| iainsc0574 | 0:6bf5faf294b7 | 45 | } |
| iainsc0574 | 0:6bf5faf294b7 | 46 | |
| iainsc0574 | 0:6bf5faf294b7 | 47 | void setActiveUS(int chan){ |
| iainsc0574 | 0:6bf5faf294b7 | 48 | switch(chan){ |
| iainsc0574 | 0:6bf5faf294b7 | 49 | case 0: |
| iainsc0574 | 0:6bf5faf294b7 | 50 | //ultrasonic 1 |
| iainsc0574 | 0:6bf5faf294b7 | 51 | break; |
| iainsc0574 | 0:6bf5faf294b7 | 52 | |
| iainsc0574 | 0:6bf5faf294b7 | 53 | case 1: |
| iainsc0574 | 0:6bf5faf294b7 | 54 | //ultrasonic 2 |
| iainsc0574 | 0:6bf5faf294b7 | 55 | break; |
| iainsc0574 | 0:6bf5faf294b7 | 56 | |
| iainsc0574 | 0:6bf5faf294b7 | 57 | case 2: |
| iainsc0574 | 0:6bf5faf294b7 | 58 | //ultrasonic 3 |
| iainsc0574 | 0:6bf5faf294b7 | 59 | break; |
| iainsc0574 | 0:6bf5faf294b7 | 60 | |
| iainsc0574 | 0:6bf5faf294b7 | 61 | case 3: |
| iainsc0574 | 0:6bf5faf294b7 | 62 | //ultrasonic 4 |
| iainsc0574 | 0:6bf5faf294b7 | 63 | break; |
| iainsc0574 | 0:6bf5faf294b7 | 64 | |
| iainsc0574 | 0:6bf5faf294b7 | 65 | case 4: |
| iainsc0574 | 0:6bf5faf294b7 | 66 | //ultrasonic 5 |
| iainsc0574 | 0:6bf5faf294b7 | 67 | break; |
| iainsc0574 | 0:6bf5faf294b7 | 68 | |
| iainsc0574 | 0:6bf5faf294b7 | 69 | } |
| fjwats | 1:832c213480a8 | 70 | } |
| iainsc0574 | 0:6bf5faf294b7 | 71 | |
| iainsc0574 | 0:6bf5faf294b7 | 72 | int getPing(void){ |
| iainsc0574 | 0:6bf5faf294b7 | 73 | int result=0; |
| iainsc0574 | 0:6bf5faf294b7 | 74 | //write ultrasonic code |
| iainsc0574 | 0:6bf5faf294b7 | 75 | //return measured value |
| iainsc0574 | 0:6bf5faf294b7 | 76 | |
| iainsc0574 | 0:6bf5faf294b7 | 77 | |
| fjwats | 1:832c213480a8 | 78 | return result; //should just do "return [operation that gives result];" for efficiency |
| fjwats | 1:832c213480a8 | 79 | } |
| fjwats | 1:832c213480a8 | 80 | |
| fjwats | 3:147e7a35d2c3 | 81 | // Opens set file for logging, appends some data, then returns. |
| fjwats | 3:147e7a35d2c3 | 82 | // |
| fjwats | 2:7cb9c966a781 | 83 | void telemSave(std::string data) { |
| fjwats | 3:147e7a35d2c3 | 84 | std::ofstream stream; |
| fjwats | 3:147e7a35d2c3 | 85 | stream.open(telemFile, std::ios::app); |
| fjwats | 3:147e7a35d2c3 | 86 | stream << data; |
| fjwats | 2:7cb9c966a781 | 87 | } |