diff --git a/src/zmqmyclasstest.py b/src/zmqmyclasstest.py new file mode 100644 index 0000000..2ba68e0 --- /dev/null +++ b/src/zmqmyclasstest.py @@ -0,0 +1,137 @@ +import logging +import multiprocessing +import time +from pathlib import Path + +import cv2 +import numpy as np +from tqdm import tqdm + +from nodes.Beamformer import Beamformer +from nodes.Broker import Broker +from nodes.ImageCV import ImageCV +from nodes.ImageQt import ImageQt +from nodes.Loader import Loader +from nodes.MainUI import MainUI +from nodes.Node import Node +from BusClient import BusClient +from Msg import Msg1, Msg2, BMMsg, TickMsg, StrMsg, KillMsg +from nodes.WebRTC import WebRTC + + +class M1(Node): + def loop(self): + cnt = 0 + while True: + cnt += 1 + self.send(str(cnt).encode()) + time.sleep(1) + + +class M2(Node): + def loop(self): + while True: + print(self.recv()) + + +class M3(Node): + topics = [StrMsg] + def loop(self): + arr = [] + for img in tqdm(list(Path('/home/lambda/Videos/pngs/New Folder/').glob('*.png'))): + img = cv2.imread(str(img)) + # img = cv2.resize(img, (1920 // 2, 1080 // 2)) + img = img.reshape(1080, 1920, 3) + + z = np.zeros((1080, 1920, 4), dtype=np.uint8) + z[:, :, :3] = img + img = z + img = cv2.cvtColor(img, cv2.COLOR_BGRA2RGBA) + arr.append(img.tobytes()) + + # while self.isalive: + # for b in arr: + # self.send(BMMsg(0, b)) + # # self.pub_socket.send(b) + # # self.send(b) + # r = self.c.poller.poll(int(1000 / 60)) + # # print(r) + # if r and Msg.decode_msg(r[0][0].recv()).name == '': + # self.isalive = False + # break + # # time.sleep(1 / 60) + while self.isalive: + for b in arr: + msg = self.recv() + if isinstance(msg, KillMsg): + if msg.name == '': + self.isalive = False + break + self.send(BMMsg(0, b)) + + # if r and Msg.decode_msg(r[0][0].recv()).name == '': + + +class M4(Node): + def loop(self): + while True: + self.send(Msg1()) + time.sleep(1) + + +class MTIME(Node): + def loop(self): + while True: + t = time.time() + self.send(TickMsg(t)) + time.sleep(10) + # print(t) + + +class MLISTEN(Node): + topics = [StrMsg] + + def loop(self): + while self.isalive: + r = self.recv() + print(r) + if isinstance(r, KillMsg) and r.name == '': + self.isalive = False + break + self.send(TickMsg(time.time())) + + +class M6(Node): + topics = [Msg2.eid()] + + def loop(self): + while True: + print(self.recv()) + + +if __name__ == '__main__': + logging.basicConfig(level=logging.INFO) + multiprocessing.set_start_method('spawn') + pps = [] + ps = [ + Broker(), + WebRTC(), + # M3(), + MainUI(), + ImageCV(), + MLISTEN(), + Beamformer(), + Loader(), + ] + for p in ps: + pps.append(multiprocessing.Process(target=p)) + for p in pps: + p.start() + + c = BusClient(KillMsg) + while True: + x: KillMsg = c.recv() + if x.name == '': + break + for p in pps: + p.kill() diff --git a/test/testcppzmq.py b/test/testcppzmq.py new file mode 100644 index 0000000..def3365 --- /dev/null +++ b/test/testcppzmq.py @@ -0,0 +1,8 @@ +import zmq +if __name__ == '__main__': + ctx = zmq.Context() + sock = ctx.socket(zmq.PULL) + sock.bind('tcp://0.0.0.0:5558') + while True: + s = sock.recv() + print(s) \ No newline at end of file