def __init__(self, avr): # firmware = avr.firmware cycle_measure_time = 1 self.speed = 0 self.start = pygame.time.get_ticks() self.firmware_time = '??:??:??' self.avr = avr self.reload() def avr_state(): try: return avr.states[avr.state] except: return str(avr.state) CompositeGame.__init__(self, [ TextGame((lambda: "mcu=%s" % avr.mcu)), TextGame((lambda: "f_cpu=%s" % format_freq(avr.f_cpu))), TextGame((lambda: "%s (%s)" % (avr.firmware.filename.name, self.firmware_time))), TextGame( (lambda: 'prog: %s bytes %s%% ' % (avr.avrsize.program_bytes, avr.avrsize.program_percentage))), TextGame((lambda: 'mem: %s bytes %s%%' % (avr.avrsize.data_bytes, avr.avrsize.data_percentage))), TextGame((lambda: "vcc=%sV avcc=%sV" % (avr.vcc, avr.avcc))), TextGame((lambda: "pc=%8d" % avr.pc)), TextGame((lambda: "state=%s" % avr_state())), TextGame((lambda: "cycle= %9d" % (avr.cycle))), TextGame((lambda: "mcu time=%s us" % str(1000000 * avr.cycle / avr. f_cpu).rjust(10))), TextGame((lambda: "real time=%s s" % str( (pygame.time.get_ticks() - self.start) / 1000).rjust(3))), TextGame((lambda: "real speed= %fx" % (self.speed))), ], align=1), def target(): c_old = 0 t_old = 0 while not self._stop_thread: c = avr.cycle t = pygame.time.get_ticks() c_diff = c - c_old t_diff = t - t_old c_old = c t_old = t if t_diff: self.speed = 1000.0 * c_diff / t_diff / avr.f_cpu time.sleep(cycle_measure_time) self._thread = threading.Thread(target=target) # self._thread.daemon = 1 self._stop_thread = False self._thread.start()
def __init__(self, state_func, disp_size=None, labels=None, align=0, size='auto'): if disp_size is None and labels is None: raise ValueError('disp_size is None and labels is None') if disp_size is None: disp_size = len(labels) self.disp_size = disp_size self.leds = [] self.state_func = state_func for i in xrange(self.disp_size): s = None if labels: if i < len(labels): s = labels[i] led = LedGame(state_func=self._get_single_state_func(i), label=s) self.leds += [led] CompositeGame.__init__(self, self.leds, align=align, size=size)
def __init__(self, avr): # firmware = avr.firmware cycle_measure_time = 1 self.speed = 0 self.start = pygame.time.get_ticks() self.firmware_time = '??:??:??' self.avr = avr self.reload() def avr_state(): try: return avr.states[avr.state] except: return str(avr.state) CompositeGame.__init__(self, [ TextGame((lambda: "mcu=%s" % avr.mcu)), TextGame((lambda: "f_cpu=%s" % format_freq(avr.f_cpu))), TextGame((lambda: "%s (%s)" % ( avr.firmware.filename.name, self.firmware_time))), TextGame((lambda: 'prog: %s bytes %s%% ' % (avr.avrsize.program_bytes, avr.avrsize.program_percentage))), TextGame((lambda: 'mem: %s bytes %s%%' % ( avr.avrsize.data_bytes, avr.avrsize.data_percentage))), TextGame((lambda: "vcc=%sV avcc=%sV" % (avr.vcc, avr.avcc))), TextGame((lambda: "pc=%8d" % avr.pc)), TextGame((lambda: "state=%s" % avr_state())), TextGame((lambda: "cycle= %9d" % (avr.cycle))), TextGame((lambda: "mcu time=%s us" % str( 1000000 * avr.cycle / avr.f_cpu).rjust(10))), TextGame((lambda: "real time=%s s" % str(( pygame.time.get_ticks() - self.start) / 1000).rjust(3))), TextGame( (lambda: "real speed= %fx" % (self.speed))), ], align=1), def target(): c_old = 0 t_old = 0 while not self._stop_thread: c = avr.cycle t = pygame.time.get_ticks() c_diff = c - c_old t_diff = t - t_old c_old = c t_old = t if t_diff: self.speed = 1000.0 * c_diff / t_diff / avr.f_cpu time.sleep(cycle_measure_time) self._thread = threading.Thread(target=target) # self._thread.daemon = 1 self._stop_thread = False self._thread.start()