Exemplo n.º 1
0
   def __init__(self,alarmThread,shutdownCallback,weatherFetcher):
      threading.Thread.__init__(self)
      self.alarmThread = alarmThread
      self.stopping=False

      self.message=""

      self.settings = Settings.Settings()

      self.weather = weatherFetcher

      self.menu = MenuControl.MenuControl(alarmThread,shutdownCallback)
      self.menu.setDaemon(True)

      self.lcd = LCDControl()
      self.lcd.white()
      self.setMessage("Booting up...")

      self.rotor = InputWorker(self)
      self.rotor.start()
Exemplo n.º 2
0
    def __init__(self, alarmThread, settings, weather, media,
                 shutdownCallback):
        threading.Thread.__init__(self)
        self.alarmThread = alarmThread
        self.stopping = False

        self.message = ""

        self.settings = settings

        self.weather = weather

        self.menu = MenuControl.MenuControl(alarmThread, settings, media,
                                            shutdownCallback)
        self.menu.setDaemon(True)

        self.lcd = LCDControl()
        self.lcd.white()
        self.setMessage("Booting up...")

        if self.settings.getInt('use_rotor') == 1:
            self.rotor = InputWorker(self)
            self.rotor.start()
Exemplo n.º 3
0
    def __init__(self, alarmThread, shutdownCallback, weatherFetcher):
        threading.Thread.__init__(self)
        self.alarmThread = alarmThread
        self.stopping = False

        self.message = ""

        self.settings = Settings.Settings()

        self.weather = weatherFetcher

        self.menu = MenuControl.MenuControl(alarmThread, shutdownCallback)
        self.menu.setDaemon(True)

        self.lcd = LCDControl()
        self.lcd.white()
        self.setMessage("Booting up...")

        self.rotor = InputWorker(self)
        self.rotor.start()
Exemplo n.º 4
0
    def __init__(self, alarmThread, settings, weather, media, shutdownCallback):
        threading.Thread.__init__(self)
        self.alarmThread = alarmThread
        self.stopping = False

        self.message = ""

        self.settings = settings

        self.weather = weather

        self.menu = MenuControl.MenuControl(alarmThread, settings, media, shutdownCallback)
        self.menu.setDaemon(True)

        self.lcd = LCDControl()
        self.lcd.white()
        self.setMessage("Booting up...")

        if self.settings.getInt('use_rotor') == 1:        
            self.rotor = InputWorker(self)
            self.rotor.start()
Exemplo n.º 5
0
class LcdThread(threading.Thread):
    def __init__(self, alarmThread, shutdownCallback, weatherFetcher):
        threading.Thread.__init__(self)
        self.alarmThread = alarmThread
        self.stopping = False

        self.message = ""

        self.settings = Settings.Settings()

        self.weather = weatherFetcher

        self.menu = MenuControl.MenuControl(alarmThread, shutdownCallback)
        self.menu.setDaemon(True)

        self.lcd = LCDControl()
        self.lcd.white()
        self.setMessage("Booting up...")

        self.rotor = InputWorker(self)
        self.rotor.start()

    def setBrightness(self, brightness):
        # We get passes a value from 0 - 15, which we need to scale to 0-255 before passing to LCDControl
        colVal = int(255 * (float(brightness) / 15))
        self.lcd.setColour(colVal, colVal, colVal)

    def setMessage(self, newMessage, center=False):
        if newMessage != self.message:
            self.message = newMessage
            self.lcd.setMessage(self.message, center)

    def scroll(self, direction):
        self.menu.scroll(direction)

    # Called by InputWorker on press of the select button
    def select(self):
        if self.alarmThread.isAlarmSounding():
            # Lets snooze for a while
            self.alarmThread.snooze()
            return

        self.menu.select()

    # Called by InputWorker on press of the cancel button
    def cancel(self):
        if self.alarmThread.isAlarmSounding() or self.alarmThread.isSnoozing():
            # Stop the alarm!
            self.alarmThread.stopAlarm()
            return

        if self.alarmThread.alarmInSeconds() < self.settings.getInt("preempt_cancel") and not self.menu.isActive():
            # We're in the allowable window for pre-empting a cancel alarm, and we're not in the menu
            log.info("Pre-empt cancel triggered")
            self.alarmThread.stopAlarm()
            return

        self.menu.cancel()

    def stop(self):
        self.stopping = True

    def run(self):
        self.menu.start()

        self.lcd.setMessage("Boot finished")

        while not self.stopping:
            time.sleep(0.1)

            try:
                if self.alarmThread.isAlarmSounding():
                    self.setMessage("Wakey wakey!", True)
                    continue

                if self.menu.isActive():
                    message = self.menu.getMessage()
                elif self.menu.backgroundRadioActive():
                    message = "Radio player on"
                else:
                    now = datetime.datetime.now(pytz.timezone("Europe/London"))
                    message = formatDate(now)
                    message += "\n"

                    message += self.weather.getWeather().display()
                    message += "\n"

                    message += self.alarmThread.getMenuLine()

                self.setMessage(message, True)
            except:
                log.exception("Error in LcdThread loop")

        # end while not stopping
        self.setMessage("Shutting down")
        self.lcd.shutdown()
        self.menu.stop()
Exemplo n.º 6
0
class LcdThread(threading.Thread):
    def __init__(self, alarmThread, settings, weather, media,
                 shutdownCallback):
        threading.Thread.__init__(self)
        self.alarmThread = alarmThread
        self.stopping = False

        self.message = ""

        self.settings = settings

        self.weather = weather

        self.menu = MenuControl.MenuControl(alarmThread, settings, media,
                                            shutdownCallback)
        self.menu.setDaemon(True)

        self.lcd = LCDControl()
        self.lcd.white()
        self.setMessage("Booting up...")

        if self.settings.getInt('use_rotor') == 1:
            self.rotor = InputWorker(self)
            self.rotor.start()

    def setBrightness(self, brightness):
        # We get passes a value from 0 - 15, which we need to scale to 0-255 before passing to LCDControl
        colVal = int(255 * (float(brightness) / 15))
        self.lcd.setColour(colVal, colVal, colVal)

    def setMessage(self, newMessage, center=False):
        if newMessage != self.message:
            self.message = newMessage
            self.lcd.setMessage(self.message, center)

    def scroll(self, direction):
        self.menu.scroll(direction)

    # Called by InputWorker on press of the select button
    def select(self):
        if self.alarmThread.isAlarmSounding():
            # Lets snooze for a while
            self.alarmThread.snooze()
            return

        self.menu.select()

    # Called by InputWorker on press of the cancel button
    def cancel(self):
        if self.alarmThread.isAlarmSounding() or self.alarmThread.isSnoozing():
            # Stop the alarm!
            self.alarmThread.stopAlarm()
            return

        if self.alarmThread.alarmInSeconds() < self.settings.getInt(
                'preempt_cancel') and not self.menu.isActive():
            # We're in the allowable window for pre-empting a cancel alarm, and we're not in the menu
            log.info("Pre-empt cancel triggered")
            self.alarmThread.stopAlarm()
            return

        self.menu.cancel()

    def stop(self):
        self.stopping = True

    def run(self):
        self.menu.start()

        self.lcd.setMessage("Boot finished")

        while (not self.stopping):
            time.sleep(0.1)

            try:
                if self.alarmThread.isAlarmSounding():
                    self.setMessage("Wakey wakey!", True)
                    continue

                if self.menu.isActive():
                    message = self.menu.getMessage()
                elif self.menu.backgroundRadioActive():
                    message = "Radio player on"
                else:
                    now = datetime.datetime.now(
                        pytz.timezone(self.settings.get('timezone')))
                    message = formatDate(now)
                    message += "\n"

                    message += self.weather.getWeather().display()
                    message += "\n"

                    message += self.alarmThread.getMenuLine()

                self.setMessage(message, True)
            except:
                log.exception("Error in LcdThread loop")

        # end while not stopping
        self.setMessage("Shutting down")
        self.lcd.shutdown()
        self.menu.stop()
Exemplo n.º 7
0
import sys

sys.path.append("./sources/")

from Preview import Preview
from InputWorker import InputWorker
from ProxyWorker import ProxyWorker
import Threads

###### PREVIEW ######

Preview.do()

###### DATA INPUT ######

inputs = InputWorker.initializator()
selected_proxy = inputs[0]
pages = inputs[1]
login = inputs[2]
passwords = inputs[3]
threadcount = inputs[4]

###### WORKOUT ######

if selected_proxy == True:
    proxies = ProxyWorker.AutoGrabber(pages)
    Threads.ThreadsCreator(proxies, login, passwords, threadcount)


elif selected_proxy == False:
    print('[Error] Something went wrong with proxies.\n\nShutting down...')
Exemplo n.º 8
0
from AudioPlayer import AudioPlayer
from InputWorker import InputWorker
from MusicDB import MusicDB
from ScannerWorker import ScannerWorker
from input.SipPuffEvent import SipPuffEvent
from helpers.QueueMerge import QueueMerge
from scanner.ScannerEvents import ScannerEvent, RootPathAppeared, RootPathRemoved, AudioFileFound

if __name__ == '__main__':
    # Create the database
    mdb = MusicDB()

    # initialize input system
    inputProcess = InputWorker()
    inputProcess.start()

    # initialize scanner
    scannerProcess = ScannerWorker()
    scannerProcess.start()

    # merge the outputs into a single queue
    qm = QueueMerge()
    qm.add_input_queue(inputProcess.output_queue)
    qm.add_input_queue(scannerProcess.output_queue)

    # initialize audio player
    player = AudioPlayer()

    while True:
        # Endless work loop. We read an event and act on it
        event = qm.outputQueue.get()
Exemplo n.º 9
0
 def initInput(self, settings, alarm):
     from InputWorker import InputWorker
     log.debug("Initializing inputs")
     inputWorker = InputWorker(alarm, settings)
     inputWorker.start()
     return inputWorker