From 5fdc5059555e7a4cf533b7bfdb79025f23fa2b6a Mon Sep 17 00:00:00 2001
From: 554325746@qq.com <554325746@qq.com>
Date: 星期三, 26 六月 2019 14:53:46 +0800
Subject: [PATCH] task with zhangmeng ok release 2

---
 camera/camera.go |   43 ++++++++++++++++++++++---------------------
 1 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/camera/camera.go b/camera/camera.go
index 1f501f1..b24b337 100644
--- a/camera/camera.go
+++ b/camera/camera.go
@@ -3,30 +3,28 @@
 import (
 	"errors"
 
-	"basic.com/dbapi.git"
 	"basic.com/valib/deliver.git"
 
 	"github.com/long/test/sdk"
 	"github.com/long/test/util"
+    "basic.com/pubsub/protomsg.git"
 
 	"context"
 	"fmt"
 	"sync"
-	"time"
+	// "time"
 )
 
 //var SocketManage = make(map[string]SocketContext)
 var SocketManage sync.Map
 
-var Initchannel = make(chan string)
+var Initchannel = make(chan protomsg.Camera )
 
 type SocketContext struct {
 	Sock    deliver.Deliver
 	Context context.Context
 	Cancel  context.CancelFunc
 }
-
-var camval dbapi.CameraApi
 
 func Init() {
 
@@ -40,12 +38,14 @@
 	go AutoDelCamera(util.Cameraflag)
 
 	for _, cam := range util.CameraIds {
-		Initchannel <- cam.Id
+		Initchannel <- cam
 	}
 }
 
-func CreateCamera(camera chan string) {
-	for camid := range camera {
+func CreateCamera(camera chan protomsg.Camera) {
+	for cam := range camera {
+        camid := cam.Id
+        caddr := cam.Addr
 		if _, ok := SocketManage.Load(camid); !ok {
 			url := fmt.Sprintf("ipc:///tmp/%s.ipc", camid)
 
@@ -55,9 +55,9 @@
 				continue
 			}
 
-			go func(cid string, sock SocketContext) {
-				Recv(cid, sock)
-			}(id, socketlisten)
+			go func(cid string, cameraaddr string,  sock SocketContext) {
+				Recv(cid, cameraaddr, sock)
+			}(id, caddr, socketlisten)
 		}
 	}
 }
@@ -87,7 +87,11 @@
 
 		for key, op := range cameraChanDel {
 			if op == "add" {
-				Initchannel <- key
+                for _, value := range util.CameraIds {
+                    if key == value.Id{ 
+        				Initchannel <- value
+                    }
+                }
 			} else {
 				if sock, ok := SocketManage.Load(key); ok {
 					if socket, sok := sock.(SocketContext); sok {
@@ -118,7 +122,7 @@
 	return cameraid, socket, nil
 }
 
-func Recv(cameraid string, socket SocketContext) {
+func Recv(cameraid string, caddr string , socket SocketContext) {
 	var msg []byte
 	var err error
 	for {
@@ -133,18 +137,17 @@
 			} else {
 				fmt.Println()
 				fmt.Println("============== one msg input ==========")
-				fmt.Println("cameraid: ", cameraid, len(msg))
 				for _, taskid := range GetAlltask(cameraid) {
-					time.Sleep(5 * time.Second)
+					// time.Sleep(5 * time.Second)
 					fmt.Println("cameraid: ", cameraid, " taskid: ", taskid)
-					Taskdolist(cameraid, taskid, msg)
+					 Taskdolist(cameraid, caddr, taskid, msg)
 				}
 			}
 		}
 	}
 }
 
-//   鏍规嵁cid 鑾峰彇 鎵�鏈夌殑浠诲姟
+//   鎹甤id 鑾峰彇 鎵�鏈夌殑浠诲姟
 func GetAlltask(cid string) (tasks []string) {
 	for _, camsingle := range util.CameraTasks {
 		if cid == camsingle.Camera.Id {
@@ -157,10 +160,10 @@
 	return
 }
 
-func Taskdolist(cid string, taskid string, data []byte) {
+func Taskdolist(cid string, caddr string,  taskid string, data []byte) {
 
 	//  鏁版嵁鍔犲伐(鎵撴爣绛�)
-	sdkmsg := sdk.SdkData(cid, taskid, data)
+	sdkmsg := sdk.SdkData(cid, caddr, taskid, data)
 	if sdkmsg.Tasklab == nil {
 		fmt.Printf("cid:%s 娌℃湁浠诲姟%s\n", cid, taskid)
 		return
@@ -169,9 +172,7 @@
 	//  璁$畻鍒嗗彂鐨勪富棰�
 	SendTopic := sdk.SdkSendTopic(sdkmsg)
 	if _, ok := sdk.SdkMap[SendTopic]; ok {
-		fmt.Println("鍒嗗彂鐨勪富棰樺瓨鍦�")
 		sdk.SdkMap[SendTopic] <- sdkmsg
-		//fmt.Println("閲嶆柊寮�濮嬪惊鐜�: ", sdk.SdkMap)
 	} else {
 		fmt.Println("鍒嗗彂鐨勪富棰樹笉瀛樺湪")
 	}

--
Gitblit v1.8.0