add direct path
This commit is contained in:
parent
0010fe0cd6
commit
bc776418a1
@ -2,10 +2,12 @@ import logging
|
||||
import struct
|
||||
import time
|
||||
from pathlib import Path
|
||||
from threading import Thread
|
||||
|
||||
import zmq
|
||||
|
||||
from flandre.config import C
|
||||
from flandre.nodes.Device import Device, DeviceCmd
|
||||
from flandre.nodes.Node import Node
|
||||
from flandre.utils.Msg import ImageArgMsg, KillMsg, SetSeqMetaMsg, SetPlayMode, SetDeviceConfigMsg, \
|
||||
ImagingConfigNameListMsg, BeamformerMsg, RobotRtsiMsg, SeqMetaMsg, DeviceEnabledMsg, RfFrameMsg
|
||||
@ -24,20 +26,28 @@ class Muxer(Node):
|
||||
self.seq_meta = None
|
||||
self.seq_meta_live: RfSequenceMeta = None
|
||||
self.seq_meta_playback = None
|
||||
self.play_mode = None
|
||||
self.play_mode: str | None = None
|
||||
self.rep_socket: zmq.Socket = None
|
||||
self.req_driver_socket: zmq.Socket = None
|
||||
self.playback_rf_msg: RfFrameMsg | None = None
|
||||
self.device_enabled = False
|
||||
self.driver_data_raw = b''
|
||||
self.run_p_thread = True
|
||||
|
||||
def custom_setup(self):
|
||||
self.rep_socket: zmq.Socket = self.c.ctx.socket(zmq.REP)
|
||||
self.rep_socket.bind(f'tcp://localhost:{C.muxer_rep_port}')
|
||||
self.req_driver_socket: zmq.Socket = self.c.ctx.socket(zmq.REQ)
|
||||
self.req_driver_socket.connect(C.driver_rep_socket)
|
||||
# self.req_driver_socket.connect(C.driver_rep_socket)
|
||||
self.req_driver_socket.connect(C.live_rep_socket)
|
||||
self.c.poller.register(self.rep_socket, zmq.POLLIN)
|
||||
|
||||
def p_thread(self):
|
||||
while self.run_p_thread:
|
||||
if self.play_mode == 'live':
|
||||
self.req_driver_socket.send(struct.pack('i', Device.magic) + struct.pack('i', DeviceCmd.GetData.value))
|
||||
self.driver_data_raw = self.req_driver_socket.recv()
|
||||
|
||||
def handle_rep_socket(self):
|
||||
self.rep_socket.recv()
|
||||
if self.play_mode is None:
|
||||
@ -55,8 +65,8 @@ class Muxer(Node):
|
||||
self.rep_socket.send(BeamformerMsg(b'init').encode_msg())
|
||||
logger.warning('Device not enabled')
|
||||
return
|
||||
self.req_driver_socket.send(b'')
|
||||
self.driver_data_raw = self.req_driver_socket.recv()
|
||||
# self.req_driver_socket.send(b'')
|
||||
# self.driver_data_raw = self.req_driver_socket.recv()
|
||||
if self.driver_data_raw == b'':
|
||||
# todo fixit driver no empty
|
||||
self.rep_socket.send(BeamformerMsg(b'nop').encode_msg())
|
||||
@ -94,6 +104,7 @@ class Muxer(Node):
|
||||
).encode_msg())
|
||||
|
||||
def loop(self):
|
||||
t = Thread(target=self.p_thread).start()
|
||||
self.rtsi = RobotRtsiMsg(
|
||||
pos=(0, 0, 0, 0, 0, 0),
|
||||
force=(0, 0, 0, 0, 0, 0),
|
||||
@ -113,6 +124,7 @@ class Muxer(Node):
|
||||
if k == self.c.sub:
|
||||
msg = self.recv()
|
||||
if isinstance(msg, KillMsg):
|
||||
self.run_p_thread = False
|
||||
if msg.name == '':
|
||||
return
|
||||
elif isinstance(msg, RfFrameMsg):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user