From 44441d5439df4e81d641b115c94b079ace31a5c6 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期二, 30 七月 2019 16:00:28 +0800
Subject: [PATCH] 加一个req,持续时间两帧图片画框问题

---
 labelFilter/req.go               |   82 ++++++++++++++++++++
 insertdata/insertDataToEs.go     |    6 
 labelFilter/readyDataForLabel.go |    2 
 labelFilter/ruleForLabel.go      |   91 +++++++++++-----------
 4 files changed, 133 insertions(+), 48 deletions(-)

diff --git a/insertdata/insertDataToEs.go b/insertdata/insertDataToEs.go
index 5d1c08d..9b1e92f 100644
--- a/insertdata/insertDataToEs.go
+++ b/insertdata/insertDataToEs.go
@@ -356,9 +356,8 @@
 		}
 		serverIp, err := GetLocalIP()
 		url := []string{}
-		url = append(url, strings.Split(resp["fileUrl"].(string), "/")[1])
 		if msg.RuleResult["cacheData"] != nil {
-			InsertYolo(msg.RuleResult["cacheData"].(ruleserver.ResultMsg))
+			//InsertYolo(msg.RuleResult["cacheData"].(ruleserver.ResultMsg))
 			// 鎶婄紦瀛樼殑鏁版嵁涓婁紶鍚庡緱鍒板湴鍧�瀛樿繘鍘�
 			// 瑙e帇缂╁苟涓婁紶鍥剧墖
 			msg1 := msg.RuleResult["cacheData"].(ruleserver.ResultMsg)
@@ -368,7 +367,7 @@
 			}
 			i := protomsg.Image{}
 			err = proto.Unmarshal(bdata, &i)
-			resp1, err1 := util.DrawPolygonOnImage(msg.Cid, i, msg.RuleResult["yolo"].([]ruleserver.Result), weedfsUrl)
+			resp1, err1 := util.DrawPolygonOnImage(msg1.Cid, i, msg1.RuleResult["yolo"].([]ruleserver.Result), weedfsUrl)
 			if err1 != nil {
 				logger.Error("缂撳瓨鏁版嵁鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err)
 			} else {
@@ -376,6 +375,7 @@
 			}
 			url = append(url, strings.Split(resp1["fileUrl"].(string), "/")[1])
 		}
+		url = append(url, strings.Split(resp["fileUrl"].(string), "/")[1])
 		esDataId := uuid.NewV4().String()
 		peraction := Personaction{
 			esDataId,
diff --git a/labelFilter/readyDataForLabel.go b/labelFilter/readyDataForLabel.go
index 613f407..b24aa1f 100644
--- a/labelFilter/readyDataForLabel.go
+++ b/labelFilter/readyDataForLabel.go
@@ -29,7 +29,7 @@
 		label.Persons = append(label.Persons,faceGroup)
 		label.DefenceLevel = append(label.DefenceLevel,faceGroup.AlarmLevel)
 	}
