2017-09-12 31 views
0

私は私のpiのために私のUSBカードリーダー(それはUSBキーボードのように動作する)から文字列を検出し、それらをファイルに書き込むためのpythonプログラムを作った。私は、プログラムを実行するためにsshを使用すると、プログラムが動作しないことに気付きました。私の推測では、私のプログラムは生の入力をコンソールに入力しているので、sshを使って入力すると動作しません。誰かが私にこれを助けることができますか?ssh経由でUSB Magstripeリーダーを読む

import datetime 
import time 

card = raw_input() 
t = datetime.datetime.now() 
while True: 
    f = open("Laptop Sign Out" + '.txt', 'a') 
    f.write("Card Number: " + card[1:10] + " Time: " + t.strftime("%m-%d-%Y $ 
    f.write('\n') 
    f.write(';') 
    f.write('\n') 
    f.close() 
    time.sleep(5) 

答えて

0

あなたはユーザーコードに直接カーネルに生成されたイベントをリダイレクトすることができますevdevライブラリを、使用することができます。

以下は私のプログラムです。この例では

ルック:

>>> from evdev import InputDevice, categorize, ecodes 
>>> dev = InputDevice('/dev/input/event1') 

>>> print(dev) 
device /dev/input/event1, name "Dell Dell USB Keyboard", phys "usb-0000:00:12.1-2/input0" 

>>> for event in dev.read_loop(): 
...  if event.type == ecodes.EV_KEY: 
...   print(categorize(event)) 
... # pressing 'a' and holding 'space' 
key event at 1337016188.396030, 30 (KEY_A), down 
key event at 1337016188.492033, 30 (KEY_A), up 
key event at 1337016189.772129, 57 (KEY_SPACE), down 
key event at 1337016190.275396, 57 (KEY_SPACE), hold 
key event at 1337016190.284160, 57 (KEY_SPACE), up 

追加の読み取りは少し異なる方法がhere

を説明 here

です

関連する問題