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