-	for _,yoloGroup := range result.RuleResult["yolo"].([]ruleserver.FaceResult) {
+	for _,yoloGroup := range result.RuleResult["yolo"].([]ruleserver.Result) {
 		label.DefenceLevel = append(label.DefenceLevel,yoloGroup.AlarmLevel)
 	}
 	Judge(label,result)
diff --git a/labelFilter/req.go b/labelFilter/req.go
new file mode 100644
index 0000000..e69d233
--- /dev/null
+++ b/labelFilter/req.go
@@ -0,0 +1,82 @@
+package labelFilter
+
+import (
+	"fmt"
+	"github.com/gogo/protobuf/proto"
+	"nanomsg.org/go-mangos"
+	"nanomsg.org/go-mangos/protocol/rep"
+	"nanomsg.org/go-mangos/protocol/req"
+	"nanomsg.org/go-mangos/transport/ipc"
+	"nanomsg.org/go-mangos/transport/tcp"
+	"os"
+	"ruleprocess/logger"
+	"ruleprocess/ruleserver"
+	"time"
+)
+
+func Die(format string, v ...interface{}) {
+	fmt.Fprintln(os.Stderr, fmt.Sprintf(format, v...))
+	logger.Info("+++++++",format)
+	os.Exit(1)
+}
+
+func date() string {
+	return time.Now().Format(time.ANSIC)
+}
+
+func Node0(url string) {
+	var sock mangos.Socket
+	var err error
+	var msg []byte
+	if sock, err = rep.NewSocket(); err != nil {
+		Die("can't get new rep socket: %s", err)
+	}
+	sock.AddTransport(ipc.NewTransport())
+	sock.AddTransport(tcp.NewTransport())
+	if err = sock.Listen(url); err != nil {
+		Die("can't listen on rep socket: %s", err.Error())
+	}
+	for {
+		// Could also use sock.RecvMsg to get header
+		msg, err = sock.Recv()
+		if string(msg) == "DATE" { // no need to terminate
+			fmt.Println("NODE0: RECEIVED DATE REQUEST")
+			d := date()
+			fmt.Printf("NODE0: SENDING DATE %s\n", d)
+			err = sock.Send([]byte(d))
+			if err != nil {
+				Die("can't send reply: %s", err.Error())
+			}
+		}
+	}
+}
+
+func Push(url string,data ruleserver.ResultMsg) {
+	var sock mangos.Socket
+	var err error
+	var msg []byte
+
+	if sock, err = req.NewSocket(); err != nil {
+		Die("鍒涘缓璇锋眰socket澶辫触: %s", err.Error())
+	}
+	//sock.AddTransport(ipc.NewTransport())
+	sock.AddTransport(tcp.NewTransport())
+	if err = sock.Dial(url); err != nil {
+		Die("璇锋眰socket鎷ㄥ彿澶辫触: %s", err.Error())
+	}
+	logger.Debug("鎺ㄩ�佹暟鎹�")
+	bytes,err := proto.Marshal(data)
+	if err = sock.Send(bytes); err != nil {
+		Die("鎺ㄩ�乻ocket鍙戦�佹暟鎹け璐�: %s", err.Error())
+	}
+	if msg, err = sock.Recv(); err != nil {
+		Die("鎺ユ敹鍝嶅簲澶辫触: %s", err.Error())
+	}
+	logger.Debug("鏁版嵁鎺ㄩ�佹垚鍔燂紒鏀跺埌鍝嶅簲",string(msg))
+	sock.Close()
+}
+
+//func main() {
+//	url := "tcp://192.168.1.123:40011"
+//	Push(url,"hahahaha")
+//}
diff --git a/labelFilter/ruleForLabel.go b/labelFilter/ruleForLabel.go
index fe905b2..ccc3cf5 100644
--- a/labelFilter/ruleForLabel.go
+++ b/labelFilter/ruleForLabel.go
@@ -19,50 +19,53 @@
 	}
 	//閬嶅巻鎵�鏈夌殑瑙勫垯缁勶紝鐪嬬湅绗﹀悎鍝釜瑙勫垯缁勶紝灏辨妸鏁版嵁鎻掑叆鍒板摢涓鍒欑粍鐨勭洰鏍囨満鍣ㄤ笂
 	for _,ruleGroup := range allRules {
-		// 鍏堣繃鏃堕棿瑙勫垯
-		timeJudge(label,ruleGroup)
-		result := ""
-		var Connector string
-		if ruleGroup.IsSatisfyAll {
-			Connector = "&&"
-		} else {
-			Connector = "||"
-		}
-		for _,rule := range ruleGroup.Rules {
-			// 杩囨瘡涓�涓皬瑙勫垯
-			if rule.TopicType == "camera" {
-				result = Connector + cameraJudge(label,rule)
-			}
-			if rule.TopicType == "baseLibrary" {
-				result = Connector + baseJudge(label,rule)
-			}
-			if rule.TopicType == "task" {
-				result = Connector + taskJudge(label,rule)
-			}
-			if rule.TopicType == "person" {
-				result = Connector + taskJudge(label,rule)
-			}
-			if rule.TopicType == "defence" {
-				result = Connector + defenceJudge(label,rule)
-			}
-		}
-		// 寰楀嚭鎬荤殑鍒ゆ柇缁撴灉
-		if result != "" {
-			result = result[2:] // 鎶婂墠涓や綅瀛楃鍘绘帀
-			expression, err:= govaluate.NewEvaluableExpression(result);
-			if err != nil {
-				logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒")
-			}
-			result, err1:= expression.Evaluate(nil)
-			if err1 != nil {
-				logger.Error("甯﹀叆鍙傛暟鏈夎")
-			}
-			if result.(bool) {
-				logger.Info("閫氳繃瑙勫垯锛岃〃杈惧紡涓猴細",result)
-				// 鎺ㄩ�佹湇鍔″櫒
-				pushData(ruleGroup.IpPorts,result.(ruleserver.ResultMsg))
+		if ruleGroup.Enable {  // 澶ц鍒欏紑鍏冲紑鍚姸鎬�
+			// 鍏堣繃鏃堕棿瑙勫垯
+			timeJudge(label,ruleGroup)
+			result := ""
+			var Connector string
+			if ruleGroup.IsSatisfyAll {
+				Connector = "&&"
 			} else {
-				logger.Info("娌¢�氳繃瑙勫垯,琛ㄨ揪寮忎负锛�",result)
+				Connector = "||"
+			}
+			for _,rule := range ruleGroup.Rules {
+				// 杩囨瘡涓�涓皬瑙勫垯
+				if rule.TopicType == "camera" {
+					result = Connector + cameraJudge(label,rule)
+				}
+				if rule.TopicType == "baseLibrary" {
+					result = Connector + baseJudge(label,rule)
+				}
+				if rule.TopicType == "task" {
+					result = Connector + taskJudge(label,rule)
+				}
+				if rule.TopicType == "person" {
+					result = Connector + taskJudge(label,rule)
+				}
+				if rule.TopicType == "defence" {
+					result = Connector + defenceJudge(label,rule)
+				}
+			}
+			// 寰楀嚭鎬荤殑鍒ゆ柇缁撴灉
+			if result != "" {
+				result = result[2:] // 鎶婂墠涓や綅瀛楃鍘绘帀
+				expression, err:= govaluate.NewEvaluableExpression(result);
+				if err != nil {
+					logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒")
+				}
+				result, err1:= expression.Evaluate(nil)
+				if err1 != nil {
+					logger.Error("甯﹀叆鍙傛暟鏈夎")
+				}
+				logger.Warn("瑙勫垯鍒ゆ柇缁撴灉鏄細",)
+				if result.(bool) {
+					logger.Info("閫氳繃瑙勫垯锛岃〃杈惧紡涓猴細",result)
+					// 鎺ㄩ�佹湇鍔″櫒
+					pushData(ruleGroup.Urls,result.(ruleserver.ResultMsg))
+				} else {
+					logger.Info("娌¢�氳繃瑙勫垯,琛ㄨ揪寮忎负锛�",result)
+				}
 			}
 		}
 	}
@@ -187,6 +190,6 @@
 	return "false"
 }
 // 璋冪敤鐩爣鏈嶅姟鍣ㄧ殑鎻掑叆鎺ュ彛
-func pushData (urls []*protomsg.PushIpPort, data ruleserver.ResultMsg){
+func pushData (urls []*protomsg.PushUrl, data ruleserver.ResultMsg){
 
 }
\ No newline at end of file

--
Gitblit v1.8.0