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