Beispiel #1
0
class Pygps(QtGui.QWidget):
    '''PyGPS application by Semion Spivak and Boris Shterenberg'''
    def __init__(self, parent=None):

        QtGui.QWidget.__init__(self, parent)

        self.sysPath = os.path.join(sys.path[0], "")

        self.logging = True
        self.logFileName = self.sysPath + "_pygps.log"
        self.online = False

        self.maxZoom = 16

        self.setGeometry(0, 0, 512, 512)
        self.setWindowTitle('PyGps')
        self.deviceAddress = Bluetooth_Search(self)
        #render area
        self.renderArea = RenderArea(self)
        self.renderArea.move(0, 0)

        #label lat lon
        self.label_latlon = QtGui.QLabel(self)
        self.label_latlon.setMinimumSize(135, 45)
        self.label_latlon.move(0, 0)
        self.label_latlon.show()

        #zoom buttons
        self.zoomin_button = self.createButton("+", QtGui.QColor("white"),
                                               self.zoomIn)
        self.zoomout_button = self.createButton("-", QtGui.QColor("white"),
                                                self.zoomOut)

        #zoom panel - zoom buttons container
        self.zoom_panel = QtGui.QLabel(self)
        self.zoom_panel.setMinimumSize(40, 60)
        zoom_layout = QtGui.QVBoxLayout()
        zoom_layout.addWidget(self.zoomin_button)
        zoom_layout.addWidget(self.zoomout_button)
        self.zoom_panel.setLayout(zoom_layout)
        self.zoom_panel.move(0, 60)
        self.zoom_panel.show()

        self.settings_panel = QtGui.QLabel(self)
        self.settings_panel.setMinimumSize(40, 40)
        self.settings_panel.setAlignment(QtCore.Qt.AlignVCenter
                                         | QtCore.Qt.AlignCenter)
        self.settings_panel.setPixmap(
            QtGui.QPixmap("./32px-Crystal_Clear_action_configure.png"))
        size = self.geometry()
        self.settings_panel.move(size.width() - 40, 0)
        self.settings_panel.show()

        self.speed_panel = QtGui.QLabel(self)
        self.speed_panel.setMinimumSize(160, 35)
        self.speed_panel.setAlignment(QtCore.Qt.AlignVCenter
                                      | QtCore.Qt.AlignRight)
        #print self.speed_panel.alignment()
        self.speed_panel.setObjectName("speed")
        self.speed_panel.move(size.width() / 2 - 75, size.height() - 35)

        self.olddata = ""

        #add zoom buttons

        #assign slots

        #center the main window in the desktop
        self.center()

        if self.logging and self.online:
            self.logfh = open(self.logFileName, "w")

        if self.online:

            #TODO: make selection of BT devices
            self.fh = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
            #self.fh.setblocking(False)
            try:
                self.fh.connect((self.deviceAddress.deviceId,
                                 1))  #("00:0D:B5:31:58:58", 1))
                #assign socket notifier
                self.notifier = QtCore.QSocketNotifier(
                    self.fh.fileno(), QtCore.QSocketNotifier.Read)
                self.connect(self.notifier, QtCore.SIGNAL("activated(int)"),
                             self.readBTData)
            except bluetooth.btcommon.BluetoothError, ex:
                print "Error: %s" % ex
        else:
Beispiel #2
0
class Pygps(QtGui.QWidget):
    '''PyGPS application by Semion Spivak and Boris Shterenberg'''
    def __init__(self, parent = None):
        
        QtGui.QWidget.__init__(self, parent)
        
        self.sysPath = os.path.join(sys.path[0], "")
        
        self.logging = True
        self.logFileName = self.sysPath + "_pygps.log"
        self.online = False
        
        self.maxZoom = 16
        
        self.setGeometry(0, 0, 512, 512)
        self.setWindowTitle('PyGps')
        self.deviceAddress = Bluetooth_Search(self)
        #render area
        self.renderArea = RenderArea(self)
        self.renderArea.move(0,0)
        
        #label lat lon
        self.label_latlon = QtGui.QLabel(self)
        self.label_latlon.setMinimumSize(135, 45)
        self.label_latlon.move(0,0)
        self.label_latlon.show()
        
        #zoom buttons
        self.zoomin_button = self.createButton("+", QtGui.QColor("white"), self.zoomIn)       
        self.zoomout_button = self.createButton("-", QtGui.QColor("white"), self.zoomOut)
        
        #zoom panel - zoom buttons container
        self.zoom_panel = QtGui.QLabel(self)
        self.zoom_panel.setMinimumSize(40, 60)
        zoom_layout = QtGui.QVBoxLayout()        
        zoom_layout.addWidget(self.zoomin_button)
        zoom_layout.addWidget(self.zoomout_button)
        self.zoom_panel.setLayout(zoom_layout)
        self.zoom_panel.move(0,60)
        self.zoom_panel.show()
        
        self.settings_panel = QtGui.QLabel(self)
        self.settings_panel.setMinimumSize(40, 40)
        self.settings_panel.setAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignCenter)
        self.settings_panel.setPixmap(QtGui.QPixmap("./32px-Crystal_Clear_action_configure.png"))
        size =  self.geometry()
        self.settings_panel.move(size.width()-40, 0)
        self.settings_panel.show()
        
        self.speed_panel = QtGui.QLabel(self)
        self.speed_panel.setMinimumSize(160, 35)
        self.speed_panel.setAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignRight)
        #print self.speed_panel.alignment()
        self.speed_panel.setObjectName("speed")
        self.speed_panel.move(size.width()/2 - 75, size.height() - 35)

        
        
        
        self.olddata = ""
 
        #add zoom buttons
        
        #assign slots
        
        #center the main window in the desktop
        self.center()
        
        if self.logging and self.online:
            self.logfh = open(self.logFileName, "w")
        
        if self.online:
        
            #TODO: make selection of BT devices
            self.fh = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
            #self.fh.setblocking(False)
            try:
                self.fh.connect((self.deviceAddress.deviceId, 1)) #("00:0D:B5:31:58:58", 1))
                #assign socket notifier
                self.notifier = QtCore.QSocketNotifier(self.fh.fileno(), QtCore.QSocketNotifier.Read)
                self.connect(self.notifier, QtCore.SIGNAL("activated(int)"), self.readBTData)
            except bluetooth.btcommon.BluetoothError, ex:
                print "Error: %s" % ex
        else: