fix live stuck muxer
This commit is contained in:
parent
508f1f619c
commit
b96ef921f3
@ -7,7 +7,7 @@ import zmq
|
||||
from flandre.config import C
|
||||
from flandre.nodes.Node import Node
|
||||
from flandre.utils.Msg import ImageArgMsg, KillMsg, SetSeqMetaMsg, SetPlayMode, SetDeviceConfigMsg, \
|
||||
ImagingConfigNameListMsg, RfFrameWithMetaMsg, BeamformerMsg, RobotRtsiMsg, SeqMetaMsg
|
||||
ImagingConfigNameListMsg, RfFrameWithMetaMsg, BeamformerMsg, RobotRtsiMsg, SeqMetaMsg, DeviceEnabledMsg
|
||||
from flandre.utils.RfFile import RfSequenceMeta
|
||||
from flandre.utils.RfMeta import RfFrameMeta
|
||||
|
||||
@ -16,7 +16,7 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
class Muxer(Node):
|
||||
topics = [SetSeqMetaMsg, SetPlayMode, SetDeviceConfigMsg, RfFrameWithMetaMsg,
|
||||
ImageArgMsg, RobotRtsiMsg, SeqMetaMsg]
|
||||
ImageArgMsg, RobotRtsiMsg, SeqMetaMsg,DeviceEnabledMsg]
|
||||
|
||||
def __init__(self, level=logging.INFO):
|
||||
super(Muxer, self).__init__(level=level)
|
||||
@ -27,6 +27,7 @@ class Muxer(Node):
|
||||
self.rep_socket: zmq.Socket = None
|
||||
self.req_driver_socket: zmq.Socket = None
|
||||
self.record_rf_msg: RfFrameWithMetaMsg | None = None
|
||||
self.device_enabled = False
|
||||
|
||||
def custom_setup(self):
|
||||
self.rep_socket: zmq.Socket = self.c.ctx.socket(zmq.REP)
|
||||
@ -55,6 +56,10 @@ class Muxer(Node):
|
||||
return
|
||||
data_msg = self.record_rf_msg
|
||||
case 'live':
|
||||
if not self.device_enabled:
|
||||
self.rep_socket.send(BeamformerMsg(b'init').encode_msg())
|
||||
logger.warning('Device not enabled')
|
||||
return
|
||||
self.req_driver_socket.send(b'')
|
||||
driver_data_raw = self.req_driver_socket.recv()
|
||||
if driver_data_raw == b'':
|
||||
@ -134,7 +139,9 @@ class Muxer(Node):
|
||||
case 'live':
|
||||
self.seq_meta_live = RfSequenceMeta.from_name(msg.name)
|
||||
elif isinstance(msg, SetPlayMode):
|
||||
logger.debug(f'set playmode {msg}')
|
||||
logger.info(f'set playmode {msg}')
|
||||
self.play_mode = msg.value
|
||||
elif isinstance(msg, RobotRtsiMsg):
|
||||
self.rtsi = msg
|
||||
elif isinstance(msg, DeviceEnabledMsg):
|
||||
self.device_enabled = msg.value
|
||||
|
||||
Loading…
Reference in New Issue
Block a user