Przeglądaj źródła

Add ability to specify ports per server

Mark Mine 19 lat temu
rodzic
commit
35bf064c9e

+ 36 - 24
direct/src/cluster/ClusterClient.py

@@ -17,32 +17,32 @@ class ClusterClient(DirectObject.DirectObject):
         self.__name__ = 'cluster'
         self.__name__ = 'cluster'
         # First start up servers using direct daemon
         # First start up servers using direct daemon
         # What is the name of the client machine?
         # What is the name of the client machine?
-        clusterDaemonClient = base.config.GetString(
-            'cluster-daemon-client', 'None')
-        if clusterDaemonClient == 'None':
-            clusterDaemonClient = os.popen('uname -n').read()
-            clusterDaemonClient = clusterDaemonClient.replace('\n', '')
+        clusterClientDaemonHost = base.config.GetString(
+            'cluster-client-daemon', 'None')
+        if clusterClientDaemonHost == 'None':
+            clusterClientDaemonHost = os.popen('uname -n').read()
+            clusterClientDaemonHost = clusterClientDaemonHost.replace('\n', '')
         # What daemon port are we using to communicate between client/servers
         # What daemon port are we using to communicate between client/servers
-        clusterDaemonPort = base.config.GetInt(
-            'cluster-daemon-port', CLUSTER_DAEMON_PORT)
+        clusterClientDaemonPort = base.config.GetInt(
+            'cluster-client-daemon-port', CLUSTER_DAEMON_PORT)
         # Create a daemon
         # Create a daemon
         self.daemon = DirectD()
         self.daemon = DirectD()
         # Start listening for the response
         # Start listening for the response
-        self.daemon.listenTo(clusterDaemonPort)
+        self.daemon.listenTo(clusterClientDaemonPort)
         # Contact server daemons and start up remote server application
         # Contact server daemons and start up remote server application
         for serverConfig in configList:
         for serverConfig in configList:
             # First kill existing application
             # First kill existing application
             self.daemon.tellServer(serverConfig.serverName,
             self.daemon.tellServer(serverConfig.serverName,
-                                   clusterDaemonPort,
+                                   serverConfig.serverDaemonPort,
                                    'ka')
                                    'ka')
             # Now start up new application
             # Now start up new application
             serverCommand = (SERVER_STARTUP_STRING %
             serverCommand = (SERVER_STARTUP_STRING %
-                             (serverConfig.serverPort,
+                             (serverConfig.serverMsgPort,
                               clusterSyncFlag,
                               clusterSyncFlag,
-                              clusterDaemonClient,
-                              clusterDaemonPort))
+                              clusterClientDaemonHost,
+                              clusterClientDaemonPort))
             self.daemon.tellServer(serverConfig.serverName,
             self.daemon.tellServer(serverConfig.serverName,
-                                   clusterDaemonPort,
+                                   serverConfig.serverDaemonPort,
                                    serverCommand)
                                    serverCommand)
         print 'Begin waitForServers'
         print 'Begin waitForServers'
         if not self.daemon.waitForServers(len(configList)):
         if not self.daemon.waitForServers(len(configList)):
@@ -52,13 +52,14 @@ class ClusterClient(DirectObject.DirectObject):
         self.serverList = []
         self.serverList = []
         self.msgHandler = ClusterMsgHandler(ClusterClient.MGR_NUM, self.notify)
         self.msgHandler = ClusterMsgHandler(ClusterClient.MGR_NUM, self.notify)
         for serverConfig in configList:
         for serverConfig in configList:
