From e3b3b542a7d5f1b627805f9d5e56e66ea62568fc Mon Sep 17 00:00:00 2001
From: 554325746@qq.com <554325746@qq.com>
Date: 星期六, 29 六月 2019 17:59:15 +0800
Subject: [PATCH] can use with web and camera

---
 go.sum           |    4 ++
 test             |    0 
 go.mod           |    3 +
 sdk/sdk.go       |    6 +-
 util/util.go     |   35 +++++++++++++++++
 camera/camera.go |   37 +++++++++++-------
 6 files changed, 66 insertions(+), 19 deletions(-)

diff --git a/camera/camera.go b/camera/camera.go
index 750b1ae..d1cc7e0 100644
--- a/camera/camera.go
+++ b/camera/camera.go
@@ -39,8 +39,6 @@
     //  web绔垵濮嬪寲
     CreateCamera("virtual-faceextract-sdk-pull_2" , "web")
 
-
-
 //	go AutoDelCamera(util.Cameraflag)
 }
 
@@ -113,33 +111,42 @@
 
 func Recv(socket SocketContext, remote string ) {
 
-    var recvmsg  protomsg.Recvmsg
+    var recvmessage []byte
+    var imagemsg  protomsg.Image
+    var err error
 	for {
 		select {
 		case <-socket.Context.Done():
 			fmt.Println("listen recv quit")
 			return
 		default:
-			if msg, err := socket.Sock.Recv(); err != nil {
+			if recvmessage, err = socket.Sock.Recv(); err != nil {
 				fmt.Println("err is: ", err)
 				continue
-			} else {
-                 if  err := proto.Unmarshal(msg,&recvmsg);  err != nil {
-                     fmt.Println("recv msg is not protomsg.Recvmg") 
-                     continue
-                 }
+			}
+
+            unmsg, err := util.UnCompress(recvmessage)
+            if err != nil {
+                fmt.Println(err)
+                continue
             }
+
+            if  err := proto.Unmarshal(unmsg,&imagemsg);  err != nil {
+               fmt.Println("recv msg is not protomsgImage") 
+               continue
+            }
+
 	    	fmt.Println("============== one msg input ==========")
             switch remote {
                case "camera":
-                    for _, taskid := range GetAlltask(recvmsg.Id) {
-                        // time.Sleep(5 * time.Second)
-                        fmt.Println("id: ", recvmsg.Id , " taskid: ", taskid)
-                        Taskdolist(recvmsg.Id, recvmsg.Addr, taskid, recvmsg.Picdata)
+                    for _, taskid := range GetAlltask(imagemsg.Cid) {
+                       //  time.Sleep(5 * time.Second)
+                        fmt.Println("id: ", imagemsg.Cid, " taskid: ", taskid)
+                        Taskdolist(imagemsg.Cid, "", taskid, recvmessage)
 	            	}
                case  "web":
-                        fmt.Println("id: ", recvmsg.Id , " taskid: ", "92496BDF-2BFA-98F2-62E8-96DD9866ABD2")
-                        Taskdolist(recvmsg.Id, recvmsg.Addr, "92496BDF-2BFA-98F2-62E8-96DD9866ABD2", recvmsg.Picdata)
+                        fmt.Println("id: ", imagemsg.Cid , " taskid: ", "92496BDF-2BFA-98F2-62E8-96DD9866ABD2")
+                        Taskdolist(imagemsg.Cid,"", "92496BDF-2BFA-98F2-62E8-96DD9866ABD2", recvmessage)
            }
 		}
 	}
diff --git a/go.mod b/go.mod
index 8eab7a8..7fdfa25 100644
--- a/go.mod
+++ b/go.mod
@@ -4,12 +4,13 @@
 
 require (
 	basic.com/dbapi.git v0.0.0-20190620073851-30a7d0574bbc
-	basic.com/pubsub/protomsg.git v0.0.0-20190626081036-01b33da00793
+	basic.com/pubsub/protomsg.git v0.0.0-20190628022108-13a4fccc509f
 	basic.com/valib/deliver.git v0.0.0-20190529080650-3e64847c9bce
 	github.com/ajg/form v1.5.1 // indirect
 	github.com/gogo/protobuf v1.2.1
 	github.com/golang/protobuf v1.3.1
 	github.com/gorilla/websocket v1.4.0 // indirect
+	github.com/pierrec/lz4 v2.0.5+incompatible
 	github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a
 	github.com/tmthrgd/go-sem v0.0.0-20160607101025-0214dbf53877 // indirect
 	github.com/tmthrgd/go-shm v0.0.0-20170117044846-90afcfcd5ee9 // indirect
diff --git a/go.sum b/go.sum
index fb4a64c..20d219d 100644
--- a/go.sum
+++ b/go.sum
@@ -6,6 +6,8 @@
 basic.com/pubsub/protomsg.git v0.0.0-20190621090107-c5cf390e19bb/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU=
 basic.com/pubsub/protomsg.git v0.0.0-20190626081036-01b33da00793 h1:dy4DnHRIcQf5DaiLl/IwE3fqZ6a21MXqMTFUmmVAG1c=
 basic.com/pubsub/protomsg.git v0.0.0-20190626081036-01b33da00793/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU=
+basic.com/pubsub/protomsg.git v0.0.0-20190628022108-13a4fccc509f h1:mBsaoP1YlsFkgBwxm2KQ9U80Lj2b2wf3gowPlxf5ifQ=
+basic.com/pubsub/protomsg.git v0.0.0-20190628022108-13a4fccc509f/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU=
 basic.com/valib/deliver.git v0.0.0-20190529080650-3e64847c9bce h1:/D6k+FVN1sMqLz6tMlsIl9bKwE2Mpc5d4QfPh0y4DSQ=
 basic.com/valib/deliver.git v0.0.0-20190529080650-3e64847c9bce/go.mod h1:bkYiTUGzckyNOjAgn9rB/DOjFzwoSHJlruuWQ6hu6IY=
 github.com/ajg/form v1.5.1 h1:t9c7v8JUKu/XxOGBU0yjNpaMloxGEJhUkqFRq0ibGeU=
@@ -20,6 +22,8 @@
 github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
 github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
 github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
+github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I=
+github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
 github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
 github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
 github.com/tmthrgd/go-sem v0.0.0-20160607101025-0214dbf53877 h1:n65+IT/xy5+trHm3Zpg9+j7IO4n8pBcPzvaKbMolW8U=
diff --git a/sdk/sdk.go b/sdk/sdk.go
index 07da4f6..7c4b4f6 100644
--- a/sdk/sdk.go
+++ b/sdk/sdk.go
@@ -101,8 +101,8 @@
 func Dealextern() {
     for {
         select {
-            case esmsg:= <-SdkMap["es"]:
-                fmt.Println(esmsg)
+            case <-SdkMap["es"]:
+                fmt.Println("es finanl sdk!")
         }
     }
 }
@@ -240,6 +240,7 @@
 				if err != nil {
 					fmt.Println("proto marshal error ", err)
 					continue
+                }
 				
 				fmt.Printf("浠庣閬搒dkid=%s 鎺ュ彈鏁版嵁 %d\n", sdkid, len(data))
 				fmt.Println()
@@ -256,5 +257,4 @@
 			}
 		}
 	}
-}
 }
