obci.core.messages package¶
Submodules¶
obci.core.messages.protobuf_serializer module¶
-
class
obci.core.messages.protobuf_serializer.
ProtobufMessageSerializerBase
[source]¶ Bases:
obci.core.messages.MessageSerializer
Serializer for protobuf objects.
Deserializer will be created dynamically using gen_deserialize_func function.
-
obci.core.messages.protobuf_serializer.
gen_deserialize_func
(ProtoClass)[source]¶ Generate deserialize for specified protobuf class.
Parameters: ProtoClass – protobuf class Returns: deserializer function
obci.core.messages.types module¶
Predefined message types.
Module contents¶
-
class
obci.core.messages.
JsonMessageSerializer
[source]¶ Bases:
obci.core.messages.MessageSerializer
Serializes any JSON-serializable objects.
-
class
obci.core.messages.
Message
(type_id: str, subtype_id: str = '', data: typing.Any = None)[source]¶ Bases:
object
Message consists of:
- type - can be any string
- subtype - can be any string
- data - deserialized message payload
New message type must be registered using Message.register_serializer method before creating Message objects with such type.
Parameters: - type_id – type of this message
- subtype_id – usually interpreted as sender peer ID
- data – message payload
-
static
deserialize
(msg: typing.List[bytes]) → obci.core.messages.Message[source]¶ Create Message object from ZMQ multipart message.
Parameters: msg ( List
) – multipart message received by ZMQReturns: Message object
-
static
register_serializer
(msg_type: str, serializer_class) → None[source]¶ Unregister serializer for specified message type.
Parameters: - msg_type (
str
) – message type - serializer_class – class derived from MessageSerializer
- msg_type (
-
serialize
() → typing.List[bytes][source]¶ Serialize to ZMQ multipart message.
Returns: ZMQ multipart message
-
serializers
= {'Tag': <abc.Tag_ProtobufMessageSerializer object>, 'OK': <obci.core.messages.NullMessageSerializer object>, 'Blink': <abc.Blink_ProtobufMessageSerializer object>, 'BROKER_REGISTER_QUERY_HANDLER': <obci.core.messages.JsonMessageSerializer object>, 'BROKER_REGISTER_PEER_RESPONSE': <obci.core.messages.JsonMessageSerializer object>, 'IntVariable': <abc.IntVariable_ProtobufMessageSerializer object>, 'BROKER_UNREGISTER_QUERY_HANDLER': <obci.core.messages.JsonMessageSerializer object>, 'INVALID_REQUEST': <obci.core.messages.StringMessageSerializer object>, 'HEARTBEAT': <obci.core.messages.NullMessageSerializer object>, 'Diode': <abc.Diode_ProtobufMessageSerializer object>, 'Sample': <abc.Sample_ProtobufMessageSerializer object>, 'TagVector': <abc.TagVector_ProtobufMessageSerializer object>, 'BlinkVector': <abc.BlinkVector_ProtobufMessageSerializer object>, 'BROKER_HELLO': <obci.core.messages.JsonMessageSerializer object>, 'QUERY': <obci.core.messages.JsonMessageSerializer object>, 'ERROR': <obci.core.messages.StringMessageSerializer object>, 'BROKER_HEARTBEAT': <obci.core.messages.JsonMessageSerializer object>, 'PEERS_READY_RECEIVED': <obci.core.messages.NullMessageSerializer object>, 'UgmUpdate': <abc.UgmUpdate_ProtobufMessageSerializer object>, 'BROKER_REGISTER_PEER': <obci.core.messages.JsonMessageSerializer object>, 'VariableVector': <abc.VariableVector_ProtobufMessageSerializer object>, 'Sample2D': <abc.Sample2D_ProtobufMessageSerializer object>, 'BROKER_HEARTBEAT_RESPONSE': <obci.core.messages.JsonMessageSerializer object>, 'INTERNAL_ERROR': <obci.core.messages.StringMessageSerializer object>, 'Variable': <abc.Variable_ProtobufMessageSerializer object>, 'SampleVector': <abc.SampleVector_ProtobufMessageSerializer object>, 'PEERS_READY': <obci.core.messages.NullMessageSerializer object>, 'REDIRECT': <obci.core.messages.JsonMessageSerializer object>, 'BROKER_HELLO_RESPONSE': <obci.core.messages.JsonMessageSerializer object>}¶
-
subtype
¶
-
type
¶
-
class
obci.core.messages.
MessageSerializer
[source]¶ Bases:
object
Message serializer implements two methods serialize and deserialize to convert to and from bytes to desired data type.
-
exception
obci.core.messages.
NoSerializerRegistered
[source]¶ Bases:
Exception
Raised when no serializer was registered for used message type.
-
class
obci.core.messages.
NullMessageSerializer
[source]¶ Bases:
obci.core.messages.MessageSerializer
Serialize data to empty (None) object.
deserialize method always returns None.