namespace Ips.Cfq.SetFreqBySerialPort.Cli { internal class Program { static void Main(string[] args) { if (args.Length == 0) return; List setFreqItems = new List(); for (int i = 0; i < args.Length; i += 2) { string chAddr = args[i]; var addrItems = chAddr.Split('-'); string addr = addrItems[0]; int.TryParse(addrItems[1], out int chNum); long.TryParse(args[i + 1], out long freqPoint); setFreqItems.Add(new SetFreqItem(addr, chNum, freqPoint)); } if (setFreqItems.Count == 0) return; var devList = setFreqItems.GroupBy(m => m.Addr); foreach (var devItem in devList) { string errMsg = ""; using (SerialPortDevice spd = new SerialPortDevice(devItem.Key)) { if (!spd.Open()) { errMsg = "打开串口失败!"; } else { var bpq = new CH4BPQ(spd); bpq.SetFreqs(devItem.OrderBy(m => m.ChNum).Select(m => m.FreqPoint * 1e-6).ToArray(), ref errMsg); } } if (!string.IsNullOrWhiteSpace(errMsg)) { Console.Error.WriteLine($"设置变频器【{devItem.Key}】失败,【{errMsg}】"); } } } } }