From 9d7b6313a08f7fae4cf117679c6d3633734ae738 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期一, 13 一月 2020 09:08:08 +0800
Subject: [PATCH] debug
---
run.go | 85 +++++++++++++++++++++++-------------------
1 files changed, 47 insertions(+), 38 deletions(-)
diff --git a/run.go b/run.go
index cc5a50b..3e9c399 100644
--- a/run.go
+++ b/run.go
@@ -14,12 +14,11 @@
type channel struct {
index int
- msg chan protomsg.SdkMessage
+ msgs *sdkhelper.LockList
}
//////////////////////////////////////////////////////////////////
const (
- cacheFrameNum = 3
trackChnTimeout = time.Duration(10)
)
@@ -66,7 +65,7 @@
c := &channel{
index: index,
- msg: make(chan protomsg.SdkMessage, cacheFrameNum),
+ msgs: sdkhelper.NewLockList(6),
}
f.mapChan[id] = c
@@ -196,9 +195,9 @@
for _, msg := range msgs {
if c, ok := f.channelExist(msg.Cid); ok {
- f.fnLogger("######push image")
- c.msg <- msg
- f.fnLogger("######push over image")
+ f.fnLogger("######push image: ", c.index)
+ c.msgs.Push(msg)
+ f.fnLogger("######push over image: ", c.index)
} else {
nc := f.channelNew(msg.Cid)
@@ -218,7 +217,7 @@
ret := f.handle.TrackerResize(imgW, imgH, nc.index)
f.fnLogger("ResizeFaceTracker: cid: ", msg.Cid, " chan: ", nc.index, " wXh: ", imgW, "x", imgH, " result:", ret)
go f.detectTrackOneChn(nc, out)
- nc.msg <- msg
+ nc.msgs.Push(msg)
}
}
f.fnLogger("######run over batch images")
@@ -235,41 +234,56 @@
for {
select {
- case rMsg := <-c.msg:
- if !sdkhelper.ValidRemoteMessage(rMsg, f.typ, f.fnLogger) {
- sdkhelper.EjectResult(nil, rMsg, out)
- f.fnLogger("Face!!!!!!SkdMessage Invalid")
-
- continue
+ case <-time.After(trackChnTimeout * time.Second):
+ f.fnLogger("Timeout to get image, curCid:", curCid)
+ if curCid != "" {
+ f.channelRelease(curCid)
}
+ return
+ default:
- i := sdkhelper.UnpackImage(rMsg, f.typ, f.fnLogger)
- if i == nil || i.Data == nil || i.Width <= 0 || i.Height <= 0 {
- sdkhelper.EjectResult(nil, rMsg, out)
- f.fnLogger("Face!!!!!!Unpack Image From SkdMessage Failed")
-
- continue
+ elems := c.msgs.Drain()
+ var msgs []protomsg.SdkMessage
+ for _, v := range elems {
+ msgs = append(msgs, v.(protomsg.SdkMessage))
}
+ for _, rMsg := range msgs {
- curCid = i.Cid
+ if !sdkhelper.ValidRemoteMessage(rMsg, f.typ, f.fnLogger) {
+ sdkhelper.EjectResult(nil, rMsg, out)
+ f.fnLogger("Face!!!!!!SkdMessage Invalid")
- // conv to bgr24 and resize
- imgW, imgH := int(i.Width), int(i.Height)
+ continue
+ }
- f.fnLogger("######face sdk run")
- count, data, _ := f.handle.Run(i.Data, imgW, imgH, 3, dtchn)
- f.fnLogger("######face over sdk run")
+ i := sdkhelper.UnpackImage(rMsg, f.typ, f.fnLogger)
+ if i == nil || i.Data == nil || i.Width <= 0 || i.Height <= 0 {
+ sdkhelper.EjectResult(nil, rMsg, out)
+ f.fnLogger("Face!!!!!!Unpack Image From SkdMessage Failed")
- f.fnLogger("######face eject data")
- sdkhelper.EjectResult(data, rMsg, out)
- f.fnLogger("######face over eject data")
+ continue
+ }
- var id, name string
- if rMsg.Tasklab != nil {
- id, name = rMsg.Tasklab.Taskid, rMsg.Tasklab.Taskname
+ curCid = i.Cid
+
+ // conv to bgr24 and resize
+ imgW, imgH := int(i.Width), int(i.Height)
+
+ f.fnLogger("######face sdk run: ", dtchn)
+ count, data, _ := f.handle.Run(i.Data, imgW, imgH, 3, dtchn)
+ f.fnLogger("######face over sdk run: ", dtchn)
+
+ f.fnLogger("######face eject data: ", dtchn)
+ sdkhelper.EjectResult(data, rMsg, out)
+ f.fnLogger("######face over eject data: ", dtchn)
+
+ var id, name string
+ if rMsg.Tasklab != nil {
+ id, name = rMsg.Tasklab.Taskid, rMsg.Tasklab.Taskname
+ }
+ f.fnLogger("CAMERAID: ", rMsg.Cid, " TASKID: ", id, " TASKNAME: ", name, " DETECT ", f.typ, " COUNT: ", count)
}
- f.fnLogger("CAMERAID: ", rMsg.Cid, " TASKID: ", id, " TASKNAME: ", name, " DETECT ", f.typ, " COUNT: ", count)
sc++
if sc == 25 {
@@ -283,12 +297,7 @@
sc = 0
tm = time.Now()
}
- case <-time.After(trackChnTimeout * time.Second):
- f.fnLogger("Timeout to get image, curCid:", curCid)
- if curCid != "" {
- f.channelRelease(curCid)
- }
- return
+
}
}
}
--
Gitblit v1.8.0