Ignore:
Timestamp:
06/29/10 15:12:45 (11 years ago)
Author:
sc
Message:

network_client_thinkgear:

  • ThinkGear? authorization support added
  • correct KeyboardInterrupt? handling
  • timeouts applied to socket communications
  • command line support added

network_client:

  • correct KeyboardInterrupt? handling
  • timeouts applied to socket communications
  • command line support added
File:
1 edited

Legend:

Unmodified
Added
Removed
  • remote_control/puzzlebox_brainstorms_network_client.py

    r74 r75  
    1414 
    1515import os, sys 
     16import signal 
    1617 
    1718from PyQt4 import QtCore, QtGui, QtNetwork 
     
    3132SERVER_PORT = configuration.BRAINSTORMS_SERVER_PORT 
    3233 
     34CLIENT_NO_REPLY_WAIT = configuration.CLIENT_NO_REPLY_WAIT * 1000 
     35 
    3336DELIMITER = configuration.BRAINSTORMS_DELIMITER 
     37 
     38NXT_DEFAULT_RC_COMMAND = configuration.NXT_DEFAULT_RC_COMMAND 
    3439 
    3540##################################################################### 
     
    6974        ################################################################## 
    7075         
    71         def printReply(self, reply=None): 
     76        def printReply(self): 
    7277                 
    7378                socket_buffer = self.socket.readAll() 
     
    135140                data = json.dumps(command) 
    136141                 
    137                 if self.socket.waitForConnected(3000): 
     142                if self.socket.waitForConnected(CLIENT_NO_REPLY_WAIT): 
    138143                        self.socket.write(data) 
    139144 
     
    143148##################################################################### 
    144149 
    145 #class puzzlebox_brainstorms_network_client_command_line(puzzlebox_brainstorms_client): 
    146          
    147         #def __init__(self, log, \ 
    148                           #command_parameters, \ 
    149                           #server_host=SERVER_HOST, \ 
    150                           #server_port=SERVER_PORT, \ 
    151                           #DEBUG=DEBUG): 
    152                  
    153                 #self.log = log 
    154                 #self.DEBUG=DEBUG 
    155                  
    156                 #self.command_parameters = command_parameters 
    157                 #self.server_host = server_host 
    158                 #self.server_port = server_port 
    159                 #self.max_connection_attempts = MAX_CONNECTION_ATTEMPTS 
    160          
    161          
    162         ################################################################### 
    163          
    164         #def execute_command_line(self): 
    165                  
    166                 #(command) = self.parse_command_line(self.command_parameters) 
    167                  
    168                 #d = self.send_command(command) 
    169                 #d.addCallback(self.print_response_and_stop) 
    170          
    171          
    172         ################################################################### 
    173          
    174         #def print_response_and_stop(self, response): 
    175                  
    176                 #if self.DEBUG: 
    177                         #print "---> [Client] Server Response:", 
    178                         #print response 
    179                  
    180                 #try: 
    181                         #reactor.stop() 
    182                 #except: 
    183                         #print "ERROR: Can't stop reactor that isn't running." 
    184          
    185          
    186         ################################################################### 
    187          
    188         #def parse_command_line(self, command_parameters): 
    189                  
    190                 #try: 
    191                         #command = command_parameters[0] 
    192                 #except: 
    193                         #command = None 
    194                  
    195                  
    196                 #return(command) 
     150class puzzlebox_brainstorms_network_client_command_line( \ 
     151              puzzlebox_brainstorms_network_client): 
     152         
     153        def __init__(self, log, \ 
     154                          command_parameters, \ 
     155                          server_host=SERVER_HOST, \ 
     156                          server_port=SERVER_PORT, \ 
     157                          DEBUG=DEBUG): 
     158                 
     159                self.log = log 
     160                self.DEBUG = DEBUG 
     161                self.parent = None 
     162                 
     163                self.command_parameters = command_parameters 
     164                self.server_host = server_host 
     165                self.server_port = server_port 
     166                 
     167                self.configureNetwork() 
     168                 
     169                self.execute_command_line() 
     170         
     171         
     172        ################################################################## 
     173         
     174        def execute_command_line(self): 
     175                 
     176                (command) = self.parse_command_line(self.command_parameters) 
     177                 
     178                if (command != None): 
     179                 
     180                        self.sendCommand(command) 
     181                 
     182                        self.socket.waitForReadyRead(CLIENT_NO_REPLY_WAIT) 
     183         
     184         
     185        ################################################################## 
     186         
     187        def parse_command_line(self, command_parameters): 
     188                 
     189                try: 
     190                        command = command_parameters[0] 
     191                except: 
     192                        command = NXT_DEFAULT_RC_COMMAND 
     193                 
     194                 
     195                return(command) 
    197196 
    198197 
     
    202201 
    203202if __name__ == '__main__': 
     203         
     204        # Perform correct KeyboardInterrupt handling 
     205        signal.signal(signal.SIGINT, signal.SIG_DFL) 
    204206         
    205207        #log = puzzlebox_logger.puzzlebox_logger(logfile='client') 
     
    210212        #log.info("Command parameters: %s" % command_parameters) 
    211213         
    212         #client = puzzlebox_brainstorms_client_twisted_command_line(log, \ 
    213                                                            #command_parameters, \ 
    214                                                            #server_host=SERVER_HOST, \ 
    215                                                            #server_port=SERVER_PORT, \ 
    216                                                            #DEBUG=DEBUG) 
    217          
    218         #reactor.callWhenRunning(client.execute_command_line) 
    219         #reactor.run() 
    220  
     214        client = puzzlebox_brainstorms_network_client_command_line(log, \ 
     215                    command_parameters, \ 
     216                    server_host=SERVER_HOST, \ 
     217                    server_port=SERVER_PORT, \ 
     218                    DEBUG=DEBUG) 
     219 
Note: See TracChangeset for help on using the changeset viewer.