diff --git a/test b/test
index d95b9d8..27cbc07 100755
--- a/test
+++ b/test
Binary files differ
diff --git a/util/util.go b/util/util.go
index d802f4c..fbddcdb 100644
--- a/util/util.go
+++ b/util/util.go
@@ -1,5 +1,12 @@
 package util
 
+import(
+        "github.com/pierrec/lz4"
+        "fmt"
+       )
+
+
+
 //  1. oldstring element is not in new  : abandon(delete)
 //  2. new element is not in oldstring  : add(add)
 func Difference(oldstring []string, newstring []string) map[string]string {
@@ -31,3 +38,31 @@
 	}
 	return diff
 }
+
+// UnCompress uncompress
+func UnCompress(in []byte) ([]byte, error) {
+    out := make([]byte, 10*len(in))
+         n, err := lz4.UncompressBlock(in, out)
+         if err != nil {
+             fmt.Println("uncompress error: ", err)
+             return nil, err
+         }
+     out = out[:n] // uncompressed data
+     return out, nil
+}
+
+// Compress compress
+func Compress(in []byte) ([]byte, error) {
+    out := make([]byte, len(in))
+         ht := make([]int, 64<<10) // buffer for the compression table
+         n, err := lz4.CompressBlock(in, out, ht)
+         if err != nil {
+             fmt.Println("compress: ", err)
+                 return nil, err
+         }
+     if n >= len(in) {
+         fmt.Println("image is not compressible")
+     }
+     out = out[:n] // compressed data
+         return out, nil
+}

--
Gitblit v1.8.0