def installHivemind(self,isFresh): message = '' if(isFresh): ret = dialog_yesno(localize(33000),localize(33001)) log("Dialog YesNo -> {0}".format(ret)) if(ret): waitDialog = WaitDialogHelper().create() try: scriptPath = os.path.join(__addonpath__,'resources','lib','launchsetup.vbs') log(('HiveMind setup launcher path = %s') % scriptPath) si = subprocess.STARTUPINFO() si.dwFlags |= subprocess.STARTF_USESHOWWINDOW exitCode = subprocess.call(["cscript.exe", scriptPath, self.setupPath], startupinfo=si) log('HiveMind setup exit code = ' + str(tohex(exitCode, 32))) if (exitCode == 0): if(dialog_yesno(localize(33005),localize(33006))): xbmc.executebuiltin('Skin.SetBool(IsCoreComponentInstalled)') si = subprocess.STARTUPINFO() si.dwFlags |= subprocess.STARTF_USESHOWWINDOW subprocess.call(["shutdown.exe", "/r", "/t", "0" ,"/f"], startupinfo=si) else: dialog_ok(localize(33003),localize(33004) + str(tohex(exitCode, 32))) except: pass waitDialog.close() else: waitDialog = WaitDialogHelper().create() #try: import AlphaUIUtils setupPath = os.path.join(__addonpath__,'resources','lib') log(('HiveMind setup path = %s') % setupPath) retValue = AlphaUIUtils.LaunchHivemindSetup(setupPath) log('HiveMind setup return code = ' + str(retValue)) if (retValue): if(dialog_yesno(localize(33005),localize(33006))): si = subprocess.STARTUPINFO() si.dwFlags |= subprocess.STARTF_USESHOWWINDOW subprocess.call(["shutdown.exe", "/r", "/t", "0" ,"/f"], startupinfo=si) else: dialog_ok(localize(33003)) #except: # dialog_ok(localize(33003)) waitDialog.close()
def handle(self, kind, data): """""" op = ord(data[0]) payload = data[1:] arrows = "<<<" if kind == INPUT_PREFIX: arrows = ">>>" name = "0x" + common.tohex(data[0]) if op in di: name = name + " (" + di.get(op) + ")" print((arrows + " " + name + ": " + common.tohex(data[1:]))) self.wm.rumble(common.unpack(payload[0])[0]) if op == 0x11: self.wm.led_unpack(payload) elif op == 0x12: self.wm.mode_unpack(payload) elif op == 0x16: self.wm.write(payload)
def read(self, payload): """""" m = common.tonum(payload[0]) print((" Space: " + bin(m))) off = common.tonum(payload[1:][:3]) print((" Start: " + hex(off))) size = common.tonum(payload[4]) print((" End: " + hex(off + size))) data = payload[5:][:size] print((" Data: " + common.tohex(data)))
def listen(self, serversock, port): """""" serversock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) serversock.bind((host, port)) serversock.listen(1) while running: print("waiting for connection") sock, addr = serversock.accept() print("connected") sending = self.wm.report_data() print((common.tohex(sending))) sock.send(sending) time.sleep(0.001) while running: data = sock.recv(32) if not data: break self.handle(data[0], data[1:]) sock.shutdown() sock.close() serversock.close()