Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Side by Side Diff: tools/usb_gadget/server.py

Issue 414833004: [usb_gadget p08] Package the USB gadget framework for easy distribution. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« tools/usb_gadget.gyp ('K') | « tools/usb_gadget/package.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """WSGI application to manage a USB gadget. 5 """WSGI application to manage a USB gadget.
6 """ 6 """
7 7
8 import re
9 import sys
10
8 from tornado import httpserver 11 from tornado import httpserver
9 from tornado import web 12 from tornado import web
10 13
11 import default_gadget 14 import default_gadget
12 15
16 VERSION_PATTERN = re.compile(r'.*usb_gadget-([a-z0-9]{32})\.zip')
17
13 address = None 18 address = None
14 chip = None 19 chip = None
15 claimed_by = None 20 claimed_by = None
16 default = default_gadget.DefaultGadget() 21 default = default_gadget.DefaultGadget()
17 gadget = None 22 gadget = None
18 23
19 24
20 def SwitchGadget(new_gadget): 25 def SwitchGadget(new_gadget):
21 if chip.IsConfigured(): 26 if chip.IsConfigured():
22 chip.Destroy() 27 chip.Destroy()
23 28
24 global gadget 29 global gadget
25 gadget = new_gadget 30 gadget = new_gadget
26 gadget.AddStringDescriptor(3, address) 31 gadget.AddStringDescriptor(3, address)
27 chip.Create(gadget) 32 chip.Create(gadget)
28 33
29 34
35 class VersionHandler(web.RequestHandler):
36
37 def get(self):
38 version = 'unpackaged'
39 for path in sys.path:
40 match = VERSION_PATTERN.match(path)
41 if match:
42 version = match.group(1)
43 break
44
45 self.write(version)
46
47
30 class ClaimHandler(web.RequestHandler): 48 class ClaimHandler(web.RequestHandler):
31 49
32 def post(self): 50 def post(self):
33 global claimed_by 51 global claimed_by
34 52
35 if claimed_by is None: 53 if claimed_by is None:
36 claimed_by = self.get_argument('session_id') 54 claimed_by = self.get_argument('session_id')
37 else: 55 else:
38 self.write('Device is already claimed by "{}".'.format(claimed_by)) 56 self.write('Device is already claimed by "{}".'.format(claimed_by))
39 self.set_status(403) 57 self.set_status(403)
(...skipping 22 matching lines...) Expand all
62 80
63 81
64 class ReconnectHandler(web.RequestHandler): 82 class ReconnectHandler(web.RequestHandler):
65 83
66 def post(self): 84 def post(self):
67 if not chip.IsConfigured(): 85 if not chip.IsConfigured():
68 chip.Create(gadget) 86 chip.Create(gadget)
69 87
70 88
71 app = web.Application([ 89 app = web.Application([
90 (r'/version', VersionHandler),
72 (r'/claim', ClaimHandler), 91 (r'/claim', ClaimHandler),
73 (r'/unclaim', UnclaimHandler), 92 (r'/unclaim', UnclaimHandler),
74 (r'/unconfigure', UnconfigureHandler), 93 (r'/unconfigure', UnconfigureHandler),
75 (r'/disconnect', DisconnectHandler), 94 (r'/disconnect', DisconnectHandler),
76 (r'/reconnect', ReconnectHandler), 95 (r'/reconnect', ReconnectHandler),
77 ]) 96 ])
78 97
79 http_server = httpserver.HTTPServer(app) 98 http_server = httpserver.HTTPServer(app)
OLDNEW
« tools/usb_gadget.gyp ('K') | « tools/usb_gadget/package.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698