예제 #1
0
    def __fetch_data(self, dt):
        cmd = 'wpa_cli status | egrep "(wpa_state|id_str|ip_address)"'
        proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True)
        output = proc.communicate()[0]
        entries = {}
        for line in output.splitlines():
            line = line.strip()
            if '=' in line:
                (key, value) = line.split('=')
                entries[key] = value

        self.state = entries.get('wpa_state', 'DISCONNECTED')
        self.ip_address = entries.get('ip_address', '')
        self.id_str = entries.get('id_str', '')

        connected = (self.state == 'COMPLETED' and self.ip_address != '')
        if connected != self.connected:
            self.connected = connected
            if self.connected:
                try:
                    player_id = int(self.id_str)
                    self.player = PlayerData.get_player_by_id(player_id)
                except Exception, e:
                    print e
                    self.player = None
            else:
                self.player = None

            self.say_connection_status()

            # notify all registered clients
            for cb_function in self.callbacks:
                cb_function(self.get_data())
예제 #2
0
 def __handle_rfid(self, rfid):
     self.current_rfid = rfid
     SoundManager.play(Trigger.RFID)
     # RFID --> player ID
     player_id = PlayerData.get_player_by_rfid(rfid)
     # player ID --> player dict
     player = PlayerData.get_player_by_id(player_id)
     if player:
         time.sleep(0.5)
         self.current_player = player
     else:
         self.current_player = {}
예제 #3
0
 def __handle_rfid(self, rfid):
     # RFID --> player ID
     player_id = PlayerData.get_player_by_rfid(rfid)
     # player ID --> player dict
     player = PlayerData.get_player_by_id(player_id)
     Logger.info('ScoreTracker: RFID: {0} - ID: {1} - Player: {2}'.format(rfid, player_id, player))
     # player does not exist
     if player == None:
         self.denied()
     # player does exist
     else:
         if self.dropdown_player:
             self.dropdown_player.dismiss()
         self.set_player(player)