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