Example #1
0
    def __init__(self):
        super().__init__()
        self.espState = False
        #self.second_key = str(randint(10000, 99999))
        self.setWindowTitle('IoT Device Manager')
        self.resize(250, 120)
        self.devices = DeviceManager()
        layout = QGridLayout()

        label_key = QLabel('<font size="4"> Device1 </font>')
        layout.addWidget(label_key, 0, 0)

        label_key = QLabel('<font size="4"> Device2 </font>')
        layout.addWidget(label_key, 1, 0)

        ch_bx1 = MySwitch()
        ch_bx1.setChecked(True)
        ch_bx1.clicked.connect(self.changeStateOne)
        layout.addWidget(ch_bx1, 0, 1, 1, 2)

        ch_bx3 = MySwitch()
        ch_bx3.setChecked(True)
        ch_bx3.clicked.connect(self.changeStateTwo)
        layout.addWidget(ch_bx3, 1, 1, 1, 2)

        self.setLayout(layout)
Example #2
0
def main(port=DEFAULT_PORT_NUMBER):
	''' Performs the main operations of the server program on a given port.
	'''
	try:
		# Create a global thread manager for all our devices
		thread_mgr = ThreadManager()
		# Create a global state manager for handling device queues
		state_mgr = StateManager()
		# Initialise the device manager
		dev_mgr = DeviceManager(thread_mgr, state_mgr)

		def handler(*args):
			''' Initialise our custom handler with the device manager.
			'''
			RequestHandler(dev_mgr, *args)

		# Create a web server and define the handler to manage the incoming 
		# requests on separate threads.
		server = ThreadedHTTPServer(('', port), handler)
		print "Started ThreadedHTTPServer on port %d" % port

		# Wait forever for incoming HTTP requests
		server.serve_forever()

	except KeyboardInterrupt:
		print "Shutting down HTTPServer."
		server.socket.close()
Example #3
0
 def __init__(self):
     self.templates = jinja2.Environment(
         loader=jinja2.FileSystemLoader('templates'),
         trim_blocks=True,
         autoescape=True)
     self.templates.filters['get_device_icon'] = self.get_device_icon
     self.device_list = DeviceManager()
     self.unlocked_ports = {}
     self.device_list.register('added', router.add_device)
Example #4
0
    def __init__(self, *args, **kwargs):
        """
        Constructs a QuarterWidget.
        QuarterWidget(QWidget parent = None, QGLWidget sharewidget = None, Qt.WindowFlags f = 0, scxml = "coin:scxml/navigation/examiner.xml")
        QuarterWidget(QGLContext context, QWidget parent = None, QGLWidget sharewidget = None, Qt.WindowFlags f = 0, scxml = "coin:scxml/navigation/examiner.xml")
        QuarterWidget(QGLFormat format, QWidget parent = None, QGLWidget sharewidget = None, Qt.WindowFlags f = 0, scxml = "coin:scxml/navigation/examiner.xml")
        """

        params = ["parent", "sharewidget"]
        values = {
            "parent": None,
            "sharewidget": None,
            "f": 0,
            "scxml": "coin:scxml/navigation/examiner.xml"
        }
        values.update(kwargs)

        if len(args) > 0 and isinstance(
                args[0], QtOpenGL.QGLContext) or "context" in kwargs:
            params.insert(0, "context")
        elif len(args) > 0 and isinstance(
                args[0], QtOpenGL.QGLFormat) or "format" in kwargs:
            params.insert(0, "format")

        if len(args) > len(params):
            values["f"] = args[len(params)]

        if len(args) > len(params) + 1:
            values["scxml"] = args[len(params) + 1]

        for i in range(len(args), len(params)):
            args += (values[params[i]], )

        QtOpenGL.QGLWidget.__init__(self, *args[:len(params)])
        if values["f"]: self.setWindowFlags(values["f"])

        # initialize Sensormanager and ImageReader instances only once
        if not QuarterWidget._sensormanager:
            QuarterWidget._sensormanager = SensorManager()

        if not QuarterWidget._imagereader:
            QuarterWidget._imagereader = ImageReader()

        self.cachecontext_list = []
        self.cachecontext = self.findCacheContext(self, values["sharewidget"])
        self.statecursormap = {}

        self.scene = None
        self.contextmenu = None
        self.contextmenuenabled = True

        self.sorendermanager = coin.SoRenderManager()
        self.soeventmanager = coin.SoEventManager()

        # Mind the order of initialization as the XML state machine uses
        # callbacks which depends on other state being initialized
        self.eventmanager = EventManager(self)
        self.devicemanager = DeviceManager(self)

        statemachine = coin.ScXML.readFile(values["scxml"])
        if statemachine and statemachine.isOfType(
                coin.SoScXMLStateMachine.getClassTypeId()):
            sostatemachine = coin.cast(statemachine, "SoScXMLStateMachine")
            statemachine.addStateChangeCallback(statechangeCB, self)
            self.soeventmanager.addSoScXMLStateMachine(sostatemachine)
            sostatemachine.initialize()
        else:
            raise "could not initialize statemachine, given file not found?"

        self.headlight = coin.SoDirectionalLight()

        self.sorendermanager.setAutoClipping(
            coin.SoRenderManager.VARIABLE_NEAR_PLANE)
        self.sorendermanager.setRenderCallback(renderCB, self)
        self.sorendermanager.setBackgroundColor(coin.SbColor4f(0, 0, 0, 0))
        self.sorendermanager.activate()
        self.sorendermanager.addPreRenderCallback(prerenderCB, self)
        self.sorendermanager.addPostRenderCallback(postrenderCB, self)

        self.soeventmanager.setNavigationState(
            coin.SoEventManager.MIXED_NAVIGATION)

        self.devicemanager.registerDevice(MouseHandler())
        self.devicemanager.registerDevice(KeyboardHandler())
        self.eventmanager.registerEventHandler(DragDropHandler())

        # set up a cache context for the default SoGLRenderAction
        self.sorendermanager.getGLRenderAction().setCacheContext(
            self.getCacheContextId())

        self.setStateCursor("interact", QtCore.Qt.ArrowCursor)
        self.setStateCursor("idle", QtCore.Qt.OpenHandCursor)
        self.setStateCursor("rotate", QtCore.Qt.ClosedHandCursor)
        self.setStateCursor("pan", QtCore.Qt.SizeAllCursor)
        self.setStateCursor("zoom", QtCore.Qt.SizeVerCursor)
        self.setStateCursor("seek", QtCore.Qt.CrossCursor)
        self.setStateCursor("spin", QtCore.Qt.OpenHandCursor)

        self.setMouseTracking(True)
        self.setFocusPolicy(QtCore.Qt.StrongFocus)