dtu.go 1.9 KB

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