123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- using CliWrap;
- using CliWrap.Buffered;
- using Ips.Library.Basic;
- using Ips.Library.Entity;
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- namespace Ips.Pto
- {
- public class PtoUtils
- {
- internal static readonly string CliPath = PathUtil.GetAssemblyPath("ipscli", "pto", "pto.exe");
- public static async Task<ExeResult<PosResult>> X3(PstItemOptions arg1, PstItemOptions arg2, int timeout = 60, CancellationToken token = default)
- {
- const string cmd = "loc x3";
- var cli = Cli.Wrap(CliPath)
- .WithArguments(args =>
- {
- args.Add(cmd);
- args.Add("--mseph1").Add(arg1.MainPlaGeo.ToString());
- args.Add("--nsEph1").Add(arg1.AdjaPlaGeo.ToString());
- args.Add("--msant1").Add(arg1.MainRecvGeo.ToString());
- args.Add("--nsant1").Add(arg1.AdjaRecvGeo.ToString());
- args.Add("--dtotar1").Add(arg1.TarCrResult.Dto);
- args.Add("--mseph2").Add(arg2.MainPlaGeo.ToString());
- args.Add("--nseph2").Add(arg2.AdjaPlaGeo.ToString());
- args.Add("--msant2").Add(arg2.MainRecvGeo.ToString());
- args.Add("--nsant2").Add(arg2.AdjaRecvGeo.ToString());
- args.Add("--dtotar2").Add(arg2.TarCrResult.Dto);
- });
- var res = await cli.ExecuteBufferedAsync(token.LinkTimeout(timeout));
- var dwResult = PosResult.FromString(res.StandardOutput);
- return ExeResult.Create(dwResult, cli.Arguments, res.StartTime, res.ExitTime, res.ExitCode, res.StandardError);
- }
- public static async Task<ExeResult<PosResult>> X3Ref(PstItemOptions arg1, PstItemOptions arg2, int timeout = 60, CancellationToken token = default)
- {
- const string cmd = "loc x3ref";
- var cli = Cli.Wrap(CliPath)
- .WithArguments(args =>
- {
- args.Add(cmd);
- args.Add("--mseph1").Add(arg1.MainPlaGeo.ToString());
- args.Add("--nsEph1").Add(arg1.AdjaPlaGeo.ToString());
- args.Add("--dtotar1").Add(arg1.TarCrResult.Dto.ToString());
- args.Add("--refgeod1").Add(arg1.RftGeo.ToString());
- args.Add("--dtoref1").Add(arg1.AdjaRfCrResult.Dto - arg1.MainRfCrResult.Dto);
- args.Add("--mseph2").Add(arg2.MainPlaGeo.ToString());
- args.Add("--nsEph2").Add(arg2.AdjaPlaGeo.ToString());
- args.Add("--dtotar2").Add(arg2.TarCrResult.Dto.ToString());
- args.Add("--refgeod2").Add(arg2.RftGeo.ToString());
- args.Add("--dtoref2").Add(arg2.AdjaRfCrResult.Dto - arg2.MainRfCrResult.Dto);
- if (arg1.MainRecvGeo != null)
- args.Add("--msAnt1").Add(arg1.MainRecvGeo.ToString());
- if (arg1.AdjaRecvGeo != null)
- args.Add("--nsAnt1").Add(arg1.AdjaRecvGeo.ToString());
- if (arg2.MainRecvGeo != null)
- args.Add("--msAnt2").Add(arg2.MainRecvGeo.ToString());
- if (arg2.AdjaRecvGeo != null)
- args.Add("--nsAnt2").Add(arg2.AdjaRecvGeo.ToString());
- });
- var res = await cli.ExecuteBufferedAsync(token.LinkTimeout(timeout));
- var dwResult = PosResult.FromString(res.StandardOutput);
- return ExeResult.Create(dwResult, cli.Arguments, res.StartTime, res.ExitTime, res.ExitCode, res.StandardError);
- }
- public static Task<ExeResult<PosResult>> X4(PstItemOptions arg1, PstItemOptions arg2, PstItemOptions arg3, int timeout = 60, CancellationToken token = default
- )
- {
- PstItemOptions newArg1 = new PstItemOptions();
- newArg1.MainPlaGeo = arg1.AdjaPlaGeo;
- newArg1.MainRecvGeo = arg1.AdjaRecvGeo;
- newArg1.AdjaPlaGeo = arg2.AdjaPlaGeo;
- newArg1.AdjaRecvGeo = arg2.AdjaRecvGeo;
- newArg1.TarCrResult = new CorResult()
- {
- Dto = arg2.TarCrResult.Dto - arg1.TarCrResult.Dto,
- Dfo = arg2.TarCrResult.Dfo - arg1.TarCrResult.Dfo,
- Snr = (arg2.TarCrResult.Snr + arg1.TarCrResult.Snr) / 2
- };
- PstItemOptions newArg2 = new PstItemOptions();
- newArg2.MainPlaGeo = arg1.AdjaPlaGeo;
- newArg2.MainRecvGeo = arg1.AdjaRecvGeo;
- newArg2.AdjaPlaGeo = arg3.AdjaPlaGeo;
- newArg2.AdjaRecvGeo = arg3.AdjaRecvGeo;
- newArg2.TarCrResult = new CorResult()
- {
- Dto = arg3.TarCrResult.Dto - arg1.TarCrResult.Dto,
- Dfo = arg3.TarCrResult.Dfo - arg1.TarCrResult.Dfo,
- Snr = (arg3.TarCrResult.Snr + arg1.TarCrResult.Snr) / 2
- };
- return X3(newArg1, newArg2, timeout, token);
- }
- public static Task<ExeResult<PosResult>> X4Ref(PstItemOptions arg1, PstItemOptions arg2, PstItemOptions arg3, int timeout = 60, CancellationToken token = default
- )
- {
- PstItemOptions newArg1 = new PstItemOptions();
- newArg1.MainPlaGeo = arg1.AdjaPlaGeo;
- newArg1.MainRecvGeo = arg1.AdjaRecvGeo;
- newArg1.AdjaPlaGeo = arg2.AdjaPlaGeo;
- newArg1.AdjaRecvGeo = arg2.AdjaRecvGeo;
- newArg1.TarCrResult = new CorResult()
- {
- Dto = arg2.TarCrResult.Dto - arg1.TarCrResult.Dto,
- Dfo = arg2.TarCrResult.Dfo - arg1.TarCrResult.Dfo,
- Snr = (arg2.TarCrResult.Snr + arg1.TarCrResult.Snr) / 2
- };
- newArg1.RftGeo = arg1.RftGeo;
- newArg1.MainRfCrResult = arg1.AdjaRfCrResult;
- newArg1.AdjaRfCrResult = arg2.AdjaRfCrResult;
- PstItemOptions newArg2 = new PstItemOptions();
- newArg2.MainPlaGeo = arg1.AdjaPlaGeo;
- newArg2.MainRecvGeo = arg1.AdjaRecvGeo;
- newArg2.AdjaPlaGeo = arg3.AdjaPlaGeo;
- newArg2.AdjaRecvGeo = arg3.AdjaRecvGeo;
- newArg2.TarCrResult = new CorResult()
- {
- Dto = arg3.TarCrResult.Dto - arg1.TarCrResult.Dto,
- Dfo = arg3.TarCrResult.Dfo - arg1.TarCrResult.Dfo,
- Snr = (arg3.TarCrResult.Snr + arg1.TarCrResult.Snr) / 2
- };
- newArg2.RftGeo = arg2.RftGeo;
- newArg1.MainRfCrResult = arg1.AdjaRfCrResult;
- newArg1.AdjaRfCrResult = arg3.AdjaRfCrResult;
- return X3Ref(newArg1, newArg2, timeout, token);
- }
- public static async Task<ExeResult<PosResult>> X1D2(PstItemOptions xdArg1, PstItemOptions xdArg2, GeoZone zone = null, int timeout = 60, CancellationToken token = default)
- {
- const string cmd = "loc x1d2";
- var cli = Cli.Wrap(CliPath)
- .WithArguments(args =>
- {
- args.Add(cmd);
- args.Add("--mseph").Add(xdArg1.MainPlaGeo.ToString());
- args.Add("--msant1").Add(xdArg1.MainRecvGeo.ToString());
- args.Add("--nsant1").Add(xdArg1.AdjaRecvGeo.ToString());
- args.Add("--dtotar1").Add(xdArg1.TarCrResult.Dto.ToString());
- args.Add("--refgeod1").Add(xdArg1.RftGeo.ToString());
- args.Add("--msdtoref1").Add(xdArg1.MainRfCrResult.Dto.ToString());
- args.Add("--msant2").Add(xdArg2.MainRecvGeo.ToString());
- args.Add("--nsant2").Add(xdArg2.AdjaRecvGeo.ToString());
- args.Add("--dtotar2").Add(xdArg2.TarCrResult.Dto.ToString());
- args.Add("--refgeod2").Add(xdArg2.RftGeo.ToString());
- args.Add("--msdtoref2").Add(xdArg2.MainRfCrResult.Dto.ToString());
- if (zone != null)
- args.Add("-z").Add(zone.ToString());
- });
- var res = await cli.ExecuteBufferedAsync(token.LinkTimeout(timeout));
- var dwResult = PosResult.FromString(res.StandardOutput);
- return ExeResult.Create(dwResult, cli.Arguments, res.StartTime, res.ExitTime, res.ExitCode, res.StandardError);
- }
- public static Task<ExeResult<PosResult>> X1D2(PstItemOptions arg1, PstItemOptions arg2, double range, int timeout = 60)
- {
- GeoZone zone = new GeoZone()
- {
- LonMin = Math.Min(arg1.AdjaRecvGeo.Lon - range, arg2.AdjaRecvGeo.Lon - range),
- LonMax = Math.Min(arg1.AdjaRecvGeo.Lon + range, arg2.AdjaRecvGeo.Lon + range),
- LatMin = Math.Min(arg1.AdjaRecvGeo.Lat - range, arg2.AdjaRecvGeo.Lat - range),
- LatMax = Math.Min(arg1.AdjaRecvGeo.Lat + range, arg2.AdjaRecvGeo.Lat + range)
- };
- return X1D2(arg1, arg2, zone, timeout);
- }
- public static async Task<ExeResult<PosResult>> X2D1(PstItemOptions sxArg, PstItemOptions xdArg, GeoZone zone = null, int timeout = 60, CancellationToken token = default)
- {
- const string cmd = "loc x2d1";
- var cli = Cli.Wrap(CliPath)
- .WithArguments(args =>
- {
- args.Add(cmd);
- args.Add("--mseph").Add(sxArg.MainPlaGeo.ToString());
- args.Add("--nseph").Add(sxArg.AdjaPlaGeo.ToString());
- args.Add("--msant1").Add(sxArg.MainRecvGeo.ToString());
- args.Add("--nsant1").Add(sxArg.AdjaRecvGeo.ToString());
- args.Add("--dtotar1").Add(sxArg.TarCrResult.Dto.ToString());
- args.Add("--msant2").Add(xdArg.MainRecvGeo.ToString());
- args.Add("--nsant2").Add(xdArg.AdjaRecvGeo.ToString());
- args.Add("--dtotar2").Add(xdArg.TarCrResult.Dto.ToString());
- args.Add("--refgeod").Add(sxArg.RftGeo.ToString());
- args.Add("--msdtoref1").Add(sxArg.MainRfCrResult.Dto.ToString());
- args.Add("--nsdtoref").Add(sxArg.AdjaRfCrResult.Dto.ToString());
- args.Add("--msdtoref2").Add(xdArg.MainRfCrResult.Dto.ToString());
- if (zone != null)
- args.Add("-z").Add(zone.ToString());
- });
- var res = await cli.ExecuteBufferedAsync(token.LinkTimeout(timeout));
- var dwResult = PosResult.FromString(res.StandardOutput);
- return ExeResult.Create(dwResult, cli.Arguments, res.StartTime, res.ExitTime, res.ExitCode, res.StandardError);
- }
- public static Task<ExeResult<PosResult>> X2D1(PstItemOptions sxArg, PstItemOptions xdArg, double range, int timeout = 60)
- {
- GeoZone zone = new GeoZone()
- {
- LonMin = xdArg.AdjaRecvGeo.Lon - range,
- LonMax = xdArg.AdjaRecvGeo.Lon + range,
- LatMin = xdArg.AdjaRecvGeo.Lat - range,
- LatMax = xdArg.AdjaRecvGeo.Lat + range
- };
- return X2D1(sxArg, xdArg, zone, timeout);
- }
- }
- }
|