Example #1
0
Module: CameraManager
=====================


"""

from uuid import uuid4
from circuits import Timer, Event
from circuits.tools import tryimport
# TODO: Kick out 2.x compat
import six
from isomer.component import ConfigurableComponent, authorized_event, handler
from isomer.events.client import send
from isomer.logger import error, debug

opencv = tryimport("cv2")

# Camera requests


class camera_list(authorized_event):
    """A new camera event has been generated by the client"""


class camera_subscribe(authorized_event):
    """A new camera event has been generated by the client"""


class camera_unsubscribe(authorized_event):
    """A new camera event has been generated by the client"""
Example #2
0
def test_tryimport_fail():
    m = tryimport("asdf")
    assert m is None
Example #3
0
"""JSON RPC

This module implements a JSON RPC dispatcher that translates incoming
RPC calls over JSON into RPC events.
"""

from circuits.tools import tryimport

json = tryimport(("json", "simplejson"))

from circuits.six import binary_type
from circuits import handler, Event, BaseComponent


class rpc(Event):

    """RPC Event"""


class JSONRPC(BaseComponent):

    channel = "web"

    def __init__(self, path=None, encoding="utf-8", rpc_channel="*"):
        super(JSONRPC, self).__init__()

        if json is None:
            raise RuntimeError("No json support available")

        self.path = path
        self.encoding = encoding
Example #4
0
def test_tryimport():
    import os
    m = tryimport("os")
    assert m is os
Example #5
0
def test_tryimport_obj():
    from os import path
    m = tryimport("os", "path")
    assert m is path
Example #6
0
def test_tryimport_obj():
    from os import path
    m = tryimport("os", "path")
    assert m is path
Example #7
0
def test_tryimport_fail():
    m = tryimport("asdf")
    assert m is None
Example #8
0
"""Serial I/O

This module implements basic Serial (RS232) I/O.
"""
from collections import deque

from circuits.core import Component, Event, handler
from circuits.core.pollers import BasePoller, Poller
from circuits.core.utils import findcmp
from circuits.six import binary_type
from circuits.tools import tryimport

from .events import close, closed, error, opened, read, ready

serial = tryimport("serial")

TIMEOUT = 0.2
BUFSIZE = 4096


class _open(Event):
    """_open Event"""


class Serial(Component):

    channel = "serial"

    def __init__(self,
                 port,
                 baudrate=115200,
Example #9
0
def test_tryimport():
    import os
    m = tryimport("os")
    assert m is os
Example #10
0
"""JSON RPC

This module implements a JSON RPC dispatcher that translates incoming
RPC calls over JSON into RPC events.
"""

from circuits.tools import tryimport

json = tryimport(("json", "simplejson"))

from circuits.six import binary_type
from circuits import handler, Event, BaseComponent


class rpc(Event):
    """RPC Event"""


class JSONRPC(BaseComponent):

    channel = "web"

    def __init__(self, path=None, encoding="utf-8", rpc_channel="*"):
        super(JSONRPC, self).__init__()

        if json is None:
            raise RuntimeError("No json support available")

        self.path = path
        self.encoding = encoding
        self.rpc_channel = rpc_channel
Example #11
0
from operator import itemgetter
from sys import exc_info as _exc_info
from traceback import format_tb
from types import GeneratorType

from circuits.core import BaseComponent, handler
from circuits.tools import tryimport
from circuits.web import wrappers

from .dispatchers import Dispatcher
from .errors import httperror
from .events import request
from .headers import Headers
from .http import HTTP

StringIO = tryimport(("cStringIO", "StringIO", "io"), "StringIO")


def create_environ(errors, path, req):
    environ = {}
    env = environ.__setitem__

    env("REQUEST_METHOD", req.method)
    env("SERVER_NAME", req.host.split(":", 1)[0])
    env("SERVER_PORT", "%i" % (req.server.port or 0))
    env("SERVER_PROTOCOL", "HTTP/%d.%d" % req.server.http.protocol)
    env("QUERY_STRING", req.qs)
    env("SCRIPT_NAME", req.script_name)
    env("CONTENT_TYPE", req.headers.get("Content-Type", ""))
    env("CONTENT_LENGTH", req.headers.get("Content-Length", ""))
    env("REMOTE_ADDR", req.remote.ip)
Example #12
0
"""

__author__ = "Heiko 'riot' Weinen <*****@*****.**>"

from uuid import uuid4

from circuits import Component, handler, Timer, Event
from circuits.tools import tryimport

import six

from hfos.events import send
from hfos.logger import hfoslog, error, debug

opencv = tryimport("cv2")


class CameraManager(Component):
    """
    Handles camera updates, subscriptions and broadcasts
    """

    channel = "cam"

    def __init__(self, maxcams=16, *args):
        super(CameraManager, self).__init__(*args)

        self._cameras = {}
        self._subscribers = {}
        self._filming = True
Example #13
0
"""Serial I/O

This module implements basic Serial (RS232) I/O.
"""
from collections import deque

from circuits.core import Component, Event, handler
from circuits.core.pollers import BasePoller, Poller
from circuits.core.utils import findcmp
from circuits.six import binary_type
from circuits.tools import tryimport

from .events import close, closed, error, opened, read, ready

serial = tryimport("serial")

TIMEOUT = 0.2
BUFSIZE = 4096


class _open(Event):

    """_open Event"""


class Serial(Component):

    channel = "serial"

    def __init__(self, port, baudrate=115200, bufsize=BUFSIZE,
                 timeout=TIMEOUT, channel=channel):
Example #14
0
from collections import deque
from os import read as fd_read
from os import write as fd_write
from sys import getdefaultencoding
from errno import EINTR, EWOULDBLOCK

from circuits.tools import tryimport
from circuits.core.utils import findcmp
from circuits.core import handler, Component, Event
from circuits.core.pollers import BasePoller, Poller
from circuits.six import binary_type, string_types, PY3

from .events import close, closed, eof, error, opened, read, ready

fcntl = tryimport("fcntl")

TIMEOUT = 0.2
BUFSIZE = 4096


class _open(Event):

    """_open Event"""


class File(Component):

    channel = "file"

    def init(self, filename, mode="r", bufsize=BUFSIZE, encoding=None,
Example #15
0
"""

try:
    from urllib.parse import unquote
except ImportError:
    from urllib import unquote  # NOQA

from operator import itemgetter
from traceback import format_tb
from types import GeneratorType
from sys import exc_info as _exc_info

from circuits.tools import tryimport
from circuits.core import handler, BaseComponent

StringIO = tryimport(("cStringIO", "StringIO", "io"), "StringIO")

from .http import HTTP
from .events import request
from .headers import Headers
from .errors import httperror
from circuits.web import wrappers
from .dispatchers import Dispatcher


def create_environ(errors, path, req):
    environ = {}
    env = environ.__setitem__

    env("REQUEST_METHOD", req.method)
    env("SERVER_NAME", req.host.split(":", 1)[0])
Example #16
0
    pass

from collections import deque
from errno import EINTR, EWOULDBLOCK
from os import read as fd_read, write as fd_write
from sys import getdefaultencoding

from circuits.core import Component, Event, handler
from circuits.core.pollers import BasePoller, Poller
from circuits.core.utils import findcmp
from circuits.six import PY3, binary_type, string_types
from circuits.tools import tryimport

from .events import close, closed, eof, error, opened, read, ready

fcntl = tryimport("fcntl")

TIMEOUT = 0.2
BUFSIZE = 4096


class _open(Event):

    """_open Event"""


class File(Component):

    channel = "file"

    def init(self, filename, mode="r", bufsize=BUFSIZE, encoding=None,