123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Threading;
- using System.Threading.Channels;
- using System.Threading.Tasks;
- using CliWrap;
- using CliWrap.Buffered;
- using Ips.Library.Basic;
- using Ips.Library.CliLib;
- using Ips.Library.Entity;
- namespace Ips.Dmc
- {
- public static class DmcUtils
- {
- static readonly string CliPath = PathUtil.GetAssemblyPath("ipscli", "dmc", "dmc.exe");
- /// <summary>
- /// DAMA检测
- /// </summary>
- public static async Task<ExeResult<Timeslot[]>> Dama(string filename, DetDMOptions arg, int timeout = 60, CancellationToken token = default)
- {
- var cli = Cli.Wrap(CliPath)
- .WithArguments(args =>
- {
- args.Add("dama");
- args.Add(filename);
- args.IpsAdd("fs", arg.Fs);
- args.IpsAdd("channel", arg.Channel);
- args.IpsAdd("sparse", arg.Sparese);
- args.IpsAdd("ccow", arg.Ccow);
- args.IpsAdd("full", arg.Full);
- });
- var res = await cli.ExecuteBufferedAsync(token.LinkTimeout(timeout));
- var result = Timeslot.FromListString(res.StandardOutput);
- return ExeResult.Create(result, cli.Arguments, res.StartTime, res.ExitTime, res.ExitCode, res.StandardError);
- }
- /// <summary>
- /// DET检测
- /// </summary>
- public static async Task<ExeResult<Timeslot[]>> Det(string filename, DetNotDMOptions arg, int timeout = 60, CancellationToken token = default)
- {
- var cli = Cli.Wrap(CliPath)
- .WithArguments(args =>
- {
- args.Add("det");
- args.Add(filename);
- args.Add("-w").Add(arg.BandWidth);
- });
- var res = await cli.ExecuteBufferedAsync(token.LinkTimeout(timeout));
- var result = Timeslot.FromListString(res.StandardOutput);
- return ExeResult.Create(result, cli.Arguments, res.StartTime, res.ExitTime, res.ExitCode, res.StandardError);
- }
- }
- }
|