44 lines
1.2 KiB
Go
44 lines
1.2 KiB
Go
// Package pool define concurrency call function in ants
|
|
package pool
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"modelRT/config"
|
|
"modelRT/diagram"
|
|
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
var AnchorFunc = func(anchorConfig interface{}) {
|
|
logger := zap.L()
|
|
|
|
paramConfig, ok := anchorConfig.(config.AnchorParamConfig)
|
|
if !ok {
|
|
logger.Error("conversion model anchor param config type failed")
|
|
return
|
|
}
|
|
calculateFunc := paramConfig.CalculateFunc
|
|
for {
|
|
// TODO 通过 api 循环获取 vlaue 实时值
|
|
var value float32
|
|
anchorName, err := diagram.GetAnchorValue(paramConfig.UUID)
|
|
if err != nil {
|
|
logger.Error("can not get anchor value from map by uuid", zap.String("uuid", paramConfig.UUID), zap.Error(err))
|
|
continue
|
|
}
|
|
|
|
if anchorName != paramConfig.AnchorName {
|
|
logger.Error("anchor name not equal param config anchor value", zap.String("map_anchor_name", anchorName), zap.String("param_anchor_name", paramConfig.AnchorName))
|
|
continue
|
|
}
|
|
|
|
upperLimitVal := paramConfig.CompareValUpperLimit
|
|
lowerlimitVal := paramConfig.CompareValLowerLimit
|
|
compareValue := calculateFunc(value, paramConfig.CalculateParams...)
|
|
if compareValue > upperLimitVal || compareValue < lowerlimitVal {
|
|
fmt.Println("log warning")
|
|
}
|
|
}
|
|
}
|