Commit d0a8484d authored by Pietro Saccardi's avatar Pietro Saccardi
Browse files

Changing status color: colors fade out and using red for recording.

parent f7391081
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ class BufferedRecorderPlugin(PiCameraProcessBase):
    def _set_recording_status(self, value):
        with self._record_status_lock:
            if value and self._record_status is None:
                self._record_status = Status.pulse((0, 1, 0))
                self._record_status = Status.pulse((1, 0, 0))
            elif not value and self._record_status is not None:
                self._record_status.cancel()
                self._record_status = None
+15 −6
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@ from plugins.base import Process, PluginProcessBase
from plugins.processes_host import find_plugin
from plugins.decorators import make_plugin
from collections import namedtuple
from math import isinf, isnan
from math import isinf, isnan, isclose
from specialized.support.thread_host import CallbackThreadHost
from threading import Lock
from misc.logging import camel_to_snake, ensure_logging_setup
@@ -173,6 +173,16 @@ class StatusLEDPlugin(PluginProcessBase):
            for i in sorted(to_delete, reverse=True):
                del self._active_statuses[i]
                del self._active_statuses_iterators[i]
            if color is None:
                r, g, b = self._rgbled.color
                if isclose(r, 0.) and isclose(g, 0.) and isclose(b, 0.):
                    return None  # Stop thread
                # Reduce them gradually
                step_down = 1. / STATUS_LED_FPS
                r = max(0., r - step_down)
                g = max(0., g - step_down)
                b = max(0., b - step_down)
                return r, g, b
            return color

    def _push(self, status):
@@ -197,10 +207,9 @@ class StatusLEDPlugin(PluginProcessBase):
            del self._active_statuses_iterators[i]

    @pyro_expose
    def set(self, color, fade_in_time=0.5, persist_until_canceled=False):
    def set(self, color, fade_in_time=0.5, persist_time=1.):
        return self.push_status(on_color=color, off_color=color, fade_in_time=fade_in_time, fade_out_time=0.,
                                persist_on_time=0., persist_off_time=float('inf') if persist_until_canceled else 0.,
                                n=1)
                                persist_on_time=0., persist_off_time=persist_time, n=1)

    @pyro_expose
    def pulse(self, color, n=float('inf'), persist_time=0., frequency=1.):
@@ -248,10 +257,10 @@ class StatusLEDPlugin(PluginProcessBase):

class Status:
    @staticmethod
    def set(color, fade_in_time=0.5, persist_until_canceled=False):
    def set(color, fade_in_time=0.5, persist_time=1.):
        plugin = find_plugin(STATUS_LED_PLUGIN_NAME, Process.MAIN)
        if plugin:
            return plugin.set(color, fade_in_time=fade_in_time, persist_until_canceled=persist_until_canceled)
            return plugin.set(color, fade_in_time=fade_in_time, persist_time=persist_time)
        else:
            return ContextualStatus(None)

+1 −1
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ class StillPlugin(PluginProcessBase):
                temp_file:
            media_path = temp_file.name
            _log.info('Taking still picture with info %s to %s.', str(info), media_path)
            with Status.set((0, 1, 0), persist_until_canceled=True):
            with Status.set((1, 0, 0), persist_time=float('inf')):
                camera.camera.capture(media_path, format='jpeg', use_video_port=True,
                                      quality=self._integral_jpg_quality)
            temp_file.flush()
+2 −2
Original line number Diff line number Diff line
@@ -115,7 +115,7 @@ class TelegramRootPlugin(TelegramProcessBase):
                        file_id = attachment.file_id
                    _log.info('Media %s uploaded as file id %s...', str(media_obj), str(file_id))
                else:
                    Status.blink((1, 0, 0), n=1)
                    Status.blink((1, 0.8, 0), n=1)
                    _log.error('Unable to send media %s.', str(media_obj))
                    return
                retval.append(msg)
@@ -159,7 +159,7 @@ class TelegramRootPlugin(TelegramProcessBase):
                sleep(1)
            except:
                _log.exception('Error when performing %s.', str(method))
        Status.blink((1, 0, 0), n=1)
        Status.blink((1, 0.8, 0), n=1)
        return None

    @property