class PayloadDriver(object): def __init__(self): self.display = Display() self.add_vars() self.display.unlock() self.max_altitude = 0 self.__first_time = time.time() self.run() def add_vars(self): self.display.add_variable("Altitude (ft)", "nan / 0", "left") self.display.add_variable("Lat", "nan", "left") self.display.add_variable("Long", "nan", "left") self.display.add_variable("uT", "nan", "left") self.display.add_variable("vel (ft/s)", "nan", "right") self.display.add_variable("accel (ft/s)", "nan", "right") self.display.add_slider("sig lock", 0, 0, 7, "right") self.display.update_slider("sig lock", 3, "right") def run(self): i = 0 last_time = time.time() while 1: self.display.update_var("Altitude (ft)", str(i) + " / " + str(self.max_alt(i)), "left") self.display.update_var("Lat", str(random.randint(1, 1000) / 1000.0 * i), "left") self.display.update_var("Long", str(random.randint(1, 1000) / 1000.0 * i), "left") self.display.update_var("uT", self.up_time(), "left") self.display.update_var("vel (ft/s)", str(i * 2.5)) self.display.update_var("accel (ft/s)", str(i * 1.5)) i += 1 self.display.update() def max_alt(self, newmax): if newmax > self.max_altitude: self.max_altitude = newmax return self.max_altitude def up_time(self): self.uptime = time.time() - self.__first_time return str(int(self.uptime / 360)) + ":" + str(int( self.uptime / 60)) + ":" + str(int(self.uptime % 60)) def __check_lock(self): self.display.unlock()
def draw(self): Disp.add_label(self._name) Disp.add_slider('R', 12, 0, 255, Config.red(), 3, self._changed_r, self._focused) Disp.add_slider('G', 12, 0, 255, Config.green(), 3, self._changed_g, self._focused) Disp.add_slider('B', 12, 0, 255, Config.blue(), 3, self._changed_b, self._focused) Disp.add_slider('Brt', 12, 0, 100, Config.brightness(), 2, self._changed_brt, self._focused) Disp.add_slider('Wdt', 12, 0, LED_COUNT, Config.width(), 2, self._changed_wdt, self._focused) Disp.add_slider('Off', 12, -LED_COUNT // 2, LED_COUNT // 2, Config.offset(), 1, self._changed_off, self._focused) super(ManualRGB, self).draw()