| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- package iotStruct
- import (
- "encoding/json"
- "reflect"
- "strings"
- )
- type DtuConfig struct {
- Enable bool `json:"enable"`
- Sn string `json:"sn"`
- Name string `json:"name"`
- Mode int `json:"mode"`
- Cycle int `json:"cycle"`
- SlaveConfig *[]SlaveConfig `json:"slaveConfig"`
- }
- type SlaveConfig struct {
- No string `json:"no"`
- Enable bool `json:"enable"`
- Addr int `json:"addr"` //表计串口地址
- //LvRef float32 `json:"lvRef"` //表计线电压基准(220)
- //PvRef float32 `json:"pvRef"` //表计相电压基准(380)
- Protocol string `json:"protocol"` //表计协议
- ReportConfig *[]ReportConfig `json:"reportConfig"`
- OtherConfig string `json:"other"` // 其他配置
- }
- type ReportConfig struct {
- Host string `json:"host"`
- Protocol string `json:"protocol"`
- ST string `json:"st"`
- MN string `json:"mn"`
- User string `json:"user"`
- Pwd string `json:"pwd"`
- BmYz *BmYz `json:"bmYz"` //编码因子
- }
- func (rc *ReportConfig) String() string {
- return rc.Host + "|" + rc.Protocol + "|" + rc.MN + "|" + rc.User + "|" + rc.Pwd
- }
- type BmYz struct {
- P string
- Pa string
- Pb string
- Pc string
- Q string
- Qa string
- Qb string
- Qc string
- Pf string
- Pfa string
- Pfb string
- Pfc string
- Ua string
- Ub string
- Uc string
- Uab string
- Ubc string
- Uca string
- Ia string
- Ib string
- Ic string
- Iz string
- Uaw string
- Ubw string
- Ucw string
- Uabw string
- Ubcw string
- Ucaw string
- F string
- FW string
- IUnbalance string
- UUnbalance string
- Dp string
- Pv string
- Tpe string
- Tqe string
- Fpe string
- Fqe string
- Tps string
- Tqs string
- Fps string
- Fqs string
- T string
- T2 string
- T3 string
- T4 string
- T5 string
- T6 string
- T7 string
- }
- // GetBmYzKey 获取BmYz的键
- func (rc *ReportConfig) GetBmYzKey(key string) string {
- return rc.GetBmYzKeyOrDefault(key, strings.ToLower(key))
- }
- // GetBmYzKeyOrDefault 获取BmYz的键
- func (rc *ReportConfig) GetBmYzKeyOrDefault(key string, defaultValue string) string {
- if rc.BmYz == nil {
- return defaultValue
- }
- v := reflect.ValueOf(rc.BmYz).Elem()
- field := v.FieldByName(key)
- if field.IsValid() {
- return field.String()
- }
- return defaultValue
- }
- func (bm *BmYz) BuildBmYzArray(data string) (*map[string]BmYz, error) {
- var err error
- mp := make(map[string]BmYz)
- if data != "" {
- err = json.Unmarshal([]byte(data), &mp)
- }
- return &mp, err
- }
|