GenData.cs 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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(string? date = null)
  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. str += GenTerminal(tid) + "$";
  24. }
  25. str = str.TrimEnd('$');
  26. Console.WriteLine($"\t {str}");
  27. byte[] bytes = StrHexHelper.HexStrToArray(StrHexHelper.StrToHexStr(str, Encoding.Default));
  28. var result = $"##{str.Length:D6}{str}{StrHexHelper.do_CRC(bytes)}\r\n";
  29. return result;
  30. }
  31. private string GenTerminal(string terminalId)
  32. {
  33. string fileName = $"{CompanyId}@{terminalId}";
  34. TerminalData terminalData = FileHelper.ReadFileInfo<TerminalData>(fileName) ?? new TerminalData(CompanyId, terminalId);
  35. var str = $"tid={terminalId}";
  36. var power = new PowerEnergy();
  37. var dp = Helper.GetRan(22000, 3000, 100);
  38. var de = Helper.GetRan(6600, 600, 100);
  39. var pe = terminalData.GetCurMonthTotal_P() == 0 ? 0 : terminalData.GetCurMonthTotal_P() + dp;
  40. var qe = terminalData.GetCurMonthTotal_E() == 0 ? 0 : terminalData.GetCurMonthTotal_E() + de;
  41. var ps = terminalData.Total_P + dp;
  42. var qs = terminalData.Total_E + de;
  43. power.SetEngine(pe, qe, ps, ps);
  44. terminalData.SetMouthTotal_P(pe == 0 ? (decimal)0.01 : pe).SetMouthTotal_E(qe == 0 ? (decimal)0.01 : qe).SetTotal_P(ps).SetTotal_E(qs).Save();
  45. str += "&" + power.GetStr();
  46. var hia = new Harmonic("a").SetI(power.ia);
  47. str += "&" + hia.GetStr_I();
  48. var hib = new Harmonic("b").SetI(power.ib);
  49. str += "&" + hib.GetStr_I();
  50. var hic = new Harmonic("c").SetI(power.ic);
  51. str += "&" + hic.GetStr_I();
  52. var hua = new Harmonic("a").SetU(power.ua);
  53. str += "&" + hua.GetStr_U();
  54. var hub = new Harmonic("b").SetU(power.ub);
  55. str += "&" + hub.GetStr_U();
  56. var huc = new Harmonic("c").SetU(power.uc);
  57. str += "&" + huc.GetStr_U();
  58. return str;
  59. }
  60. }
  61. }