From f963cd025c1aa88ac8b211e24f46ceb0eb64c418 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期二, 07 五月 2019 14:19:29 +0800
Subject: [PATCH] 多个解码单元同时运行,注意tcp地址

---
 decoder/main.go |   30 ++++++++++++++++++------------
 1 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/decoder/main.go b/decoder/main.go
index 97b3496..4684779 100644
--- a/decoder/main.go
+++ b/decoder/main.go
@@ -49,8 +49,8 @@
 var (
 	mapCameraInfo = make(map[string]CameraInfo)
 
-	tcp  = `tcp://192.168.1.124`
-	port = 7000
+	tcp  = `tcp://192.168.1.124:`
+	port = 7001
 )
 
 func recvCameraInfoFromIPC(ctx context.Context, url string, ch chan<- CameraInfo) {
@@ -59,18 +59,24 @@
 	for {
 		msg := ipc.Recv()
 		if msg != nil {
-			fmt.Println(string(msg))
+
 			var c CameraInfo
 			if err := json.Unmarshal(msg, &c); err == nil {
+
+				if _, ok := mapCameraInfo[c.ID]; ok {
+					continue
+				}
+
 				ch <- c
-				fmt.Printf("recv camere info %+v\n", c)
+
+				msgIpc := MsgIPC{"new decoder", port}
+				if b, err := json.Marshal(msgIpc); err == nil {
+					ipc.Send(b)
+				}
 			} else {
 				fmt.Println(err)
 			}
-			msgIpc := MsgIPC{"new decoder", port}
-			if b, err := json.Marshal(msgIpc); err == nil {
-				ipc.Send(b)
-			}
+
 		}
 	}
 }
@@ -85,9 +91,9 @@
 	ctx, cancel := context.WithCancel(context.Background())
 
 	ch := make(chan CameraInfo)
-	tcpURL := tcp + strconv.Itoa(port)
-	port++
-	go recvCameraInfoFromIPC(ctx, tcpURL, ch)
+	// tcpURL := tcp + strconv.Itoa(port)
+	// port++
+	go recvCameraInfoFromIPC(ctx, ipcURL, ch)
 
 	for {
 		select {
@@ -98,7 +104,6 @@
 				mapCameraInfo[c.ID] = c
 				ipcAddr := tcp + strconv.Itoa(port)
 				port++
-				fmt.Printf("create ipc %s for decode : %s, on camera id %s\n", ipcAddr, c.URL, c.ID)
 
 				url := strings.TrimSpace(c.URL)
 				id := strings.TrimSpace(c.ID)
@@ -117,6 +122,7 @@
 	}
 	d.RunAsClient()
 }
+
 func test() {
 	fmt.Println("start test")
 

--
Gitblit v1.8.0