From 8caf5a9aec8c61e36da46113f43123fed711e099 Mon Sep 17 00:00:00 2001 From: Andy Spencer Date: Sun, 2 Feb 2014 00:54:53 +0000 Subject: [PATCH] Rename serial to device and clean up --- vis/config.py | 6 ++-- vis/device.py | 18 ++++++++++ vis/main.py | 8 ++--- vis/serial.py | 3 -- vis/settings.cfg | 3 +- vis/visual.py | 27 ++++++++++----- vis/visual.ui | 85 +++++++++++++++++++++++++++++++++--------------- vis/xively.py | 5 ++- 8 files changed, 109 insertions(+), 46 deletions(-) create mode 100644 vis/device.py delete mode 100644 vis/serial.py diff --git a/vis/config.py b/vis/config.py index b40d09b..c3ea321 100644 --- a/vis/config.py +++ b/vis/config.py @@ -6,8 +6,9 @@ class Config: defaults = { 'baudrate': '9600', - 'stopbits': '1', + 'parity': 'N', 'databits': '8', + 'stopbits': '1', 'username': '', 'password': '', 'apikey': '', @@ -25,8 +26,9 @@ class Config: self.parser.read(self.filename) self.baudrate = self.parser.getint('serial', 'baudrate') - self.stopbits = self.parser.getint('serial', 'stopbits') + self.parity = self.parser.get('serial', 'parity') self.databits = self.parser.getint('serial', 'databits') + self.stopbits = self.parser.getint('serial', 'stopbits') self.username = self.parser.get('xively', 'username') self.password = self.parser.get('xively', 'password') diff --git a/vis/device.py b/vis/device.py new file mode 100644 index 0000000..a205033 --- /dev/null +++ b/vis/device.py @@ -0,0 +1,18 @@ +from serial import Serial + +class Device: + # Attributes + port = "/dev/ttyACM0" + + # Constructors + def __init__(self, config): + self.config = config + + # Methods + def connect(self): + self.conn = Serial(self.port, \ + baudrate = self.config.baudrate, \ + parity = self.config.parity, \ + bytesize = self.config.databits, \ + stopbits = self.config.stopbits) + diff --git a/vis/main.py b/vis/main.py index 897a4f7..4f4fcd2 100755 --- a/vis/main.py +++ b/vis/main.py @@ -2,15 +2,15 @@ from config import Config from xively import Xively -from serial import Serial +from device import Device from visual import Visual class Main: def __init__(self): self.config = Config(); - self.xively = Xively(); - self.serial = Serial(); - self.visual = Visual(self.config); + self.device = Device(self.config); + self.xively = Xively(self.config); + self.visual = Visual(self.config, self.device, self.xively); def main(self): self.visual.run() diff --git a/vis/serial.py b/vis/serial.py deleted file mode 100644 index e1de341..0000000 --- a/vis/serial.py +++ /dev/null @@ -1,3 +0,0 @@ -class Serial: - def __init__(self): - pass diff --git a/vis/settings.cfg b/vis/settings.cfg index 2ce5b07..e83fece 100644 --- a/vis/settings.cfg +++ b/vis/settings.cfg @@ -1,7 +1,8 @@ [serial] buadrate = 9600 -stopbits = 1 +parity = N databits = 8 +stopbits = 1 [xively] username = andy diff --git a/vis/visual.py b/vis/visual.py index aed73ae..908304d 100644 --- a/vis/visual.py +++ b/vis/visual.py @@ -4,13 +4,16 @@ import pygtk import gtk class Visual: - def __init__(self, config): - self.builder = gtk.Builder() + def __init__(self, config, device, xively): + self.config = config + self.device = device + self.xively = xively + self.builder = gtk.Builder() + self.builder.add_from_file('visual.ui') self.builder.connect_signals(self) self.window = self.builder.get_object("window") self.settings = self.builder.get_object("settings") - self.config = config # Signal handlers def on_hide(self, win, *args): @@ -21,8 +24,12 @@ class Visual: self.settings.show() return True - def on_connect(self, win): - print "Unimplemented: on_connect" + def on_serial(self, win): + self.device.connect() + return True + + def on_xively(self, win): + self.xively.connect() return True def on_enable(self, _): @@ -43,12 +50,14 @@ class Visual: # Methods def load_config(self): # Serial settings - baud = self.builder.get_object("baudrate") - stopb = self.builder.get_object("stopbits") - datab = self.builder.get_object("databits") + baud = self.builder.get_object("baudrate") + parity = self.builder.get_object("parity") + datab = self.builder.get_object("databits") + stopb = self.builder.get_object("stopbits") baud.set_value(self.config.baudrate) - stopb.set_value(self.config.stopbits) + parity.set_text(self.config.parity) datab.set_value(self.config.databits) + stopb.set_value(self.config.stopbits) # Xively settings user = self.builder.get_object("username") diff --git a/vis/visual.ui b/vis/visual.ui index 6b6209f..e8cfec5 100644 --- a/vis/visual.ui +++ b/vis/visual.ui @@ -2,10 +2,20 @@ + + Serial + gtk-connect + + + + Settings + gtk-preferences + + Xively gtk-connect - + 100 @@ -42,23 +52,7 @@ 1 10 - - Settings - gtk-preferences - - - - Serial - gtk-connect - - - - 1 - 2 - 1 - 10 - False 5 @@ -114,7 +108,7 @@ True False - 3 + 4 2 20 @@ -137,8 +131,8 @@ Stop bits - 1 - 2 + 2 + 3 GTK_FILL GTK_FILL @@ -151,8 +145,8 @@ Data bits - 2 - 3 + 3 + 4 GTK_FILL GTK_FILL @@ -188,8 +182,8 @@ 1 2 - 1 - 2 + 2 + 3 GTK_FILL @@ -207,8 +201,41 @@ 1 2 - 2 - 3 + 3 + 4 + GTK_FILL + + + + + True + False + 0 + Parity + + + 1 + 2 + GTK_FILL + GTK_FILL + + + + + True + True + ● + True + False + False + True + True + + + 1 + 2 + 1 + 2 GTK_FILL @@ -373,6 +400,12 @@ close + + 1 + 2 + 1 + 10 + 100 1 diff --git a/vis/xively.py b/vis/xively.py index 15e536c..ae8d525 100644 --- a/vis/xively.py +++ b/vis/xively.py @@ -1,3 +1,6 @@ class Xively: - def __init__(self): + def __init__(self, config): + self.config = config + + def connect(self): pass -- 2.43.2