Ignore:
Timestamp:
06/29/10 14:11:53 (11 years ago)
Author:
sc
Message:

brainstorms:

  • continued file and class renaming in response to conversions

from PyGame/Twisted? frameworks to Qt

network_client:

  • initial checkin of Qt based Brainstorms client

network_client_thinkgear:

File:
1 edited

Legend:

Unmodified
Added
Removed
  • remote_control/puzzlebox_brainstorms_client_interface.py

    r73 r74  
    1515import os, sys 
    1616 
    17 try: 
    18         import PySide as PyQT4 
    19 except: 
    20         print "Using PyQt4 module" 
    21 else: 
    22         print "Using PySide module" 
     17#try: 
     18        #from PySide import QtCore, QtGui, QtNetwork 
     19#except: 
     20        #print "Using PyQt4 module" 
     21        #from PyQt4 import QtCore, QtGui, QtNetwork 
     22#else: 
     23        #print "Using PySide module" 
    2324 
    2425from PyQt4 import QtCore, QtGui, QtNetwork 
     26#from PySide import QtCore, QtGui, QtNetwork 
    2527 
    2628sys.path.append(os.path.join(os.getcwd(), "interface")) 
     
    3032 
    3133import puzzlebox_brainstorms_configuration as configuration 
    32 import puzzlebox_brainstorms_client as client 
     34import puzzlebox_brainstorms_network_client as brainstorms_client 
     35import puzzlebox_brainstorms_network_client_thinkgear as thinkgear_client 
    3336#import puzzlebox_logger 
    3437 
     
    3942DEBUG = 1 
    4043 
    41 BRAINSTORMS_SERVER_HOST = configuration.BRAINSTORMS_SERVER_HOST 
    42 BRAINSTORMS_SERVER_PORT = configuration.BRAINSTORMS_SERVER_PORT 
    43  
    44 THINKGEAR_SERVER_HOST = configuration.THINKGEAR_SERVER_HOST 
    45 THINKGEAR_SERVER_PORT = configuration.THINKGEAR_SERVER_PORT 
    46  
    47 THINKGEAR_DELIMITER = configuration.THINKGEAR_DELIMITER 
    48  
    49 THINKGEAR_CONFIGURATION_PARAMETERS = configuration.THINKGEAR_CONFIGURATION_PARAMETERS 
    50  
    5144THINKGEAR_POWER_THRESHOLDS = configuration.THINKGEAR_POWER_THRESHOLDS 
    5245 
     
    5750##################################################################### 
    5851 
    59 class puzzlebox_brainstorms_client_interface( \ 
    60               QtGui.QWidget, Ui_Form, \ 
    61               client.puzzlebox_brainstorms_client): 
     52class puzzlebox_brainstorms_client_interface(QtGui.QWidget, Ui_Form): 
    6253         
    6354        def __init__(self, log, DEBUG=DEBUG, parent = None): 
     
    7061                 
    7162                self.configureSettings() 
     63                self.configureNetwork() 
    7264                self.connectWidgets() 
    73                 self.configureNetwork() 
    7465         
    7566         
     
    131122        ################################################################## 
    132123         
     124        def configureNetwork(self): 
     125                 
     126                self.brainstormsClient = \ 
     127                   brainstorms_client.puzzlebox_brainstorms_network_client(self.log, parent=self) 
     128                 
     129                self.thinkgearClient = \ 
     130                   thinkgear_client.puzzlebox_brainstorms_network_client_thinkgear(self.log, parent=self) 
     131         
     132         
     133        ################################################################## 
     134         
    133135        def connectWidgets(self): 
    134136                 
     
    171173        ################################################################## 
    172174         
    173         def configureNetwork(self): 
    174                  
    175                 #self.blockSize = 0 
    176                 self.brainstormsClientTcpSocket = QtNetwork.QTcpSocket(self) 
    177                 self.brainstormsClientTcpSocket.name = 'Brainstorms Server' 
    178                  
    179                 #self.brainstormsClientTcpSocket.readyRead.connect(self.printReply) 
    180                 self.brainstormsClientTcpSocket.error.connect(self.displayError) 
    181                  
    182                  
    183                 self.thinkgearClientTcpSocket = QtNetwork.QTcpSocket(self) 
    184                 self.thinkgearClientTcpSocket.name = 'ThinkGear Server' 
    185                  
    186                 self.thinkgearClientTcpSocket.readyRead.connect(self.printReply) 
    187                 self.thinkgearClientTcpSocket.error.connect(self.displayError) 
    188                  
    189                 self.sendCommand(THINKGEAR_CONFIGURATION_PARAMETERS, \ 
    190                                  self.thinkgearClientTcpSocket, \ 
    191                                  THINKGEAR_SERVER_HOST, \ 
    192                                  THINKGEAR_SERVER_PORT) 
    193          
    194          
    195         ################################################################## 
    196          
    197         def printReply(self, reply=None): 
    198                  
    199                 socket = self.thinkgearClientTcpSocket 
    200                  
    201                 socket_buffer = socket.readAll() 
    202                  
    203                 for packet in socket_buffer.split(THINKGEAR_DELIMITER): 
    204                          
    205                         if packet != '': 
    206                                  
    207                                 data = json.loads(packet.data()) 
    208                                  
    209                                 if self.DEBUG: 
    210                                         print "<-- [%s] Received:" % socket.name, 
    211                                         print data 
    212                                  
    213                                 self.processPacketThinkGear(data) 
    214          
    215          
    216         ################################################################## 
    217          
    218         def processPacketThinkGear(self, packet): 
    219                  
    220                 if ('eSense' in packet.keys()): 
    221                                  
    222                         if ('attention' in packet['eSense'].keys()): 
    223                                 self.progressBarConcentration.setValue(packet['eSense']['attention']) 
    224                          
    225                         if ('meditation' in packet['eSense'].keys()): 
    226                                 self.progressBarRelaxation.setValue(packet['eSense']['meditation'])                      
    227          
    228          
    229         ################################################################## 
    230          
    231         def displayError(self, socketError): 
    232                  
    233                 if socketError == QtNetwork.QAbstractSocket.RemoteHostClosedError: 
    234                         pass 
    235                  
    236                 elif socketError == QtNetwork.QAbstractSocket.HostNotFoundError: 
    237                         QtGui.QMessageBox.information(self, "Puzzlebox Brainstorms Client", 
    238                                         "The server host was not found. Please check the host name and " 
    239                                         "port settings.") 
    240                  
    241                 elif socketError == QtNetwork.QAbstractSocket.ConnectionRefusedError: 
    242                         QtGui.QMessageBox.information(self, "Puzzlebox Brainstorms Client", 
    243                                         "The server connection was refused by the peer. Make sure the " 
    244                                         "server is running, and check that the host name " 
    245                                         "and port settings are correct.") 
    246                  
    247                 else: 
    248                         QtGui.QMessageBox.information(self, "Puzzlebox Brainstorms Client", 
    249                                         "The following error occurred: %s." % \ 
    250                                            self.brainstormsClientTcpSocket.errorString()) 
    251          
    252          
    253         ################################################################## 
    254          
    255175        def turnLeft(self): 
    256                 self.sendCommand('turn_left', self.brainstormsClientTcpSocket) 
     176                self.brainstormsClient.sendCommand('turn_left') 
    257177         
    258178        def driveForward(self): 
    259                 self.sendCommand('drive_forward', self.brainstormsClientTcpSocket) 
     179                self.brainstormsClient.sendCommand('drive_forward') 
    260180         
    261181        def turnRight(self): 
    262                 self.sendCommand('turn_right', self.brainstormsClientTcpSocket) 
     182                self.brainstormsClient.sendCommand('turn_right') 
    263183         
    264184        def turnLeftInReverse(self): 
    265                 self.sendCommand('turn_left_in_reverse', self.brainstormsClientTcpSocket) 
     185                self.brainstormsClient.sendCommand('turn_left_in_reverse') 
    266186         
    267187        def driveReverse(self): 
    268                 self.sendCommand('drive_reverse', self.brainstormsClientTcpSocket) 
     188                self.brainstormsClient.sendCommand('drive_reverse') 
    269189         
    270190        def turnRightInReverse(self): 
    271                 self.sendCommand('turn_right_in_reverse', self.brainstormsClientTcpSocket) 
     191                self.brainstormsClient.sendCommand('turn_right_in_reverse') 
    272192         
    273193        def stopMotors(self): 
    274                 self.sendCommand('stop_motors', self.brainstormsClientTcpSocket) 
    275          
    276          
    277         ################################################################## 
    278          
    279         def sendCommand(self, \ 
    280                              command, \ 
    281                              socket, \ 
    282                              host=BRAINSTORMS_SERVER_HOST, \ 
    283                              port=BRAINSTORMS_SERVER_PORT): 
    284                  
    285                 if self.DEBUG: 
    286                         print "--> [%s] Sending:" % socket.name, 
    287                         print command 
    288                  
    289                 socket.abort() 
    290                 socket.connectToHost(host, port) 
    291                  
    292                 data = json.dumps(command) 
    293                 socket.write(data) 
     194                self.brainstormsClient.sendCommand('stop_motors') 
    294195         
    295196         
Note: See TracChangeset for help on using the changeset viewer.