扫码枪的条形码与appinventor结合


http://www.shumeipai.net/resource.php?mod=view&rid=1753

扫码枪Python代码

import threading
import asyncio, evdev,time

from bottle import run,post,request,route

# 按键转字符表 只列出了常用的字符

keymap = {
    'KEY_0': u'0',
    'KEY_1': u'1',
    'KEY_2': u'2',
    'KEY_3': u'3',
    'KEY_4': u'4',
    'KEY_5': u'5',
    'KEY_6': u'6',
    'KEY_7': u'7',
    'KEY_8': u'8',
    'KEY_9': u'9',
    'KEY_A': u'A',
    'KEY_B': u'B',
    'KEY_C': u'C',
    'KEY_D': u'D',
    'KEY_E': u'E',
    'KEY_F': u'F',
    'KEY_G': u'G',
    'KEY_H': u'H',
    'KEY_I': u'I',
    'KEY_J': u'J',
    'KEY_K': u'K',
    'KEY_L': u'L',
    'KEY_M': u'M',
    'KEY_N': u'N',
    'KEY_O': u'O',
    'KEY_P': u'P',
    'KEY_Q': u'Q',
    'KEY_R': u'R',
    'KEY_S': u'S',
    'KEY_T': u'T',
    'KEY_U': u'U',
    'KEY_V': u'V',
    'KEY_W': u'W',
    'KEY_X': u'X',
    'KEY_Y': u'Y',
    'KEY_Z': u'Z',
    'KEY_TAB': u'\t',
    'KEY_SPACE': u' ',
    'KEY_COMMA': u',',
    'KEY_SEMICOLON': u';',
    'KEY_EQUAL': u'=',
    'KEY_LEFTBRACE': u'[',
    'KEY_RIGHTBRACE': u']',    
    'KEY_MINUS': u'-',
    'KEY_APOSTROPHE': u'\'',
    'KEY_GRAVE': u'`',
    'KEY_DOT': u'.',
    'KEY_SLASH': u'/',
    'KEY_BACKSLASH': u'\\',
    'KEY_ENTER': u'\n',
    'KEY_CAPSLOCK':u''
}
buf = "" 
# 检测到输入时触发
async def print_events(device):
    #print ("sadad")
    global buf
    async for event in device.async_read_loop():
        # key_up= 0 key_down= 1 key_hold= 2
        if event.type == evdev.ecodes.EV_KEY and event.value == 1:
            kv = evdev.events.KeyEvent(event)
            # 本次修改的地方, 把事件映射到字符表
            #print(kv.keycode,kv.scancode)

            if (kv.scancode == evdev.ecodes.KEY_ENTER):
              time.sleep(0.1)
              print('读到输入: ', buf)
            else:
                buf += keymap.get(kv.keycode)
@route('/')
def bar():
   global buf
   a = buf
   buf = ""
   return a 

class myThread (threading.Thread):
    def run(self):
        run(host='192.168.0.134',port='9000',debug=True,reloader=True)
thread1 = myThread()
thread1.start()
devices = [evdev.InputDevice(path) for path in evdev.list_devices()]
print('发现以下设备: ')
for device in devices:
    print(device.path, device.name, device.phys)
 
for device in devices:
    asyncio.ensure_future(print_events(device))
 
loop = asyncio.get_event_loop()
loop.run_forever()

appinventor网站

链接: appinventor
老巫婆的连接
文字转语音

出现的错误

1 module not founderror:no module named bottle
重新装一下bottle库
pip3 insall bottle
2 运行小强的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值