You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.2 KiB

package meterControl
import "tgk-touch/internal/library/meterControl/Adl200Impl"
import "tgk-touch/internal/library/meterControl/Adl400Impl"
type MeterFirm string
const (
ADL200 MeterFirm = "AEM-ADL200"
ADL400 MeterFirm = "AEM-ADL400"
)
var (
meterControls = make(map[MeterFirm]IMeterControl)
readMeterControls = make(map[MeterFirm]IReadMeter)
writeMeterControls = make(map[MeterFirm]IWriteMeter)
)
func init() {
// 注册 ADL200 单相电表控制器
meterControls[ADL200] = Adl200Impl.GetAdl200Impl()
readMeterControls[ADL200] = Adl200Impl.GetAdl200Impl()
writeMeterControls[ADL200] = Adl200Impl.GetAdl200Impl()
// 注册 ADL400 三相电表控制器
meterControls[ADL400] = Adl400Impl.GetAdl400Impl()
readMeterControls[ADL400] = Adl400Impl.GetAdl400Impl()
writeMeterControls[ADL400] = Adl400Impl.GetAdl400Impl()
}
func GetMeterControls(firm MeterFirm) IMeterControl {
if v, ok := meterControls[firm]; ok {
return v
}
return nil
}
func GetReadMeterControls(firm MeterFirm) IReadMeter {
if v, ok := readMeterControls[firm]; ok {
return v
}
return nil
}
func GetWriteMeterControls(firm MeterFirm) IWriteMeter {
if v, ok := writeMeterControls[firm]; ok {
return v
}
return nil
}