phone.py: too many usb function calls

This commit is contained in:
Christina Quast 2015-03-15 16:09:55 +01:00
parent 381d0fcde9
commit 69734e9ad9
1 changed files with 43 additions and 16 deletions

View File

@ -6,6 +6,7 @@ import sys
# SuperSIM ATR
atr= [0x3B, 0x9A, 0x94, 0x00, 0x92, 0x02, 0x75, 0x93, 0x11, 0x00, 0x01, 0x02, 0x02, 0x19]
RESP_OK = [0x60, 0x00]
def find_dev():
dev = usb.core.find(idVendor=0x03eb, idProduct=0x6004)
@ -45,28 +46,54 @@ def find_eps(dev):
print(ep_out)
return (ep_in, ep_out)
def emulate_sim():
dev = find_dev()
# (epi, epo) = find_eps(dev)
def handle_phone_request():
# ATR handling
try:
arr = dev.read(0x83, 64, 100) # Notification endpoint
print("arr: ", arr)
c=arr.pop()
print(c)
while True:
#ep_out.write("Hello")
try:
# ATR handling
arr = dev.read(0x83, 64, 1000) # Notification endpoint
print("arr: ", arr)
c=arr.pop()
print(c)
if c == ord('R'):
if c == ord('R'):
try:
written = dev.write(0x1, atr, 1000) # Probably we received a Reset, so we send ATR
print("Written data: " + written)
except:
print("Timeout sending ATR!")
return
except:
#print("Timeout receiving atr!")
pass
# Read phone request
try:
cmd = dev.read(0x82, 64, 10000000)
print("Received request!: ")
print("".join("%02x " % b for b in ans))
print("Write response");
try:
written = dev.write(0x01, RESP_OK, 10000000);
print("Bytes written:")
print(written)
except:
print("Timeout in send response")
except:
#print("Timeout in receive cmd")
pass
def emulate_sim():
dev = find_dev()
while True:
try:
handle_phone_request()
ans = dev.read(0x82, 64, 1000)
print("".join("%02x " % b for b in ans))
except KeyboardInterrupt:
print("Bye")
sys.exit()
except:
print("Timeout")
# print(ep_in.read(1, 5000));