Teacup_Firmware/configtool/communicationspage.py

66 lines
1.8 KiB
Python

import wx
from configtool.page import Page
class CommunicationsPage(wx.Panel, Page):
def __init__(self, parent, nb, idPg, font):
wx.Panel.__init__(self, nb, wx.ID_ANY)
Page.__init__(self, font)
self.parent = parent
self.id = idPg
self.defaultBaud = "115200"
self.bauds = ["19200", "38400", "57600", "115200", "230400", "250000"]
self.labels = {
"XONXOFF": "XON/XOFF Flow Control",
"BAUD": "Baud Rate:",
"USB_SERIAL": "USB Serial",
}
sz = wx.GridBagSizer()
sz.Add((20, 40), pos=(0, 0))
k = "USB_SERIAL"
cb = self.addCheckBox(k, self.onUSBCheckBox)
sz.Add(cb, pos=(1, 1))
ch = self.addChoice(
"BAUD", self.bauds, self.bauds.index(self.defaultBaud), 80, self.onChoice
)
sz.Add(ch, pos=(1, 3))
cb = self.addCheckBox("XONXOFF", self.onCheckBox)
sz.Add(cb, pos=(3, 3))
sz.Add((100, 10), pos=(2, 2))
self.SetSizer(sz)
self.enableAll(False)
def onUSBCheckBox(self, evt):
self.assertModified(True)
f = not self.checkBoxes["USB_SERIAL"].IsChecked()
self.checkBoxes["XONXOFF"].Enable(f)
self.choices["BAUD"].Enable(f)
evt.Skip()
def insertValues(self, cfgValues):
Page.insertValues(self, cfgValues)
k = "BAUD"
self.setChoice(k, cfgValues, self.defaultBaud)
if self.checkBoxes["USB_SERIAL"].IsChecked():
self.checkBoxes["XONXOFF"].Enable(False)
self.choices["BAUD"].Enable(False)
def getValues(self):
result = Page.getValues(self)
if result["USB_SERIAL"]:
result["BAUD"] = result["BAUD"][0], False
result["XONXOFF"] = False
return result