Ejemplo n.º 1
0
 def m_serialSetupOnButtonClick(self, event=None):
     """Event handler for the serial setup button. Calls the pySerial
     setup dialog and updates the serial config. The serial connection is
     closed before displaying the dialog and re-opened once it has been
     closed, regardless of the changes made by the user."""
     
     self.m_closeConnectionOnButtonClick()
         
     ok = False
     while not ok:
         dialog_serial_cfg = wxSerialConfigDialog.SerialConfigDialog(None, -1, "",
                         show=wxSerialConfigDialog.SHOW_BAUDRATE|
                              wxSerialConfigDialog.SHOW_FORMAT|
                              wxSerialConfigDialog.SHOW_FLOW,
                              
                         serial=self.serial, 
                     )
         
         result = dialog_serial_cfg.ShowModal()
         dialog_serial_cfg.Destroy()
         
         if result == wx.ID_OK:
             try:
                 self.m_openConnectionOnButtonClick()
             except serial.SerialException, e:
                 self.logger.error("Serial port configuration failed: %s", e.message)
             else:
                 ok = True
                 
         elif result == wx.ID_CANCEL:
             ok = True
Ejemplo n.º 2
0
 def on_ser_config(self,event):
     if self.ser.isOpen():
         self.ser.close()
     dialog_serial_cfg = wxSerialConfigDialog.SerialConfigDialog(None, -1, "",
             show=wxSerialConfigDialog.SHOW_BAUDRATE|wxSerialConfigDialog.SHOW_FORMAT|wxSerialConfigDialog.SHOW_FLOW,
             serial=self.ser
         )
     result = dialog_serial_cfg.ShowModal()
     dialog_serial_cfg.Destroy()
     self.data.save_cfg(self.ser)
Ejemplo n.º 3
0
    def OnPortSettings(self, event):  # wxGlade: TerminalFrame.<event_handler>
        """
        Show the port settings dialog. The reader thread is stopped for the
        settings change.
        """
        if event is not None:  # will be none when called on startup
            # self.StopThread()
            self.serial.close()
        ok = False
        # while not ok:
        if not ok:
            with wxSerialConfigDialog.SerialConfigDialog(
                    self,
                    -1,
                    "",
                    show=wxSerialConfigDialog.SHOW_BAUDRATE,
                    baudrate=57600,
                    serial=self.serial) as dialog_serial_cfg:
                dialog_serial_cfg.CenterOnParent()
                result = dialog_serial_cfg.ShowModal()
            # open port if not called on startup, open it on startup and OK too
            if result == wx.ID_OK or event is not None:
                try:
                    self.serial.open()
                except serial.SerialException as e:
                    with wx.MessageDialog(self, str(e), "Serial Port Error", wx.OK | wx.ICON_ERROR)as dlg:
                        dlg.ShowModal()
                else:
                    # self.StartThread()
                    self.SetStatusText("Serial connection on {} [{}, {}, {}, {}{}{}]".format(
                        self.serial.portstr,
                        self.serial.baudrate,
                        self.serial.bytesize,
                        self.serial.parity,
                        self.serial.stopbits,
                        ' RTS/CTS' if self.serial.rtscts else '',
                        ' Xon/Xoff' if self.serial.xonxoff else '',
                    ))
                    ok = True
            else:
                # on startup, dialog aborted
                # self.alive.clear()
                ok = True

            logs_dir = 'logs'
            root_dir = os.path.dirname(os.path.abspath(__file__))
            if not os.path.exists(os.path.join(root_dir, logs_dir)):
                os.makedirs(os.path.join(root_dir, logs_dir), 0o777)

            filename = 'archer-serial-reader-output-' + datetime.now().strftime('%Y%m%dT%H%M%S.bin')
            self.mav = archer.MAVLink(open(os.path.join(root_dir, logs_dir, filename), 'wb'))

            self.timer.Start(100)
Ejemplo n.º 4
0
 def OnPortSettings(self, event):  # wxGlade: TerminalFrame.<event_handler>
     """
     Show the port settings dialog. The reader thread is stopped for the
     settings change.
     """
     if event is not None:  # will be none when called on startup
         self.StopThread()
         self.serial.close()
     ok = False
     while not ok:
         with wxSerialConfigDialog.SerialConfigDialog(
                 self,
                 -1,
                 "",
                 show=wxSerialConfigDialog.SHOW_BAUDRATE
                 | wxSerialConfigDialog.SHOW_FORMAT
                 | wxSerialConfigDialog.SHOW_FLOW,
                 serial=self.serial) as dialog_serial_cfg:
             dialog_serial_cfg.CenterOnParent()
             result = dialog_serial_cfg.ShowModal()
         # open port if not called on startup, open it on startup and OK too
         if result == wx.ID_OK or event is not None:
             try:
                 self.serial.open()
             except serial.SerialException as e:
                 with wx.MessageDialog(self, str(e), "Serial Port Error",
                                       wx.OK | wx.ICON_ERROR) as dlg:
                     dlg.ShowModal()
             else:
                 self.StartThread()
                 self.SetTitle(
                     "Walnut Actuator DEMO GUI on {} [{},{},{},{}{}{}]".
                     format(
                         self.serial.portstr,
                         self.serial.baudrate,
                         self.serial.bytesize,
                         self.serial.parity,
                         self.serial.stopbits,
                         ' RTS/CTS' if self.serial.rtscts else '',
                         ' Xon/Xoff' if self.serial.xonxoff else '',
                     ))
                 ok = True
         else:
             # on startup, dialog aborted
             self.alive.clear()
             ok = True
Ejemplo n.º 5
0
 def OnPortSettings(self, event=None):
     """Show the portsettings dialog. The reader thread is stopped for the
        settings change."""
     if event is not None:  #will be none when called on startup
         self.StopThread()
         self.serial.close()
     ok = False
     while not ok:
         dialog_serial_cfg = wxSerialConfigDialog.SerialConfigDialog(
             None,
             -1,
             "",
             show=wxSerialConfigDialog.SHOW_BAUDRATE
             | wxSerialConfigDialog.SHOW_FORMAT
             | wxSerialConfigDialog.SHOW_FLOW,
             serial=self.serial)
         result = dialog_serial_cfg.ShowModal()
         dialog_serial_cfg.Destroy()
         #open port if not called on startup, open it on startup and OK too
         if result == wx.ID_OK or event is not None:
             try:
                 self.serial.open()
             except serial.SerialException, e:
                 dlg = wx.MessageDialog(None, str(e), "Serial Port Error",
                                        wx.OK | wx.ICON_ERROR)
                 dlg.ShowModal()
                 dlg.Destroy()
             else:
                 self.StartThread()
                 self.SetTitle("Serial Terminal on %s [%s, %s%s%s%s%s]" % (
                     self.serial.portstr,
                     self.serial.baudrate,
                     self.serial.bytesize,
                     self.serial.parity,
                     self.serial.stopbits,
                     self.serial.rtscts and ' RTS/CTS' or '',
                     self.serial.xonxoff and ' Xon/Xoff' or '',
                 ))
                 ok = True
         else:
             #on startup, dialog aborted
             self.alive.clear()
             ok = True