Program.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading;
  8. using System.Threading.Tasks;
  9. using WUtilitiesV01.Helper.IOHelper;
  10. using WUtilitiesV01.Helper.ProcessHelpers;
  11. using WUtilitiesV01.WLogs;
  12. using WUtilitiesV01.WLogs.Models.Loggers;
  13. namespace Ips.Cfq.QfCard.Cli
  14. {
  15. class Program
  16. {
  17. static void Main(string[] args)
  18. {
  19. //com1-1 1920 com1-2 1950
  20. WLog.Instance.AddConsoleLogger();
  21. var fileLogger = WLog.Instance.AddFileLogger();
  22. WLog.Instance.LogEmptyLine();
  23. WLog.Instance.Info("接收到命令行参数:" + args.ExtJoin(" "));
  24. try
  25. {
  26. run(args);
  27. }
  28. catch (Exception e)
  29. {
  30. WLog.Instance.Error(e, "");
  31. }
  32. WLog.Instance.Flush();
  33. Thread.Sleep(1000);
  34. }
  35. static void run(string[] args)
  36. {
  37. for (int i = 0; i < args.Length; i += 2)
  38. {
  39. var comStr = args[i];
  40. var comArr = comStr.Split('-');
  41. var com = comArr[0];
  42. var channel = comArr[1];
  43. var freq = double.Parse(args[i + 1]);
  44. setCom(com);
  45. setFreq((freq / 1000000).ToString(), channel);
  46. }
  47. }
  48. static void setCom(string com)
  49. {
  50. var m = SettingService.Instance.GetModel();
  51. //RFCardAPI.exe --card qf3963 --com com9
  52. var cmd = "--card " + m.CardType + " --com {0}";
  53. callRF(string.Format(cmd, com));
  54. }
  55. static void setFreq(string freqMHz, string ch)
  56. {
  57. var m = SettingService.Instance.GetModel();
  58. var gain = m.GetGain(ch);
  59. var cmd = "--part 0 --ch {0} --freq {1} --gain " + gain;
  60. //var cmd = "--part 0 --ch {0} --freq {1}";
  61. var ich = int.Parse(ch) - 1;
  62. callRF(string.Format(cmd, ich, freqMHz));
  63. }
  64. static void callRF(string cmd)
  65. {
  66. WLog.Instance.Info("callRF:" + cmd);
  67. var r = CmdHelper.Run(Path.Combine(DirectoryHelper.GetCurrentDirectory(), "RFCardAPI", "RFCardAPI.exe"), (process, info) =>
  68. {
  69. info.WorkingDirectory = Path.Combine(DirectoryHelper.GetCurrentDirectory(), "RFCardAPI");
  70. }, paramStrs: cmd);
  71. WLog.Instance.Info("执行结果:" + r.Output + r.OutputError);
  72. }
  73. }
  74. }