Connect USB HID Barcode Scanner and Scan any product. Add a case for storing your products in the database

Dependencies:   USBHost mbed

Fork of USBHostKeyboard_HelloWorld by Samuel Mokrani

Committer:
Parkz
Date:
Sun Mar 15 11:37:05 2015 +0000
Revision:
7:4e0c80b26ba6
Parent:
1:2063e3713a99
Scan a product from barcode scanner and display total bill amount & no. of items scanned. Just 4 products stored for reference

Who changed what in which revision?

UserRevisionLine numberNew contents of line
samux 0:88d52e197201 1 #include "mbed.h"
samux 0:88d52e197201 2 #include "USBHostKeyboard.h"
Parkz 7:4e0c80b26ba6 3 int price=0,items=0,temp=0;
Parkz 7:4e0c80b26ba6 4 unsigned long long int code=0;
samux 0:88d52e197201 5 DigitalOut led(LED1);
Parkz 7:4e0c80b26ba6 6 void update_price(int p);
samux 0:88d52e197201 7 void onKey(uint8_t key) {
Parkz 7:4e0c80b26ba6 8 printf("%c", key);
Parkz 7:4e0c80b26ba6 9 if(key!=0x0A)
Parkz 7:4e0c80b26ba6 10 {
Parkz 7:4e0c80b26ba6 11 temp=key;
Parkz 7:4e0c80b26ba6 12 temp-=48;
Parkz 7:4e0c80b26ba6 13 code=temp+code*10;
Parkz 7:4e0c80b26ba6 14 }
Parkz 7:4e0c80b26ba6 15 else
Parkz 7:4e0c80b26ba6 16 {
Parkz 7:4e0c80b26ba6 17 switch(code)
Parkz 7:4e0c80b26ba6 18 {
Parkz 7:4e0c80b26ba6 19 case 42204268: update_price(200);
Parkz 7:4e0c80b26ba6 20 break;
Parkz 7:4e0c80b26ba6 21 case 8906002080021: update_price(25);
Parkz 7:4e0c80b26ba6 22 break;
Parkz 7:4e0c80b26ba6 23 case 8904043901015: update_price(17);
Parkz 7:4e0c80b26ba6 24 break;
Parkz 7:4e0c80b26ba6 25 case 8904004403756:update_price(36);
Parkz 7:4e0c80b26ba6 26 break;
samux 0:88d52e197201 27 }
Parkz 7:4e0c80b26ba6 28 code=0;
Parkz 7:4e0c80b26ba6 29 }
Parkz 7:4e0c80b26ba6 30 }
Parkz 7:4e0c80b26ba6 31 void update_price(int p)
Parkz 7:4e0c80b26ba6 32 {
Parkz 7:4e0c80b26ba6 33 items++;
Parkz 7:4e0c80b26ba6 34 price+=p;
Parkz 7:4e0c80b26ba6 35 printf("No. of items=%d\tPrice=Rs.%d\n",items,price);
Parkz 7:4e0c80b26ba6 36 }
samux 0:88d52e197201 37 void keyboard_task(void const *) {
samux 0:88d52e197201 38
samux 0:88d52e197201 39 USBHostKeyboard keyboard;
samux 0:88d52e197201 40
samux 0:88d52e197201 41 while(1) {
samux 0:88d52e197201 42 // try to connect a USB keyboard
samux 0:88d52e197201 43 while(!keyboard.connect())
samux 0:88d52e197201 44 Thread::wait(500);
samux 0:88d52e197201 45
samux 0:88d52e197201 46 // when connected, attach handler called on keyboard event
samux 0:88d52e197201 47 keyboard.attach(onKey);
samux 0:88d52e197201 48
samux 0:88d52e197201 49 // wait until the keyboard is disconnected
samux 0:88d52e197201 50 while(keyboard.connected())
samux 0:88d52e197201 51 Thread::wait(500);
samux 0:88d52e197201 52 }
samux 0:88d52e197201 53 }
samux 0:88d52e197201 54
samux 0:88d52e197201 55 int main() {
samux 0:88d52e197201 56 Thread keyboardTask(keyboard_task, NULL, osPriorityNormal, 256 * 4);
samux 0:88d52e197201 57 while(1) {
samux 0:88d52e197201 58 led=!led;
samux 0:88d52e197201 59 Thread::wait(500);
samux 0:88d52e197201 60 }
samux 0:88d52e197201 61 }