-            server = DisplayConnection(self.qcm, serverConfig.serverName,
-                                       serverConfig.serverPort, self.msgHandler)
+            server = DisplayConnection(
+                self.qcm, serverConfig.serverName,
+                serverConfig.serverMsgPort, self.msgHandler)
             if server == None:
             if server == None:
                 self.notify.error('Could not open %s on %s port %d' %
                 self.notify.error('Could not open %s on %s port %d' %
                                   (serverConfig.serverConfigName,
                                   (serverConfig.serverConfigName,
                                    serverConfig.serverName,
                                    serverConfig.serverName,
-                                   serverConfig.serverPort))
+                                   serverConfig.serverMsgPort))
             else:
             else:
                 self.notify.debug('send cam pos')
                 self.notify.debug('send cam pos')
                 #server.sendMoveCam(Point3(0), Vec3(0))
                 #server.sendMoveCam(Point3(0), Vec3(0))
@@ -300,10 +301,12 @@ class DisplayConnection:
         self.cw.send(datagram, self.tcpConn)
         self.cw.send(datagram, self.tcpConn)
 
 
 class ClusterConfigItem:
 class ClusterConfigItem:
-    def __init__(self, serverConfigName, serverName, serverPort):
+    def __init__(self, serverConfigName, serverName,
+                 serverDaemonPort, serverMsgPort):
         self.serverConfigName = serverConfigName
         self.serverConfigName = serverConfigName
         self.serverName = serverName
         self.serverName = serverName
-        self.serverPort = serverPort
+        self.serverDaemonPort = serverDaemonPort
+        self.serverMsgPort = serverMsgPort
         # Camera Offset
         # Camera Offset
         self.xyz = Vec3(0)
         self.xyz = Vec3(0)
         self.hpr = Vec3(0)
         self.hpr = Vec3(0)
@@ -347,9 +350,10 @@ def createClusterClient():
         fs = configData.get('film size', None)
         fs = configData.get('film size', None)
         fo = configData.get('film offset', None)
         fo = configData.get('film offset', None)
         if displayMode == 'client':
         if displayMode == 'client':
+            #lens.setInterocularDistance(pos[0])
+            base.cam.setPos(pos)
             lens = base.cam.node().getLens()
             lens = base.cam.node().getLens()
             lens.setViewHpr(hpr)
             lens.setViewHpr(hpr)
-            lens.setIodOffset(pos[0])
             if fl is not None:
             if fl is not None:
                 lens.setFocalLength(fl)
                 lens.setFocalLength(fl)
             if fs is not None:
             if fs is not None:
@@ -365,14 +369,22 @@ def createClusterClient():
                     (serverConfigName, clusterConfig))
                     (serverConfigName, clusterConfig))
                 base.notify.warning('%s will not be used.' % serverConfigName)
                 base.notify.warning('%s will not be used.' % serverConfigName)
             else:
             else:
-                # Server port
-                serverPortConfigName = 'cluster-server-port-%s' % displayName
-                serverPort = base.config.GetInt(serverPortConfigName,
-                                                CLUSTER_SERVER_PORT)
+                # Daemon port
+                serverDaemonPortConfigName = (
+                    'cluster-server-daemon-port-%s' % displayName)
+                serverDaemonPort = base.config.GetInt(
+                    serverDaemonPortConfigName,
+                    CLUSTER_DAEMON_PORT)
+                # TCP Server port
+                serverMsgPortConfigName = (
+                    'cluster-server-msg-port-%s' % displayName)
+                serverMsgPort = base.config.GetInt(serverMsgPortConfigName,
+                                                   CLUSTER_SERVER_PORT)
                 cci = ClusterConfigItem(
                 cci = ClusterConfigItem(
                     serverConfigName,
                     serverConfigName,
                     serverName,
                     serverName,
-                    serverPort)
+                    serverDaemonPort,
+                    serverMsgPort)
                 # Init cam offset
                 # Init cam offset
                 cci.setCamOffset(pos, hpr)
                 cci.setCamOffset(pos, hpr)
                 # Init frustum if specified
                 # Init frustum if specified

+ 15 - 318
direct/src/cluster/ClusterConfig.py

