dtu.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package data
  2. import (
  3. "MeterService/dataStruct"
  4. "MeterService/database/appApi"
  5. "MeterService/database/meterCalcParam"
  6. )
  7. var (
  8. DtuMap *dataStruct.DMapDtuDev
  9. CalcParam *dataStruct.DMapInterface
  10. OnlineSN *dataStruct.DMapClientState
  11. TranSN chan *dataStruct.DtuRegisterChanMsg
  12. )
  13. func InitData() bool {
  14. OnlineSN = dataStruct.NewDMapClientState()
  15. TranSN = make(chan *dataStruct.DtuRegisterChanMsg, 100)
  16. //DtuMapState = dataStruct.NewDMapClientState()
  17. DtuMap = dataStruct.NewDMapDtuDev()
  18. CalcParam = initMeterCalcParam()
  19. initAppApiMap()
  20. // 初始化DtuMap
  21. if err := initDevice(); err != nil {
  22. return false
  23. }
  24. return true
  25. }
  26. func initMeterCalcParam() *dataStruct.DMapInterface {
  27. calcParam := dataStruct.NewDMapInterface()
  28. db := meterCalcParam.NewMeterCalcParamDb()
  29. if db == nil {
  30. return calcParam
  31. }
  32. if array, err := db.GetList(); err == nil {
  33. for _, v := range array {
  34. val := v.(*meterCalcParam.MeterCalcParam)
  35. calc := &dataStruct.MeterCalcParam{
  36. Id: val.Id,
  37. Time: val.Time,
  38. PowerRate: dataStruct.CalcPowerRate{
  39. MaxPower: val.MaxPower,
  40. Count: val.Count,
  41. SumPower: val.SumPower,
  42. },
  43. TotalEnergy: dataStruct.CalcDataEnergy{
  44. Tp: val.Tps,
  45. Tq: val.Tqs,
  46. Fp: val.Fps,
  47. Fq: val.Fqs,
  48. },
  49. DayTotalEnergy: dataStruct.CalcDataEnergy{
  50. Tp: val.Tpe,
  51. Tq: val.Tqe,
  52. Fp: val.Fpe,
  53. Fq: val.Fqe,
  54. },
  55. }
  56. calcParam.Add(calc.Id, calc)
  57. }
  58. }
  59. return calcParam
  60. }
  61. func initAppApiMap() *dataStruct.MapAppApi {
  62. appApiMap := dataStruct.NewMapAppApi()
  63. db := appApi.NewAppApiDb()
  64. if db == nil {
  65. return appApiMap
  66. }
  67. if array, err := db.GetList(); err == nil {
  68. for _, v := range array {
  69. api := v.(*appApi.AppApi)
  70. if appApiMap.IsAppApiExist(api.Type) {
  71. appApiMap.Add(api.Type, api)
  72. }
  73. }
  74. }
  75. return appApiMap
  76. }