| | |
| | | AnalyServerName string `json:"analyServerName"` |
| | | AnalyServerIp string `json:"analyServerIp"` |
| | | ClusterId string `json:"clusterId"` |
| | | IsAlarm string `json:"isAlarm"` |
| | | IsAckAlarm string `json:"isAckAlarm"` |
| | | IsCollect string `json:"isCollect"` |
| | | IsAlarm int `json:"isAlarm"` |
| | | IsAckAlarm int `json:"isAckAlarm"` |
| | | IsCollect int `json:"isCollect"` |
| | | IsDelete int `json:"isDelete"` |
| | | BaseInfo []Base `json:"baseInfo"` |
| | | } |
| | |
| | | PicSmUrl []string `json:"picSmUrl"` |
| | | PicDate string `json:"picDate"` |
| | | VideoUrl string `json:"videoUrl"` |
| | | IsAlarm string `json:"isAlarm"` |
| | | IsAckAlarm string `json:"isAckAlarm"` |
| | | IsCollect string `json:"isCollect"` |
| | | IsAlarm int `json:"isAlarm"` |
| | | IsAckAlarm int `json:"isAckAlarm"` |
| | | IsCollect int `json:"isCollect"` |
| | | IsDelete int `json:"isDelete"` |
| | | } |
| | | |
| | |
| | | } |
| | | i := protomsg.Image{} |
| | | err = proto.Unmarshal(bdata, &i) |
| | | log.Println("-------------------------------------------看下宽和高",i.Width,i.Height) |
| | | log.Println("-------------------------------------------看下宽和高", i.Width, i.Height) |
| | | bytes := util.SubImg(i, int(face.Location.X), int(face.Location.Y), int(face.Location.X+face.Location.Width), int(face.Location.Y+face.Location.Height)) |
| | | resp, err := util.PostFormBufferData1(weedfsUrl, bytes, uuid.NewV4().String()) |
| | | if err != nil { |
| | |
| | | localConfig.ServerName, |
| | | serverIp, |
| | | "", |
| | | "", |
| | | "", |
| | | "", |
| | | 1, |
| | | 0, |
| | | 0, |
| | | 0, |
| | | []Base{}, |
| | | } |
| | |
| | | alarm := ChangeToString(yoloResult.AlarmLevel) |
| | | alarmRules = append(alarmRules, AlarmRule{yoloResult.RuleGroupId, alarm, yoloResult.RuleText}) |
| | | } |
| | | isAlarm := "" |
| | | isAlarm := 0 |
| | | resp := make(map[string]interface{}) |
| | | if len(alarmRules) > 0 { |
| | | isAlarm = "1" |
| | | isAlarm = 1 |
| | | // 解压缩并上传图片 |
| | | bdata, err := util.UnCompress(msg.Data) |
| | | if err != nil { |
| | |
| | | log.Println("已报警并上传改帧图片到服务器") |
| | | } |
| | | } else { |
| | | isAlarm = "0" |
| | | isAlarm = 0 |
| | | // 不是报警数据不存 |
| | | return |
| | | } |
| | |
| | | time.Now().Format("2006-01-02 15:04:05"), |
| | | "", |
| | | isAlarm, |
| | | "", |
| | | "", |
| | | 0, |
| | | 0, |
| | | 0, |
| | | } |
| | | requstbody, err := json.Marshal(peraction) |
| | |
| | | if err != nil { |
| | | log.Println("往ES插入数据失败", err) |
| | | } else { |
| | | log.Println("__________________________________________往ES插入数据yolo成功") |
| | | log.Println("__________________________________________往ES插入yolo数据成功") |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | //获取年龄描述 |
| | | func getDescription (age int32) string{ |
| | | func getDescription(age int32) string { |
| | | ageInfo := "青年" |
| | | if age > 0 && age < 7 { |
| | | ageInfo = "童年" |
| | |
| | | return ageInfo |
| | | } |
| | | |
| | | func getRaceString (i int32) string{ |
| | | func getRaceString(i int32) string { |
| | | race := "" |
| | | if i == 1 { |
| | | race = "白人" |
| | | } else if i == 2{ |
| | | } else if i == 2 { |
| | | race = "黄人" |
| | | } else { |
| | | race = "黑人" |
| | | } |
| | | return race |
| | | } |
| | | } |
| | |
| | | if len(temp) > 0 { |
| | | if ruleList[i].SetType == "linkTask" { |
| | | // groupId中含有link则为联动任务 |
| | | linkTask(args, ruleList[i], taskId) |
| | | LinkTask(args, ruleList[i], taskId) |
| | | } else { |
| | | // 独立任务的处理 |
| | | RunRule(args, ruleList[i], taskId) |
| | |
| | | } |
| | | |
| | | }() |
| | | log.Println("+++++++++++规则开始运行+++++++++++++++++当前规则--:",*groupRule) |
| | | log.Println("+++++++++++规则开始运行+++++++++++++++++当前规则--:",(*groupRule).GroupText) |
| | | resultSplice := []*LittleRuleResult{} |
| | | // 先过完条件规则 |
| | | for j := 0; j < len(groupRule.Rules); j++ { |
| | |
| | | } |
| | | } |
| | | if flag { |
| | | fmt.Println("----------------------------终于走完万里长征") |
| | | fmt.Println("___________________________________________________________________________终于走完万里长征") |
| | | // 如果成功了我应该找到规则中涉及到的sdk,记录下他们的sdkname |
| | | sdkName := "" |
| | | for j := 0; j < len(groupRule.Rules); j++ { |
| | |
| | | } |
| | | |
| | | // 联动任务的处理 |
| | | func linkTask(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string) { |
| | | func LinkTask(args *SdkDatas, groupRule *protomsg.GroupRule, taskId string) { |
| | | // new一个定时器,如果以此groupId为标志的定时器不存在的话 |
| | | var flag bool = true |
| | | var timeEle = TimeElement{N: 3, InitN: 3, GroupId: groupRule.GroupId} |
| | |
| | | timeEle := TimeElement{N: 3, InitN: 3, GroupId: groupRule.GroupId} // 扔进去一个定时器元素 |
| | | //TimeEleList = make(map[string]timeElement) |
| | | TimeEleList[groupRule.GroupId] = &timeEle // 定时器元素以规则组id为键 |
| | | fmt.Println("创建了计数器并且计数器集合为:", TimeEleList) |
| | | fmt.Println("---------------------------------------------联动任务创建了计数器并且计数器集合为:", TimeEleList) |
| | | // 得出这组完整规则里涉及到几个摄像机,决定着数组里有几个结构体,去重添加方式 |
| | | for j := 0; j < len(groupRule.Rules); j++ { |
| | | var flag1 bool = true |