Changeset 74 for remote_control/puzzlebox_brainstorms_client_interface.py
- Timestamp:
- 06/29/10 14:11:53 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
remote_control/puzzlebox_brainstorms_client_interface.py
r73 r74 15 15 import os, sys 16 16 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" 23 24 24 25 from PyQt4 import QtCore, QtGui, QtNetwork 26 #from PySide import QtCore, QtGui, QtNetwork 25 27 26 28 sys.path.append(os.path.join(os.getcwd(), "interface")) … … 30 32 31 33 import puzzlebox_brainstorms_configuration as configuration 32 import puzzlebox_brainstorms_client as client 34 import puzzlebox_brainstorms_network_client as brainstorms_client 35 import puzzlebox_brainstorms_network_client_thinkgear as thinkgear_client 33 36 #import puzzlebox_logger 34 37 … … 39 42 DEBUG = 1 40 43 41 BRAINSTORMS_SERVER_HOST = configuration.BRAINSTORMS_SERVER_HOST42 BRAINSTORMS_SERVER_PORT = configuration.BRAINSTORMS_SERVER_PORT43 44 THINKGEAR_SERVER_HOST = configuration.THINKGEAR_SERVER_HOST45 THINKGEAR_SERVER_PORT = configuration.THINKGEAR_SERVER_PORT46 47 THINKGEAR_DELIMITER = configuration.THINKGEAR_DELIMITER48 49 THINKGEAR_CONFIGURATION_PARAMETERS = configuration.THINKGEAR_CONFIGURATION_PARAMETERS50 51 44 THINKGEAR_POWER_THRESHOLDS = configuration.THINKGEAR_POWER_THRESHOLDS 52 45 … … 57 50 ##################################################################### 58 51 59 class puzzlebox_brainstorms_client_interface( \ 60 QtGui.QWidget, Ui_Form, \ 61 client.puzzlebox_brainstorms_client): 52 class puzzlebox_brainstorms_client_interface(QtGui.QWidget, Ui_Form): 62 53 63 54 def __init__(self, log, DEBUG=DEBUG, parent = None): … … 70 61 71 62 self.configureSettings() 63 self.configureNetwork() 72 64 self.connectWidgets() 73 self.configureNetwork()74 65 75 66 … … 131 122 ################################################################## 132 123 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 133 135 def connectWidgets(self): 134 136 … … 171 173 ################################################################## 172 174 173 def configureNetwork(self):174 175 #self.blockSize = 0176 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.thinkgearClientTcpSocket200 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 data212 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 pass235 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 255 175 def turnLeft(self): 256 self. sendCommand('turn_left', self.brainstormsClientTcpSocket)176 self.brainstormsClient.sendCommand('turn_left') 257 177 258 178 def driveForward(self): 259 self. sendCommand('drive_forward', self.brainstormsClientTcpSocket)179 self.brainstormsClient.sendCommand('drive_forward') 260 180 261 181 def turnRight(self): 262 self. sendCommand('turn_right', self.brainstormsClientTcpSocket)182 self.brainstormsClient.sendCommand('turn_right') 263 183 264 184 def turnLeftInReverse(self): 265 self. sendCommand('turn_left_in_reverse', self.brainstormsClientTcpSocket)185 self.brainstormsClient.sendCommand('turn_left_in_reverse') 266 186 267 187 def driveReverse(self): 268 self. sendCommand('drive_reverse', self.brainstormsClientTcpSocket)188 self.brainstormsClient.sendCommand('drive_reverse') 269 189 270 190 def turnRightInReverse(self): 271 self. sendCommand('turn_right_in_reverse', self.brainstormsClientTcpSocket)191 self.brainstormsClient.sendCommand('turn_right_in_reverse') 272 192 273 193 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') 294 195 295 196
Note: See TracChangeset
for help on using the changeset viewer.