CSE237B_Team / Mbed 2 deprecated read_serial

Dependencies:   mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "network.h"
00003 #include <fstream>
00004 #include <cmath>
00005 #include <queue>
00006 #include "rtos.h"
00007 
00008 
00009 
00010 #define PACKET_COUNT 4
00011 
00012  Serial pc(USBTX, USBRX); // tx, rx
00013  DigitalOut myled4(LED4);
00014  DigitalOut myled3(LED3);
00015  
00016  LocalFileSystem local("local");
00017 int read_buffer[100][20];
00018 
00019 
00020  
00021  
00022 //Converts the data from the buffer into values
00023 //and puts it in a struct which we can pass to another fn 
00024 control_p set_cp_values(int packet_num){
00025   
00026     control_p packet_data;
00027   
00028     int bit_idx = 0;
00029     int sequence = 0;
00030     int furnace = 0;
00031     int interval = 0;
00032     int bit_decrement = 0;
00033     
00034     bit_decrement = 3;
00035     for(; bit_idx < 4; bit_idx++){
00036         if( read_buffer[packet_num][2 + bit_idx] == 1){ //need to add 2 because starrt bits
00037              sequence += pow(2.0,bit_decrement); 
00038              }
00039         bit_decrement--;
00040     }
00041     
00042     bit_decrement = 3;
00043     for(; bit_idx < 8; bit_idx++){
00044         if( read_buffer[packet_num][2 + bit_idx] == 1){ 
00045              furnace += pow(2.0,bit_decrement); 
00046              }
00047         bit_decrement--;
00048     }
00049     
00050       bit_decrement = 6;
00051     for(; bit_idx < 18; bit_idx++){
00052         if( read_buffer[packet_num][2 + bit_idx] == 1){ 
00053              interval += pow(2.0,bit_decrement); 
00054              }
00055         bit_decrement--;
00056     }
00057     
00058   //  packet_data.sequence = sequence;
00059    // packet_data.furnace = furnace;
00060    // packet_data.interval = interval;
00061     
00062     return packet_data;
00063     
00064 
00065      
00066     
00067      
00068 }
00069  
00070  
00071 std::queue<vector<int> > buffer;
00072 vector<int> numbers;
00073 
00074 std::queue<string> buffer2;
00075 std::queue<vector<char> > buffer3;
00076 
00077 Queue<char*, 7> buffer4;
00078 
00079 
00080 int main() {
00081     char* a;
00082 
00083     myled4 = 1;
00084     
00085     int idx = 0; 
00086     int num_packets = 0;
00087    
00088     FILE *fp = fopen("/local/packet.txt", "w"); 
00089     for(num_packets=0; num_packets < PACKET_COUNT; num_packets++){
00090         
00091         a = (char *) malloc(sizeof(char) * 21);
00092         
00093         if(a==NULL){
00094             myled3 = 1; 
00095             return 1;
00096         }
00097           
00098         if(fp==NULL){
00099             myled3 = 1; 
00100             fclose(fp);
00101             return 1;  
00102         }
00103         for(idx=0; idx < 19; idx++){
00104             a[idx] = char(pc.getc());
00105             if(num_packets==1)myled3 = 1; 
00106             fprintf(fp,"%c",a[idx]);    
00107             if(idx == 1)
00108                 fprintf(fp,".");
00109             if(idx == 5)
00110                 fprintf(fp,".");
00111             if(idx == 9)
00112                 fprintf(fp,".");
00113             if(idx == 16)
00114                 fprintf(fp,".");
00115             if(idx == 18)
00116                 fprintf(fp,".");
00117         }
00118         a[19]=0;
00119         
00120         idx = 0;
00121         fprintf(fp,"\n");
00122 
00123         
00124         buffer4.put((char**)&a[0]);
00125         
00126         osEvent evt = buffer4.get();
00127         if (evt.status != osEventMessage) {
00128             printf("Furnace: queue->get() returned %02x status\n\r", evt.status);
00129         } else {
00130             fprintf(fp,"Queue: %s\n\r",evt.value.v);
00131             //printf("Furnace: %s", evt.value.v);
00132         }
00133         free(a);
00134     }
00135     //fclose(fp);
00136     fclose(fp);
00137     return 0;
00138     
00139 }
00140 
00141 
00142 
00143 
00144