Events
Out of the box Events
Therobothub
support three basic use cases- Send one image
- Send one image with additional images zipped and send as an attachment
- Send a video
Should your use case require a new type of
Event
, let us know on our forummodule
robothub.events
variable
function
send_image_event(image: Union
[
np.ndarray
,
bytes
], title: str, device_id: str = None, metadata: Optional
[
dict
] = None, tags: List
[
str
] = None, mjpeg_quality = 98, encode = False) -> Optional[str]: Optional[str]
Send a single image frame event to RH. :param image: The image to send. :param title: The title of the event. :param device_id: The device ID to associate with the event. :param metadata: A dictionary of metadata to associate with the event. :param tags: A list of tags to associate with the event. :param mjpeg_quality: The JPEG quality to use when encoding. :param encode: Whether to encode the image as a JPEG before sending. :return: The event ID. None if the event failed to send.
function
send_frame_event_with_zipped_images(cv_frame: np.ndarray, files: list, title: str, device_id: str, tags: List
[
str
] = None, metadata: Optional
[
dict
] = None, encode: bool = False, mjpeg_quality = 98) -> Optional[str]: Optional[str]
Send a collection of images as a single event to RH. :param cv_frame: The main image frame to send. :param files: A list of images to zip and send. :param title: The title of the event. :param device_id: The device ID to associate with the event. :param tags: A list of tags to associate with the event. :param metadata: A dictionary of metadata to associate with the event. :param encode: Whether to encode the images as JPEGs before sending. :param mjpeg_quality: The JPEG quality to use when encoding. :return: The event ID. None if the event failed to send.
function
send_video_event(video: bytes
|
str, title: str, metadata: Optional
[
dict
] = None) -> Optional[str]: Optional[str]
Send a video event to RH. The video can be a path to a video file or a bytes object. :param video: Path to a video file or a bytes object. :param title: Title of the video event. :param metadata: Overlay metadata to be displayed on the video. :return: The event ID. None if the event failed to send.
Custom Events
You can use the low level API to build and send a custom Event. Example:Python
1import robothub as rh
2event: FutureEvent = rh.EVENTS.prepare()
3event.set_tags(["video", "interesting situation"])
4event.add_video(video_as_bytes, filename=video_file_name)
5event.set_title(f"Video Event")
6event.add_file(support_file.getvalue(), name='metadata.zip', filename='metadata.zip')
7rh.EVENTS.upload(event)
support_file.getvalue()
returns bytes
representation of a zipfile.ZipFile
objectclass
robothub.robothub_core_wrapper.events.FutureEvent
variable
id
ID of the Event
variable
folder_path
Path to the folder of the Event in the App's container. Added frames, files & videos are stored in this folder.
method
variable
title
Title of the Event in the Cloud. Set to "Event" + UUID by default.
method
add_video(self, _bytes: bytes
|
bytearray, name: str
|
None = None, metadata: dict
|
None = None, filename: str
|
None = None, camera_serial: str
|
None = None)
Adds a video to the Event. @param _bytes: Bytes of the encoded video. Must be H264 format. @type _bytes: bytes | bytearray @param name: Optional - Name of the video @type name: str | NoneType @param metadata: Optional - Metadata to be overlayed over the video. List length must be equal to number of frames in the video. @type metadata: list @param filename: Optional - can define name of the video file on Host. @type filename: str | NoneType @param camera_serial: Optional - Serial number (MxID) of camera that took the video @type camera_serial: str
method
add_frame(self, _bytes, camera_serial: str
|
None = None, name: str
|
None = None, metadata: dict
|
None = None, filename: str
|
None = None)
Adds a frame to the Event. @param _bytes: Bytes of the encoded frame @type _bytes: bytes | bytearray @param camera_serial: Optional - Serial number (MxID) of camera that took the frame @type camera_serial: str @param name: Optional - Name of the frame @type name: str | NoneType @param metadata: Optional - Metadata to be overlayed over the frame @type metadata: list @param filename: Optional - can define name of the frame file on Host. @type filename: str | NoneType
method
add_file(self, _bytes, name: str
|
None = None, filename: str
|
None = None)
Adds a file to the Event. @param _bytes: Bytes of the file. @type _bytes: bytes | bytearray @param name: Optional - Name of the file in the cloud @type name: str | NoneType @param filename: Optional - can define name of the file saved on Host. @type filename: str | NoneType
method
add_existing_file(self, filename: Path
|
str, copy: bool = True, name: str
|
None = None)
Adds an existing file to the Event. @param filename: Path to the file to be added. @type filename: Path | str @param copy: If True, the file will be copied to the Event folder. If False, the file will be moved to the Event folder. @type copy: bool @param name: Optional - Name of the file in the cloud @type name: str | NoneType
method
set_title(self, title)
Sets the title of the Event. @param title: Title for the Event @type title: str | NoneType
method
set_metadata(self, metadata: dict)
Sets the metadata of the Event. @param metadata: Dictionary containing the metadata @type metadata: dict
method
add_tag(self, tag: str)
Adds a tag to the Event. Cannot add more than 10 tags to one Event. @param tag: The tag string @type tag: str
method
method
property
keep_after_upload
Decides whether Event should be kept after upload, C{False} by default. Example usage: >>> self.keep_after_upload True return: bool
method
keep_after_upload.setter(self, value: bool)
Sets the keep after upload property. Example usage: >>> self.keep_after_upload = True
property
no_upload_by_default
If set to True, Event will not be uploaded. C{False} by default. Example usage: >>> self.no_upload_by_default True return: bool
method
no_upload_by_default.setter(self, value: bool)
Sets the keep after upload property. Example usage: >>> self.keep_after_upload = True
property
keep_when_space_low
Decides whether Event should be kept when storage space is low, C{False} by default. Example usage: >>> self.keep_after_upload True return: bool
method
keep_when_space_low.setter(self, value: bool)
Sets the keep when space low property. Example usage: >>> self.keep_when_space_low = True