import threading
import time

class RTCReader(threading.Thread):
    def __init__(self, rtc, update_callback):
        super().__init__()
        self.rtc = rtc
        self.update_callback = update_callback
        self.running = True

    def run(self):
        while self.running:
            try:
                rtc_time = self.rtc.read_time()
                self.update_callback(rtc_time)
            except Exception as e:
                self.update_callback(None, error=e)
            time.sleep(2)

    def stop(self):
        self.running = False
