Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
8 years, 2 months ago. This question has been closed. Reason: Off Topic
Xbee Wifi to Mbed (putc) doesn't work?!
Hi everyone, I am trying to receive a signal from my android to the xbee wifi and from the xbee to my mbed. Then, if the signal is 1 I want to write the data from my mass storage to the xbee and back to the android phone. However, I can receive data on my mbed, but I cannot send the data back to the phone. It seems that putc does not work at all. But I am able to see the data on the terminal of my computer! Can someone please help me to see why I am not able to transmit any data through the rx port of mbed? I am about to give up after several days of debugging!!! :(
Here is my code for data transmission:
include the mbed library with this snippet
#include "mbed.h" Serial xbee1(p13, p14); DigitalOut rst1(p11); if(xbee1.readable()) { //See if XBee is readable wait(1); myled2 = 1; RChar = xbee1.getc(); } if (RChar=='1') { //If phone sent a signal, read the csv file csv_parser csv; csv.reset_record_count(); csv_row row; csv.set_field_term_char(','); csv.init("/" FSNAME "/OPC.CSV"); //printf("\nCSV Initiated\n"); myled2 = 0; //Turn Led 2 Off double TimeStamp; myled3 = 1; /*while(csv.has_more_rows()&&i<16) { myled3 = 0; row = csv.get_row(); i++; }*/ while((csv.has_more_rows()== true) &&i<16) { myled3 = 0; row = csv.get_row(); i++; } if(xbee1.writeable()) { while(csv.has_more_rows()== true) { row = csv.get_row(); for (i=0; i<25; i++) { if (i<16 || i>21) { myled3 = 1; //row[i].c_str(); //printf("\n %s\n", row[i]); char *cstr = new char[row[i].length() + 1]; strcpy(cstr, row[i].c_str()); for(j = 0; j < row[i].size(); j++) { //xbee1.putc('1'); xbee1.putc(cstr[j]); //XBee write whatever the Alphasense OPC-N2 is sending //printf(" %c", cstr[j]); wait(0.01); } xbee1.putc(','); //printf(","); myled3 = 0; } else if (i==21) { myled2 = 1; /*char *cstr = new char[row[i].length() + 1]; strcpy(cstr, row[i].c_str()); TimeStamp = atof(cstr); S= S + TimeStamp + 62.000; time = ctime(&S); strftime(buffer, 32, "%I:%M %p\n", localtime(&seconds));*/ //wait(1); //for(j = 0; j < 33; j++) { char *cstr = new char[row[i].length() + 1]; strcpy(cstr, row[i].c_str()); for(j = 0; j < row[i].size(); j++) { xbee1.putc(cstr[j]); //XBee write whatever the Alphasense OPC-N2 is sending //printf(" %c", cstr[j]); wait(0.01); } //} xbee1.putc(','); //printf(","); myled2 = 0; } } //printf("\n"); //xbee1.putc('\n'); } } }