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)
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()
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)
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)