|
3 | 3 | # SPDX-License-Identifier: Unlicense
|
4 | 4 |
|
5 | 5 | import time
|
6 |
| - |
| 6 | +import math |
7 | 7 | import bitmaptools
|
8 | 8 | import displayio
|
9 | 9 | import gifio
|
|
22 | 22 | last_frame = displayio.Bitmap(pycam.camera.width, pycam.camera.height, 65535)
|
23 | 23 | onionskin = displayio.Bitmap(pycam.camera.width, pycam.camera.height, 65535)
|
24 | 24 | timelapse_remaining = None
|
| 25 | +timelapse_timestamp = None |
25 | 26 |
|
26 | 27 | while True:
|
27 | 28 | if pycam.mode_text == "STOP" and pycam.stop_motion_frame != 0:
|
|
41 | 42 | pycam._timelapse_rate_label.text = pycam._timelapse_rate_label.text
|
42 | 43 | if timelapse_remaining is None:
|
43 | 44 | pycam._timelapsestatus_label.text = "STOP"
|
44 |
| - #pycam.display_message("Timelapse\nNot Running\nPress Select to set timing") |
45 | 45 | else:
|
46 |
| - pycam.display_message("%d Seconds left", timelapse_remaining) |
| 46 | + timelapse_remaining = timelapse_timestamp - time.time() |
| 47 | + pycam._timelapsestatus_label.text = f"{timelapse_remaining}s / " |
47 | 48 | pycam.display.refresh()
|
| 49 | + |
| 50 | + if timelapse_remaining is not None and timelapse_remaining <= 0: |
| 51 | + #pycam.tone(200, 0.1) # uncomment to add a beep when a photo is taken |
| 52 | + try: |
| 53 | + pycam.display_message("Snap!", color=0x0000FF) |
| 54 | + pycam.capture_jpeg() |
| 55 | + except TypeError as e: |
| 56 | + pycam.display_message("Failed", color=0xFF0000) |
| 57 | + time.sleep(0.5) |
| 58 | + except RuntimeError as e: |
| 59 | + pycam.display_message("Error\nNo SD Card", color=0xFF0000) |
| 60 | + time.sleep(0.5) |
| 61 | + pycam.live_preview_mode() |
| 62 | + timelapse_timestamp = time.time() + pycam.timelapse_rates[pycam.timelapse_rate] + 1 |
48 | 63 | else:
|
49 | 64 | pycam.blit(pycam.continuous_capture())
|
50 | 65 | # print("\t\t", capture_time, blit_time)
|
|
193 | 208 | print("SEL")
|
194 | 209 | if pycam.ok.fell:
|
195 | 210 | print("OK")
|
| 211 | + if pycam.mode_text == "LAPS": |
| 212 | + if timelapse_remaining is None: # stopped |
| 213 | + timelapse_remaining = pycam.timelapse_rates[pycam.timelapse_rate] |
| 214 | + timelapse_timestamp = time.time() + timelapse_remaining + 1 |
| 215 | + else: # is running, turn off |
| 216 | + timelapse_remaining = None |
0 commit comments