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.
57 lines
1.5 KiB
57 lines
1.5 KiB
// Package adl400Api 电表接口
|
|
package adl400TtyApi
|
|
|
|
import (
|
|
"log"
|
|
"strings"
|
|
|
|
"github.com/gogf/gf/v2/util/gconv"
|
|
"github.com/towgo/towgo/towgo"
|
|
"tgk-touch/internal/global"
|
|
"tgk-touch/internal/library/meterControl"
|
|
"tgk-touch/internal/model/config"
|
|
"tgk-touch/internal/module/meterFirm"
|
|
)
|
|
|
|
var mc2 meterControl.IMeterControl
|
|
var deviceInfo config.DeviceInfo
|
|
|
|
func Init() {
|
|
deviceInfo = g.Config().DeviceInfo
|
|
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() {
|
|
mc2 = meterFirm.Manager().GetMeterControl()
|
|
}
|
|
func initReadFunc() {
|
|
towgo.SetFunc("/adl400/readPhaseData", readPhaseData)
|
|
// 读取通信地址
|
|
towgo.SetFunc("/adl400/getMsgAddress", getMsgAddress)
|
|
// 读取日冻结时间
|
|
towgo.SetFunc("/adl400/getDailyFreezingTime", getDailyFreezingTime)
|
|
// 读取月冻结时间
|
|
towgo.SetFunc("/adl400/getMonthlyFreezingTime", getReadMonthlyFreezingTime)
|
|
// 读取冻结数据
|
|
towgo.SetFunc("/adl400/getFreezeTheData", getFreezeTheData)
|
|
// 读取时间
|
|
towgo.SetFunc("/adl400/geTime", geDeviceTime)
|
|
}
|
|
func initWriteFunc() {
|
|
// 写入通信地址
|
|
towgo.SetFunc("/adl400/setMsgAddress", setMsgAddress)
|
|
}
|
|
func getMeterAddr(cuid string) byte {
|
|
// 去掉 "0x" 前缀,按 16 进制解析
|
|
return gconv.Byte(strings.TrimPrefix(deviceInfo.MeterAddr, "0x"))
|
|
}
|