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

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

Issue 418773002: [usb_gadget p07] HTTP management server. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 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
« no previous file with comments | « tools/usb_gadget/default_gadget.py ('k') | tools/usb_gadget/usb_constants.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 # found in the LICENSE file.
4
5 """WSGI application to manage a USB gadget.
6 """
7
8 from tornado import httpserver
9 from tornado import web
10
11 import default_gadget
12
13 address = None
14 chip = None
15 claimed_by = None
16 default = default_gadget.DefaultGadget()
17 gadget = None
18
19
20 def SwitchGadget(new_gadget):
21 if chip.IsConfigured():
22 chip.Destroy()
23
24 global gadget
25 gadget = new_gadget
26 gadget.AddStringDescriptor(3, address)
27 chip.Create(gadget)
28
29
30 class ClaimHandler(web.RequestHandler):
31
32 def post(self):
33 global claimed_by
34
35 if claimed_by is None:
36 claimed_by = self.get_argument('session_id')
37 else:
38 self.write('Device is already claimed by "{}".'.format(claimed_by))
39 self.set_status(403)
40
41
42 class UnclaimHandler(web.RequestHandler):
43
44 def post(self):
45 global claimed_by
46 claimed_by = None
47 if gadget != default:
48 SwitchGadget(default)
49
50
51 class UnconfigureHandler(web.RequestHandler):
52
53 def post(self):
54 SwitchGadget(default)
55
56
57 class DisconnectHandler(web.RequestHandler):
58
59 def post(self):
60 if chip.IsConfigured():
61 chip.Destroy()
62
63
64 class ReconnectHandler(web.RequestHandler):
65
66 def post(self):
67 if not chip.IsConfigured():
68 chip.Create(gadget)
69
70
71 app = web.Application([
72 (r'/claim', ClaimHandler),
73 (r'/unclaim', UnclaimHandler),
74 (r'/unconfigure', UnconfigureHandler),
75 (r'/disconnect', DisconnectHandler),
76 (r'/reconnect', ReconnectHandler),
77 ])
78
79 http_server = httpserver.HTTPServer(app)
OLDNEW
« no previous file with comments | « tools/usb_gadget/default_gadget.py ('k') | tools/usb_gadget/usb_constants.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698