Interface layer for the mbed boards ready for the JAVA library
Dependencies: C12832 LM75B MMA7660 mbed FXOS8700Q
Fork of frdm_serial by
comms.cpp
00001 #include "comms.h" 00002 00003 DataSerial::DataSerial(PinName tx, PinName rx) : Serial(tx,rx,NULL) {} 00004 00005 DataSerial::~DataSerial() {} 00006 00007 void DataSerial::sendFloat(float &f) { 00008 sendData(&f,sizeof(float)); 00009 } 00010 00011 void DataSerial::sendInt16(uint16_t &i) { 00012 sendData(&i,sizeof(uint16_t)); 00013 } 00014 00015 void DataSerial::sendChar(char c) { 00016 putc(1); putc(c); 00017 } 00018 00019 void DataSerial::sendBool(bool b) { 00020 putc(1); putc(b ? 't' : 'f'); 00021 } 00022 00023 float DataSerial::readFloat() { 00024 float f; 00025 readData(&f,sizeof(float)); 00026 return f; 00027 } 00028 00029 uint16_t DataSerial::readInt16() { 00030 uint16_t i; 00031 readData(&i,sizeof(uint16_t)); 00032 return i; 00033 } 00034 00035 char DataSerial::readChar() { 00036 if(getc()!=1) readFailureMode(); 00037 return getc(); 00038 } 00039 00040 void DataSerial::sendData(void* data, uint8_t len) { 00041 putc(len); 00042 for(char* c = (char*)data;len--;) 00043 putc(*(c++)); 00044 } 00045 00046 uint8_t DataSerial::readString(char * s) { 00047 char l = getc(); 00048 uint8_t len = (uint8_t)l; 00049 while(l>0) { 00050 *s = getc(); 00051 s++; 00052 l--; 00053 } 00054 return len; 00055 } 00056 00057 void DataSerial::readData(void* data, uint8_t len) { 00058 char readLen = getc(); 00059 if(readLen!=len) readFailureMode(); 00060 char* c = (char*)data; 00061 while(len>0) { 00062 *c = getc(); 00063 c++; 00064 len--; 00065 } 00066 } 00067 00068 void DataSerial::sendSpecialCommand(char char1, char char2) { 00069 putc(0); putc(char1); putc(char2); 00070 } 00071 00072 void DataSerial::readFailureMode() { 00073 DigitalOut lr(PTB22), lg(PTE26), lb(PTB21); 00074 lr=lg=1; lb=0; 00075 for(;;) { 00076 wait_ms(1000); 00077 lb=!lb; 00078 } 00079 00080 }
Generated on Sun Jul 17 2022 01:45:37 by 1.7.2