이재빈

수신모듈 추가

...@@ -4,6 +4,7 @@ import numpy as np ...@@ -4,6 +4,7 @@ import numpy as np
4 from queue import Queue 4 from queue import Queue
5 from _thread import * 5 from _thread import *
6 enclose_q = Queue() 6 enclose_q = Queue()
7 +recv_enclose_q = Queue()
7 import time 8 import time
8 def filter_img(img): 9 def filter_img(img):
9 #이미지의 RGB값을 분석하여 찾는 실내 Tag가 맞는지 판별 10 #이미지의 RGB값을 분석하여 찾는 실내 Tag가 맞는지 판별
...@@ -30,9 +31,6 @@ def bboxes(inp): ...@@ -30,9 +31,6 @@ def bboxes(inp):
30 img = inp 31 img = inp
31 start = time.time() 32 start = time.time()
32 curTime = time.time() 33 curTime = time.time()
33 - # img2gray = cv2.imread(fname,0)
34 - # img = cv2.namedWindow(img,cv2.WINDOW_NORMAL)
35 - # img = cv2.resizeWindow(img,600,600)
36 img_final = inp 34 img_final = inp
37 img2gray = cv2.cvtColor(inp, cv2.COLOR_BGR2GRAY) #GRAY Image 8bit per pixel 35 img2gray = cv2.cvtColor(inp, cv2.COLOR_BGR2GRAY) #GRAY Image 8bit per pixel
38 ret, mask = cv2.threshold(img2gray, 180, 255, cv2.THRESH_BINARY) #threshold : distinguish background, object 36 ret, mask = cv2.threshold(img2gray, 180, 255, cv2.THRESH_BINARY) #threshold : distinguish background, object
...@@ -58,7 +56,7 @@ def bboxes(inp): ...@@ -58,7 +56,7 @@ def bboxes(inp):
58 continue 56 continue
59 return cropped 57 return cropped
60 58
61 -def threaded(Client_socket, addr, queue): 59 +def send_threaded(Client_socket, addr, queue):
62 print("Connected by : ", addr[0], " : ", addr[1]) 60 print("Connected by : ", addr[0], " : ", addr[1])
63 while True: 61 while True:
64 try : 62 try :
...@@ -73,7 +71,6 @@ def threaded(Client_socket, addr, queue): ...@@ -73,7 +71,6 @@ def threaded(Client_socket, addr, queue):
73 print("Disconnected") 71 print("Disconnected")
74 Client_socket.close() 72 Client_socket.close()
75 73
76 -
77 def webcam(queue): 74 def webcam(queue):
78 capture = cv2.VideoCapture(0) 75 capture = cv2.VideoCapture(0)
79 while True: 76 while True:
...@@ -91,23 +88,48 @@ def webcam(queue): ...@@ -91,23 +88,48 @@ def webcam(queue):
91 key = cv2.waitKey(1) 88 key = cv2.waitKey(1)
92 if key == 27: 89 if key == 27:
93 break 90 break
91 +def recvall(sock, count):
92 + # 바이트 문자열
93 + buf = b''
94 + while count:
95 + newbuf = sock.recv(count)
96 + if not newbuf: return None
97 + buf += newbuf
98 + count -= len(newbuf)
99 + return buf
94 100
95 if __name__ == '__main__': 101 if __name__ == '__main__':
96 - HOST = '127.0.0.1' 102 + SEND_HOST = '127.0.0.1' #CORE CLOUD
97 - PORT = 9999 103 + SEND_PORT = 9999
98 104
99 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 105 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
100 server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 106 server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
101 - server_socket.bind((HOST, PORT)) 107 + server_socket.bind((SEND_HOST, SEND_PORT))
102 server_socket.listen() 108 server_socket.listen()
103 109
110 + RECV_HOST = '127.0.0.1' #CORE CLOUD
111 + RECV_PORT = 9998
112 +
113 + recv_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
114 + recv_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
115 + recv_server_socket.bind((RECV_HOST, RECV_PORT))
116 + recv_server_socket.listen()
117 +
104 print('server start') 118 print('server start')
105 119
106 start_new_thread(webcam, (enclose_q,)) 120 start_new_thread(webcam, (enclose_q,))
107 -
108 while True: 121 while True:
109 print('wait') 122 print('wait')
110 123
111 client_socket, addr = server_socket.accept() 124 client_socket, addr = server_socket.accept()
112 - start_new_thread(threaded, (client_socket, addr, enclose_q,)) 125 + start_new_thread(send_threaded, (client_socket, addr, enclose_q,)) #전처리 데이터 송신
126 + conn,addr = recv_server_socket.accept() #수신 대기
127 + if(conn):
128 + length = recvall(conn, 16)
129 + stringData = recvall(conn, int(length))
130 + data = np.fromstring(stringData, dtype = 'uint8') #주행정보 수신
131 + if(conn): #연결 끊어질 경우 loop 탈출
132 + break
133 + else:
134 + pass
113 server_socket.close() 135 server_socket.close()
......