Exemple #1
0
    def play(self, length, display_controller):
        if len(self.sequence) == 0:
            print("No sequence loaded! Cancel play")
            return

        if is_running_on_pi == False:
            return

        if display_controller is None:
            display_controller = DisplayController()

        self.strip.begin()
        self.start_time = time.time()
        end_time = length + self.start_time

        black = ImageLoader.black()
        # angle_offset_pixels = (int) (PHYSICAL_ANGLE_OFFSET * 360.0 / PIXELS_IN_CIRCLE)
        # print "offsting image by " + str(angle_offset_pixels)
        print("playing sequence for ", length, "seconds")

        current_image = self.sequence[0]
        counter = 0

        last_switch = time.time()
        diff = 0
        if is_running_on_pi:
            while end_time > display_controller.last_update:
                diff = diff + time.time() - last_switch
                last_switch = time.time()

                current_image = self.get_frame()
                display_controller.update()
                angle = display_controller.estimate_angle()

                self.strip.show(current_image.get_sample_by_angle(angle))
                time.sleep(0.0001)

        else:
            while end_time > timing["last_update"]:
                timing["last_update"] = time.time()

        self.stop()
Exemple #2
0
 def stop(self):
     self.strip.show(ImageLoader.black())
     self.strip.close()