| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- package electric
- import (
- iotInterface "IotAdmin/iot/interface"
- "encoding/json"
- "fmt"
- )
- type MeterADW300 struct {
- MeterElectric
- MeterADW300Other
- }
- type MeterADW300Other struct {
- PT int `json:"pt"`
- CT int `json:"ct"`
- }
- func NewMeterADW300(id string, time int, calc, cfg string) (iotInterface.MeterCalc, error) {
- meter := &MeterADW300{
- MeterElectric: MeterElectric{
- MeterElectricBase: MeterElectricBase{
- Id: id,
- Time: time,
- isClean: true,
- },
- MeterElectricRef: MeterElectricRef{
- PvRef: 380,
- LvRef: 220,
- },
- },
- MeterADW300Other: MeterADW300Other{
- PT: 1,
- CT: 1,
- },
- }
- if cfg == "" {
- meter.MeterElectricRef = MeterElectricRef{
- PvRef: 380,
- LvRef: 220,
- }
- } else if err := json.Unmarshal([]byte(cfg), meter); err != nil {
- err = fmt.Errorf("ADW300配置参数解析失败: %s", err)
- return nil, err
- }
- if calc == "" {
- meter.isClean = true
- meter.PowerRate = CalcPowerRate{
- MaxPower: 0,
- Count: 0,
- SumPower: 0,
- }
- meter.TotalEnergy = CalcDataEnergy{
- Fq: 0,
- Tp: 0,
- Tq: 0,
- Fp: 0,
- }
- meter.DayTotalEnergy = CalcDataEnergy{
- Fq: 0,
- Tp: 0,
- Tq: 0,
- Fp: 0,
- }
- } else if err := json.Unmarshal([]byte(calc), meter); err != nil {
- err = fmt.Errorf("ADW300计算参数解析失败: %s", err)
- return nil, err
- }
- meter.ClearDayEnergy()
- return meter, nil
- }
- func (m *MeterADW300) GetMeterData() interface{} {
- return m.MeterElectric
- }
- func (m *MeterADW300) SetMeterData(data interface{}) {
- meter, ok := data.(MeterElectric)
- if ok {
- m.MeterElectricBase = meter.MeterElectricBase
- }
- }
|