panlei
2019-07-10 d81dee97316758a8d7910cf337667cbe4a3eabed
放开yolo,加个上传yolo退出
2个文件已修改
164 ■■■■ 已修改文件
insertdata/insertDataToEs.go 162 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruleserver/ruleToformula.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
insertdata/insertDataToEs.go
@@ -1,6 +1,7 @@
package insertdata
import (
    "os"
    "ruleprocess/logger"
    "encoding/json"
    "errors"
@@ -274,86 +275,87 @@
            }
        }
    }
    //if msg.RuleResult["yolo"] != nil && len(msg.RuleResult["yolo"].([]ruleserver.Result)) > 0 {
    //    logger.Info("往ES插yolo数据")
    //    var sdkNames string = ""
    //    alarmRules := []AlarmRule{}
    //    for _, yoloResult := range msg.RuleResult["yolo"].([]ruleserver.Result) {
    //        sdkNames = sdkNames + yoloResult.SdkName
    //        alarm := ChangeToString(yoloResult.AlarmLevel)
    //        alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText})
    //    }
    //    isAlarm := 0
    //    resp := make(map[string]interface{})
    //    if len(alarmRules) > 0 {
    //        isAlarm = 1
    //        // 解压缩并上传图片
    //        bdata, err := util.UnCompress(msg.Data)
    //        if err != nil {
    //            panic("解压缩图片时出现错误")
    //        }
    //        i := protomsg.Image{}
    //        err = proto.Unmarshal(bdata, &i)
    //        //resp, err = util.PostFormBufferData(weedfsUrl, i, uuid.NewV4().String())
    //        resp, err = util.DrawPolygonOnImage(msg.Cid, i,msg.RuleResult["yolo"].([]ruleserver.Result))
    //        if err != nil {
    //            logger.Error("画框或上传图片服务器出错", err)
    //        } else {
    //            logger.Info("已报警并上传改帧图片到服务器")
    //        }
    //    } else {
    //        isAlarm = 0
    //        // 不是报警数据不存
    //        return
    //    }
    //    // logger.Println("图片上传返回值:", resp)
    //    // 查询本机信息
    //    localConfig, err := cache.GetServerInfo()
    //    if err != nil {
    //        logger.Error("查询本机信息失败!")
    //    }
    //    // 查询cameraName
    //    camera, err := cache.GetCameraById(msg.Cid)
    //    if err != nil {
    //        logger.Error("查询摄像机信息失败")
    //    }
    //    serverIp, err := GetLocalIP()
    //    peraction := Personaction{
    //        uuid.NewV4().String(),
    //        msg.Cid,
    //        camera.Name,
    //        camera.Addr,
    //        msg.Tasklab.Taskid,
    //        msg.Tasklab.Taskname,
    //        sdkNames,
    //        "",
    //        alarmRules,
    //        localConfig.ServerId,
    //        localConfig.ServerName,
    //        serverIp,
    //        "",
    //        []string{strings.Split(resp["fileUrl"].(string), "/")[1]},
    //        time.Now().Format("2006-01-02 15:04:05"),
    //        "",
    //        isAlarm,
    //        0,
    //        0,
    //        0,
    //    }
    //    requstbody, err := json.Marshal(peraction)
    //
    //    if err != nil {
    //        logger.Info("json parse error ", err)
    //        return
    //
    //    }
    //    err = EsReq("POST", "http://192.168.1.182:9200/personaction/perVideoAction", requstbody)
    //    if err != nil {
    //        logger.Error("往ES插入数据失败", err)
    //    } else {
    //        logger.Info("__________________________________________往ES插入yolo数据成功")
    //    }
    //}
    if msg.RuleResult["yolo"] != nil && len(msg.RuleResult["yolo"].([]ruleserver.Result)) > 0 {
        logger.Info("往ES插yolo数据")
        var sdkNames string = ""
        alarmRules := []AlarmRule{}
        for _, yoloResult := range msg.RuleResult["yolo"].([]ruleserver.Result) {
            sdkNames = sdkNames + yoloResult.SdkName
            alarm := ChangeToString(yoloResult.AlarmLevel)
            alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText})
        }
        isAlarm := 0
        resp := make(map[string]interface{})
        if len(alarmRules) > 0 {
            isAlarm = 1
            // 解压缩并上传图片
            bdata, err := util.UnCompress(msg.Data)
            if err != nil {
                panic("解压缩图片时出现错误")
            }
            i := protomsg.Image{}
            err = proto.Unmarshal(bdata, &i)
            //resp, err = util.PostFormBufferData(weedfsUrl, i, uuid.NewV4().String())
            resp, err = util.DrawPolygonOnImage(msg.Cid, i,msg.RuleResult["yolo"].([]ruleserver.Result))
            if err != nil {
                logger.Error("画框或上传图片服务器出错", err)
            } else {
                logger.Info("已报警并上传改帧图片到服务器")
            }
        } else {
            isAlarm = 0
            // 不是报警数据不存
            return
        }
        // logger.Println("图片上传返回值:", resp)
        // 查询本机信息
        localConfig, err := cache.GetServerInfo()
        if err != nil {
            logger.Error("查询本机信息失败!")
        }
        // 查询cameraName
        camera, err := cache.GetCameraById(msg.Cid)
        if err != nil {
            logger.Error("查询摄像机信息失败")
        }
        serverIp, err := GetLocalIP()
        peraction := Personaction{
            uuid.NewV4().String(),
            msg.Cid,
            camera.Name,
            camera.Addr,
            msg.Tasklab.Taskid,
            msg.Tasklab.Taskname,
            sdkNames,
            "",
            alarmRules,
            localConfig.ServerId,
            localConfig.ServerName,
            serverIp,
            "",
            []string{strings.Split(resp["fileUrl"].(string), "/")[1]},
            time.Now().Format("2006-01-02 15:04:05"),
            "",
            isAlarm,
            0,
            0,
            0,
        }
        requstbody, err := json.Marshal(peraction)
        if err != nil {
            logger.Info("json parse error ", err)
            return
        }
        err = EsReq("POST", "http://192.168.1.182:9200/personaction/perVideoAction", requstbody)
        if err != nil {
            logger.Error("往ES插入数据失败", err)
        } else {
            logger.Warn("__________________________________________往ES插入yolo数据成功")
            os.Exit(1)
        }
    }
}
// 获取本机ip
ruleserver/ruleToformula.go
@@ -444,7 +444,7 @@
                    timeEle.N = timeEle.InitN // 重置定时器
                }
            }
            logger.Info("-------------------重置定时器并返回false---------------")
            logger.Info("-------------------重置可能存在的定时器并返回false---------------")
            return false
        } else {
            // 最后成功报警才把符合条件的人脸数据塞进结果标签里