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
- Committer:
- mbed69833
- Date:
- 2014-06-01
- Revision:
- 4:558b29109618
- Parent:
- 3:f24de3613c5c
- Child:
- 5:af9b6ec6b9b5
File content as of revision 4:558b29109618:
#include "mbed.h"
#include "network.h"
#include <fstream>
#include <cmath>
#include <queue>
#include "rtos.h"
#define PACKET_COUNT 4
Serial pc(USBTX, USBRX); // tx, rx
DigitalOut myled4(LED4);
DigitalOut myled3(LED3);
LocalFileSystem local("local");
int read_buffer[100][20];
//Converts the data from the buffer into values
//and puts it in a struct which we can pass to another fn
control_p set_cp_values(int packet_num){
control_p packet_data;
int bit_idx = 0;
int sequence = 0;
int furnace = 0;
int interval = 0;
int bit_decrement = 0;
bit_decrement = 3;
for(; bit_idx < 4; bit_idx++){
if( read_buffer[packet_num][2 + bit_idx] == 1){ //need to add 2 because starrt bits
sequence += pow(2.0,bit_decrement);
}
bit_decrement--;
}
bit_decrement = 3;
for(; bit_idx < 8; bit_idx++){
if( read_buffer[packet_num][2 + bit_idx] == 1){
furnace += pow(2.0,bit_decrement);
}
bit_decrement--;
}
bit_decrement = 6;
for(; bit_idx < 18; bit_idx++){
if( read_buffer[packet_num][2 + bit_idx] == 1){
interval += pow(2.0,bit_decrement);
}
bit_decrement--;
}
// packet_data.sequence = sequence;
// packet_data.furnace = furnace;
// packet_data.interval = interval;
return packet_data;
}
std::queue<vector<int> > buffer;
vector<int> numbers;
std::queue<string> buffer2;
std::queue<vector<char> > buffer3;
Queue<char*, 7> buffer4;
int main() {
char* a;
myled4 = 1;
int idx = 0;
int num_packets = 0;
FILE *fp = fopen("/local/packet.txt", "w");
for(; num_packets < PACKET_COUNT; num_packets++){
a = (char *) malloc(sizeof(char) * 21);
if(a==NULL){
myled3 = 1;
return 1;
}
if(fp==NULL){
myled3 = 1;
fclose(fp);
return 1;
}
for(idx=0; idx < 20; idx++){
a[idx] = char(pc.getc());
fprintf(fp,"%c",a[idx]);
if(idx == 1)
fprintf(fp,".");
if(idx == 5)
fprintf(fp,".");
if(idx == 9)
fprintf(fp,".");
if(idx == 16)
fprintf(fp,".");
if(idx == 18)
fprintf(fp,".");
if(idx == 19)
a[idx] = 0;
}
idx = 0;
fprintf(fp,"\n");
// buffer2.push(a);
buffer4.put((char**)&a[0]);
osEvent evt = buffer4.get();
if (evt.status != osEventMessage) {
printf("Furnace: queue->get() returned %02x status\n\r", evt.status);
} else {
fprintf(fp,"Queue: %s\n\r",evt.value.v);
//printf("Furnace: %s", evt.value.v);
}
free(a);
}
//fclose(fp);
fclose(fp);
return 0;
}