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@5:af9b6ec6b9b5, 2014-06-01 (annotated)
- 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?
| User | Revision | Line number | New 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 |