我有一个问题,我想读取“条形码”读取的输入并将其保存到文本文件中。
Raspberry pi B +最新版本的wheezy。
“条形码”扫描仪“数据逻辑q w 2100”。
答案 0 :(得分:1)
我只用了几步就解决了问题:
1)确保您的仓库已更新。
2)您的条形码扫描仪被选为USB键盘,如图所示:" 1.PNG" [DATALOGIC QW2100键盘选择] [1] [1]:http://i.stack.imgur.com/bxkG2.png
3)在Ubuntu条码扫描器中捕获数据并在任何窗口中查看它都可以捕获输入"终端或文本文件"或任何其他事情。 4)在树莓派问题上,条码扫描器捕获或读取的值被制成" / dev / hidraw0"例如.."当您的条形码连接到您的树干时,该文件会自动创建。这里有一些简单的韵母代码,只有在条形码连接到RASPI时才能从该文件中捕获数据:
import sys
done = False
while not done:
hid = { 4: 'a', 5: 'b', 6: 'c', 7: 'd', 8: 'e', 9: 'f', 10: 'g', 11: 'h', 12: 'i', 13: 'j', 14: 'k', 15: 'l', 16: 'm', 17: 'n', 18: 'o', 19: 'p', 20: 'q', 21: 'r', 22: 's', 23: 't', 24: 'u', 25: 'v', 26: 'w', 27: 'x', 28: 'y', 29: 'z', 30: '1', 31: '2', 32: '3', 33: '4', 34: '5', 35: '6', 36: '7', 37: '8', 38: '9', 39: '0', 44: ' ', 45: '-', 46: '=', 47: '[', 48: ']', 49: '\\', 51: ';' , 52: '\'', 53: '~', 54: ',', 55: '.', 56: '/' }
hid2 = { 4: 'A', 5: 'B', 6: 'C', 7: 'D', 8: 'E', 9: 'F', 10: 'G', 11: 'H', 12: 'I', 13: 'J', 14: 'K', 15: 'L', 16: 'M', 17: 'N', 18: 'O', 19: 'P', 20: 'Q', 21: 'R', 22: 'S', 23: 'T', 24: 'U', 25: 'V', 26: 'W', 27: 'X', 28: 'Y', 29: 'Z', 30: '!', 31: '@', 32: '#', 33: '$', 34: '%', 35: '^', 36: '&', 37: '*', 38: '(', 39: ')', 44: ' ', 45: '_', 46: '+', 47: '{', 48: '}', 49: '|', 51: ':' , 52: '"', 53: '~', 54: '<', 55: '>', 56: '?' }
fp = open('/dev/hidraw0', 'rb')
ss = ""
shift = False
done = False
while not done:
## Get the character from the HID
buffer = fp.read(8)
for c in buffer:
if ord(c) > 0:
## 40 is carriage return which signifies
## we are done looking for characters
if int(ord(c)) == 40:
done = True
break;
## If we are shifted then we have to
## use the hid2 characters.
if shift:
## If it is a '2' then it is the shift key
if int(ord(c)) == 2 :
shift = True
## if not a 2 then lookup the mapping
else:
ss += hid2[ int(ord(c)) ]
shift = False
## If we are not shifted then use
## the hid characters
else:
## If it is a '2' then it is the shift key
if int(ord(c)) == 2 :
shift = True
## if not a 2 then lookup the mapping
else:
ss += hid[ int(ord(c)) ]
print ss
##DONE
我首先添加循环以使脚本连续工作直到用#34; CTRL + C&#34;
另一件事:图像适用于DATALOGIC条形码扫描仪QW2100 LITE,因此请仔细检查您的条形码手册。
答案 1 :(得分:0)
如果LED亮起,我建议您使用条形码扫描仪插入覆盆子,打开终端并输入:
sudo apt-get update
sudo apt-get upgrade
之后,重新启动并打开txt文件,尝试扫描条形码;注意扫描仪识别条形码。
我买了条形码扫描仪,我也有同样的问题。通过这种方式我解决了。