package data import ( "MeterService/dataStruct" "MeterService/database/appApi" "MeterService/database/meterCalcParam" ) var ( DtuMap *dataStruct.DMapDtuDev CalcParam *dataStruct.DMapInterface OnlineSN *dataStruct.DMapClientState TranSN chan *dataStruct.DtuRegisterChanMsg ) func InitData() bool { OnlineSN = dataStruct.NewDMapClientState() TranSN = make(chan *dataStruct.DtuRegisterChanMsg, 100) //DtuMapState = dataStruct.NewDMapClientState() DtuMap = dataStruct.NewDMapDtuDev() CalcParam = initMeterCalcParam() initAppApiMap() // 初始化DtuMap if err := initDevice(); err != nil { return false } return true } func initMeterCalcParam() *dataStruct.DMapInterface { calcParam := dataStruct.NewDMapInterface() db := meterCalcParam.NewMeterCalcParamDb() if db == nil { return calcParam } if array, err := db.GetList(); err == nil { for _, v := range array { val := v.(*meterCalcParam.MeterCalcParam) calc := &dataStruct.MeterCalcParam{ Id: val.Id, Time: val.Time, PowerRate: dataStruct.CalcPowerRate{ MaxPower: val.MaxPower, Count: val.Count, SumPower: val.SumPower, }, TotalEnergy: dataStruct.CalcDataEnergy{ Tp: val.Tps, Tq: val.Tqs, Fp: val.Fps, Fq: val.Fqs, }, DayTotalEnergy: dataStruct.CalcDataEnergy{ Tp: val.Tpe, Tq: val.Tqe, Fp: val.Fpe, Fq: val.Fqe, }, } calcParam.Add(calc.Id, calc) } } return calcParam } func initAppApiMap() *dataStruct.MapAppApi { appApiMap := dataStruct.NewMapAppApi() db := appApi.NewAppApiDb() if db == nil { return appApiMap } if array, err := db.GetList(); err == nil { for _, v := range array { api := v.(*appApi.AppApi) if appApiMap.IsAppApiExist(api.Type) { appApiMap.Add(api.Type, api) } } } return appApiMap }