This program is just a simple serial port program for communication with mbedWrapper
Dependencies: AndroidAccessory mbed
demokit.cpp
00001 /* 00002 * ADKTerm 00003 * 00004 * Written by p07gbar 00005 * 00006 * This program is just a simple serial port program for comunication with mbedWrapper 00007 */ 00008 #include "mbed.h" 00009 #include "AndroidAccessory.h" 00010 00011 00012 #define OUTL 100 00013 #define INBL 100 00014 00015 00016 00017 00018 00019 class AdkTerm :public AndroidAccessory { 00020 public: 00021 AdkTerm():AndroidAccessory(INBL,OUTL, 00022 "ARM", 00023 "mbed", 00024 "mbed Terminal", 00025 "0.1", 00026 "http://www.mbed.org", 00027 "0000000012345678"),pc(USBTX,USBRX) {}; 00028 virtual int callbackRead(u8 *buff, int len); 00029 virtual void setupDevice(); 00030 virtual void resetDevice(); 00031 virtual int callbackWrite(); 00032 00033 private: 00034 void serialIRQ(); 00035 char buffer[OUTL]; 00036 int bcount; 00037 Serial pc; 00038 }; 00039 00040 00041 00042 void AdkTerm::setupDevice() { 00043 pc.printf("Welcome to adkTerm\n\n\n\n\n\n\r"); 00044 pc.attach(this, &AdkTerm::serialIRQ, Serial::RxIrq); 00045 for (int i = 0; i<OUTL; i++) { 00046 buffer[i] = 0; 00047 } 00048 bcount = 0; 00049 00050 } 00051 00052 00053 void AdkTerm::resetDevice() { 00054 pc.printf("adkTerm reset\n\r"); 00055 for (int i = 0; i<OUTL; i++) { 00056 buffer[i] = 0; 00057 } 00058 bcount = 0; 00059 } 00060 00061 int AdkTerm::callbackRead(u8 *buf, int len) { 00062 pc.printf("%i %s\n\r\n\n\n",len,buf); 00063 for (int i = 0; i<INBL;i++) { 00064 buf[i] = 0; 00065 } 00066 return 0; 00067 } 00068 00069 int AdkTerm::callbackWrite() { 00070 pc.printf("DoneWrite\n\r"); 00071 00072 return 0; 00073 } 00074 00075 00076 void AdkTerm::serialIRQ() { 00077 buffer[bcount] = pc.getc(); 00078 pc.putc(buffer[bcount]); 00079 00080 if (buffer[bcount] == '\n' || buffer[bcount] == '\r') { 00081 u8* wbuf = _writebuff; 00082 for (int i = 0; i<OUTL; i++) { 00083 wbuf[i] = buffer[i]; 00084 buffer[i] = 0; 00085 } 00086 pc.printf("Sending: %s\n\r",wbuf); 00087 00088 this->write(wbuf,bcount); 00089 bcount = 0; 00090 } else { 00091 if (buffer[bcount] != 0x08 && buffer[bcount] != 0x7F ) { 00092 bcount++; 00093 if (bcount == OUTL) { 00094 bcount = 0; 00095 } 00096 } else { 00097 bcount--; 00098 00099 } 00100 } 00101 } 00102 00103 00104 00105 AdkTerm AdkTerm; 00106 00107 00108 00109 int main() { 00110 printf("Android Development Kit: start\r\n"); 00111 00112 AdkTerm.setupDevice(); 00113 USBInit(); 00114 while (1) { 00115 USBLoop(); 00116 } 00117 00118 }
Generated on Tue Jul 12 2022 21:59:18 by 1.7.2