Introduce intent for TFW messages and fix FSM related bugs

This commit is contained in:
R. Richard
2019-08-23 15:27:03 +02:00
committed by therealkrispet
parent f626fef8f8
commit 2e5867cc49
14 changed files with 42 additions and 19 deletions

View File

@ -2,3 +2,4 @@ from .serialization import serialize_tfw_msg, deserialize_tfw_msg, with_deserial
from .zmq_connector import ZMQConnector, ZMQDownlinkConnector, ZMQUplinkConnector
from .zmq_listener import ZMQListener
from .scope import Scope
from .intent import Intent

View File

@ -0,0 +1,6 @@
from enum import Enum
class Intent(Enum):
CONTROL = 'control'
EVENT = 'event'

View File

@ -4,6 +4,7 @@ import zmq
from zmq.eventloop.zmqstream import ZMQStream
from .scope import Scope
from .intent import Intent
from .serialization import (
serialize_tfw_msg,
deserialize_tfw_msg,
@ -51,8 +52,10 @@ class ZMQUplinkConnector:
self._zmq_push_socket.setsockopt(zmq.SNDHWM, 0)
self._zmq_push_socket.connect(connect_addr)
def send_message(self, message, scope=Scope.ZMQ):
def send_message(self, message, scope=Scope.ZMQ, intent=None):
message['scope'] = scope.value
if isinstance(intent, Intent):
message['intent'] = intent.value
self._zmq_push_socket.send_multipart(serialize_tfw_msg(message))
def close(self):