BackgroundData.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import axios from 'axios';
  2. export default class BackgroundData {
  3. TopPoint = [
  4. {
  5. pointName: "TotalPower",// 实时总功率
  6. pointTag: "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0135",
  7. value: 0
  8. }, {
  9. pointName: "DailyPowerGeneration",// 日发电量
  10. pointTag: "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0088",
  11. value: 0
  12. }, {
  13. pointName: "GridPower",// 上网电量
  14. pointTag: "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0136",
  15. value: 0
  16. }, {
  17. pointName: "MonthlyPowerGeneration",// 月发电量
  18. pointTag: "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0146",
  19. value: 0
  20. }, {
  21. pointName: "AnnualPowerGeneration",// 年发电量
  22. pointTag: "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0037",
  23. value: 0
  24. },
  25. ];
  26. constructor() {
  27. this.refreshData = this.refreshData.bind(this);
  28. this.onTPMessage = this.onTPMessage.bind(this);
  29. this.refreshTimer = setInterval(this.refreshData, 3000);
  30. }
  31. /* 数据刷新 */
  32. refreshData() {
  33. // http://192.168.10.18:8011/ts
  34. var val = '';
  35. for (var v in this.TopPoint) {
  36. val += this.TopPoint[v].pointTag + ',';
  37. }
  38. axios.get("http://192.168.10.18:8011/ts/latest" + "?keys=" + val)
  39. .then(this.onTPMessage)
  40. .catch(err =>
  41. console.log(err)
  42. );
  43. }
  44. onTPMessage(msg) {
  45. if (!msg.data) return;
  46. for (var v in this.TopPoint) {
  47. var val = this.TopPoint[v];
  48. val.value = msg.data[val.pointTag].doubleValue;
  49. }
  50. }
  51. /* 单例 */
  52. static getInstance() {
  53. if (!BackgroundData.instance) {
  54. BackgroundData.instance = new BackgroundData();
  55. }
  56. return BackgroundData.instance;
  57. }
  58. }