From a464ae7f01e47395f3a5386d1b1d0b5f4223a29a Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期四, 05 九月 2019 15:02:25 +0800
Subject: [PATCH] update dbapi

---
 camera/camera.go |   30 ++++++++++++++++++++++++------
 1 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/camera/camera.go b/camera/camera.go
index 8bc26d0..0d0c99a 100644
--- a/camera/camera.go
+++ b/camera/camera.go
@@ -5,10 +5,11 @@
 	//"sync"
 	"taskpubsub/logger"
 
-	"basic.com/pubsub/protomsg.git"
-	"github.com/gogo/protobuf/proto"
 	"taskpubsub/sdk"
 	"taskpubsub/util"
+
+	"basic.com/pubsub/protomsg.git"
+	"github.com/gogo/protobuf/proto"
 
 	// "golang.org/x/sys/unix"
 
@@ -61,14 +62,13 @@
 
 		url := fmt.Sprintf("ipc:///tmp/%s.ipc", id)
 		m := deliver.PushPull
-		if shm{
+		if shm {
 			m = deliver.Shm
 			url = id
 
-			// unix.Unlink("/dev/shm/" + url)
 		}
-		
-		fmt.Println("ipc url: ", url)
+
+		fmt.Println("CAMERA URL : ", url)
 		socket, err := util.NewSocketListen(int(m), url, shm)
 		if err != nil {
 			logger.Error("create socket error")
@@ -124,6 +124,8 @@
 
 func Recv(socket util.SocketContext) {
 
+	tryCount := 0
+
 	var recvmessage []byte
 	var imagemsg protomsg.Image
 	var err error
@@ -135,6 +137,19 @@
 		default:
 			if recvmessage, err = socket.Sock.Recv(); err != nil {
 				//logger.Error("[camera] err is: ", err)
+				// fmt.Println("CAMERA RECV ERROR: ", err)
+
+				if socket.UseSHM {
+					if tryCount > util.SHMMaxTryCount {
+						socket, err = util.NewSocketListen(socket.Mode, socket.URL, socket.UseSHM)
+						fmt.Println("CAMERA SHM TRY :", tryCount, " RESTART IT")
+
+						tryCount = 0
+
+						continue
+					}
+					tryCount++
+				}
 				continue
 			}
 
@@ -166,6 +181,9 @@
 	for _, camsingle := range util.CameraTasks {
 		if cid == camsingle.Camera.Id {
 			for _, tasksingle := range camsingle.Tasks {
+				if !tasksingle.Enable {
+					continue
+				}
 				tasks = append(tasks, tasksingle.Taskid)
 			}
 			return

--
Gitblit v1.8.0