From 0a5b61f222add7cc3970b021230442d8188e72f9 Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期一, 01 七月 2019 18:46:34 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.1.14:10010/r/ruleprocess --- util/simpleCV.go | 128 +++++++++++++++++++++--------------------- insertdata/insertDataToEs.go | 6 + ruleserver/ruleToformula.go | 18 +++-- main.go | 1 ruleserver/timeTicker.go | 2 util/simpleCV_test.go | 4 6 files changed, 81 insertions(+), 78 deletions(-) diff --git a/insertdata/insertDataToEs.go b/insertdata/insertDataToEs.go index b4c5553..b33cd80 100644 --- a/insertdata/insertDataToEs.go +++ b/insertdata/insertDataToEs.go @@ -204,7 +204,7 @@ // 涓嶆槸鎶ヨ鏁版嵁涓嶅瓨 return } - log.Println("鍥剧墖涓婁紶杩斿洖鍊硷細", resp) + // log.Println("鍥剧墖涓婁紶杩斿洖鍊硷細", resp) // 鏌ヨ鏈満淇℃伅 flag, localConfig := dbapi.SysSetApi{}.GetServerInfo() if !flag { @@ -247,7 +247,9 @@ } err = EsReq("POST", "http://192.168.1.182:9200/personaction/perVideoAction", requstbody) if err != nil { - log.Println("es can not execute right.") + log.Println("寰�ES鎻掑叆鏁版嵁澶辫触",err) + } else { + log.Println("__________________________________________寰�ES鎻掑叆鏁版嵁鎴愬姛") } } } diff --git a/main.go b/main.go index 26ca7f8..8f31a9c 100644 --- a/main.go +++ b/main.go @@ -130,7 +130,6 @@ arg.IsStatic = false if len(sdkinfo.Sdkdata) > 1 { // 澶т簬1鎵嶆湁鏁版嵁 - fmt.Println("----------------------------------------------------",m.Cid) yoloParam := protomsg.ParamYoloObj{} err = proto.Unmarshal(sdkinfo.Sdkdata, &yoloParam) if err != nil { diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go index ca648a2..4947858 100644 --- a/ruleserver/ruleToformula.go +++ b/ruleserver/ruleToformula.go @@ -295,11 +295,11 @@ if completeFormula != "" { log.Println("鐪嬬湅鍏紡-----------锛�", completeFormula) expression, _ := govaluate.NewEvaluableExpression(completeFormula) - result, err := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋� - if err != nil { - panic("寰楀埌鐨勬暟瀛﹀叕寮忎笉鍙В鏋�") + if strings.HasPrefix(completeFormula,"&&") || strings.HasPrefix(completeFormula,"||"){ + panic("瑙勫垯鏈夎锛屽緱鍒扮殑鏁板鍏紡涓嶅彲瑙f瀽") } - if result.(bool) { + result,_ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋� + if !result.(bool) { // 缁欒繖甯ф暟鎹墦涓婅鍒欑粍鏍囩 //args.RuleResult = append(args.RuleResult, Result{TaskId: taskId, RuleGroupId: groupRule.GroupId}) for k, timeEle := range TimeEleList { @@ -314,6 +314,7 @@ for k, timeEle := range TimeEleList { if strings.Contains(k, taskId) { if timeEle.N != 0 { // 璺熻繖涓换鍔℃湁鍏崇殑瀹氭椂鍣ㄨ鍏ㄩ儴绛変簬0 + log.Println("鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��-------------涓嶅啢锛屼綘鏄瀹氭椂鍣ㄦ墦璐ョ殑锛�") flag = false } } @@ -511,7 +512,6 @@ func filterRule(rule *protomsg.Rule, am *AreaMap) LittleRuleResult { if rule.SdkId == "FaceDetect" || rule.SdkId == "FaceCompare" { // 澶勭悊鐨勬槸浜鸿劯绠楁硶 濡傛灉杩欐潯瑙勫垯閰嶇疆鐨勬槸浜鸿劯绠楁硶锛岃繃婊ゅ畬鏉′欢涔嬪悗鐩存帴寰楀嚭缁撴灉锛屽洜涓鸿偗瀹氭病鏈夋暟閲忔潯浠讹紝鑷繁鎷兼帴 - log.Println("------------------------------------------杩樿兘杩涜繖鍎夸簡涓嶆垚锛燂紵锛�") if rule.SdkId == am.sdkId && rule.PolygonId == am.areaId { // 绠楁硶鍜屽尯鍩熼兘寰楀鐨勪笂 if rule.SdkId == "FaceCompare" { @@ -608,10 +608,13 @@ var formula string if rule.SdkArgAlias == "score" { formula = strconv.FormatFloat(arg.Score, 'f', -1, 64) + " " + rule.Operator + " " + rule.SdkArgValue // 寰楀埌瀛楃涓插叕寮� + log.Println("褰撳墠鐩镐技搴﹀皬鍏紡锛�",formula) } else if rule.SdkArgAlias == "proportion" { formula = strconv.FormatFloat(arg.Proportion, 'f', -1, 64) + " " + rule.Operator + " " + rule.SdkArgValue // 寰楀埌瀛楃涓插叕寮� + log.Println("褰撳墠鍗犳瘮灏忓叕寮忥細",formula) } else { formula = strconv.FormatFloat(arg.Size, 'f', -1, 64) + " " + rule.Operator + " " + rule.SdkArgValue // 寰楀埌瀛楃涓插叕寮� + log.Println("褰撳墠灏哄灏忓叕寮忥細",formula) } expression, _ := govaluate.NewEvaluableExpression(formula) // 寰楀埌鏁板鍏紡 result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋� @@ -720,11 +723,12 @@ now := time.Now() index := getIndexOfWeek(now.Weekday().String()) timeList := GetTimeById(rule.SdkArgValue, index) + log.Println("褰撳ぉ鐨勬椂闂磋鍒欙細----------",timeList) //fmt.Println("浠庢暟鎹簱涓煡鍑虹殑鏃堕棿瑙勫垯锛�", timeList) // 鍒ゆ柇鍥剧墖鏁版嵁鐨勬椂闂存槸鍚︾鍚堝綋鍓嶈鍒� 鍦ㄤ竴涓嵆涓簍rue锛屽叏涓嶅湪涓篺alse flag := "false" for _, timeSlot := range timeList { - if rule.Operator == "satisfy" { // 婊¤冻鎵�閫夌殑鏃堕棿瑙勫垯 + if rule.Operator == "satisfy" || rule.Operator == "=="{ // 婊¤冻鎵�閫夌殑鏃堕棿瑙勫垯 formula := "'" + timeSlot.Start + "'" + "<" + "'" + am.time + "'" expression, _ := govaluate.NewEvaluableExpression(formula) // 寰楀埌鏁板鍏紡 result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋� @@ -738,7 +742,7 @@ break } } - if rule.Operator == "unsatisfy" { // 涓嶆弧瓒虫墍閫夌殑鏃堕棿瑙勫垯 + if rule.Operator == "unsatisfy" || rule.Operator == "!="{ // 涓嶆弧瓒虫墍閫夌殑鏃堕棿瑙勫垯 formula := timeSlot.Start + "<" + am.time expression, _ := govaluate.NewEvaluableExpression(formula) // 寰楀埌鏁板鍏紡 result, _ := expression.Evaluate(nil) // 寰楀埌鏁板鍏紡鐨勭粨鏋� diff --git a/ruleserver/timeTicker.go b/ruleserver/timeTicker.go index 1ac57a0..644a6a5 100644 --- a/ruleserver/timeTicker.go +++ b/ruleserver/timeTicker.go @@ -40,7 +40,7 @@ for _, timeEle := range TimeEleList { if timeEle.N > 0 { timeEle.N = timeEle.N - 1 - log.Println("鎵撳嵃瀹氭椂鍣ㄥ厓绱犲綋鍓嶅�硷細",timeEle.N) + log.Println("-------------------------------------鎵撳嵃瀹氭椂鍣ㄥ厓绱犲綋鍓嶅��-----------------------------------------锛�",timeEle.N) } } case stop := <-stopChan: diff --git a/util/simpleCV.go b/util/simpleCV.go index 3603a1f..1d617dd 100644 --- a/util/simpleCV.go +++ b/util/simpleCV.go @@ -3,19 +3,11 @@ import ( "bufio" "bytes" - "encoding/json" - "errors" "fmt" + "gocv.io/x/gocv" "image" "image/color" - "io" - "log" - "mime/multipart" - "net/http" "os" - "time" - - "gocv.io/x/gocv" ) func CvRTSP() { @@ -163,11 +155,15 @@ // draw the rook //rook := gocv.NewMatWithSize(w, w, gocv.MatTypeCV8UC3) //imgs := gocv.NewMat() - ddd, err := RetrieveROM("/home/user/workspace/ruleprocess/util/l05.jpg") + ddd, err := RetrieveROM("/home/user/workspace/ruleprocess/util/105.jpg") if err != nil { fmt.Println("瑙g爜鏈夎",err) } bbb := bytes.NewBuffer(ddd) // 蹇呴』鍔犱竴涓猙uffer 涓嶇劧娌℃湁read鏂规硶灏变細鎶ラ敊 + + + + rook, _ := gocv.NewMatFromBytes(500, 500, gocv.MatTypeCV8UC3, bbb.Bytes()) defer rook.Close() green := color.RGBA{0, 255, 0, 0} @@ -180,62 +176,64 @@ }, } gocv.FillPoly(&rook, points, green) + + return nil,nil // 涓婁紶 - fdata,_ := gocv.IMEncode(".jpg",rook) - body := &bytes.Buffer{} - writer := multipart.NewWriter(body) - _, err1 := writer.CreateFormFile("file", "fasjuierf") - if err1 != nil { - return nil, err1 - } - boundary := writer.Boundary() - //close_string := fmt.Sprintf("\r\n--%s--\r\n", boundary) - close_buf := bytes.NewBufferString(fmt.Sprintf("\r\n--%s--\r\n", boundary)) - file := bytes.NewBuffer(fdata) - request_reader := io.MultiReader(body, file, close_buf) - //_, err = io.Copy(part, file) - //writer.WriteField(key, val) - request, err := http.NewRequest("POST", "http://192.168.1.182:6333/submit", request_reader) - request.Header.Add("Content-Type", writer.FormDataContentType()) - timeout := time.Duration(5 * time.Second) //瓒呮椂鏃堕棿50ms - client := &http.Client{Timeout: timeout} - resp, err := client.Do(request) - if err != nil { - log.Fatal(err) - return nil, err - } - defer func() { - if r := recover(); r != nil { - fmt.Printf("panic鐨勫唴瀹�%v\n", r) - msg := "涓婁紶鍥剧墖鏈嶅姟鍣ㄥ紓甯�" - if _, ok := r.(error); ok { - msg = r.(error).Error() - fmt.Println("panic--recover()寰楀埌鐨勬槸error绫诲瀷") - } - if _, ok := r.(string); ok { - msg = r.(string) - fmt.Println("panic--recover()寰楀埌鐨勬槸string绫诲瀷") - } - err0 = errors.New(msg) - } - }() - defer resp.Body.Close() - { - body := &bytes.Buffer{} - _, err := body.ReadFrom(resp.Body) - if err != nil { - log.Fatal(err) - } - fmt.Println(resp.StatusCode) - //fmt.Println(resp.Header) - fmt.Println(body) - //decoder := json.NewDecoder(strings.NewReader(body.String())) - decoder := make(map[string]interface{}) - if err := json.Unmarshal([]byte(body.String()), &decoder); err != nil { - return nil, err - } - return decoder, nil - } + //fdata,_ := gocv.IMEncode(".jpg",rook) + //body := &bytes.Buffer{} + //writer := multipart.NewWriter(body) + //_, err1 := writer.CreateFormFile("file", "fasjuierf") + //if err1 != nil { + // return nil, err1 + //} + //boundary := writer.Boundary() + ////close_string := fmt.Sprintf("\r\n--%s--\r\n", boundary) + //close_buf := bytes.NewBufferString(fmt.Sprintf("\r\n--%s--\r\n", boundary)) + //file := bytes.NewBuffer(fdata) + //request_reader := io.MultiReader(body, file, close_buf) + ////_, err = io.Copy(part, file) + ////writer.WriteField(key, val) + //request, err := http.NewRequest("POST", "http://192.168.1.182:6333/submit", request_reader) + //request.Header.Add("Content-Type", writer.FormDataContentType()) + //timeout := time.Duration(5 * time.Second) //瓒呮椂鏃堕棿50ms + //client := &http.Client{Timeout: timeout} + //resp, err := client.Do(request) + //if err != nil { + // log.Fatal(err) + // return nil, err + //} + //defer func() { + // if r := recover(); r != nil { + // fmt.Printf("panic鐨勫唴瀹�%v\n", r) + // msg := "涓婁紶鍥剧墖鏈嶅姟鍣ㄥ紓甯�" + // if _, ok := r.(error); ok { + // msg = r.(error).Error() + // fmt.Println("panic--recover()寰楀埌鐨勬槸error绫诲瀷") + // } + // if _, ok := r.(string); ok { + // msg = r.(string) + // fmt.Println("panic--recover()寰楀埌鐨勬槸string绫诲瀷") + // } + // err0 = errors.New(msg) + // } + //}() + //defer resp.Body.Close() + //{ + // body := &bytes.Buffer{} + // _, err := body.ReadFrom(resp.Body) + // if err != nil { + // log.Fatal(err) + // } + // fmt.Println(resp.StatusCode) + // //fmt.Println(resp.Header) + // fmt.Println(body) + // //decoder := json.NewDecoder(strings.NewReader(body.String())) + // decoder := make(map[string]interface{}) + // if err := json.Unmarshal([]byte(body.String()), &decoder); err != nil { + // return nil, err + // } + // return decoder, nil + //} } // 鎶婂浘鐗囪浆鎴愪簩杩涘埗娴� diff --git a/util/simpleCV_test.go b/util/simpleCV_test.go index 4b13129..4f8f7c8 100644 --- a/util/simpleCV_test.go +++ b/util/simpleCV_test.go @@ -4,10 +4,10 @@ "testing" ) -func TestDrawPolygon(t *testing.T) { +func TestDrawPolygonOnImage(t *testing.T) { resp,err := DrawPolygonOnImage() if err != nil { t.Error("鐢绘鎴栬�呬笂浼犳湁闂") } - t.Log(resp["fileUrl"].(string)) + t.Log("------=============",resp) } \ No newline at end of file -- Gitblit v1.8.0