def buttonConnectSimulOnButtonClick(self, event): host = self.textSimulation.GetValue() FanbotConfig.setSimulationIP(host) port = self.textPort.GetValue() FanbotConfig.setSimulationIPPort(port) if self.buttonConnectSimul.GetLabel() == "connect": try: factory = ParserFactory() # Parser factory can create a parser object self.socket = FanbotSocket(factory) self.socket.openSocket(host, int(port)) self.remote.setTransport(self.socket) self.buttonConnectSimul.SetLabel("disconnect") print "now connected" except Exception as e: dlg = wx.MessageDialog( self, "Select another port. or exit program with <Cancel>!", "Unable to open connection to simulator at %s:%s" % (host, port), wx.OK | wx.CANCEL | wx.ICON_QUESTION, ) result = dlg.ShowModal() dlg.Destroy() if wx.ID_OK != result: exit(1) else: self.socket.closeSocket() self.socket = None self.remote.setTransport(None) self.buttonConnectSimul.SetLabel("connect") print "now disconnected"
def buttonConnectRealOnButtonClick(self, event): serialname = self.comboSerialPorts.GetValue() if self.buttonConnectReal.GetLabel() == "connect": FanbotConfig.setSerialport(serialname) try: factory = ParserFactory() # Parser factory can create a parser object self.serial = FanbotSerial(factory) self.serial.open(serialname, FanbotConfig.baudrate) self.remote.setTransport(self.serial) self.buttonConnectReal.SetLabel("disconnect") FanbotConfig.setSerialport(serialname) except SerialException as e: print "Unable to open serial port ...error:", e.message dlg = wx.MessageDialog( self, e.message + " Select another port. or exit program with <Cancel>!", "Unable to open serial port %s" % serialname, wx.OK | wx.CANCEL | wx.ICON_QUESTION, ) result = dlg.ShowModal() dlg.Destroy() if wx.ID_OK != result: exit(1) else: self.serial.close() self.serial = None self.remote.setTransport(None) self.buttonConnectReal.SetLabel("connect") print "now disconnected"
def handleSelection(self, simul): FanbotConfig.setSimulation(simul) real = not simul print "selectSimulation: ", str(simul) self.selectSerialPort.SetValue(real) self.selectSimulation.SetValue(simul) self.comboSerialPorts.Enable(real) self.textSimulation.Enable(simul) self.textPort.Enable(simul) self.buttonConnectReal.Enable(real) self.buttonConnectSimul.Enable(simul)
def buttonSaveOnButtonClick(self, event): host = self.textSimulation.GetValue() FanbotConfig.setSimulationIP(host) port = self.textPort.GetValue() FanbotConfig.setSimulationIPPort(port) proxy = self.textProxyPort.GetValue() FanbotConfig.setProxyPort(proxy) serialname = self.comboSerialPorts.GetValue() FanbotConfig.setSerialport(serialname) FanbotConfig.save()
def initCommunication(self): host = FanbotConfig.getSimulationIP() port = FanbotConfig.getSimulationIPPort() self.textSimulation.SetValue(host) self.textPort.SetValue(str(port)) self.proxyPort = FanbotConfig.getProxyPort() self.textProxyPort.SetValue(str(self.proxyPort)) simulation = FanbotConfig.getSimulation() self.handleSelection(simulation) if simulation: self.buttonConnectSimulOnButtonClick(None) else: self.buttonConnectRealOnButtonClick(None)
def __init__( self,id): """id must be a string with hexadecimal representaiton of ID example: '0x1234' """ self.id = id self.discoverd = False self.responsive = False self.configidx = 0 self.config = FanbotConfig.getHubConfig(self.id) self.fanbots = FanbotConfig.getHubFanbots(self.id) for i in range(24): if len(self.config) < 24: self.config.append(-1) if len(self.fanbots) < 24: self.fanbots.append(-1) self.color = random.randint(20, 250) * 0x10000 + random.randint(20, 250) * 0x100 + random.randint(20, 250)
def initComboSerialPorts(self): self.comboSerialPorts.Clear() for i in range(16): try: s = Serial(i) self.comboSerialPorts.Append(s.portstr) s.close() # explicit close 'cause of delayed GC in java s = None except SerialException: pass self.comboSerialPorts.SetValue(FanbotConfig.getSerialport())
def proxyServerThread(self): print "Starting socket server thread " portstr = FanbotConfig.getProxyPort() port = int(portstr) host = "localhost" self.labelProxyHost.SetLabel( '%s : %d' % (host,port) ) ProxyControl.alive = True try: self.server = SocketServer.ThreadingTCPServer((host, port), ProxyHandler) self.server.serve_forever() except Exception as e: print "unable to start server: ", e.message self.shutdown()
def __init__(self, parent): FanbotFrame.__init__(self, parent) FanbotConfig.load() self.remote = HubProtocol(None) # no transport layer yet self.serial = None self.socket = None panel = self.tabPanelDesign sizer = panel.GetSizer() self.designControl = DesignControl(panel) sizer.Add(self.designControl, 1, wx.EXPAND) panel = self.tabPanelExec sizer = panel.GetSizer() self.executor = ExecuteControl(panel, self.remote) sizer.Add(self.executor, 1, wx.EXPAND) panel = self.tabPanelProxy sizer = panel.GetSizer() self.proxy = ProxyControl(panel, self.remote) sizer.Add(self.proxy, 1, wx.EXPAND) panel = self.tabPanelModules sizer = panel.GetSizer() self.modulen = ModulenControl(panel, self.remote) sizer.Add(self.modulen, 1, wx.EXPAND) self.remote.addListener(self.modulen) self.initComboSerialPorts() self.initCommunication() self.SetSizeWH(600, 400) em.eventManager.Register(self.proxyOnChange, fanbotevent.EVT_PROXY_SERVER, self.proxy) # self.proxy.startProxyServer() ControlBase.messageHandler = self.displayMessage
def save(self): FanbotConfig.setHubConfig(id,self.config)
def load(self): for id in FanbotConfig.getHubIDs(): self.addHub(id) self.SetItemCount(len(self.hubs)) self.parent.Refresh();