123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- using CliWrap.Buffered;
- using Ips.Library.Basic;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Ips.DevAlgorithm
- {
- public static class CfqUtil
- {
- public static bool SetFreq(string freqAddr, double[] freqs, out string errMsg)
- {
- errMsg = "";
- using (SerialPortDevice spd = new SerialPortDevice(freqAddr))
- {
- if (!spd.Open())
- {
- errMsg = "打开串口失败!";
- return false;
- }
- var bpq = new CH4BPQ(spd);
- return bpq.SetFreqs(freqs, ref errMsg);
- }
- }
- public static bool SetFreqByCli(string cliPath, IEnumerable<SetCfqItem> setCfqList, out string errMsg, CancellationToken token = default)
- {
- errMsg = "";
- var cmd = CliWrap.Cli.Wrap(cliPath)
- .WithArguments(args =>
- {
- foreach (var item in setCfqList)
- {
- args.Add(item.CfqAddr, true).Add(Math.Abs(item.FreqPoint));
- }
- });
- var res = cmd.ExecuteBufferedAsync(token.LinkTimeout(20)).GetAwaiter().GetResult();
- if (res.StandardError.IsNotNullOrWhitespace())
- {
- errMsg = res.StandardError;
- return false;
- }
- return true;
- }
- }
- }
|