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.
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
Generated on Thu Jul 28 2022 05:37:26 by
