Changeset 12


Ignore:
Timestamp:
02/01/10 20:23:05 (11 years ago)
Author:
sc
Message:

rc:

  • failed NXT connection handling
  • drive_reverse command added

server:

  • improved connection handling

configuration:

  • os module now imported

client:

  • drive_reverse command added

client_interface:

  • keyboard command support added
Location:
rc
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • rc/puzzlebox_brainstorms_client.py

    r11 r12  
    2626# Globals 
    2727##################################################################### 
     28 
     29DEBUG = 1 
    2830 
    2931SERVER_HOST = configuration.SERVER_HOST 
     
    231233class puzzlebox_brainstorms_client_command_line(puzzlebox_brainstorms_client): 
    232234         
    233         def __init__(self, log, command_parameters, SERVER_HOST, SERVER_PORT): 
     235        def __init__(self, log, \ 
     236                          command_parameters, \ 
     237                          server_host=SERVER_HOST, \ 
     238                          server_port=SERVER_PORT, \ 
     239                          DEBUG=DEBUG): 
    234240                 
    235241                self.log = log 
     242                self.DEBUG=DEBUG 
     243                 
    236244                self.command_parameters = command_parameters 
    237245                self.hostname = SERVER_HOST 
     
    276284                elif (command_parameters[0] == 'drive_forward'): 
    277285                        command = 'drive_forward' 
    278                 elif (command_parameters[0] == 'turn_in_reverse'): 
    279                         command = 'turn_in_reverse' 
     286                elif (command_parameters[0] == 'drive_reverse'): 
     287                        command = 'drive_forward' 
    280288                elif (command_parameters[0] == 'turn_left'): 
    281289                        command = 'turn_left' 
    282290                elif (command_parameters[0] == 'turn_right'): 
    283291                        command = 'turn_right' 
     292                elif (command_parameters[0] == 'turn_in_reverse'): 
     293                        command = 'turn_in_reverse' 
    284294                 
    285295                 
     
    346356        client = puzzlebox_brainstorms_client_command_line(log, \ 
    347357                                                           command_parameters, \ 
    348                                                            SERVER_HOST, \ 
    349                                                            SERVER_PORT) 
     358                                                           server_host=SERVER_HOST, \ 
     359                                                           server_port=SERVER_PORT, \ 
     360                                                           DEBUG=DEBUG) 
    350361        reactor.callWhenRunning(client.execute_command_line) 
    351362        reactor.run() 
  • rc/puzzlebox_brainstorms_client_interface.py

    r11 r12  
    1616 
    1717import os, sys 
     18 
     19import pygame 
     20#import pygame.font 
     21import pygame.image 
     22import pygame.locals 
     23 
    1824import puzzlebox_brainstorms_configuration as configuration 
     25import puzzlebox_brainstorms_client 
    1926#import puzzlebox_logger 
    2027 
     
    2431 
    2532DEBUG = 1 
     33 
     34FLIP = 1 
    2635 
    2736SERVER_HOST = configuration.SERVER_HOST 
     
    3948##################################################################### 
    4049 
    41 class puzzlebox_brainstorms_client: 
     50class puzzlebox_brainstorms_client_interface: 
    4251         
    4352        def __init__(self, log, \ 
     
    5059         
    5160                self.log = log 
    52                 self.DEBUG = self.DEBUG 
     61                self.DEBUG = DEBUG 
    5362                 
    5463                self.display_window_x_coordinate = display_window_x_coordinate 
     
    7483                self.pygame.FLIP = FLIP 
    7584                 
    76                 self.draw_background() 
     85                #self.draw_background() 
    7786                 
    7887                #self.pointer = thinking_cap_pointer(self.pygame, \ 
     
    8695                #self.initialize_menu(menu_letter_tree) 
    8796                 
    88                 self.update_display() 
     97                #self.update_display() 
    8998         
    9099         
     
    92101         
    93102        def initialize_pygame(self): 
    94                  
    95                 import pygame 
    96                 import pygame.font 
    97                 import pygame.image 
    98                 import pygame.locals 
    99103                 
    100104                os.environ['SDL_VIDEO_WINDOW_POS'] = "%i,%i" % (self.display_window_x_coordinate, \ 
     
    141145        ################################################################## 
    142146         
     147        def send_commands_to_server(self, commands): 
     148         
     149                #client = \ 
     150                   #puzzlebox_brainstorms_client.puzzlebox_brainstorms_client_command_line( 
     151                         #self.log, \ 
     152                         #commands, \ 
     153                         #SERVER_HOST, \ 
     154                         #SERVER_PORT) 
     155                #puzzlebox_brainstorms_client.reactor.callWhenRunning(client.execute_command_line) 
     156                #puzzlebox_brainstorms_client.reactor.run() 
     157                 
     158                command = 'python puzzlebox_brainstorms_client.py' 
     159                 
     160                for each in commands: 
     161                        command = '%s %s' % (command, each) 
     162                 
     163                if self.DEBUG: 
     164                        print "executing: %s" % commands 
     165                 
     166                os.system(command) 
     167         
     168         
     169        ################################################################## 
     170         
    143171        def start(self): 
    144172                 
     
    189217                                        #if self.DEBUG > 1: 
    190218                                                #print ":%i" % icon.hits 
    191  
    192  
    193                         clock.tick(60) 
     219                         
     220                        commands = [] 
    194221                         
    195222                        for event in self.pygame.event.get(): 
    196223                                 
    197                                 if event.type in (self.pygame.locals.QUIT): 
     224                                if (event.type is pygame.locals.QUIT): 
    198225                                        sys.exit() 
    199226                                 
    200227                                 
    201                                 elif event.type in self.pygame.locals.KEYDOWN: 
     228                                elif (event.type == pygame.locals.KEYDOWN): 
    202229                                         
    203                                         print event 
     230                                        print event.dict 
     231                                         
     232                                        if 'key' in event.dict.keys(): 
     233                                                 
     234                                                if (event.dict['key'] == pygame.K_ESCAPE): 
     235                                                        sys.exit() 
     236                                                 
     237                                                elif ((event.dict['key'] == pygame.K_UP) or \ 
     238                                                           (event.dict['key'] == pygame.K_w)): 
     239                                                        commands.append('drive_forward') 
     240                                                 
     241                                                elif ((event.dict['key'] == pygame.K_DOWN) or \ 
     242                                                           (event.dict['key'] == pygame.K_s)): 
     243                                                        commands.append('drive_reverse') 
     244                                                 
     245                                                elif ((event.dict['key'] == pygame.K_LEFT) or \ 
     246                                                           (event.dict['key'] == pygame.K_a)): 
     247                                                        commands.append('turn_left') 
     248                                                 
     249                                                elif ((event.dict['key'] == pygame.K_RIGHT) or \ 
     250                                                           (event.dict['key'] == pygame.K_d)): 
     251                                                        commands.append('turn_right') 
     252                                                 
     253                                                elif event.dict['key'] == 'c': 
     254                                                        commands.append('turn_in_reverse') 
     255                         
     256                         
     257                        if commands != []: 
     258                                self.send_commands_to_server(commands) 
     259                         
     260                        clock.tick(60) 
    204261 
    205262 
  • rc/puzzlebox_brainstorms_configuration.py

    r11 r12  
    1414# 
    1515##################################################################### 
     16 
     17import os 
    1618 
    1719##################################################################### 
     
    8486 
    8587##################################################################### 
    86 # Client configuration 
     88# Client Interface configuration 
    8789##################################################################### 
    8890 
  • rc/puzzlebox_brainstorms_rc.py

    r8 r12  
    4949                self.command = command 
    5050                 
    51                 self.connection = self.connect_to_nxt(self.device) 
     51                try: 
     52                        self.connection = self.connect_to_nxt(self.device) 
     53                except: 
     54                        if self.DEBUG: 
     55                                print "--> [RC] Connection failed to NXT device [%s]" % self.device 
     56                        sys.exit() 
    5257         
    5358         
     
    6065                if self.DEBUG > 1: 
    6166                        battery_voltage = self.get_battery_voltage(connection) 
    62                         print "Battery voltage:", 
     67                        print "--> [RC] Battery voltage:", 
    6368                        print battery_voltage 
    6469                 
     
    239244                 
    240245                self.drive_forward(self.connection, power=80, duration=1) 
     246                 
     247                self.drive_reverse(self.connection, power=80, duration=1) 
    241248         
    242249         
     
    254261                        self.drive_reverse(self.connection) 
    255262                 
     263                elif (command == 'turn_left'): 
     264                        self.turn_left(self.connection) 
     265                 
     266                elif (command == 'turn_right'): 
     267                        self.turn_right(self.connection) 
     268                 
    256269                elif (command == 'turn_in_reverse'): 
    257270                        self.turn_in_reverse(self.connection) 
    258                  
    259                 elif (command == 'turn_left'): 
    260                         self.turn_left(self.connection) 
    261                  
    262                 elif (command == 'turn_right'): 
    263                         self.turn_right(self.connection) 
    264271         
    265272         
  • rc/puzzlebox_brainstorms_server.py

    r11 r12  
    7979                                os.system(command) 
    8080                         
     81                         
    8182                        elif instruction['command'] == 'drive_reverse': 
    8283                                command = 'python puzzlebox_brainstorms_rc.py --command=drive_reverse' 
     
    8485                         
    8586                         
     87                        elif instruction['command'] == 'turn_left': 
     88                                command = 'python puzzlebox_brainstorms_rc.py --command=turn_left' 
     89                                os.system(command) 
     90                         
     91                         
     92                        elif instruction['command'] == 'turn_right': 
     93                                command = 'python puzzlebox_brainstorms_rc.py --command=turn_right' 
     94                                os.system(command) 
     95                         
     96                         
    8697                        elif instruction['command'] == 'turn_in_reverse': 
    8798                                command = 'python puzzlebox_brainstorms_rc.py --command=turn_in_reverse' 
    88                                 os.system(command) 
    89                          
    90                          
    91                         elif instruction['command'] == 'turn_left': 
    92                                 command = 'python puzzlebox_brainstorms_rc.py --command=turn_left' 
    93                                 os.system(command) 
    94                          
    95                          
    96                         elif instruction['command'] == 'turn_right': 
    97                                 command = 'python puzzlebox_brainstorms_rc.py --command=turn_right' 
    9899                                os.system(command) 
    99100                         
     
    123124                         
    124125                        if self.DEBUG: 
    125                                 print "Connection lost with no instruction" 
     126                                print "--> [Server] Connection lost with no instruction" 
    126127                 
    127128                 
     
    130131                        #self.log.debug("Connection lost with no instruction") 
    131132                         
    132                         if self.DEBUG: 
    133                                 print "Connection lost instruction" 
     133                        #if self.DEBUG: 
     134                                #print "--> [Server] Connection lost" 
    134135 
    135136 
Note: See TracChangeset for help on using the changeset viewer.