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
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
|
|
}
|