I have a very basic parrot script written in Python that simply prompts for a user input and prints it back inside an infinite loop. The Raspberry Pi has a USB barcode scanner attached for the input.
while True:barcode = raw_input("Scan barcode: ")print "Barcode scanned: " + barcode
When you scan at a "normal" speed it works reliably and the command output looks like this:
Scan barcode: 9780465031467
Barcode scanned: 9780465031467
Scan barcode: 9780007505142
Barcode scanned: 9780007505142
But when you really hammer it with many scans in close succession it is possible to make it miss inputs and the command output looks like this:
Scan barcode: 9780141049113
Barcode scanned: 9780141049113
Scan barcode: 9780465031467
Barcode scanned: 9780465031467
Scan barcode: 9780007505142
9780571273188
Barcode scanned: 9780571273188
Notice how 9780007505142
was input but never printed back. It got lost in the confusion.
See a video demonstration of my test at: https://youtu.be/kdsfdKFhC1M
My question: Is this an inevitability of using a low powered device like a Pi? Will it always be true that a user with a barcode scanner will be able to out-run the hardware's ability to keep up?