// Package config define config struct of model runtime service package config import ( "modelRT/constant" ) // AnchorParamListConfig define anchor params list config struct type AnchorParamListConfig struct { AnchorName string FuncType string // 函数类型 UpperLimit float64 // 比较值上限 LowerLimit float64 // 比较值下限 } // AnchorParamBaseConfig define anchor params base config struct type AnchorParamBaseConfig struct { StationID string // component表 station_id ComponentID string // component表 ID UUID string // component表 global_uuid AnchorName string // 锚定参量名称 CompareValUpperLimit float64 // 比较值上限 CompareValLowerLimit float64 // 比较值下限 } // AnchorParamConfig define anchor params config struct type AnchorParamConfig struct { AnchorParamBaseConfig CalculateFunc func(archorValue float64, args ...float64) float64 // 计算函数 CalculateParams []float64 // 计算参数 APIURL string // API URL APIMethod string // API Method } var baseVoltageFunc = func(archorValue float64, args ...float64) float64 { voltage := archorValue resistance := args[1] return voltage / resistance } var baseCurrentFunc = func(archorValue float64, args ...float64) float64 { current := archorValue resistance := args[1] return current * resistance } // SelectAnchorCalculateFuncAndParams define select anchor func and anchor calculate value by component type 、 anchor name and component data func SelectAnchorCalculateFuncAndParams(componentType int, anchorName string, componentData map[string]interface{}) (func(archorValue float64, args ...float64) float64, []float64) { if componentType == constant.DemoType { if anchorName == "voltage" { resistance := componentData["resistance"].(float64) return baseVoltageFunc, []float64{resistance} } else if anchorName == "current" { resistance := componentData["resistance"].(float64) return baseCurrentFunc, []float64{resistance} } } return nil, []float64{} }