class SettingContents(object): """ Defines common functionality of classes to "own" contents of GridSizer set up to display basic settings of the XBee device. """ TIMEOUT = 2 # seconds "Timeout for serial port reads" def __init__(self, names, labels, entries, baud_rate): """ @param names: Names for the settings displayed (any of the ones defined in settings module) @type: string iterable @param labels: Widgets to display labels for fields @type labels: iterable of Gtk.Label or equivalent @param entries: Widgets for entry and display of setting value @type entries: iterable of Gtk.Entry or equivalent @param baud_rate: baud rate for Serial port @type baud_rate: integer in Serial.BAUDRATES """ # print(names) self.settings = Settings(names) self.baud_rate = baud_rate self.stg_lbls = labels """Gtk.Label objects for page, indexed by label's text.""" self.stg_entries = entries """Gtk.Entry objects for page, indexed by label's text.""" self.current_port = None self.xb_radio = None def _set_device(self, device_name): "Binds this object to device, allowing it to display/edit settings for that device." # args to serial # port = None, # number of device, numbering starts at # # zero. if everything fails, the user # # can specify a device string, note # # that this isn't portable anymore # # port will be opened if one is specified # baudrate=9600, # baud rate # bytesize=EIGHTBITS, # number of data bits # parity=PARITY_NONE, # enable parity checking # stopbits=STOPBITS_ONE, # number of stop bits # timeout=None, # set a timeout value, None to wait forever # xonxoff=False, # enable software flow control # rtscts=False, # enable RTS/CTS flow control # writeTimeout=None, # set a timeout for writes # dsrdtr=False, # None: use rtscts setting, dsrdtr # #override if True or False # interCharTimeout=None # Inter-character timeout, None to disable self.current_port = Serial(port=device_name, baudrate=self.baud_rate, timeout=self.TIMEOUT) self.xb_radio = ZigBee(self.current_port, shorthand=True, escaped=False) assert self.xb_radio self.settings.bind(self.xb_radio) def populate(self): "Read settings from device and save them." curr_vals = self.settings.read_all() for stg in self.settings: val = curr_vals[stg] self.stg_entries[stg].set_text(val)
def __init__(self, names, labels, entries, baud_rate): """ @param names: Names for the settings displayed (any of the ones defined in settings module) @type: string iterable @param labels: Widgets to display labels for fields @type labels: iterable of Gtk.Label or equivalent @param entries: Widgets for entry and display of setting value @type entries: iterable of Gtk.Entry or equivalent @param baud_rate: baud rate for Serial port @type baud_rate: integer in Serial.BAUDRATES """ # print(names) self.settings = Settings(names) self.baud_rate = baud_rate self.stg_lbls = labels """Gtk.Label objects for page, indexed by label's text.""" self.stg_entries = entries """Gtk.Entry objects for page, indexed by label's text.""" self.current_port = None self.xb_radio = None