GenData.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using System.Text;
  2. using StressClient.Common;
  3. using Vbdsm.Common;
  4. using Vbdsm.Model;
  5. namespace Vbdsm.Gen
  6. {
  7. public class GenData
  8. {
  9. public GenData(string terminalIds, string? companyId)
  10. {
  11. TerminalIds = terminalIds;
  12. CompanyId = companyId;
  13. }
  14. public string TerminalIds { get; set; }
  15. public string? CompanyId { get; set; }
  16. public string GenTerminals(long date)
  17. {
  18. //date = date ?? $"{DateTime.Now:yyyyMMddHH}{(DateTime.Now.Minute - DateTime.Now.Minute % 15):D2}00";
  19. var str = $"st=01;cn={CompanyId};datatime={date};cphh=&&";
  20. var tidList = TerminalIds.Split(',');
  21. foreach (var tid in tidList)
  22. {
  23. var terminalStr = GenTerminal(tid, date);
  24. if (string.IsNullOrEmpty(terminalStr))
  25. {
  26. return "";
  27. }
  28. str += terminalStr + "$";
  29. }
  30. str = str.TrimEnd('$');
  31. byte[] bytes = StrHexHelper.HexStrToArray(StrHexHelper.StrToHexStr(str, Encoding.Default));
  32. var result = $"##{str.Length:D6}{str}{StrHexHelper.do_CRC(bytes)}\r\n";
  33. return result;
  34. }
  35. // public long GetGenDateTime(string terminalId)
  36. // {
  37. // string fileName = $"{CompanyId}@{terminalId}";
  38. // TerminalData terminalData = FileHelper.ReadFileInfo<TerminalData>(fileName) ?? new TerminalData(CompanyId, terminalId);
  39. // return terminalData.GenDateTime;
  40. // }
  41. private string GenTerminal(string terminalId, long date)
  42. {
  43. string fileName = $"{CompanyId}@{terminalId}";
  44. TerminalData terminalData = FileHelper.ReadFileInfo<TerminalData>(fileName) ?? new TerminalData(CompanyId, terminalId);
  45. var genDate = terminalData.GenDateTime;
  46. if (genDate != 0 && genDate >= date)
  47. {
  48. return "";
  49. }
  50. var str = $"tid={terminalId}";
  51. var power = new PowerEnergy();
  52. var dp = Helper.GetRan(22000, 3000, 100);
  53. var de = Helper.GetRan(6600, 600, 100);
  54. var pe = terminalData.GetCurMonthTotal_P() == 0 ? 0 : terminalData.GetCurMonthTotal_P() + dp;
  55. var qe = terminalData.GetCurMonthTotal_E() == 0 ? 0 : terminalData.GetCurMonthTotal_E() + de;
  56. var ps = terminalData.Total_P + dp;
  57. var qs = terminalData.Total_E + de;
  58. power.SetEngine(pe, qe, ps, ps);
  59. terminalData.SetMouthTotal_P(pe == 0 ? (decimal)0.01 : pe).SetMouthTotal_E(qe == 0 ? (decimal)0.01 : qe).SetTotal_P(ps).SetTotal_E(qs).SetGenDateTime(date).Save();
  60. str += "&" + power.GetStr();
  61. var hia = new Harmonic("a").SetI(power.ia);
  62. str += "&" + hia.GetStr_I();
  63. var hib = new Harmonic("b").SetI(power.ib);
  64. str += "&" + hib.GetStr_I();
  65. var hic = new Harmonic("c").SetI(power.ic);
  66. str += "&" + hic.GetStr_I();
  67. var hua = new Harmonic("a").SetU(power.ua);
  68. str += "&" + hua.GetStr_U();
  69. var hub = new Harmonic("b").SetU(power.ub);
  70. str += "&" + hub.GetStr_U();
  71. var huc = new Harmonic("c").SetU(power.uc);
  72. str += "&" + huc.GetStr_U();
  73. return str;
  74. }
  75. }
  76. }