| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package electric
- import (
- iotInterface "IotAdmin/iot/interface"
- "encoding/json"
- "fmt"
- )
- type MeterPMC350B struct {
- MeterElectric
- MeterPMC350BOther
- }
- type MeterPMC350BOther struct {
- //PT int `json:"pt"`
- //CT int `json:"ct"`
- PrimaryVolt int `json:"primaryVolt"`
- SecondVolt int `json:"secondVolt"`
- PrimaryCurrent int `json:"primaryCurrent"`
- SecondCurrent int `json:"secondCurrent"`
- CurrentType int `json:"currentType"`
- }
- func NewMeterPMC350B(id string, time int, calc, cfg string) (iotInterface.MeterCalc, error) {
- meter := &MeterPMC350B{
- MeterElectric: MeterElectric{
- MeterElectricBase: MeterElectricBase{
- Id: id,
- Time: time,
- isClean: true,
- },
- MeterElectricRef: MeterElectricRef{
- PvRef: 380,
- LvRef: 220,
- },
- },
- MeterPMC350BOther: MeterPMC350BOther{
- CurrentType: 1,
- PrimaryVolt: 380,
- SecondVolt: 220,
- PrimaryCurrent: 100,
- SecondCurrent: 5,
- },
- }
- if cfg == "" {
- meter.MeterElectricRef = MeterElectricRef{
- PvRef: 380,
- LvRef: 220,
- }
- } else if err := json.Unmarshal([]byte(cfg), meter); err != nil {
- err = fmt.Errorf("PMC350B配置参数解析失败: %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("PMC350B计算参数解析失败: %s", err)
- return nil, err
- }
- meter.ClearDayEnergy()
- return meter, nil
- }
- func (m *MeterPMC350B) GetMeterData() interface{} {
- return m.MeterElectric
- }
- func (m *MeterPMC350B) SetMeterData(data interface{}) {
- meter, ok := data.(MeterElectric)
- if ok {
- m.MeterElectricBase = meter.MeterElectricBase
- }
- }
|