chore: applied all feedback
close: N25B-298
This commit is contained in:
@@ -5,23 +5,14 @@ class AgentSettings(object):
|
||||
"""
|
||||
Agent port configuration.
|
||||
|
||||
:param actuating_receiver_port: Port for receiving actuation commands.
|
||||
:type actuating_receiver_port: int
|
||||
:param main_receiver_port: Port for receiving main messages.
|
||||
:type main_receiver_port: int
|
||||
:param video_sender_port: Port used for sending video frames.
|
||||
:type video_sender_port: int
|
||||
:param audio_sender_port: Port used for sending audio data.
|
||||
:type audio_sender_port: int
|
||||
|
||||
:ivar actuating_receiver_port: Port for receiving actuation commands.
|
||||
:type actuating_receiver_port: int
|
||||
:vartype actuating_receiver_port: int
|
||||
:ivar main_receiver_port: Port for receiving main messages.
|
||||
:type main_receiver_port: int
|
||||
:vartype main_receiver_port: int
|
||||
:ivar video_sender_port: Port used for sending video frames.
|
||||
:type video_sender_port: int
|
||||
:vartype video_sender_port: int
|
||||
:ivar audio_sender_port: Port used for sending audio data.
|
||||
:type audio_sender_port: int
|
||||
:vartype audio_sender_port: int
|
||||
"""
|
||||
def __init__(
|
||||
self,
|
||||
@@ -40,31 +31,18 @@ class VideoConfig(object):
|
||||
"""
|
||||
Video configuration constants.
|
||||
|
||||
:param camera_index: Index of the camera to use.
|
||||
:type camera_index: int
|
||||
:param resolution: Video resolution mode.
|
||||
:type resolution: int
|
||||
:param color_space: Color space identifier.
|
||||
:type color_space: int
|
||||
:param fps: Frames per second of the video stream.
|
||||
:type fps: int
|
||||
:param stream_name: Name of the video stream.
|
||||
:type stream_name: str
|
||||
:param image_buffer: Internal buffer size for video frames.
|
||||
:type image_buffer: int
|
||||
|
||||
:ivar camera_index: Index of the camera used.
|
||||
:type camera_index: int
|
||||
:vartype camera_index: int
|
||||
:ivar resolution: Video resolution mode.
|
||||
:type resolution: int
|
||||
:vartype resolution: int
|
||||
:ivar color_space: Color space identifier.
|
||||
:type color_space: int
|
||||
:vartype color_space: int
|
||||
:ivar fps: Frames per second of the video stream.
|
||||
:type fps: int
|
||||
:vartype fps: int
|
||||
:ivar stream_name: Name of the video stream.
|
||||
:type stream_name: str
|
||||
:vartype stream_name: str
|
||||
:ivar image_buffer: Internal buffer size for video frames.
|
||||
:type image_buffer: int
|
||||
:vartype image_buffer: int
|
||||
"""
|
||||
def __init__(
|
||||
self,
|
||||
@@ -87,19 +65,12 @@ class AudioConfig(object):
|
||||
"""
|
||||
Audio configuration constants.
|
||||
|
||||
:param sample_rate: Audio sampling rate in Hz.
|
||||
:type sample_rate: int
|
||||
:param chunk_size: Size of audio chunks to capture/process.
|
||||
:type chunk_size: int
|
||||
:param channels: Number of audio channels.
|
||||
:type channels: int
|
||||
|
||||
:ivar sample_rate: Audio sampling rate in Hz.
|
||||
:type sample_rate: int
|
||||
:vartype sample_rate: int
|
||||
:ivar chunk_size: Size of audio chunks to capture/process.
|
||||
:type chunk_size: int
|
||||
:vartype chunk_size: int
|
||||
:ivar channels: Number of audio channels.
|
||||
:type channels: int
|
||||
:vartype channels: int
|
||||
"""
|
||||
def __init__(self, sample_rate=16000, chunk_size=512, channels=1):
|
||||
self.sample_rate = sample_rate
|
||||
@@ -111,15 +82,10 @@ class MainConfig(object):
|
||||
"""
|
||||
Main system configuration.
|
||||
|
||||
:param poll_timeout_ms: Timeout for polling events, in milliseconds.
|
||||
:type poll_timeout_ms: int
|
||||
:param max_handler_time_ms: Maximum allowed handler time, in milliseconds.
|
||||
:type max_handler_time_ms: int
|
||||
|
||||
:ivar poll_timeout_ms: Timeout for polling events, in milliseconds.
|
||||
:type poll_timeout_ms: int
|
||||
:vartype poll_timeout_ms: int
|
||||
:ivar max_handler_time_ms: Maximum allowed handler time, in milliseconds.
|
||||
:type max_handler_time_ms: int
|
||||
:vartype max_handler_time_ms: int
|
||||
"""
|
||||
def __init__(self, poll_timeout_ms=100, max_handler_time_ms=50):
|
||||
self.poll_timeout_ms = poll_timeout_ms
|
||||
@@ -130,23 +96,14 @@ class Settings(object):
|
||||
"""
|
||||
Global settings container.
|
||||
|
||||
:param agent_settings: Agent settings instance or None for defaults.
|
||||
:type agent_settings: AgentSettings | None
|
||||
:param video_config: VideoConfig instance or None for defaults.
|
||||
:type video_config: VideoConfig | None
|
||||
:param audio_config: AudioConfig instance or None for defaults.
|
||||
:type audio_config: AudioConfig | None
|
||||
:param main_config: MainConfig instance or None for defaults.
|
||||
:type main_config: MainConfig | None
|
||||
|
||||
:ivar agent_settings: Agent-related port configuration.
|
||||
:type agent_settings: AgentSettings
|
||||
:vartype agent_settings: AgentSettings
|
||||
:ivar video_config: Video stream configuration.
|
||||
:type video_config: VideoConfig
|
||||
:vartype video_config: VideoConfig
|
||||
:ivar audio_config: Audio stream configuration.
|
||||
:type audio_config: AudioConfig
|
||||
:vartype audio_config: AudioConfig
|
||||
:ivar main_config: Main system-level configuration.
|
||||
:type main_config: MainConfig
|
||||
:vartype main_config: MainConfig
|
||||
"""
|
||||
def __init__(self, agent_settings=None, video_config=None, audio_config=None, main_config=None):
|
||||
self.agent_settings = agent_settings or AgentSettings()
|
||||
|
||||
@@ -20,7 +20,7 @@ class ActuationReceiver(ReceiverBase):
|
||||
:type port: int
|
||||
|
||||
:ivar _tts_service: The text-to-speech service object from the Qi session.
|
||||
:vartype _tts_service: ssl.SSLSession | None
|
||||
:vartype _tts_service: qi.Session | None
|
||||
"""
|
||||
def __init__(self, zmq_context, port=settings.agent_settings.actuating_receiver_port):
|
||||
|
||||
|
||||
@@ -24,13 +24,13 @@ class AudioSender(SocketBase):
|
||||
:type port: int
|
||||
|
||||
:ivar thread: Thread used for sending audio.
|
||||
:type thread: threading.Thread | None
|
||||
:vartype thread: threading.Thread | None
|
||||
|
||||
:ivar audio: PyAudio instance.
|
||||
:type audio: pyaudio.PyAudio | None
|
||||
:vartype audio: pyaudio.PyAudio | None
|
||||
|
||||
:ivar microphone: Selected microphone information.
|
||||
:type microphone: dict | None
|
||||
:vartype microphone: dict | None
|
||||
"""
|
||||
def __init__(self, zmq_context, port=settings.agent_settings.audio_sender_port):
|
||||
super(AudioSender, self).__init__(str("audio")) # Convert future's unicode_literal to str
|
||||
@@ -51,7 +51,6 @@ class AudioSender(SocketBase):
|
||||
|
||||
Will not start if no microphone is available.
|
||||
"""
|
||||
|
||||
if not self.microphone:
|
||||
logger.info("Not listening: no microphone available.")
|
||||
return
|
||||
|
||||
@@ -7,17 +7,20 @@ class SocketBase(object):
|
||||
"""
|
||||
Base class for endpoints associated with a ZeroMQ socket.
|
||||
|
||||
:ivar identifier: The identifier of the endpoint.
|
||||
:param identifier: The identifier of the endpoint.
|
||||
:type identifier: str
|
||||
|
||||
:ivar identifier: The identifier of the endpoint.
|
||||
:vartype identifier: str
|
||||
|
||||
:ivar port: The port used by the socket, set by `create_socket`.
|
||||
:type port: int | None
|
||||
:vartype port: int | None
|
||||
|
||||
:ivar socket: The ZeroMQ socket object, set by `create_socket`.
|
||||
:type socket: zmq.Socket | None
|
||||
:vartype socket: zmq.Socket | None
|
||||
|
||||
:ivar bound: Whether the socket is bound or connected, set by `create_socket`.
|
||||
:type bound: bool | None
|
||||
:vartype bound: bool | None
|
||||
"""
|
||||
__metaclass__ = ABCMeta
|
||||
|
||||
@@ -43,8 +46,7 @@ class SocketBase(object):
|
||||
:param port: The port to use.
|
||||
:type port: int
|
||||
|
||||
:param options: A list of options to be set on the socket. The list contains tuples where the first element contains the option
|
||||
and the second the value, for example (zmq.CONFLATE, 1).
|
||||
:param options: A list of tuples where the first element contains the option and the second the value.
|
||||
:type options: list[tuple[int, int]]
|
||||
|
||||
:param bind: Whether to bind the socket or connect to it.
|
||||
@@ -73,7 +75,7 @@ class SocketBase(object):
|
||||
Description of the endpoint. Used for negotiation.
|
||||
|
||||
:return: A dictionary with the following keys: id, port, bind. See API specification at:
|
||||
https://utrechtuniversity.youtrack.cloud/articles/N25B-A-14/RI-CB-Communication#negotiation
|
||||
https://utrechtuniversity.youtrack.cloud/articles/N25B-A-14/RI-CB-Communication#negotiation
|
||||
:rtype: dict
|
||||
"""
|
||||
return {
|
||||
|
||||
@@ -24,7 +24,7 @@ class VideoSender(SocketBase):
|
||||
"""
|
||||
Prepares arguments for retrieving video images from Pepper and starts video loop on a separate thread.
|
||||
|
||||
Will not start of no qi session is available.
|
||||
Will not start if no qi session is available.
|
||||
"""
|
||||
if not state.qi_session:
|
||||
logging.info("No Qi session available. Not starting video loop.")
|
||||
|
||||
@@ -14,16 +14,16 @@ class State(object):
|
||||
detect this via the `exit_event` property being set.
|
||||
|
||||
:ivar is_initialized: Flag indicating whether the state setup (exit handlers, QI session) has completed.
|
||||
:type is_initialized: bool
|
||||
:vartype is_initialized: bool
|
||||
|
||||
:ivar exit_event: A thread event used to signal all threads that the program is shutting down.
|
||||
:type exit_event: threading.Event | None
|
||||
:vartype exit_event: threading.Event | None
|
||||
|
||||
:ivar sockets: A list of ZeroMQ socket wrappers (`SocketBase`) that need to be closed during deinitialization.
|
||||
:type sockets: List[SocketBase]
|
||||
:vartype sockets: List[SocketBase]
|
||||
|
||||
:ivar qi_session: The QI session object used for interaction with the robot/platform services.
|
||||
:type qi_session: None | ssl.SSLSession
|
||||
:vartype qi_session: None | qi.Session
|
||||
"""
|
||||
def __init__(self):
|
||||
self.is_initialized = False
|
||||
|
||||
@@ -7,13 +7,22 @@ class TimeBlock(object):
|
||||
limit, or if no limit is given, the callback will be called with the time that the block took.
|
||||
|
||||
:param callback: The callback function that is called when the block of code is over,
|
||||
unless the code block did not exceed the time limit.
|
||||
unless the code block did not exceed the time limit.
|
||||
:type callback: Callable[[float], None]
|
||||
|
||||
:param limit_ms: The number of milliseconds the block of code is allowed to take. If it
|
||||
exceeds this time, or if it's None, the callback function will be called with the time the
|
||||
block took.
|
||||
exceeds this time, or if it's None, the callback function will be called with the time the
|
||||
block took.
|
||||
:type limit_ms: int | None
|
||||
|
||||
:ivar limit_ms: The number of milliseconds the block of code is allowed to take.
|
||||
:vartype limit_ms: float | None
|
||||
|
||||
:ivar callback: The callback function that is called when the block of code is over.
|
||||
:vartype callback: Callable[[float], None]
|
||||
|
||||
ivar start: The start time of the block, set when entering the context.
|
||||
:vartype start: float | None
|
||||
"""
|
||||
def __init__(self, callback, limit_ms=None):
|
||||
self.limit_ms = float(limit_ms) if limit_ms is not None else None
|
||||
|
||||
Reference in New Issue
Block a user