CE201 Embedded : 2022-23 / Mbed 2 deprecated Car

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }