-
Notifications
You must be signed in to change notification settings - Fork 0
/
deviceworker.py
72 lines (59 loc) · 2.01 KB
/
deviceworker.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/python
#encoding=utf-8
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
import time
import threading
import logging
import log
from superdevice import SuperDevice
logger = logging.getLogger('traversal')
TIMEOUT_NUM = 5
# device manager
class DeviceWorker(threading.Thread):
def __init__(self, threadname, device_worker_queue, superdevices, timeout_num = TIMEOUT_NUM):
threading.Thread.__init__(self, name = threadname)
self.device_worker_queue = device_worker_queue
self.superdevices = superdevices
self.timeout_num = timeout_num
def connection(self, serial_num):
if self.superdevices.get(serial_num):
superdevice = self.superdevices.get(serial_num)
if superdevice.isConnect():
logger.info("DeviceWorker: %s is connectd" % (serial_num))
return
else:
superdevice = self.superdevices.pop(serial_num)
del superdevice
try:
device = MonkeyRunner.waitForConnection(self.timeout_num, serial_num)
superdevice = SuperDevice(serial_num, device, self.device_worker_queue)
if not superdevice.isConnect():
logger.info("DeviceWorker: %s is not connectd" % (serial_num))
superdevice.connect()
else:
time.sleep(3)
self.superdevices[serial_num] = superdevice
logger.info("DeviceWorker: %s create connection succeed" % (serial_num))
except Exception, e:
self.device_worker_queue.put(serial_num)
logger.error("DeviceWorker: %s create connection fail %s" % (serial_num, e))
def run(self):
while True:
serial_num = self.device_worker_queue.get()
logger.info("DeviceWorker: %s create connection start" % serial_num)
self.connection(serial_num)
time.sleep(2)
def main():
from Queue import Queue
import log
import logging
logger = logging.getLogger('traversal')
devices = {}
device_worker_queue = Queue()
device_worker_queue.put("343267035F1C00EC")
device_worker_queue.put("02466b93")
device_worker = DeviceWorker("device_worker", device_worker_queue, devices)
device_worker.start()
device_worker.join()
if __name__ == '__main__':
main()