OLD | NEW |
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 """Package entry-point.""" | 5 """Package entry-point.""" |
6 | 6 |
7 import argparse | 7 import argparse |
8 | 8 |
9 import netifaces | 9 import netifaces |
10 from tornado import ioloop | 10 from tornado import ioloop |
11 | 11 |
12 import linux_gadgetfs | 12 import linux_gadgetfs |
13 import server | 13 import server |
14 | 14 |
15 | 15 |
16 def ParseArgs(): | 16 def ParseArgs(): |
17 """Parse application arguments.""" | 17 """Parse application arguments.""" |
18 parser = argparse.ArgumentParser(description='USB gadget server.') | 18 parser = argparse.ArgumentParser(description='USB gadget server.') |
19 parser.add_argument( | 19 parser.add_argument( |
20 '-i', '--interface', default='lo', | 20 '-i', '--interface', default='lo', |
21 help='Listen for HTTP connections on this interface.') | 21 help='Listen for HTTP connections on this interface.') |
22 parser.add_argument( | 22 parser.add_argument( |
23 '-p', '--port', default=8080, | 23 '-p', '--port', default=8080, |
24 help='Listen for HTTP connections on this port.') | 24 help='Listen for HTTP connections on this port.') |
25 parser.add_argument( | 25 parser.add_argument( |
26 '--hardware', default='beaglebone-black', | 26 '--hardware', default='beaglebone-black', |
27 help='Hardware configuration.') | 27 help='Hardware configuration.') |
| 28 parser.add_argument( |
| 29 '--start-claimed', |
| 30 help='Start with the device claimed by this client.') |
28 return parser.parse_args() | 31 return parser.parse_args() |
29 | 32 |
30 | 33 |
31 def main(): | 34 def main(): |
32 args = ParseArgs() | 35 args = ParseArgs() |
33 | 36 |
34 server.interface = args.interface | 37 server.interface = args.interface |
35 server.port = args.port | 38 server.port = args.port |
36 server.hardware = args.hardware | 39 server.hardware = args.hardware |
| 40 server.claimed_by = args.start_claimed |
37 | 41 |
38 addrs = netifaces.ifaddresses(server.interface) | 42 addrs = netifaces.ifaddresses(server.interface) |
39 ip_address = addrs[netifaces.AF_INET][0]['addr'] | 43 ip_address = addrs[netifaces.AF_INET][0]['addr'] |
40 server.address = '{}:{}'.format(ip_address, server.port) | 44 server.address = '{}:{}'.format(ip_address, server.port) |
41 | 45 |
42 server.chip = linux_gadgetfs.LinuxGadgetfs(server.hardware) | 46 server.chip = linux_gadgetfs.LinuxGadgetfs(server.hardware) |
43 server.SwitchGadget(server.default) | 47 server.SwitchGadget(server.default) |
44 | 48 |
45 server.http_server.listen(server.port) | 49 server.http_server.listen(server.port) |
46 | 50 |
47 ioloop.IOLoop.instance().start() | 51 ioloop.IOLoop.instance().start() |
48 print 'Exiting...' | 52 print 'Exiting...' |
49 | 53 |
50 | 54 |
51 if __name__ == '__main__': | 55 if __name__ == '__main__': |
52 main() | 56 main() |
OLD | NEW |