liuxiulin 1 день назад
Родитель
Сommit
5312fdba38
2 измененных файлов с 20 добавлено и 27 удалено
  1. 5 18
      pkg/deviceAlarm/deviceAlarm.go
  2. 15 9
      pkg/ruleEngine/nodes/temp_alarm_node.go

+ 5 - 18
pkg/deviceAlarm/deviceAlarm.go

@@ -1,13 +1,11 @@
 package deviceAlarm
 
 import (
-	"fmt"
 	"github.com/gogf/gf/database/gredis"
-	"github.com/gogf/gf/encoding/gjson"
 )
 
 const (
-	AlarmPrefix = "device:main:alarm:"
+	AlarmPrefix = "device:alarm:"
 	dataExpires = 7200
 )
 
@@ -22,7 +20,6 @@ type DevAlarmManager struct {
 }
 
 func NewDevAlarmManager(host string, port int) *DevAlarmManager {
-	fmt.Printf("redis---------------%s:%d\n", host, port)
 	red := gredis.New(&gredis.Config{
 		Host:      host,
 		Port:      port,
@@ -37,25 +34,15 @@ func NewDevAlarmManager(host string, port int) *DevAlarmManager {
 
 func (a *DevAlarmManager) SetAlarm(params *AlarmParams) error {
 	key := AlarmPrefix + params.DeviceCode
-	res, err := a.redisClient.DoVar("SET", key, params)
+	_, err := a.redisClient.DoVar("SET", key, params)
 	if err != nil {
 		return err
 	}
-	fmt.Printf("params--------------%s\nres--------------%s\n", gjson.New(params).MustToJsonString(), res.String())
-	r, err := a.GetAlarm(params.DeviceCode)
+
+	_, err = a.redisClient.Do("EXPIRE", key, dataExpires)
 	if err != nil {
-		fmt.Printf("err------------%s\n", err.Error())
-	}
-	if res == nil {
-		fmt.Printf("rrrrrrrrrrrrr为空----------\n")
-		return nil
+		return err
 	}
-
-	fmt.Printf("r---------------------%s\n", gjson.New(r).MustToJsonString())
-	//_, err = a.redisClient.Do("EXPIRE", key, dataExpires)
-	//if err != nil {
-	//	return err
-	//}
 	return nil
 
 }

+ 15 - 9
pkg/ruleEngine/nodes/temp_alarm_node.go

@@ -43,7 +43,6 @@ func (t *TempAlarmNode) Init(ctx ruleEngine.Context, config string) error {
 }
 
 func (t *TempAlarmNode) OnMessage(ctx ruleEngine.Context, message *protocol.Message) error {
-	deviceId := message.MetaData["device_id"].(string)
 	if t.evaluateConditions(message) {
 		err := t.newAlarmMessage(message)
 		if err != nil {
@@ -52,14 +51,6 @@ func (t *TempAlarmNode) OnMessage(ctx ruleEngine.Context, message *protocol.Mess
 		ctx.TellNext(message, protocol.True)
 		return nil
 	} else {
-		args := rpcs.ArgsGetAlarm{
-			DeviceCode: deviceId,
-		}
-		reply := rpcs.ReplayAlarm{}
-		err := server.RPCCallByName(nil, rpcs.DeviceManagerName, "DeviceManager.DelAlarm", args, &reply)
-		if err != nil {
-			server.Log.Errorf("device offline error. deviceid: %v, error: %v", reply.AlarmParams.DeviceCode, err)
-		}
 		ctx.TellNext(message, protocol.False)
 	}
 	return nil
@@ -173,6 +164,7 @@ func (t *TempAlarmNode) evaluateConditions(message *protocol.Message) bool {
 		if rule.LogicalOp == 1 {
 			for _, r := range results {
 				if !r {
+					_ = deleteAlarm(deviceId)
 					return false
 				}
 			}
@@ -181,6 +173,7 @@ func (t *TempAlarmNode) evaluateConditions(message *protocol.Message) bool {
 				if r {
 					break
 				}
+				_ = deleteAlarm(deviceId)
 				return false
 			}
 		}
@@ -325,3 +318,16 @@ func fillTemplate(template string, values map[string]interface{}) (string, error
 		}
 	}), nil
 }
+
+func deleteAlarm(deviceId string) error {
+	args := rpcs.ArgsGetAlarm{
+		DeviceCode: deviceId,
+	}
+	reply := rpcs.ReplayAlarm{}
+	err := server.RPCCallByName(nil, rpcs.DeviceManagerName, "DeviceManager.DelAlarm", args, &reply)
+	if err != nil {
+		server.Log.Errorf("delete error. deviceid: %v, error: %v", reply.AlarmParams.DeviceCode, err)
+		return err
+	}
+	return nil
+}