diff options
Diffstat (limited to 'plugins/light_sensor')
-rw-r--r-- | plugins/light_sensor/__init__.py | 0 | ||||
-rw-r--r-- | plugins/light_sensor/icons/sensoroff.svg | 36 | ||||
-rw-r--r-- | plugins/light_sensor/icons/sensoron.svg | 41 | ||||
-rw-r--r-- | plugins/light_sensor/light_sensor.py | 84 |
4 files changed, 161 insertions, 0 deletions
diff --git a/plugins/light_sensor/__init__.py b/plugins/light_sensor/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/plugins/light_sensor/__init__.py diff --git a/plugins/light_sensor/icons/sensoroff.svg b/plugins/light_sensor/icons/sensoroff.svg new file mode 100644 index 0000000..2d56090 --- /dev/null +++ b/plugins/light_sensor/icons/sensoroff.svg @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.1" + width="55" + height="55" + viewBox="0 0 55 55" + id="svg2" + xml:space="preserve"><metadata + id="metadata15"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs13" /> +<g + transform="matrix(0.67,0,0,0.67,9.075,9.0749996)" + id="toolbar_x5F_view" + style="fill:#ffffff;fill-opacity:1;display:block"> + <g + id="g5" + style="fill:#ffffff;fill-opacity:1"> + <path + d="m 21.937,27.499 c 0,3.07 2.492,5.562 5.562,5.562 3.067,0 5.559,-2.492 5.559,-5.562 0,-3.067 -2.491,-5.564 -5.559,-5.564 -3.07,0 -5.562,2.497 -5.562,5.564 z" + id="path7" + style="fill:#ffffff;fill-opacity:1" /> + <path + d="m 27.499,13.037 c -14.476,0 -26.531,14.432 -26.531,14.432 0,0 12.056,14.504 26.531,14.494 14.474,-0.01 26.533,-14.513 26.533,-14.513 0,0 -12.059,-14.425 -26.533,-14.413 z M 27.5,36.562 c -5.003,0 -9.063,-4.061 -9.063,-9.063 0,-4.998 4.061,-9.066 9.063,-9.066 4.997,0 9.058,4.068 9.058,9.066 0,5.003 -4.061,9.063 -9.058,9.063 z" + id="path9" + style="fill:#ffffff;fill-opacity:1" /> + </g> +</g></svg>
\ No newline at end of file diff --git a/plugins/light_sensor/icons/sensoron.svg b/plugins/light_sensor/icons/sensoron.svg new file mode 100644 index 0000000..e902656 --- /dev/null +++ b/plugins/light_sensor/icons/sensoron.svg @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.1" + width="55" + height="55" + viewBox="0 0 55 55" + id="svg2" + xml:space="preserve"><metadata + id="metadata15"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs13" /><rect + width="55" + height="55" + x="0" + y="0" + id="rect3269" + style="fill:#ffd200;fill-opacity:1;fill-rule:nonzero;stroke:none" /><g + transform="matrix(0.67,0,0,0.67,9.075,9.0749996)" + id="toolbar_x5F_view" + style="fill:#ff0000;fill-opacity:1;display:block"> + <g + id="g5" + style="fill:#ff0000;fill-opacity:1"> + <path + d="m 21.937,27.499 c 0,3.07 2.492,5.562 5.562,5.562 3.067,0 5.559,-2.492 5.559,-5.562 0,-3.067 -2.491,-5.564 -5.559,-5.564 -3.07,0 -5.562,2.497 -5.562,5.564 z" + id="path7" + style="fill:#ff0000;fill-opacity:1" /> + <path + d="m 27.499,13.037 c -14.476,0 -26.531,14.432 -26.531,14.432 0,0 12.056,14.504 26.531,14.494 14.474,-0.01 26.533,-14.513 26.533,-14.513 0,0 -12.059,-14.425 -26.533,-14.413 z M 27.5,36.562 c -5.003,0 -9.063,-4.061 -9.063,-9.063 0,-4.998 4.061,-9.066 9.063,-9.066 4.997,0 9.058,4.068 9.058,9.066 0,5.003 -4.061,9.063 -9.058,9.063 z" + id="path9" + style="fill:#ff0000;fill-opacity:1" /> + </g> +</g></svg>
\ No newline at end of file diff --git a/plugins/light_sensor/light_sensor.py b/plugins/light_sensor/light_sensor.py new file mode 100644 index 0000000..cadf969 --- /dev/null +++ b/plugins/light_sensor/light_sensor.py @@ -0,0 +1,84 @@ +#!/usr/bin/env python +#Copyright (c) 2011 Walter Bender +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +import os + +from gettext import gettext as _ + +from plugins.plugin import Plugin + +from TurtleArt.tapalette import make_palette +from TurtleArt.taconstants import XO1, XO15 +from TurtleArt.talogo import primitive_dictionary +from TurtleArt.tautils import debug_output + +import logging +_logger = logging.getLogger('turtleart-activity light-sensor plugin') + + +class Accelerometer(Plugin): + + def __init__(self, parent): + self._parent = parent + if os.path.exists('/sys/devices/platform/olpc-ols.0/power_state'): + self._status = True + else: + self._status = False + self.running_sugar = self._parent.running_sugar + + def setup(self): + # set up light-sensor specific blocks + palette = make_palette('sensor', + colors=["#FF6060", "#A06060"], + help_string=_('Palette of sensor blocks')) + + primitive_dictionary['lightsensor'] = self.prim_lightsensor + if self._status: + palette.add_block('lightsensor', + style='basic-style-extended-vertical', + label=_('brightness'), + help_string=\ + _('light level detected by light sensor'), + prim_name='lightsensor') + else: + palette.add_block('lightsensor', + style='basic-style-extended-vertical', + label=_('brightness'), + help_string=\ + _('light level detected by light sensor'), + hidden=True, + prim_name='lightsensor') + + self._parent.lc.def_prim( + 'lightsensor', 0, + lambda self: primitive_dictionary['lightsensor']()) + + def _status_report(self): + debug_output('Reporting light-sensor status: %s' % (str(self._status))) + return self._status + + # Block primitives used in talogo + + def prim_lightsensor(self): + ''' push accelerometer xyz to stack ''' + if not self._status: + return -1 + else: + fh = open('/sys/devices/platform/olpc-ols.0/power_state') + string = fh.read() + fh.close() + return int(string) |