34 -p - port number default:3000 |
34 -p - port number default:3000 |
35 -h - print this help text and quit |
35 -h - print this help text and quit |
36 -a - autostart PLC (0:disable 1:enable) (default:0) |
36 -a - autostart PLC (0:disable 1:enable) (default:0) |
37 -x - enable/disable wxTaskbarIcon (0:disable 1:enable) (default:1) |
37 -x - enable/disable wxTaskbarIcon (0:disable 1:enable) (default:1) |
38 -t - enable/disable Twisted web interface (0:disable 1:enable) (default:1) |
38 -t - enable/disable Twisted web interface (0:disable 1:enable) (default:1) |
|
39 -w - web server port or "off" (default:8009) |
|
40 -c - WAMP client config file or "off" (default:wampconf.json) |
39 -e - python extension (absolute path .py) |
41 -e - python extension (absolute path .py) |
40 |
42 |
41 working_dir - directory where are stored PLC files |
43 working_dir - directory where are stored PLC files |
42 """%sys.argv[0] |
44 """%sys.argv[0] |
43 |
45 |
44 try: |
46 try: |
45 opts, argv = getopt.getopt(sys.argv[1:], "i:p:n:x:t:a:e:h") |
47 opts, argv = getopt.getopt(sys.argv[1:], "i:p:n:x:t:a:w:c:e:h") |
46 except getopt.GetoptError, err: |
48 except getopt.GetoptError, err: |
47 # print help information and exit: |
49 # print help information and exit: |
48 print str(err) # will print something like "option -a not recognized" |
50 print str(err) # will print something like "option -a not recognized" |
49 usage() |
51 usage() |
50 sys.exit(2) |
52 sys.exit(2) |
51 |
53 |
52 # default values |
54 # default values |
53 given_ip = None |
55 given_ip = None |
54 port = 3000 |
56 port = 3000 |
|
57 webport = 8009 |
|
58 wampconf = "wampconf.json" |
55 servicename = None |
59 servicename = None |
56 autostart = False |
60 autostart = False |
57 enablewx = True |
61 enablewx = True |
58 havewx = False |
62 havewx = False |
59 enabletwisted = True |
63 enabletwisted = True |
431 if havetwisted: |
439 if havetwisted: |
432 |
440 |
433 if havewx: |
441 if havewx: |
434 reactor.registerWxApp(app) |
442 reactor.registerWxApp(app) |
435 |
443 |
436 # TODO add command line switch |
444 if webport is not None : |
437 try: |
445 try: |
438 import runtime.NevowServer as NS |
446 import runtime.NevowServer as NS |
439 website = NS.RegisterWebsite(reactor) |
447 website = NS.RegisterWebsite(webport) |
440 pyruntimevars["website"] = website |
448 pyruntimevars["website"] = website |
441 statuschange.append(NS.website_statuslistener_factory(website)) |
449 statuschange.append(NS.website_statuslistener_factory(website)) |
442 except: |
450 except Exception, e: |
443 print "Nevow Web service failed." |
451 print "Nevow Web service failed.", e |
444 |
452 |
|
453 if wampconf is not None : |
|
454 try: |
|
455 import runtime.WampClient as WC |
|
456 WC.RegisterWampClient(wampconf) |
|
457 pyruntimevars["wampsession"] = WC.GetSession |
|
458 registerserverto.append(WC.SetServer) |
|
459 except Exception, e: |
|
460 print "WAMP client startup failed.", e |
445 |
461 |
446 if havewx: |
462 if havewx: |
447 from threading import Semaphore |
463 from threading import Semaphore |
448 wx_eval_lock = Semaphore(0) |
464 wx_eval_lock = Semaphore(0) |
449 main_thread = currentThread() |
465 main_thread = currentThread() |