From 0cacae93b146ea559cbc5980ddeb53893e5fab41 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期二, 30 七月 2019 19:56:43 +0800 Subject: [PATCH] 联动任务缓存数据 --- /dev/null | 7 --- insertdata/insertDataToEs.go | 28 +++++++------ ruleserver/ruleToformula.go | 36 +++++++++++------ main.go | 11 ----- ruleserver/timeTicker.go | 14 ++++--- 5 files changed, 46 insertions(+), 50 deletions(-) diff --git a/insertdata/insertDataToEs.go b/insertdata/insertDataToEs.go index 9b1e92f..7926e92 100644 --- a/insertdata/insertDataToEs.go +++ b/insertdata/insertDataToEs.go @@ -360,20 +360,22 @@ //InsertYolo(msg.RuleResult["cacheData"].(ruleserver.ResultMsg)) // 鎶婄紦瀛樼殑鏁版嵁涓婁紶鍚庡緱鍒板湴鍧�瀛樿繘鍘� // 瑙e帇缂╁苟涓婁紶鍥剧墖 - msg1 := msg.RuleResult["cacheData"].(ruleserver.ResultMsg) - bdata, err := util.UnCompress(msg1.Data) - if err != nil { - panic("瑙e帇缂╁浘鐗囨椂鍑虹幇閿欒") + msgs := msg.RuleResult["cacheData"].([]ruleserver.ResultMsg) + for _,msg1 := range msgs { + bdata, err := util.UnCompress(msg1.Data) + if err != nil { + panic("瑙e帇缂╁浘鐗囨椂鍑虹幇閿欒") + } + i := protomsg.Image{} + err = proto.Unmarshal(bdata, &i) + resp1, err1 := util.DrawPolygonOnImage(msg1.Cid, i, msg1.RuleResult["yolo"].([]ruleserver.Result), weedfsUrl) + if err1 != nil { + logger.Error("缂撳瓨鏁版嵁鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err) + } else { + logger.Info("涓婁紶鐨勫浘鐗囦俊鎭細", resp1) + } + url = append(url, strings.Split(resp1["fileUrl"].(string), "/")[1]) } - i := protomsg.Image{} - err = proto.Unmarshal(bdata, &i) - resp1, err1 := util.DrawPolygonOnImage(msg1.Cid, i, msg1.RuleResult["yolo"].([]ruleserver.Result), weedfsUrl) - if err1 != nil { - logger.Error("缂撳瓨鏁版嵁鐢绘鎴栦笂浼犲浘鐗囨湇鍔″櫒鍑洪敊", err) - } else { - logger.Info("涓婁紶鐨勫浘鐗囦俊鎭細", resp1) - } - url = append(url, strings.Split(resp1["fileUrl"].(string), "/")[1]) } url = append(url, strings.Split(resp["fileUrl"].(string), "/")[1]) esDataId := uuid.NewV4().String() diff --git a/insertdata/insertDataToEs_test.go b/insertdata/insertDataToEs_test.go deleted file mode 100644 index a3f46e8..0000000 --- a/insertdata/insertDataToEs_test.go +++ /dev/null @@ -1,7 +0,0 @@ -package insertdata - -import "testing" - -func TestInsertToEs(t *testing.T){ - //InsertToEs() -} \ No newline at end of file diff --git a/main.go b/main.go index 987cf1a..8276e02 100644 --- a/main.go +++ b/main.go @@ -109,17 +109,6 @@ panic("瑙f瀽msg鏃跺嚭鐜伴敊璇�") } - // 鎵�201鐨勪汉鑴告暟鎹� - //for _, sdkinfo := range m.Tasklab.Sdkinfos { - // if sdkinfo.Sdktype == "FaceDetect" && m.Cid == "e7e3f5b0-d0ef-40af-a9c9-eefd736937bf"{ // 浜鸿劯妫�娴� - // if len(sdkinfo.Sdkdata) > 1 { - // logger.Debug("鏈�201鐨勪汉鑴告暟鎹簡") - // } else { - // logger.Debug("娌℃湁201鐨勪汉鑴告暟鎹�") - // } - // } - //} - // 鍏堣繘琛屼竴涓嬭拷韪� ruleserver.FaceIsSame(&m) args.CameraId = m.Cid diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go index 8bfc5f4..95e7e00 100644 --- a/ruleserver/ruleToformula.go +++ b/ruleserver/ruleToformula.go @@ -2,6 +2,7 @@ import ( "fmt" + "os" "ruleprocess/cache" "ruleprocess/logger" "sort" @@ -71,7 +72,7 @@ CameraId string TaskId string Sdkdata []*SdkData - RuleResult map[string]interface{} // 杩囧畬瑙勫垯鍚庢墦鐨勬爣绛� face: []FaceResult, yolo: []Result, cacheData: SdkDatas, timeLabel: 0,1,2,3,4,5 + RuleResult map[string]interface{} // 杩囧畬瑙勫垯鍚庢墦鐨勬爣绛� face: []FaceResult, yolo: []Result, cacheData: []ResultMsg, timeLabel: 0,1,2,3,4,5 } type ResultMsg struct { @@ -375,7 +376,7 @@ // new涓�涓畾鏃跺櫒锛屽鏋滀互姝roupId涓烘爣蹇楃殑瀹氭椂鍣ㄤ笉瀛樺湪鐨勮瘽 logger.Info("------------------------------------------褰撳墠鏄仈鍔ㄤ换鍔★紝瑙勫垯鏄細", groupRule.GroupText) var flag bool = true - var timeEle = TimeElement{N: 3, InitN: 3, GroupId: groupRule.GroupId} + var timeEle = TimeElement{N: 2, InitN: 2, GroupId: groupRule.GroupId} for k, timeEle1 := range TimeEleList { if k == groupRule.GroupId { flag = false // 宸茬粡鏈変簡杩欎釜瀹氭椂鍣ㄥ氨缃负false 涓嶅啀鏂板 @@ -383,7 +384,7 @@ } } if flag { // 濡傛灉杩樻病鏈夎繖涓畾鏃跺櫒鍏冪礌灏辨柊澧炰竴涓� - timeEle := TimeElement{N: 3, InitN: 3, GroupId: groupRule.GroupId} // 鎵旇繘鍘讳竴涓畾鏃跺櫒鍏冪礌 + //timeEle := TimeElement{N: 2, InitN: 2, GroupId: groupRule.GroupId} // 鎵旇繘鍘讳竴涓畾鏃跺櫒鍏冪礌 //TimeEleList = make(map[string]timeElement) TimeEleList[groupRule.GroupId] = &timeEle // 瀹氭椂鍣ㄥ厓绱犱互瑙勫垯缁刬d涓洪敭 logger.Info("---------------------------------------------鑱斿姩浠诲姟鍒涘缓浜嗚鏁板櫒骞朵笖璁℃暟鍣ㄩ泦鍚堜负锛�", TimeEleList) @@ -396,7 +397,7 @@ } } if flag1 { - TimeEleList[groupRule.GroupId].RuleResults = append(TimeEleList[groupRule.GroupId].RuleResults, &RuleResult{groupRule.Rules[j].CameraId, groupRule.Rules[j].Sort, "", groupRule.Rules[j].RuleWithPre}) + TimeEleList[groupRule.GroupId].RuleResults = append(TimeEleList[groupRule.GroupId].RuleResults, &RuleResult{groupRule.Rules[j].CameraId, groupRule.Rules[j].Sort, "", groupRule.Rules[j].RuleWithPre,&ResultMsg{message,args.RuleResult}}) } } } @@ -421,6 +422,7 @@ } } if isPerfect { + logger.Debug("鏁扮粍瀹屾弧浜嗭紝鑱斿姩浠诲姟鍙互鎴愬姛鎶ヨ浜嗭紒") // 灏嗘暟缁勬寜sort鎺掑簭 sort.Sort(SubList(timeEle.RuleResults)) // 鎺掑簭鍚庡彇鍚勮嚜鐨勭粨鏋滃拰杩炴帴绗︽嫾鍑鸿鍒欒〃杈惧紡寰楀嚭缁撴灉 @@ -434,12 +436,13 @@ result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋� if result.(bool) { logger.Info("___________________________________________________________________鑱斿姩浠诲姟鎶ヨ") - args.RuleResult["yolo"] = append(args.RuleResult["yolo"].([]Result), Result{taskId, "", groupRule.GroupId, groupRule.DefenceState,groupRule.AlarmLevel, groupRule.GroupText, []Rect{}, ""}) - //logger.Info("-------------------yolo缁撴灉鏍囩鏈夊嚑涓�", len(args.RuleResult["yolo"].([]Result))) - if args.RuleResult["face"] != nil { - //logger.Info("-------------------face缁撴灉鏍囩鏈夊嚑涓�", len(args.RuleResult["face"].([]FaceResult))) + // 鎶婃暟缁勯噷缂撳瓨鐨勬暟鎹彇鍑烘潵涓�璧锋姤璀� + args.RuleResult["linkCache"] = []*ResultMsg{} + for _, ruleRes := range TimeEleList[groupRule.GroupId].RuleResults { + args.RuleResult["linkCache"] = append(args.RuleResult["linkCache"].([]*ResultMsg),ruleRes.CacheData) } - //os.Exit(0) + logger.Debug("鑱斿姩浠诲姟缂撳瓨浜嗗嚑涓暟鎹�",len(args.RuleResult["linkCache"].([]*ResultMsg))) + os.Exit(1) } } } else { @@ -447,13 +450,20 @@ } } else { // 娌℃湁鎶ヨ锛� //logger.Info("杩欏抚鍥惧儚鍦ㄤ换鍔′笅鐨勪竴鏁存潯瑙勫垯涓嬶紙鑱斿姩浠诲姟涓嬪氨鏄窡鏈憚鍍忔満鍍忕浉鍏崇殑灏忚鍒欙級鐨勫垽鏂粨鏋滀负false") - // 鎵�浠ヤ篃瑕佸幓缁撴灉鏁扮粍閲屾斁鍊兼垨鏇存柊 - for _, va := range timeEle.RuleResults { - if args.CameraId != "" && va.CameraId == args.CameraId { - va.Result = strconv.FormatBool(isOk) + // 鎵�浠ヤ篃瑕佸幓缁撴灉鏁扮粍閲屾斁鍊兼垨鏇存柊 07/30澶囨敞锛� 涓嶅簲鏀惧�硷紝搴斿垹闄ゅ畾鏃跺櫒锛岀瓑涓簍rue鏃跺啀搴﹀紑鍚� + //for _, va := range timeEle.RuleResults { + // if args.CameraId != "" && va.CameraId == args.CameraId { + // va.Result = strconv.FormatBool(isOk) + // } + //} + for k,_ := range TimeEleList { + if k == groupRule.GroupId { + delete(TimeEleList,k) + logger.Debug("鍥犱负瀹氭椂鍣ㄧ殑涓�甯ф暟鎹粨鏋滀负false锛屽共鎺夊畾鏃跺櫒") } } // 鍥犱负鏈抚鏁版嵁涓嶇鍚堣鍒欙紝鎵�浠ヤ篃涓嶇敤缁熻缁撴灉鏁扮粍閲岀殑涓滆タ + } } diff --git a/ruleserver/timeTicker.go b/ruleserver/timeTicker.go index a748788..fcc5104 100644 --- a/ruleserver/timeTicker.go +++ b/ruleserver/timeTicker.go @@ -24,10 +24,11 @@ } type RuleResult struct { // 姣忎釜鎽勫儚鏈轰竴涓粨鏋勪綋 - CameraId string // 鎽勫儚鏈篿d - Sort int32 // 鎽勫儚鏈哄湪瑙勫垯缁勪腑搴忓彿 - Result string // 鎽勫儚鏈鸿繃婊ゆ暟鎹緱鍑虹殑缁撴灉 - RuleWithPre string // 鎽勫儚鏈轰箣闂寸殑杩炴帴绗� + CameraId string // 鎽勫儚鏈篿d + Sort int32 // 鎽勫儚鏈哄湪瑙勫垯缁勪腑搴忓彿 + Result string // 鎽勫儚鏈鸿繃婊ゆ暟鎹緱鍑虹殑缁撴灉 + RuleWithPre string // 鎽勫儚鏈轰箣闂寸殑杩炴帴绗� + CacheData *ResultMsg // 缂撳瓨褰撳墠甯ф暟鎹� } func TimeTicker() { @@ -91,14 +92,15 @@ logger.Debug("鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��-------------棣栨绗﹀悎鎸佺画鏃堕棿瑙勫垯骞舵姤璀�") flagTime = "10" timeEle.AlarmFlag = true - args.RuleResult["cacheData"] = timeEle.CacheSdkData + args.RuleResult["cacheData"] = []ResultMsg{} + args.RuleResult["cacheData"] = append(args.RuleResult["cacheData"].([]ResultMsg),timeEle.CacheSdkData) args.RuleResult["timeLabel"] = flagTime } if timeEle.N != 0 { flagTime = "00" // 鏈夊畾鏃跺櫒浣嗕笉涓�0鎶婂凡鎵撶殑鏍囩鍒犻櫎 // args.RuleResult = nil - logger.Debug("------------------------缁撴灉涓虹湡浣嗚鏁板櫒涓嶅埌0锛屼笉鎶ヨ,姝ゆ椂鐨勮鏁板櫒",k,"鐨勫�间负锛�", timeEle.N) + logger.Debug("------------------------缁撴灉涓虹湡浣嗚鏁板櫒涓嶅埌0锛屼笉鎶ヨ,姝ゆ椂鐨勮鏁板櫒", k, "鐨勫�间负锛�", timeEle.N) } } } -- Gitblit v1.8.0