@@ -28,12 +28,23 @@ ClientConfigs = {
     'two-server':          [{'display name': 'master',
     'two-server':          [{'display name': 'master',
                               'display mode': 'client',
                               'display mode': 'client',
                               'pos': Vec3(0),
                               'pos': Vec3(0),
-                              #'hpr': Vec3(30, 0, 0)},
-                              'hpr': Vec3(0, 0, 0)},
+                              'hpr': Vec3(0)},
                              {'display name': 'la',
                              {'display name': 'la',
                               'pos': Vec3(0),
                               'pos': Vec3(0),
-                              #'hpr': Vec3(-30, 0, 0)
-                              'hpr': Vec3(0, 0, 0)
+                              'hpr': Vec3(0)
+                              }
+                             ],
+    'three-server':          [{'display name': 'master',
+                              'display mode': 'client',
+                              'pos': Vec3(0),
+                              'hpr': Vec3(0)},
+                             {'display name': 'la',
+                              'pos': Vec3(0),
+                              'hpr': Vec3(0)
+                              },
+                             {'display name': 'lb',
+                              'pos': Vec3(0),
+                              'hpr': Vec3(0)
                               }
                               }
                              ],
                              ],
     'mono-cave':   [{'display name': 'la',
     'mono-cave':   [{'display name': 'la',
@@ -110,320 +121,6 @@ ClientConfigs = {
                           'film offset': (-0.000, 0.173),
                           'film offset': (-0.000, 0.173),
                           },
                           },
                          ],
                          ],
-    'nemo-cave':        [{'display name': 'master',
-                           'display mode': 'client',
-                           'pos': Vec3(-0.105, -0.020, 5.000),
-                           'hpr': Vec3(-0.370, 0.000, 0.000),
-                           'focal length': 0.815,
-                           'film size': (1.000, 0.831),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'la',
-                           'pos': Vec3(-0.105, -0.020, 5.000),
-                           'hpr': Vec3(51.213, 0.000, 0.000),
-                           'focal length': 0.809,
-                           'film size': (1.000, 0.831),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'lb',
-                           'pos': Vec3(-0.105, -0.020, 5.000),
-                           'hpr': Vec3(-0.370, 0.000, 0.000),
-                           'focal length': 0.815,
-                           'film size': (1.000, 0.831),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'lc',
-                           'pos': Vec3(-0.105, -0.020, 5.000),
-                           'hpr': Vec3(-51.675, 0.000, 0.000),
-                           'focal length': 0.820,
-                           'film size': (1.000, 0.830),
-                           'film offset': (-0.000, 0.173),
-                           },
-                          {'display name': 'ra',
-                           'pos': Vec3(0.105, -0.020, 5.000),
-                           'hpr': Vec3(51.675, 0.000, 0.000),
-                           'focal length': 0.820,
-                           'film size': (1.000, 0.830),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'rb',
-                           'pos': Vec3(0.105, -0.020, 5.000),
-                           'hpr': Vec3(0.370, 0.000, 0.000),
-                           'focal length': 0.815,
-                           'film size': (1.000, 0.831),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'rc',
-                           'pos': Vec3(0.105, -0.020, 5.000),
-                           'hpr': Vec3(-51.213, 0.000, 0.000),
-                           'focal length': 0.809,
-                           'film size': (1.000, 0.831),
-                           'film offset': (-0.000, 0.173),
-                           },
-                          {'display name': 'lAudienceL',
-                           'pos': Vec3(-4.895, -0.020, 5.000),
-                           'hpr': Vec3(51.213, 0.000, 0.000),
-                           'focal length': 0.809,
-                           'film size': (1.000, 0.831),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'rAudienceL',
-                           'pos': Vec3(-5.105, -8.0, 5.000),
-                           'hpr': Vec3(51.675, 0.000, 0.000),
-                           'focal length': 0.820,
-                           'film size': (1.000, 0.830),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'lAudienceR',
-                           'pos': Vec3(5.105, -0.020, 5.000),
-                           'hpr': Vec3(-51.213, 0.000, 0.000),
-                           'focal length': 0.809,
-                           'film size': (1.000, 0.831),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'rAudienceR',
-                           'pos': Vec3(4.895, -8.0, 5.000),
-                           'hpr': Vec3(-51.675, 0.000, 0.000),
-                           'focal length': 0.820,
-                           'film size': (1.000, 0.830),
-                           'film offset': (0.000, 0.173),
-                           },
-                          ],
-    'nemo-cave-narrow': [{'display name': 'master',
-                           'display mode': 'client',
-                           'pos': Vec3(-0.105, -0.020, 5.000),
-                           'hpr': Vec3(-0.370, 0.000, 0.000),
-                           'focal length': 0.815,
-                           'film size': (1.000, 0.831),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'la',
-                           'pos': Vec3(-0.105, -19.890, 4.500),
-                           'hpr': Vec3(51.500, 0.000, 0.000),
-                           'focal length': 1.662,
-                           'film size': (1.000, 0.828),
-                           'film offset': (1.079, 0.207),
-                           },
-                          {'display name': 'lb',
-                           'pos': Vec3(-0.105, -19.890, 4.500),
-                           'hpr': Vec3(0.000, 0.000, 0.000),
-                           'focal length': 2.186,
-                           'film size': (1.000, 0.828),
-                           'film offset': (0.007, 0.207),
-                           },
-                          {'display name': 'lc',
-                           'pos': Vec3(-0.105, -19.890, 4.500),
-                           'hpr': Vec3(-51.500, 0.000, 0.000),
-                           'focal length': 1.673,
-                           'film size': (1.000, 0.828),
-                           'film offset': (-1.070, 0.207),
-                           },
-                          {'display name': 'ra',
-                           'pos': Vec3(0.105, -19.890, 4.500),
-                           'hpr': Vec3(51.500, 0.000, 0.000),
-                           'focal length': 1.673,
-                           'film size': (1.000, 0.828),
-                           'film offset': (1.070, 0.207),
-                           },
-                          {'display name': 'rb',
-                           'pos': Vec3(0.105, -19.890, 4.500),
-                           'hpr': Vec3(0.000, 0.000, 0.000),
-                           'focal length': 2.186,
-                           'film size': (1.000, 0.828),
-                           'film offset': (-0.007, 0.207),
-                           },
-                          {'display name': 'rc',
-                           'pos': Vec3(0.105, -19.890, 4.500),
-                           'hpr': Vec3(-51.500, 0.000, 0.000),
-                           'focal length': 1.662,
-                           'film size': (1.000, 0.828),
-                           'film offset': (-1.079, 0.207),
-                           },
-                          {'display name': 'lAudienceL',
-                           'pos': Vec3(-0.105, -19.890, 4.500),
-                           'hpr': Vec3(49.038, 0.000, 0.000),
-                           'focal length': 1.452,
-                           'film size': (1.000, 0.797),
-                           'film offset': (-0.292, 0.149),
-                           },
-                          {'display name': 'rAudienceL',
-                           'pos': Vec3(0.105, -19.890, 4.500),
-                           'hpr': Vec3(49.038, 0.000, 0.000),
-                           'focal length': 1.468,
-                           'film size': (1.000, 0.797),
-                           'film offset': (-0.306, 0.149),
-                           },
-                          {'display name': 'lAudienceR',
-                           'pos': Vec3(-0.105, -19.890, 4.500),
-                           'hpr': Vec3(-52.750, 0.000, 0.000),
-                           'focal length': 1.551,
-                           'film size': (1.000, 0.796),
-                           'film offset': (0.245, 0.149),
-                           },
-                          {'display name': 'rAudienceR',
-                           'pos': Vec3(0.105, -19.890, 4.500),
-                           'hpr': Vec3(-52.750, 0.000, 0.000),
-                           'focal length': 1.534,
-                           'film size': (1.000, 0.796),
-                           'film offset': (0.232, 0.149),
-                           },
-                          {'display name': 'lCart',
-                           'pos': Vec3(-0.105, -0.020, 5.000),
-                           'hpr': Vec3(-0.370, 0.000, 0.000),
-                           'focal length': 0.815,
-                           'film size': (1.000, 0.831),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'rCart',
-                           'pos': Vec3(0.105, -0.020, 5.000),
-                           'hpr': Vec3(0.370, 0.000, 0.000),
-                           'focal length': 0.815,
-                           'film size': (1.000, 0.831),
-                           'film offset': (0.000, 0.173),
-                           },
-                          ],
-    'fourd-cave':        [{'display name': 'master',
-                            'display mode': 'client',
-                            'pos': Vec3(-0.105, -0.020, 5.000),
-                           'hpr': Vec3(-0.370, 0.000, 0.000),
-                           'focal length': 0.815,
-                           'film size': (1.000, 0.831),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'la',
-                           'pos': Vec3(-0.105, -0.020, 5.000),
-                           'hpr': Vec3(51.213, 0.000, 0.000),
-                           'focal length': 0.809,
-                           'film size': (1.000, 0.831),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'lb',
-                           'pos': Vec3(-0.105, -0.020, 5.000),
-                           'hpr': Vec3(-0.370, 0.000, 0.000),
-                           'focal length': 0.815,
-                           'film size': (1.000, 0.831),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'lc',
-                           'pos': Vec3(-0.105, -0.020, 5.000),
-                           'hpr': Vec3(-51.675, 0.000, 0.000),
-                           'focal length': 0.820,
-                           'film size': (1.000, 0.830),
-                           'film offset': (-0.000, 0.173),
-                           },
-                          {'display name': 'ra',
-                           'pos': Vec3(0.105, -0.020, 5.000),
-                           'hpr': Vec3(51.675, 0.000, 0.000),
-                           'focal length': 0.820,
-                           'film size': (1.000, 0.830),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'rb',
-                           'pos': Vec3(0.105, -0.020, 5.000),
-                           'hpr': Vec3(0.370, 0.000, 0.000),
-                           'focal length': 0.815,
-                           'film size': (1.000, 0.831),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'rc',
-                           'pos': Vec3(0.105, -0.020, 5.000),
-                           'hpr': Vec3(-51.213, 0.000, 0.000),
-                           'focal length': 0.809,
-                           'film size': (1.000, 0.831),
-                           'film offset': (-0.000, 0.173),
-                           },
-                          {'display name': 'lAudienceL',
-                           'pos': Vec3(-4.895, -0.020, 5.000),
-                           'hpr': Vec3(65.213, 0.000, 0.000),
-                           'focal length': 0.809,
-                           'film size': (1.000, 0.831),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'rAudienceL',
-                           'pos': Vec3(-5.105, -8.0, 5.000),
-                           'hpr': Vec3(65.675, 0.000, 0.000),
-                           'focal length': 0.820,
-                           'film size': (1.000, 0.830),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'lAudienceR',
-                           'pos': Vec3(5.105, -0.020, 5.000),
-                           'hpr': Vec3(-65.213, 0.000, 0.000),
-                           'focal length': 0.809,
-                           'film size': (1.000, 0.831),
-                           'film offset': (0.000, 0.173),
-                           },
-                          {'display name': 'rAudienceR',
-                           'pos': Vec3(4.895, -8.0, 5.000),
-                           'hpr': Vec3(-65.675, 0.000, 0.000),
-                           'focal length': 0.820,
-                           'film size': (1.000, 0.830),
-                           'film offset': (0.000, 0.173),
-                           },
-                          ],
-    'parallax-cave':        [{'display name': 'master',
-                              'display mode': 'client',
-                              'pos': Vec3(0),
-                              'hpr': Vec3(0),
-                              'focal length': 0.815,
-                              'film size': (1.000, 0.831),
-                              'film offset': (0.000, 0.173),
-                              },
-                             {'display name': 'la',
-                              'pos': Vec3(0),
-                              'hpr': Vec3(0),
-                              'focal length': 0.809,
-                              'film size': (1.000, 0.831),
-                              'film offset': (0.000, 0.173),
-                              },
-                             {'display name': 'lb',
-                              'pos': Vec3(0),
-                              'hpr': Vec3(0),
-                              'focal length': 0.815,
-                              'film size': (1.000, 0.831),
-                              'film offset': (0.000, 0.173),
-                              },
-                             {'display name': 'lc',
-                              'pos': Vec3(0),
-                              'hpr': Vec3(0),
-                              'focal length': 0.820,
-                              'film size': (1.000, 0.830),
-                              'film offset': (-0.000, 0.173),
-                              },
-                             {'display name': 'ra',
-                              'pos': Vec3(0),
-                              'hpr': Vec3(0),
-                              'focal length': 0.820,
-                              'film size': (1.000, 0.830),
-                              'film offset': (0.000, 0.173),
-                              },
-                             {'display name': 'rb',
-                              'pos': Vec3(0),
-                              'hpr': Vec3(0),
-                              'focal length': 0.815,
-                              'film size': (1.000, 0.831),
-                              'film offset': (0.000, 0.173),
-                              },
-                             {'display name': 'rc',
-                              'pos': Vec3(0),
-                              'hpr': Vec3(0),
-                              'focal length': 0.809,
-                              'film size': (1.000, 0.831),
-                              'film offset': (-0.000, 0.173),
-                              },
-                             ],
-    'carttest':            [{'display name': 'master',
-                              'display mode': 'client',
-                              'pos': Vec3(0),
-                              'hpr': Vec3(0),
-                              },
-                             {'display name': 'left',
-                              'pos': Vec3(-.105, 0, 0),
-                              'hpr': Vec3(0, 0, 0)},
-                             {'display name': 'right',
-                              'pos': Vec3(.105, 0, 0),
-                              'hpr': Vec3(0, 0, 0)}
-                             ],
     'ursula':              [{'display name': 'master',
     'ursula':              [{'display name': 'master',
                               'display mode': 'client',
                               'display mode': 'client',
                               'pos': Vec3(0),
                               'pos': Vec3(0),

+ 5 - 1
direct/src/cluster/ClusterMsgs.py

@@ -21,8 +21,12 @@ CLUSTER_TIME_DATA = 8
 CLUSTER_EXIT = 100
 CLUSTER_EXIT = 100
 
 
 #Port number for cluster rendering
 #Port number for cluster rendering
-CLUSTER_SERVER_PORT = 1970
+# DAEMON PORT IS PORT USED FOR STARTUP MESSAGE EXCHANGE
+# CAN BE OVERRIDEN WITH cluster-daemon-client-port for client
+# and cluster-daemon-server-port for server
 CLUSTER_DAEMON_PORT = 8001
 CLUSTER_DAEMON_PORT = 8001
+# THIS IS THE TCP PORT USED FOR EXCHANGE OF DATA ONCE STARTUP IS COMPLETE
+CLUSTER_SERVER_PORT = 1970
 
 
 # Precede command string with ! to tell server to execute command string
 # Precede command string with ! to tell server to execute command string
 # NOTE: Had to stick with the import __builtin__ scheme, at startup,
 # NOTE: Had to stick with the import __builtin__ scheme, at startup,

+ 1 - 1
direct/src/cluster/ClusterServer.py

@@ -179,7 +179,7 @@ class ClusterServer(DirectObject.DirectObject):
     def handleCamOffset(self, dgi):
     def handleCamOffset(self, dgi):
         """ Set offset of camera from cameraJig """
         """ Set offset of camera from cameraJig """
         (x, y, z, h, p, r) = self.msgHandler.parseCamOffsetDatagram(dgi)
         (x, y, z, h, p, r) = self.msgHandler.parseCamOffsetDatagram(dgi)
-        self.lens.setIodOffset(x)
+        self.camera.setPos(x,y,z)
         self.lens.setViewHpr(h, p, r)
         self.lens.setViewHpr(h, p, r)
 
 
     def handleCamFrustum(self, dgi):
     def handleCamFrustum(self, dgi):