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
00001 #include "mbed.h" 00002 #include "USBHostMSD.h" 00003 #include "USBHostMouse.h" 00004 #include "USBHostKeyboard.h" 00005 #include "FATFileSystem.h" 00006 #include <stdlib.h> 00007 00008 00009 DigitalOut led(LED1); 00010 int index=0; 00011 char Barcode[50]; 00012 void onMouseEvent(uint8_t buttons, int8_t x, int8_t y, int8_t z) { 00013 printf("buttons: %d, x: %d, y: %d, z: %d\r\n", buttons, x, y, z); 00014 } 00015 00016 void mouse_task(void const *) { 00017 00018 USBHostMouse mouse; 00019 printf("mouse started\n"); 00020 while(1) { 00021 00022 // try to connect a USB mouse 00023 while(!mouse.connect()) 00024 Thread::wait(500); 00025 00026 // when connected, attach handler called on mouse event 00027 mouse.attachEvent(onMouseEvent); 00028 00029 // wait until the mouse is disconnected 00030 while(mouse.connected()) 00031 Thread::wait(500); 00032 printf("mouse seen disconnected\n"); 00033 } 00034 } 00035 void onKey(uint8_t key) { 00036 00037 // printf("%c\r", key); 00038 00039 if(index>=51) 00040 { 00041 00042 00043 printf(" Limit Exceeded \r\n "); 00044 printf(" Please Re Enter \r\n "); 00045 index=0; 00046 memset(Barcode,'\0',50); 00047 return; 00048 } 00049 if((key!=0x0A)) 00050 { 00051 Barcode[index]=key; 00052 index++; 00053 //printf("%s \r\n",Barcode); 00054 } 00055 00056 else if((key==0x0A) &&(index<=50)) 00057 { 00058 Barcode[index]='\0'; 00059 printf("BARCODE : %s \r\n",Barcode); 00060 memset(Barcode,'\0',50); 00061 index=0; 00062 } 00063 00064 else if((key==0x0A) && (index>=51)) 00065 { 00066 00067 printf(" Too Many Charecters : %s \r\n",Barcode); 00068 printf(" Invalid Barcode\r\n"); 00069 00070 } 00071 00072 } 00073 00074 00075 void BarCodeReader_task(void const *) { 00076 00077 USBHostKeyboard BarCodeReader; 00078 00079 while(1) { 00080 // try to connect a USB keyboard 00081 while(!BarCodeReader.connect()) 00082 Thread::wait(500); 00083 // when connected, attach handler called on keyboard event 00084 BarCodeReader.attach(onKey); 00085 // wait until the keyboard is disconnected 00086 while(BarCodeReader.connected()) 00087 Thread::wait(500); 00088 } 00089 } 00090 00091 00092 00093 void msd_task(void const *) { 00094 00095 USBHostMSD msd; 00096 int i = 0; 00097 FATFileSystem fs("usb"); 00098 int err; 00099 printf("wait for usb memory stick insertion\n"); 00100 while(1) { 00101 00102 // try to connect a MSD device 00103 while(!msd.connect()) { 00104 Thread::wait(500); 00105 } 00106 if (fs.mount(&msd) != 0) continue; 00107 else 00108 printf("file system mounted\n"); 00109 00110 if (!msd.connect()) { 00111 continue; 00112 } 00113 00114 // in a loop, append a file 00115 // if the device is disconnected, we try to connect it again 00116 00117 // append a file 00118 File file; 00119 err = file.open(&fs, "test1.txt", O_WRONLY | O_CREAT |O_APPEND); 00120 00121 if (err == 0) { 00122 char tmp[100]; 00123 sprintf(tmp,"Hello fun USB stick World: %d!\r\n", i++); 00124 file.write(tmp,strlen(tmp)); 00125 sprintf(tmp,"Goodbye World!\r\n"); 00126 file.write(tmp,strlen(tmp)); 00127 file.close(); 00128 } else { 00129 printf("FILE == NULL\r\n"); 00130 } 00131 Thread::wait(500); 00132 printf("again\n"); 00133 // if device disconnected, try to connect again 00134 while (msd.connected()) { 00135 Thread::wait(500); 00136 } 00137 while (fs.unmount() < 0) { 00138 Thread::wait(500); 00139 printf("unmount\n"); 00140 } 00141 } 00142 } 00143 00144 int main() { 00145 00146 memset(Barcode,'\0',20); 00147 Thread msdTask(msd_task, NULL, osPriorityNormal, 4096); 00148 Thread mouseTask(mouse_task, NULL, osPriorityNormal, 4096); 00149 Thread BarCodeTask(BarCodeReader_task, NULL, osPriorityNormal, 4096); 00150 00151 while(1) { 00152 led=!led; 00153 Thread::wait(500); 00154 } 00155 }
Generated on Thu Jul 28 2022 13:51:36 by
1.7.2