From 70b8a2570ee59aebc555b9a7da772d5459b53253 Mon Sep 17 00:00:00 2001 From: Rice <1840169763@qq.com> Date: Tue, 19 May 2026 22:10:08 +0800 Subject: [PATCH] =?UTF-8?q?error=20=E6=9B=B4=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/library/meterControl/init.go | 13 ++++++++++--- internal/module/adl400TtyApi/init.go | 15 +++++++++++---- internal/module/adl400TtyApi/read.go | 18 +++++++++--------- internal/module/adl400TtyApi/write.go | 2 +- 4 files changed, 31 insertions(+), 17 deletions(-) diff --git a/internal/library/meterControl/init.go b/internal/library/meterControl/init.go index 524eaf3..725db66 100644 --- a/internal/library/meterControl/init.go +++ b/internal/library/meterControl/init.go @@ -1,13 +1,16 @@ package meterControl -import "tgk-touch/internal/library/meterControl/Adl200Impl" +import ( + "log" + "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" + ADL200 MeterFirm = "ADL200" + ADL400 MeterFirm = "ADL400" ) var ( @@ -33,6 +36,10 @@ func init() { } func GetMeterControls(firm MeterFirm) IMeterControl { + log.Println("GetMeterControls", firm) + _, ok := meterControls[firm] + log.Println("GetMeterControls", ok) + log.Println("GetMeterControls", meterControls) if v, ok := meterControls[firm]; ok { return v } diff --git a/internal/module/adl400TtyApi/init.go b/internal/module/adl400TtyApi/init.go index 01167f2..d06db15 100644 --- a/internal/module/adl400TtyApi/init.go +++ b/internal/module/adl400TtyApi/init.go @@ -2,6 +2,7 @@ package adl400TtyApi import ( + "log" "strings" "github.com/gogf/gf/v2/util/gconv" @@ -12,19 +13,25 @@ import ( "tgk-touch/internal/module/meterFirm" ) -var mc meterControl.IMeterControl +var mc2 meterControl.IMeterControl var deviceInfo config.DeviceInfo func Init() { deviceInfo = g.Config().DeviceInfo - mc = meterFirm.Manager().GetMeterControl() + mc2 = meterFirm.Manager().GetMeterControl() meterFirm.Manager().RegisterReloadCallback(Reload) initReadFunc() initWriteFunc() } - +func getMc() meterControl.IMeterControl { + log.Println("getMc==", mc2, meterFirm.Manager().Get()) + if mc2 == nil { + mc2 = meterFirm.Manager().GetMeterControl() + } + return mc2 +} func Reload() { - mc = meterFirm.Manager().GetMeterControl() + mc2 = meterFirm.Manager().GetMeterControl() } func initReadFunc() { towgo.SetFunc("/adl400/readPhaseData", readPhaseData) diff --git a/internal/module/adl400TtyApi/read.go b/internal/module/adl400TtyApi/read.go index 6698c13..668d29a 100644 --- a/internal/module/adl400TtyApi/read.go +++ b/internal/module/adl400TtyApi/read.go @@ -21,7 +21,7 @@ func readPhaseData(rpc towgo.JsonRpcConnection) { addr := getMeterAddr(p.CommUid) rtuCommUid := p.CommUid var mp deviceManagement.MeterPower - totalEnergy, aEnergy, bEnergy, cEnergy, err := mc.ReadEnergy(rtuCommUid, addr) + totalEnergy, aEnergy, bEnergy, cEnergy, err := getMc().ReadEnergy(rtuCommUid, addr) if err != nil { panic(err) } @@ -30,7 +30,7 @@ func readPhaseData(rpc towgo.JsonRpcConnection) { mp.BEnergy = math.Round(bEnergy*100) / 100 mp.CEnergy = math.Round(cEnergy*100) / 100 - _, aVoltage, bVoltage, cVoltage, err := mc.ReadVoltage(rtuCommUid, addr) + _, aVoltage, bVoltage, cVoltage, err := getMc().ReadVoltage(rtuCommUid, addr) if err != nil { panic(err) } @@ -38,7 +38,7 @@ func readPhaseData(rpc towgo.JsonRpcConnection) { mp.BVoltage = math.Round(bVoltage*100) / 100 mp.CVoltage = math.Round(cVoltage*100) / 100 - _, aElectricCurrent, bElectricCurrent, cElectricCurrent, err := mc.ReadElectricCurrent(rtuCommUid, addr) + _, aElectricCurrent, bElectricCurrent, cElectricCurrent, err := getMc().ReadElectricCurrent(rtuCommUid, addr) if err != nil { panic(err) } @@ -46,7 +46,7 @@ func readPhaseData(rpc towgo.JsonRpcConnection) { mp.BElectricCurrent = math.Round(bElectricCurrent*100) / 100 mp.CElectricCurrent = math.Round(cElectricCurrent*100) / 100 - totalPower, aPower, bPower, cPower, err := mc.ReadPower(rtuCommUid, addr) + totalPower, aPower, bPower, cPower, err := getMc().ReadPower(rtuCommUid, addr) if err != nil { panic(err) } @@ -54,7 +54,7 @@ func readPhaseData(rpc towgo.JsonRpcConnection) { mp.APower = math.Round(aPower*100) / 100 mp.BPower = math.Round(bPower*100) / 100 mp.CPower = math.Round(cPower*100) / 100 - tf, af, bf, cf, err := mc.ReadPowerFactor(rtuCommUid, addr) + tf, af, bf, cf, err := getMc().ReadPowerFactor(rtuCommUid, addr) if err != nil { panic(err) } @@ -73,7 +73,7 @@ func getMsgAddress(rpc towgo.JsonRpcConnection) { CommUid string `json:"comm_uid"` } rpc.ReadParams(&p) - addr, err := mc.ReadMsgAddr(p.CommUid, getMeterAddr(p.CommUid)) + addr, err := getMc().ReadMsgAddr(p.CommUid, getMeterAddr(p.CommUid)) if err != nil { panic(err) } @@ -87,7 +87,7 @@ func getDailyFreezingTime(rpc towgo.JsonRpcConnection) { } rpc.ReadParams(&p) - time, err := mc.ReadDailyFreezingTime(p.CommUid, getMeterAddr(p.CommUid)) + time, err := getMc().ReadDailyFreezingTime(p.CommUid, getMeterAddr(p.CommUid)) if err != nil { panic(gerror.Wrap(err, "getDailyFreezingTime")) } @@ -101,7 +101,7 @@ func geDeviceTime(rpc towgo.JsonRpcConnection) { } rpc.ReadParams(&p) - time, err := mc.ReadTime(p.CommUid, getMeterAddr(p.CommUid)) + time, err := getMc().ReadTime(p.CommUid, getMeterAddr(p.CommUid)) if err != nil { panic(gerror.Wrap(err, "geTime")) } @@ -115,7 +115,7 @@ func getReadMonthlyFreezingTime(rpc towgo.JsonRpcConnection) { } rpc.ReadParams(&p) - day, hour, err := mc.ReadMonthlyFreezingTime(p.CommUid, getMeterAddr(p.CommUid)) + day, hour, err := getMc().ReadMonthlyFreezingTime(p.CommUid, getMeterAddr(p.CommUid)) if err != nil { panic(gerror.Wrap(err, "getReadMonthlyFreezingTime")) } diff --git a/internal/module/adl400TtyApi/write.go b/internal/module/adl400TtyApi/write.go index 933aeb9..9685512 100644 --- a/internal/module/adl400TtyApi/write.go +++ b/internal/module/adl400TtyApi/write.go @@ -15,7 +15,7 @@ func setMsgAddress(rpc towgo.JsonRpcConnection) { oldAddr := getMeterAddr(p.CommUid) newAddr := gconv.Byte(strings.TrimPrefix(p.MsgAddr, "0x")) - err := mc.WriteMsgAddr(p.CommUid, oldAddr, newAddr) + err := getMc().WriteMsgAddr(p.CommUid, oldAddr, newAddr) if err != nil { panic(err) }