| | |
| | | CameraName string |
| | | CameraAddr string |
| | | TaskId string |
| | | Time string |
| | | Persons []ruleserver.Arg |
| | | DefenceLevel string |
| | | } |
| | | |
| | | func (label *Label)DataFormatToLabel(result ruleserver.ResultMsg) Label { |
| | | // 把数据装配到label |
| | | func (label *Label)DataFormatToLabel(result ruleserver.ResultMsg) { |
| | | label.CameraId = result.Cid |
| | | camera, err := cache.GetCameraById(result.Cid) |
| | | if err != nil { |
| | |
| | | label.TaskId = result.Tasklab.Taskid |
| | | label.Persons = result.RuleResult["face"].([]ruleserver.Arg) |
| | | //labelData.DefenceLevel = result. |
| | | return Label{} |
| | | } |
| | | |
| | | // 从缓存中查出所有的规则数据 |
| | |
| | | package labelFilter |
| | | |
| | | import ( |
| | | "github.com/knetic/govaluate" |
| | | "ruleprocess/logger" |
| | | ) |
| | | |
| | | func Judge(){ |
| | | |
| | | } |
| | | // |
| | | func timeJudge(label *Label,groupRule *GroupRule){ |
| | | |
| | | } |
| | | // 判断第一个时间是否小于第二个时间 |
| | | func isBefore(time1 string,time2 string) bool{ |
| | | expression, err:= govaluate.NewEvaluableExpression("t1 < t2"); |
| | | if err != nil { |
| | | logger.Error("表达式有误,请检查!") |
| | | } |
| | | parameters := make(map[string]interface{},8) |
| | | parameters["t1"] = time1 |
| | | parameters["t2"] = time2 |
| | | result, err1:= expression.Evaluate(parameters) |
| | | if err1 != nil { |
| | | logger.Error("带入参数有误") |
| | | } |
| | | return result.(bool) |
| | | } |
| | |
| | | go cache.Init(initchan,*dbIp,*surveyPort,*pubPort) |
| | | logger.Info("cache init completed!!!",<- initchan)//dbserver初始化完毕 |
| | | //fmt.Println("缓存初始化完成",<- initchan)//dbserver初始化完毕 |
| | | |
| | | ruleserver.Init() |
| | | go ruleserver.TimeTicker() |
| | | nReciever("ipc:///tmp/sdk-2-rules-process.ipc", deliver.PushPull, 1) |
| | | wg.Wait() |
| | |
| | | Serverport string `yaml:"serverPort"` |
| | | Dbtablepersons string `yaml:"dbTablePersons"` |
| | | } |
| | | func init() { |
| | | func Init() { |
| | | data, err := ioutil.ReadFile("./config/conf.yml") |
| | | if err != nil { |
| | | fmt.Println("读取配置文件出错--", err) |
| | |
| | | } |
| | | if completeFormula != "" { |
| | | logger.Info("结果公式-----------:", completeFormula) |
| | | expression, _ := govaluate.NewEvaluableExpression(completeFormula) |
| | | if strings.HasPrefix(completeFormula, "&&") || strings.HasPrefix(completeFormula, "||") { |
| | | expression, err := govaluate.NewEvaluableExpression(completeFormula) |
| | | if strings.HasPrefix(completeFormula, "&&") || strings.HasPrefix(completeFormula, "||") || err != nil{ |
| | | panic("规则有误,得到的数学公式不可解析") |
| | | } |
| | | result, _ := expression.Evaluate(nil) // 得到数学公式的结果 |