From 360ba8a616cb525053f288ec5dc3fc9719734282 Mon Sep 17 00:00:00 2001
From: wu_xinjun <bent20140204@outlook.com>
Date: 星期一, 07 三月 2022 15:27:37 +0800
Subject: [PATCH] temp

---
 src/engine/devices.py |   54 ++++++++++++++++++++++++++++++++----------------------
 1 files changed, 32 insertions(+), 22 deletions(-)

diff --git a/src/engine/CameraDevice.py b/src/engine/devices.py
similarity index 76%
rename from src/engine/CameraDevice.py
rename to src/engine/devices.py
index 4361740..a61b5bf 100644
--- a/src/engine/CameraDevice.py
+++ b/src/engine/devices.py
@@ -1,3 +1,4 @@
+from lib2to3.pytree import convert
 import cv2
 import time
 import threading
@@ -57,7 +58,7 @@
         """start capture thread"""
         if self._capture_thread is None:
             self._capture_thread = \
-                CaptureThread(self.cameras,self.image_data_queue,interval=10)
+                CaptureThread(self.cameras,self.image_data_queue,self.device_id,interval=10)
             self._capture_thread.setDaemon(True)
             self._capture_thread.start()
 
@@ -68,11 +69,18 @@
             self._capture_thread = None
 
 
+class microwaveController(object):
+    pass
+
+class dustCleanerController(object):
+    pass 
+
+
 class CaptureThread(threading.Thread):
     """
     camera capture thread
     """
-    def __init__(self, cameras, msg_queue, interval, image_quality = 95):
+    def __init__(self, cameras, msg_queue, interval, device_id,image_quality = 95):
         """init the thread"""
         threading.Thread.__init__(self)
         self.cameras = cameras
@@ -80,43 +88,45 @@
         self.interval = interval
         self.image_quality = image_quality
         self.is_stop = False
-    
+        self.device_id = device_id
+
     def stop(self):
         """stop the thread"""
         self.is_stop = True
 
     def run(self):
         print("CaptureThread started")
+        encode_param = [int(cv2.IMWRITE_JPEG_QUALITY), self.image_quality]
         self.next_time = time.time() + self.interval
         while not self.is_stop:
             this_time = time.time()
             if this_time > self.next_time:
-                data1 = pb.ImagesMessage()
                 for i in range(len(self.cameras)):
                     _, frame = self.cameras[i].read()
-                    encode_param = [int(cv2.IMWRITE_JPEG_QUALITY), self.image_quality]
+                    capture_time = time.time()
                     _, encimg = cv2.imencode('.jpg', frame, encode_param)
                     if frame is not None:
                         np_array = np.asarray(encimg)  # frame 杞崲涓簄umpy鏁扮粍
                         byte_array = np_array.tobytes()  # numpy鏁扮粍杞崲涓篵yte鏁扮粍
-                        if i == 0:
-                            data1.image1 = byte_array
-                        elif i == 1:
-                            data1.image2 = byte_array
-                        elif i == 2:
-                            data1.image3 = byte_array
-                        elif i == 3:
-                            data1.image4 = byte_array
-                data1_str = data1.SerializeToString()
+                        # convert the image to pb.DataField
+                        imagedata = pb.DataField()
+                        imagedata.data = byte_array
+                        imagedata.length = len(byte_array)
 
-                # create protobuf message
-                req = pb.RequestCommand()
-                req.sys_command = pb.SysCommand.FIVE_G_COMMAND
-                req.sub_command = pb.SubCommand.FIVE_G_SEND_IMAGE_SUB_COMMAND
-                req.data1.length = len(data1_str)
-                req.data1.data = data1_str
-                # add message to queue
-                self.msg_queue.put(req)
+                        data_str = imagedata.SerializeToString()
+
+                        # create protobuf message
+                        data_msg = pb.CapturedData()
+                        data_msg.generate_time = capture_time
+                        data_msg.generate_device = self.device_id
+                        data_msg.camera_port = i
+                        data_msg.image_data = data_str
+
+                        
+
+                        # add message to queue
+                        self.msg_queue.put(data_msg)
+
                 self.next_time += self.interval
             time.sleep(0.1)
         for camera in self.cameras:

--
Gitblit v1.9.1