From aaa1c01fa7febe0de698b38ddae4cfe5fe7cc4ff Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期三, 15 一月 2020 13:34:56 +0800
Subject: [PATCH] debug

---
 run.go |   81 ++++++++++++++++++++++++----------------
 1 files changed, 49 insertions(+), 32 deletions(-)

diff --git a/run.go b/run.go
index ec0df56..126d96c 100644
--- a/run.go
+++ b/run.go
@@ -1,21 +1,25 @@
 package main
 
 import (
-	"bufio"
 	"context"
-	"fmt"
 	"io/ioutil"
 	"os"
+	"strings"
+	"time"
 	"unsafe"
 
-	"basic.com/libgowrapper/sdkhelper.git"
+	"reid/common"
+
 	"basic.com/valib/gogpu.git"
 
 	"basic.com/pubsub/protomsg.git"
-	"basic.com/valib/godraw.git"
 
-	"basic.com/valib/deliver.git"
 	"github.com/gogo/protobuf/proto"
+
+	"nanomsg.org/go-mangos"
+	"nanomsg.org/go-mangos/protocol/rep"
+	"nanomsg.org/go-mangos/transport/ipc"
+	"nanomsg.org/go-mangos/transport/tcp"
 )
 
 type reid struct {
@@ -29,7 +33,7 @@
 // Create Reid
 func Create(config string, typ, id string, gpu int, shm bool, ipc2Rule string, ruleMaxSize int, fn func(...interface{}), reserved map[string]interface{}) interface{} {
 
-	cfg, err := sdkhelper.ReadConfig(config)
+	cfg, err := common.ReadConfig(config)
 	if err != nil {
 		fn("Reid SDK Create Error When Read Config: ", err)
 		return nil
@@ -49,7 +53,7 @@
 		}
 	}
 
-	gpuM := sdkhelper.Atoi(cfg.Param[sGPU])
+	gpuM := common.Atoi(cfg.Param[sGPU])
 
 	rGPU := gpu
 
@@ -76,19 +80,47 @@
 func Run(ctx context.Context, i interface{}) {
 	s := i.(*reid)
 
-	c := deliver.NewClient(deliver.ReqRep, s.ipc)
-
-	var msg []byte
+	var sock mangos.Socket
 	var err error
+	var msg []byte
+
+	for {
+		if sock, err = rep.NewSocket(); err != nil {
+			s.fnLogger("can't get new rep socket: ", err)
+			time.Sleep(5 * time.Millisecond)
+		} else {
+			break
+		}
+	}
+
+	sock.AddTransport(ipc.NewTransport())
+	sock.AddTransport(tcp.NewTransport())
+
+	for {
+		if err = sock.Listen(s.ipc); err != nil {
+			suf := "ipc://"
+			p := strings.Index(s.ipc, suf)
+			if p >= 0 {
+				file := s.ipc[p+len(string(suf)):]
+				os.Remove(file)
+				s.fnLogger("remove:", file)
+			}
+			s.fnLogger("can't listen on rep socket: ", err)
+			time.Sleep(5 * time.Millisecond)
+		} else {
+			break
+		}
+	}
 
 	for {
 		select {
 		case <-ctx.Done():
+			sock.Close()
 			return
 		default:
 
-			msg, err = c.Recv()
-			if err != nil {
+			if msg, err = sock.Recv(); err != nil {
+				s.fnLogger("REID~~~~~~Recv From HumanTrack error: ", err)
 				continue
 			}
 
@@ -104,11 +136,6 @@
 			}
 			s.fnLogger("REID~~~~~~Recv Image:", len(i.Data))
 
-			/////////////////////////////////
-			if jpg, err := godraw.ToJpeg(i.Data, int(i.Width), int(i.Height), nil); err == nil {
-				ioutil.WriteFile("./pic.jpg", jpg, 0644)
-			}
-			/////////////////////////////////
 			feat := s.handle.Extract2(unsafe.Pointer(&i.Data[0]), int(i.Width), int(i.Height), 3)
 			if feat == nil {
 				// feat = make([]float32, 1)
@@ -117,24 +144,14 @@
 					s.fnLogger("REID~~~~~~extractor---human_feats------%f", feat[k+2000])
 				}
 				s.fnLogger("REID~~~~~~Run Reid Use GPU: ", s.gpu)
-
-				/////////////////////////////////
-				if f, err := os.Create("./reid-feat.txt"); err == nil {
-					defer f.Close()
-
-					w := bufio.NewWriter(f)
-					for k, v := range feat {
-						lineStr := fmt.Sprintf("%d->%f", k, v)
-						fmt.Fprintln(w, lineStr)
-					}
-					w.Flush()
-				}
-				/////////////////////////////////
-
 			}
 			buf := float32SliceAsByteSlice(feat)
 			ioutil.WriteFile("./reid-feat-byte.txt", buf, 0644)
-			c.Send(buf)
+
+			if err = sock.Send(buf); err != nil {
+				s.fnLogger("REID~~~~~~Send HumanTrack error: ", err)
+			}
+
 		}
 
 	}

--
Gitblit v1.8.0