FTDI Simulator

Dependencies:   mbed

Fork of Wifly_configure by Samuel Mokrani

main.cpp

Committer:
defrost
Date:
2017-02-03
Revision:
3:cb83f5431e08
Parent:
2:8b5ff73de8f0

File content as of revision 3:cb83f5431e08:

#include "mbed.h"

#define MAXINCOMINGBUFF 4096

Serial pc(USBTX, USBRX);
Serial wifi(D8, D2);


int main() {
    int br = 9600;
    int bufflen = 0;
    char buff[256];
    char msg_buff[256];
    char incomingBuff[4096];
    int incomingbufflen = 0;
    int ii,jj;
    pc.printf("\n\n\rTest Wifly!\r\n");
    pc.printf("External Baud Rate: %d\n\n\r", br);
    wifi.baud(br);
    //wait(1);
    
    char c;
    while (1) 
    {
        while(pc.readable()){
            c = pc.getc();
            buff[bufflen] = c;
            bufflen++;
            
            pc.printf("%c", c);
            
            if(c == 13){
                // wait for a gap in transmission:
                wait_us((1.0f/((float) br))*20.0f*1000000.0f);
                while(wifi.readable()){
                    pc.putc(wifi.getc());
                    wait_us((1.0f/((float) br))*20.0f*1000000.0f);
                }
                // Send a whole string:    
                for(ii=0;ii<bufflen;ii++){
                    wifi.putc(buff[ii]);
                    if(buff[ii] == 13){
                        msg_buff[ii] = '\0';
                    }else{
                        msg_buff[ii] = buff[ii];
                    }
                }
                bufflen = 0;
                pc.printf("[FTDI : INFO] Sent: %s\n\r",msg_buff);
            }
            
            /*pc.printf("%c",c);
            if(c == '\r'){
                pc.printf("\n");
            }*/
        }
        while(wifi.readable()){
            /*if(bufflen == 0){
                if(incomingbufflen == 0){
                    pc.putc(wifi.getc());
                }else{
                    for(jj=0;jj<incomingbufflen;jj++){
                        pc.putc(incomingBuff[jj]);
                    }
                    incomingbufflen = 0;
                    pc.putc(wifi.getc());
                }
            }else{
                if(incomingbufflen < MAXINCOMINGBUFF){
                    incomingBuff[incomingbufflen] = wifi.getc();
                    incomingbufflen++;
                }
                // data is lost
                wifi.getc();
            }*/
            pc.putc(wifi.getc());
        }
    }
}