Example #1
0
def setup_master():
    missionControlPort = int(sys.argv[1])
    webServerPort = int(sys.argv[2])
    
    # do a cleanup, and also register kill_slaves to be called on exit.
    kill_slaves(nodeNames)
    import atexit
    atexit.register(kill_slaves, nodeNames)

    # Launch the monitor slaves
    for node in nodeNames:
        cmd = "ssh -n {0} cd {1}; {2} -c system/headless.cfg monitor.py --mc @{3}:{4} -N {5} -L off --interactive-off".format(
            node, os.getcwd(), ogetexecpath(), serverName, missionControlPort, node)
        olaunch(cmd)
        sleep(0.1)

    # Launch the web server
    global ps
    porthole.initialize(webServerPort, './index.html')
    ps = porthole.getService()
Example #2
0
    box.getMaterial().setColor(Color(colorString), Color('black'))

# Spin the box!
def onUpdate(frame, t, dt):
	global btn
	box.pitch(dt)
	box.yaw(dt / 3)
	
setUpdateFunction(onUpdate)

bw = None

def createWebUi():
	global bw
	# create a webView to show the porthole interface.
	width = 240
	height = 240

	ui = UiModule.createAndInitialize()
	uiroot = ui.getUi()
	
	bw = BrowserWindow('browser', uiroot, width, height)
	bw.loadUrl("http://127.0.0.1:4080")
	bw.setDraggable(True)
		
# Setup porthole
porthole.initialize('colorPicker.xml')
porthole.getService().setConnectedCommand("print('client connected: %id%')")
porthole.getService().setDisconnectedCommand("print('client disconnected: %id%')")
porthole.getService().setServerStartedCommand("createWebUi()")
Example #3
0
# Basic porthole example
import porthole

# Setup porthole
porthole.initialize(4080, './chat.html')
ps = porthole.getService()


# Client call this function when posting a message.
def postMessage(message, sender):
    print("{0}: {1}".format(sender, message) )
    ps.broadcastjs("messageReceived('{0}: {1}')".format(sender, message), '')
Example #4
0
File: ecto.py Project: febret/ecto
#-------------------------------------------------------------------------------
# setup mission control and porthole
from omega import *
import porthole
import sys

missionControlPort = getMissionControlServer().getPort()
webServerPort = 5005

# Launch the web server
porthole.initialize(webServerPort, './index.html')
webServer = porthole.getService()

#-------------------------------------------------------------------------------
# choose what services to launch here
#import monitor
import launcher
Example #5
0
# This example shows how to do basic camera streaming to 
# a web interface using porthole.
# opena browser to http://127.0.0.1:4080
import porthole

# Setup porthole
porthole.initialize('porthole/default.xml')
porthole.getService().setServerStartedCommand("print('porthole web server ready! connect to http://localhost:4080')")
porthole.getService().setCameraCreatedCommand("onCameraCreated(%id%)")

def onCameraCreated(camId):
    global clientCamera
    camera = getCameraById(camId);
    #camera.setOverlayEnabled(False)
    camera.setHeadOffset(getDefaultCamera().getHeadOffset())
    print("camera created " + camera.getName())
    getDefaultCamera().addChild(camera)
Example #6
0
def requestUpdate(clientId):
    porthole.getService().sendjs("data = {0}; update()".format(data), clientId)
Example #7
0
import porthole

box = BoxShape.create(0.8, 0.8, 0.8)
box.setPosition(Vector3(0, 2, -3))

# Apply an emissive textured effect (no lighting)
box.setEffect("colored -d green")

l1 = Light.create()
l1.setColor(Color('white'))
l1.setPosition(-1, 2, 0)

# Setup porthole
porthole.initialize('colorPicker.xml')
porthole.getService().setConnectedCommand("print('client connected: %id%')")
porthole.getService().setDisconnectedCommand("print('client disconnected: %id%')")

def onColorChanged(id):
	box.getMaterial()

def onPortholeCameraDestroyed(id):
	cam = getCameraById(id)
	getDefaultCamera().removeChild(cam)

# Spin the box!
def onUpdate(frame, t, dt):
	global btn
	box.pitch(dt)
	box.yaw(dt / 3)
	
Example #8
0
import porthole
porthole.initialize()
porthole.getService().load('porthole/portholePointer.xml')
porthole.getService().setServerStartedCommand("print('porthole web server ready! connect to http://localhost:4080')")
# Basic example showing use of the porthole streaming HTML5 interface
from omega import *
from cyclops import *

import porthole

porthole.initialize()
porthole.getService().setConnectedCommand("print('client connected: %id%')")
porthole.getService().setDisconnectedCommand("print('client disconnected: %id%')")
porthole.getService().setCameraCreatedCommand("onPortholeCameraCreated(%id%)")
porthole.getService().setCameraDestroyedCommand("onPortholeCameraDestroyed(%id%)")

def onPortholeCameraCreated(id):
	print('Porthole camera created: ' + str(id))
	cam = getCameraById(id)
	# Diable overlay (2D) stuff for the porthole camera. Just draw the 3D scene.
	cam.setOverlayEnabled(False)
	# Attach the porthole camera to the default one, to follow it.
	getDefaultCamera().addChild(cam)

def onPortholeCameraDestroyed(id):
	cam = getCameraById(id)
	getDefaultCamera().removeChild(cam)

box = BoxShape.create(0.8, 0.8, 0.8)
box.setPosition(Vector3(0, 2, -3))

# Apply an emissive textured effect (no lighting)
box.setEffect("textured -v emissive -d cyclops/test/omega-transparent.png")

# Spin the box!
Example #10
0
def onOrientationChanged(pitch, yaw, roll, clientId):
    box.setOrientation(quaternionFromEulerDeg(pitch, yaw, roll))
    # Update slider state on all connected clients.
    porthole.getService().broadcastjs('updateSliders({0}, {1}, {2})'.format(pitch,yaw,roll), clientId)
    
Example #11
0
# create a box that will be oriented through sliders
box = BoxShape.create(1,1,1)
box.setEffect('colored -d red')
box.setPosition(0, 2, -4)
l = Light.create()
l.setPosition(0, 4, 0)
l.setColor(Color('white'))
l.setAmbient(Color(0.2, 0.2, 0.2, 1))

def createUi():
    global bw
    # create a webView to show the porthole interface.
    width = 440
    height = 200
    ui = UiModule.createAndInitialize()
    uiroot = ui.getUi()
    bw = BrowserWindow('Box Orientation', uiroot, width, height)
    bw.loadUrl("http://127.0.0.1:4080")
    bw.setDraggable(True)
        
# Setup porthole
porthole.initialize('syncSlider.xml')
porthole.getService().setServerStartedCommand("createUi()")

# Web interface callbacks
def onOrientationChanged(pitch, yaw, roll, clientId):
    box.setOrientation(quaternionFromEulerDeg(pitch, yaw, roll))
    # Update slider state on all connected clients.
    porthole.getService().broadcastjs('updateSliders({0}, {1}, {2})'.format(pitch,yaw,roll), clientId)