2024-12-18 16:25:49 +08:00
// Package pool define concurrency call function in ants
package pool
import (
"fmt"
"modelRT/config"
2024-12-20 16:06:42 +08:00
"modelRT/diagram"
2024-12-18 16:25:49 +08:00
"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
}
2024-12-20 16:06:42 +08:00
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
}
2024-12-18 16:25:49 +08:00
2024-12-20 16:06:42 +08:00
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" )
}
}
2024-12-18 16:25:49 +08:00
}