Example #1
0
    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"
Example #2
0
 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"
Example #3
0
 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)
Example #4
0
    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()
Example #5
0
    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)
Example #6
0
 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) 
Example #7
0
    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())
Example #8
0
 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()
Example #9
0
    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
Example #10
0
 def save(self):
     FanbotConfig.setHubConfig(id,self.config)
Example #11
0
 def load(self):
     for id in FanbotConfig.getHubIDs():
         self.addHub(id)
     self.SetItemCount(len(self.hubs))
     self.parent.Refresh();