CSE237B_Team / Mbed 2 deprecated read_serial

Dependencies:   mbed-rtos mbed

Committer:
mbed69833
Date:
Sun Jun 01 12:06:42 2014 +0000
Revision:
5:af9b6ec6b9b5
Parent:
4:558b29109618
testing done

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed68244 0:253a9226eb5b 1 #include "mbed.h"
mbed68244 2:153ec87771a0 2 #include "network.h"
mbed68244 0:253a9226eb5b 3 #include <fstream>
mbed68244 2:153ec87771a0 4 #include <cmath>
mbed68244 2:153ec87771a0 5 #include <queue>
mbed68244 3:f24de3613c5c 6 #include "rtos.h"
mbed68244 3:f24de3613c5c 7
mbed68244 2:153ec87771a0 8
mbed68244 0:253a9226eb5b 9
mbed68244 1:a770d742e28a 10 #define PACKET_COUNT 4
mbed68244 1:a770d742e28a 11
mbed68244 2:153ec87771a0 12 Serial pc(USBTX, USBRX); // tx, rx
mbed68244 2:153ec87771a0 13 DigitalOut myled4(LED4);
mbed68244 0:253a9226eb5b 14 DigitalOut myled3(LED3);
mbed68244 0:253a9226eb5b 15
mbed68244 2:153ec87771a0 16 LocalFileSystem local("local");
mbed68244 0:253a9226eb5b 17 int read_buffer[100][20];
mbed68244 0:253a9226eb5b 18
mbed68244 2:153ec87771a0 19
mbed68244 0:253a9226eb5b 20
mbed68244 2:153ec87771a0 21
mbed68244 2:153ec87771a0 22 //Converts the data from the buffer into values
mbed68244 2:153ec87771a0 23 //and puts it in a struct which we can pass to another fn
mbed69833 4:558b29109618 24 control_p set_cp_values(int packet_num){
mbed68244 2:153ec87771a0 25
mbed68244 2:153ec87771a0 26 control_p packet_data;
mbed68244 2:153ec87771a0 27
mbed69833 4:558b29109618 28 int bit_idx = 0;
mbed68244 2:153ec87771a0 29 int sequence = 0;
mbed68244 2:153ec87771a0 30 int furnace = 0;
mbed68244 2:153ec87771a0 31 int interval = 0;
mbed68244 2:153ec87771a0 32 int bit_decrement = 0;
mbed68244 2:153ec87771a0 33
mbed68244 2:153ec87771a0 34 bit_decrement = 3;
mbed69833 4:558b29109618 35 for(; bit_idx < 4; bit_idx++){
mbed69833 4:558b29109618 36 if( read_buffer[packet_num][2 + bit_idx] == 1){ //need to add 2 because starrt bits
mbed68244 2:153ec87771a0 37 sequence += pow(2.0,bit_decrement);
mbed68244 2:153ec87771a0 38 }
mbed68244 2:153ec87771a0 39 bit_decrement--;
mbed68244 2:153ec87771a0 40 }
mbed68244 2:153ec87771a0 41
mbed68244 2:153ec87771a0 42 bit_decrement = 3;
mbed69833 4:558b29109618 43 for(; bit_idx < 8; bit_idx++){
mbed69833 4:558b29109618 44 if( read_buffer[packet_num][2 + bit_idx] == 1){
mbed68244 2:153ec87771a0 45 furnace += pow(2.0,bit_decrement);
mbed68244 2:153ec87771a0 46 }
mbed68244 2:153ec87771a0 47 bit_decrement--;
mbed68244 2:153ec87771a0 48 }
mbed68244 2:153ec87771a0 49
mbed68244 2:153ec87771a0 50 bit_decrement = 6;
mbed69833 4:558b29109618 51 for(; bit_idx < 18; bit_idx++){
mbed69833 4:558b29109618 52 if( read_buffer[packet_num][2 + bit_idx] == 1){
mbed68244 2:153ec87771a0 53 interval += pow(2.0,bit_decrement);
mbed68244 2:153ec87771a0 54 }
mbed68244 2:153ec87771a0 55 bit_decrement--;
mbed68244 2:153ec87771a0 56 }
mbed68244 2:153ec87771a0 57
mbed68244 2:153ec87771a0 58 // packet_data.sequence = sequence;
mbed68244 2:153ec87771a0 59 // packet_data.furnace = furnace;
mbed68244 2:153ec87771a0 60 // packet_data.interval = interval;
mbed68244 2:153ec87771a0 61
mbed68244 2:153ec87771a0 62 return packet_data;
mbed68244 2:153ec87771a0 63
mbed68244 2:153ec87771a0 64
mbed68244 2:153ec87771a0 65
mbed68244 2:153ec87771a0 66
mbed68244 2:153ec87771a0 67
mbed68244 2:153ec87771a0 68 }
mbed68244 2:153ec87771a0 69
mbed68244 2:153ec87771a0 70
mbed68244 2:153ec87771a0 71 std::queue<vector<int> > buffer;
mbed68244 2:153ec87771a0 72 vector<int> numbers;
mbed68244 2:153ec87771a0 73
mbed68244 2:153ec87771a0 74 std::queue<string> buffer2;
mbed68244 3:f24de3613c5c 75 std::queue<vector<char> > buffer3;
mbed68244 3:f24de3613c5c 76
mbed68244 3:f24de3613c5c 77 Queue<char*, 7> buffer4;
mbed68244 3:f24de3613c5c 78
mbed68244 2:153ec87771a0 79
mbed68244 0:253a9226eb5b 80 int main() {
mbed68244 3:f24de3613c5c 81 char* a;
mbed69833 4:558b29109618 82
mbed68244 1:a770d742e28a 83 myled4 = 1;
mbed68244 1:a770d742e28a 84
mbed69833 4:558b29109618 85 int idx = 0;
mbed68244 1:a770d742e28a 86 int num_packets = 0;
mbed68244 3:f24de3613c5c 87
mbed69833 4:558b29109618 88 FILE *fp = fopen("/local/packet.txt", "w");
mbed69833 5:af9b6ec6b9b5 89 for(num_packets=0; num_packets < PACKET_COUNT; num_packets++){
mbed69833 5:af9b6ec6b9b5 90
mbed69833 4:558b29109618 91 a = (char *) malloc(sizeof(char) * 21);
mbed69833 4:558b29109618 92
mbed69833 4:558b29109618 93 if(a==NULL){
mbed69833 4:558b29109618 94 myled3 = 1;
mbed69833 4:558b29109618 95 return 1;
mbed69833 4:558b29109618 96 }
mbed69833 4:558b29109618 97
mbed69833 4:558b29109618 98 if(fp==NULL){
mbed69833 4:558b29109618 99 myled3 = 1;
mbed69833 4:558b29109618 100 fclose(fp);
mbed69833 4:558b29109618 101 return 1;
mbed69833 4:558b29109618 102 }
mbed69833 5:af9b6ec6b9b5 103 for(idx=0; idx < 19; idx++){
mbed69833 4:558b29109618 104 a[idx] = char(pc.getc());
mbed69833 5:af9b6ec6b9b5 105 if(num_packets==1)myled3 = 1;
mbed69833 4:558b29109618 106 fprintf(fp,"%c",a[idx]);
mbed69833 4:558b29109618 107 if(idx == 1)
mbed69833 4:558b29109618 108 fprintf(fp,".");
mbed69833 4:558b29109618 109 if(idx == 5)
mbed69833 4:558b29109618 110 fprintf(fp,".");
mbed69833 4:558b29109618 111 if(idx == 9)
mbed69833 4:558b29109618 112 fprintf(fp,".");
mbed69833 4:558b29109618 113 if(idx == 16)
mbed69833 4:558b29109618 114 fprintf(fp,".");
mbed69833 4:558b29109618 115 if(idx == 18)
mbed69833 4:558b29109618 116 fprintf(fp,".");
mbed69833 4:558b29109618 117 }
mbed69833 5:af9b6ec6b9b5 118 a[19]=0;
mbed69833 4:558b29109618 119
mbed69833 4:558b29109618 120 idx = 0;
mbed69833 4:558b29109618 121 fprintf(fp,"\n");
mbed69833 5:af9b6ec6b9b5 122
mbed69833 4:558b29109618 123
mbed69833 4:558b29109618 124 buffer4.put((char**)&a[0]);
mbed69833 5:af9b6ec6b9b5 125
mbed69833 4:558b29109618 126 osEvent evt = buffer4.get();
mbed68244 3:f24de3613c5c 127 if (evt.status != osEventMessage) {
mbed68244 3:f24de3613c5c 128 printf("Furnace: queue->get() returned %02x status\n\r", evt.status);
mbed68244 3:f24de3613c5c 129 } else {
mbed68244 3:f24de3613c5c 130 fprintf(fp,"Queue: %s\n\r",evt.value.v);
mbed68244 3:f24de3613c5c 131 //printf("Furnace: %s", evt.value.v);
mbed68244 3:f24de3613c5c 132 }
mbed69833 4:558b29109618 133 free(a);
mbed69833 4:558b29109618 134 }
mbed68244 3:f24de3613c5c 135 //fclose(fp);
mbed69833 4:558b29109618 136 fclose(fp);
mbed69833 4:558b29109618 137 return 0;
mbed68244 0:253a9226eb5b 138
mbed68244 0:253a9226eb5b 139 }
mbed68244 2:153ec87771a0 140
mbed68244 2:153ec87771a0 141
mbed68244 2:153ec87771a0 142
mbed68244 2:153ec87771a0 143
mbed68244 2:153ec87771a0 144