12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- using CliWrap;
- using CliWrap.Buffered;
- using Ips.Library.Basic;
- using Ips.Library.Entity;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Ips.EphAlgorithm
- {
- public static class EphTleUtil
- {
- static readonly string CliFile = Path.Combine(IpsPath.CliRootDir, "tle", "tle.exe");
- public static async Task<ExeResult<EphResult>> Get(string line1, string line2, DateTime time, CancellationToken token = default)
- {
- if (time == DateTime.MinValue)
- {
- throw new Exception("双行根推算星历异常,时间未指定");
- }
- var cli = Cli.Wrap(CliFile)
- .WithArguments(builder =>
- {
- builder.Add("calc");
- builder.Add(line1, true);
- builder.Add(line2, true);
- builder.Add(time.ToString("yyyyMMddHHmmss"), false);
- });
- var res = await cli.ExecuteBufferedAsync(token);
- EphResult result = EphResult.FromString(res.StandardOutput);
- result.Time = time;
- return ExeResult.Create(result, cli.Arguments, res.StartTime, res.ExitTime, res.ExitCode, res.StandardError);
- }
- public static async Task<ExeResult<EphResult[]>> GetRange(string line1, string line2, DateTime time, int period, int times, CancellationToken token = default)
- {
- if (time == DateTime.MinValue)
- {
- throw new Exception("双行根推算星历异常,时间未指定");
- }
- var etime = time.AddSeconds(period * times);
- var cli = Cli.Wrap(CliFile)
- .WithArguments(builder =>
- {
- //builder.Add("-a", false).Add(line1, true);
- //builder.Add("-b", false).Add(line2, true);
- //builder.Add("-t", false).Add(DateTimeUtil.To1970s(time), false);
- //builder.Add("-p").Add(period);
- //builder.Add("-c").Add(times);
- builder.Add("range");
- builder.Add(line1, true);
- builder.Add(line2, true);
- builder.Add(time.ToString("yyyyMMddHHmmss"), false);
- builder.Add(etime.ToString("yyyyMMddHHmmss"), false);
- builder.Add("-t").Add(period.ToString());
- });
- var res = await cli.ExecuteBufferedAsync(token);
- var ephResults = EphResult.FromListString(res.StandardOutput);
- return ExeResult.Create(ephResults, cli.Arguments, res.StartTime, res.ExitTime, res.ExitCode, res.StandardError);
- }
- }
- }
|