Beremiz_service.py
changeset 1439 a68cd4253259
parent 1438 19ebe96b41c0
child 1446 4963e3816641
--- a/Beremiz_service.py	Thu Feb 05 01:35:02 2015 +0100
+++ b/Beremiz_service.py	Thu Feb 05 23:32:31 2015 +0100
@@ -36,13 +36,15 @@
            -a        - autostart PLC (0:disable 1:enable) (default:0)
            -x        - enable/disable wxTaskbarIcon (0:disable 1:enable) (default:1)
            -t        - enable/disable Twisted web interface (0:disable 1:enable) (default:1)
+           -w        - web server port or "off" (default:8009)
+           -c        - WAMP client config file or "off" (default:wampconf.json)
            -e        - python extension (absolute path .py)
 
            working_dir - directory where are stored PLC files
 """%sys.argv[0]
 
 try:
-    opts, argv = getopt.getopt(sys.argv[1:], "i:p:n:x:t:a:e:h")
+    opts, argv = getopt.getopt(sys.argv[1:], "i:p:n:x:t:a:w:c:e:h")
 except getopt.GetoptError, err:
     # print help information and exit:
     print str(err) # will print something like "option -a not recognized"
@@ -52,6 +54,8 @@
 # default values
 given_ip = None
 port = 3000
+webport = 8009
+wampconf = "wampconf.json"
 servicename = None
 autostart = False
 enablewx = True
@@ -82,6 +86,10 @@
         enabletwisted = int(a)
     elif o == "-a":
         autostart = int(a)
+    elif o == "-w":
+        webport = None if a == "off" else int(a)
+    elif o == "-c":
+        wampconf = None if a == "off" else a
     elif o == "-e":
         extensions.append(a)
     else:
@@ -433,15 +441,23 @@
     if havewx:
         reactor.registerWxApp(app)
 
-    # TODO add command line switch
-    try:
-        import runtime.NevowServer as NS
-        website = NS.RegisterWebsite(reactor)
-        pyruntimevars["website"] = website
-        statuschange.append(NS.website_statuslistener_factory(website))
-    except:
-        print "Nevow Web service failed."
-
+    if webport is not None :
+        try:
+            import runtime.NevowServer as NS
+            website = NS.RegisterWebsite(webport)
+            pyruntimevars["website"] = website
+            statuschange.append(NS.website_statuslistener_factory(website))
+        except Exception, e:
+            print "Nevow Web service failed.", e
+
+    if wampconf is not None :
+        try:
+            import runtime.WampClient as WC
+            WC.RegisterWampClient(wampconf)
+            pyruntimevars["wampsession"] = WC.GetSession
+            registerserverto.append(WC.SetServer)
+        except Exception, e:
+            print "WAMP client startup failed.", e
 
 if havewx:
     from threading import Semaphore