yg 3 mesiacov pred
rodič
commit
bf0c2a27a6

+ 1 - 7
AdService/AdService.csproj

@@ -5,7 +5,7 @@
 	<ImplicitUsings>enable</ImplicitUsings>
 	<Nullable>disable</Nullable>
 	<GenerateDocumentationFile>True</GenerateDocumentationFile>
-	<RootNamespace>AdService</RootNamespace>
+	<RootNamespace>AdService.Controller</RootNamespace>
   </PropertyGroup>
 
   <ItemGroup>
@@ -17,10 +17,4 @@
     <ProjectReference Include="..\DW5S.WebApi\05.DW5S.WebApi.csproj" />
   </ItemGroup>
 
-  <ItemGroup>
-    <None Update="test.dat">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
-  </ItemGroup>
-
 </Project>

+ 4 - 37
AdService/Controllers/AdController.cs

@@ -1,4 +1,5 @@
-using AdService.Service;
+using DW5S.WebApi;
+using Microsoft.AspNetCore.Mvc;
 
 namespace AdService.Controllers
 {
@@ -9,50 +10,16 @@ namespace AdService.Controllers
     public class AdController : BaseController
     {
 
-        ILogger logger { get; set; }
-
-        private AdcService AdcService { get; set; }
 
         /// <summary>
         /// 开始采集
         /// </summary>
         /// <returns></returns>
         [HttpPost]
-        public async Task<AjaxResult<AdcResultDto>> StartAd(List<AdCard> dtos)
+        public string StartAD()
         {
-            try
-            {
-                var res = await AdcService.Instance.StartTestAsync(dtos);
-
-                return Success(res);
-
-            }
-            catch(Exception ex)
-            {
-                return Error<AdcResultDto>("开始采集异常:"+ex.Message);
-            }
+            return "aaaaaaaaaaa";
         }
 
-
-        /// <summary>
-        /// 停止采集
-        /// </summary>
-        [HttpPost]
-        public async Task<AjaxResult> StopAdc()
-        {
-            var res = await Task.Run(() =>
-            {
-                try
-                {
-                    AdcService.Instance.StopAd();
-                    return Success();
-                }
-                catch (Exception ex)
-                {
-                    return Error("停止采集异常:"+ex.Message);
-                }
-            });
-            return res;
-        }
     }
 }

+ 6 - 5
AdService/Controllers/AdFileController.cs

@@ -1,4 +1,6 @@
-
+using DW5S.WebApi;
+using Microsoft.AspNetCore.Mvc;
+
 namespace AdService.Controller.Controllers
 {
 
@@ -8,13 +10,12 @@ namespace AdService.Controller.Controllers
     public class AdFileController : BaseController
     {
         /// <summary>
-        /// 下载采集文件
+        /// 下载采集文件
         /// </summary>
         /// <param name="fileName">采集返回的名称</param>
-        /// <param name="path">采集返回的文件路径</param>
         /// <returns></returns>
         [HttpGet]
-        public IActionResult Download(string path,string fileName)
+        public IActionResult Download(string fileName)
         {
             if (string.IsNullOrWhiteSpace(fileName))
             {
@@ -22,7 +23,7 @@ namespace AdService.Controller.Controllers
             }
             if (fileName.StartsWith("/"))
                 fileName = fileName.Substring(1);
-            string localFile = Path.Combine(path, fileName);
+            string localFile = Path.Combine("D:\\work", fileName);
             try
             {
                 if (!System.IO.File.Exists(localFile))

+ 30 - 3
AdService/Program.cs

@@ -1,4 +1,31 @@
-WebApiHelper.Start(_localPort: 7011,
+var builder = WebApplication.CreateBuilder(args);
+
+// Add services to the container.
+
+builder.Services.AddControllers();
+// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
+builder.Services.AddEndpointsApiExplorer();
+builder.Services.AddSwaggerGen();
+
+var app = builder.Build();
+
+// Configure the HTTP request pipeline.
+if (app.Environment.IsDevelopment())
+{
+    app.UseSwagger();
+    app.UseSwaggerUI();
+}
+
+app.UseHttpsRedirection();
+
+app.UseAuthorization();
+
+app.MapControllers();
+
+app.Run();
+
+
+/*WebApiHelper.Start(_localPort: 7011,
                dtoXmlName: "02.DW5S.DTO.xml",
-               controllerXmlName: "AdService.xml",
-               dllKey: "DW5S");
+               controllerXmlName: "AdService.Controller.xml",
+               dllKey: "DW5S");*/

+ 18 - 28
AdService/Service/AdReportService.cs

@@ -1,4 +1,5 @@
-
+using DW5S.DTO;
+
 namespace AdService.Service
 {
 
@@ -7,40 +8,29 @@ namespace AdService.Service
     /// </summary>
     public class AdReportService : BackgroundService
     {
-        ILogger logger { get; set; }
-
         /// <summary>
-        /// 采集服务上报
+        /// 服务上报服务
         /// </summary>
         protected override async Task ExecuteAsync(CancellationToken stoppingToken)
         {
-            try
+            
+            await Task.Run(async () =>
             {
-                await Task.Delay(5000, stoppingToken);//延迟一会儿让webbapi先启动
-                stoppingToken.ThrowIfCancellationRequested();
-                await Task.Run(async () =>
+                while (!stoppingToken.IsCancellationRequested)
                 {
-                    while (!stoppingToken.IsCancellationRequested)
-                    {                 
-                        SvrStateReportDto dto = new SvrStateReportDto()
-                        {
-                            DD = TimeSpan.FromSeconds(1),
-                            SvrType = EnumSvrType.AdCgSvr,
-                            SvrID = "AdService",
-                            BaseHttpAddr = "",
-                            SwaggerAddr = "",
-                            ReportType = 0,
-                        };
-                        //var res = await HttpHelper.PostRequestAsync<SvrStateReportDto>("采集服务上报地址", dto);
-                         logger.LogInformation("测试时间轮询3s");
-                        await Task.Delay(3 * 1000, stoppingToken);                   
-                    }
-                }, stoppingToken);
+                    SvrStateReportDto dto = new SvrStateReportDto()
+                    {
+                        DD = TimeSpan.FromSeconds(1),
+                        SvrType = EnumSvrType.AdCgSvr,
+                        SvrID = "AdService",
+                        BaseHttpAddr = "",
+                        SwaggerAddr="",
+                        ReportType = 0,
+                    };
+                    // var res = await HttpHelper.PostRequestAsync<CpuCgResDto>("" + "SvrReport/Report", dto);
+                    await Task.Delay(3 * 1000, stoppingToken);
                 }
-            catch (Exception ex)
-            {
-                //logger.LogError("采集服务状态上报异常:" + ex.Message);
-            }
+            }, stoppingToken);
         }
 
     }

+ 9 - 0
AdService/Service/AdService.cs

@@ -0,0 +1,9 @@
+namespace AdService.Service
+{
+    /// <summary>
+    /// 采集服务
+    /// </summary>
+    public class AdService
+    {
+    }
+}

+ 5 - 153
AdService/Service/CearDirService.cs

@@ -1,5 +1,4 @@
-using AdService.Controller.Dto;
-using Newtonsoft.Json;
+using DW5S.DTO;
 
 namespace AdService.Service
 {
@@ -15,161 +14,14 @@ namespace AdService.Service
         protected override async Task ExecuteAsync(CancellationToken stoppingToken)
         {
 
-            await Task.Delay(5000, stoppingToken);//延迟一会儿让webbapi先启动
-            //IpsLogger.Info($"启动采集专用目录数据清理功能...");
-           /* await Task.Run(async () =>
+            await Task.Run(async () =>
             {
-                #region 读取清理目录配置信息
-                StreamReader sr = new StreamReader(Directory.GetCurrentDirectory()+"appsettings.json");
-                string json = sr.ReadToEnd();
-                // 解析 JSON 字符串
-                var adConfig = JsonConvert.DeserializeObject<AdConfig>(json);
-                string dataClearStr = adConfig.ClearDir;
-                var dataClears = dataClearStr.Split(new string[] { ";", ";" }, StringSplitOptions.RemoveEmptyEntries)
-                .Select(p => p.ToLower()).ToList();
-                if (!dataClears.Contains(adConfig.DataDir))
-                    dataClears.Add(adConfig.DataDir);
-                #endregion
-
-                #region 检测有效的清理目录并读取清理条件
-                List<string> list = new List<string>();
-                foreach (var item in dataClears)
-                {
-                    var root = Path.GetPathRoot(item);
-                    DriveInfo drive = new DriveInfo(root);
-                    if (!drive.IsReady)
-                    {
-                        continue;
-                    }
-                    if (Directory.Exists(item))
-                    {
-                        list.Add(item);
-                    }
-                }
-                if (!list.Any())
-                {
-                    //IpsLogger.Warn($"配置文件中的数据清理目录无效");
-                    return;
-                }
-                float maxPercent = adConfig.ClearCondition;
-                var clearHours = adConfig.ClearHours;
-                if (clearHours < 1)
-                {
-                    clearHours = 1;
-                }
-                //IpsLogger.Info($"已启动目录[{string.Join(";", list)}]自动清理,清理条件=可用空间不足{(int)(maxPercent * 100)}%");
-                #endregion
-
-
-                //缓存每个目录上次清理的文件最大的一个写入时间
-                var prevClearTime = new Dictionary<string, DateTime>();
-                foreach (var item in list)
-                {
-                    prevClearTime[item] = DateTime.MinValue;
- 
-                }
                 while (!stoppingToken.IsCancellationRequested)
                 {
-                   // IpsLogger.Info($"开始数据清理...");
-
-                    #region 从上次开始每个目录清理一定的数据(ClearHours)
-                    int delFileCount = 0;
-                    try
-                    {
-                        var driveFolders = list.GroupBy(m => Path.GetPathRoot(m).ToUpper());
-                        foreach (var driveFolder in driveFolders)//like D:\ E:\
-                        {
-                            if (stoppingToken.IsCancellationRequested) break;
-                            DriveInfo drive = new DriveInfo(driveFolder.Key);
-
-                            while (drive.TotalFreeSpace / (drive.TotalSize * 1.0f) <= maxPercent)
-                            {
-                                foreach (var item in driveFolder)//like D:\data E:\data
-                                {
-                                    //IpsLogger.Info($"正在清理[{item}]中的数据...");
-                                    var fsList = Directory.EnumerateFiles(item, "*", SearchOption.AllDirectories).Select(p => new FileInfo(p));
-                                    if (!fsList.Any())
-                                    {
-                                     // IpsLogger.Warn($"{drive.ToString().Substring(0, 1)}盘空间不足,但目录{item}没有数据,跳过此目录");
-                                    }
-                                    else
-                                    {
-                                        if (prevClearTime[item] == DateTime.MinValue)
-                                            prevClearTime[item] = fsList.Min(p => p.LastWriteTime);
-                                        var maxTime = prevClearTime[item].AddHours(clearHours);
-                                        if (maxTime <= prevClearTime[item])
-                                        {
-                                            //clearHours配置为0或负数时一次删所有文件
-                                            maxTime = DateTime.MaxValue;
-                                        }
-                                        //每次清理从上次清理结束时间开始,防止有些删不掉的文件阻止删除文件
-                                        var clearFiles = fsList.Where(m => m.LastWriteTime >= prevClearTime[item] && m.LastWriteTime <= maxTime).OrderBy(m => m.LastWriteTime);
-                                        foreach (var fsItem in clearFiles)
-                                        {
-                                            try
-                                            {
-                                                if (stoppingToken.IsCancellationRequested) break;
-                                                fsItem.Delete();
-                                                delFileCount++;
-                                            }
-                                            catch (Exception ex)
-                                            {
-                                               // IpsLogger.Error($"删除文件{fsItem.Name}出错", ex);
-                                            }
-                                        }
-                                        prevClearTime[item] = maxTime;
-
-                                    }
-                                }
-                            }
-                        }
-                    }
-                    catch (Exception ex)
-                    {
-                        //IpsLogger.Error($"清理数据异常", ex);
-                    }
-                    #endregion
-
-                    #region 清理空目录
-                    int delDirCount = 0;
-                    foreach (var name in list)
-                    {
-                        string clearDir = Path.Combine(AppContext.BaseDirectory, name);
-                        try
-                        {
-                            var dirs = Directory.EnumerateDirectories(clearDir, "*", SearchOption.AllDirectories);
-                            foreach (var item in dirs)
-                            {
-                                DirectoryInfo dir = new DirectoryInfo(item);
-                                if (dir.EnumerateFiles().Any()) continue;
-                                //删除5分钟以前创建的空目录
-                                if ((DateTime.Now - dir.CreationTime).TotalMinutes > 5)
-                                {
-
-                                    try
-                                    {
-                                        dir.Delete();
-                                        delDirCount++;
-                                    }
-                                    catch (Exception ex)
-                                    {
-                                        //IpsLogger.Error($"删除空目录{dir.Name}异常", ex);
-                                    }
-                                }
-                            }
-                        }
-                        catch (Exception ex)
-                        {
-                            //IpsLogger.Error($"删除{name}目录中的空目录出错", ex);
-                        }
-                    }
-                    #endregion
-
-                   // IpsLogger.Info($"本次清理数据结束,删除{delFileCount}个文件,删除{delDirCount}个空目录");
-
-                    await Task.Delay(5 * 60 * 1000, stoppingToken);
+                   
+                    await Task.Delay(3 * 1000, stoppingToken);
                 }
-            }, stoppingToken);*/
+            }, stoppingToken);
         }
 
 

+ 7 - 14
AdService/appsettings.json

@@ -1,16 +1,9 @@
 {
-	//数据存储目录,当外部未指定目录时使用此目录
-	"DataDir": "D:\\data",
-
-	//数据清理目录(多个目录用分号隔开,数据存储目录会自动加入清理计划,不用配置)
-	"ClearDir": "D:\\data1",
-
-	//磁盘可用空间百分比不足此数时开始清理
-	"ClearCondition": 0.2,
-
-	//每次达到清理条件时最多删除{ClearHours}小时的数据,为0时每次删除所有文件
-	"ClearHours": 1,
-
-	//采集服务上报地址
-	"AdcReportAddr": ""
+  "Logging": {
+    "LogLevel": {
+      "Default": "Information",
+      "Microsoft.AspNetCore": "Warning"
+    }
+  },
+  "AllowedHosts": "*"
 }

+ 1 - 10
DW5S.App/UserControl/CtrlSvrs.cs

@@ -50,16 +50,7 @@ namespace DW5S.App.UserControl
                 gridView1.Columns[nameof(SvrViewModel.SwaggerAddr)].ColumnEdit = linkEdit;
                 gridView1.Columns[nameof(SvrViewModel.SwaggerAddr)].OptionsColumn.AllowEdit = true;
             }
-            List<SvrViewModel> svrList = new List<SvrViewModel>();
-            SvrViewModel svr = new SvrViewModel()
-            {
-                SvrType = EnumSvrType.AdCgSvr,
-                SvrID = "10001",
-                ReportTime = DateTime.Now,
-            };
-            svrList.Add(svr);
-            //this.list.AddRange(ServerContext.Instance.GetAll().To<List<SvrViewModel>>());
-            this.list.AddRange(svrList);
+            this.list.AddRange(ServerContext.Instance.GetAll().To<List<SvrViewModel>>());
             gridView1.RefreshData();
             Messenger.Defalut.Sub<List<SvrViewModel>>("服务集合改变", RefreshSvr);
             var unitOfWork = IocContainer.UnitOfWork;

+ 10 - 1
DW5S.Entity/ADEntity/AdCard.cs

@@ -1,4 +1,13 @@
-namespace DW5S.Entity
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Channels;
+using System.Threading.Tasks;
+
+namespace DW5S.Entity
 {
     public class AdCard : BaseEntity<int>
     {

+ 5 - 0
DW5S.Entity/ADEntity/AdChannel.cs

@@ -1,6 +1,11 @@
 using System;
 using System.Collections.Generic;
 using System.ComponentModel.DataAnnotations;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
 namespace DW5S.Entity
 {
     public class AdChannel : BaseEntity<int>

+ 5 - 5
DW5S.ViewModel/AdCardViewModel.cs

@@ -40,10 +40,10 @@ namespace DW5S.ViewModel
         public double DdcFreq { get; set; }
 
        
-        [Display(Name = "抽取倍数")]
+        [Display(Name = "抽取倍数)")]
         public int Mutil { get; set; }
        
-        [Display(Name = "存储路径")]
+        [Display(Name = "存储路径)")]
         public string StorePath { get; set; }
 
        
@@ -51,16 +51,16 @@ namespace DW5S.ViewModel
         [Display(Name = "采集启用状态)", AutoGenerateField =false)]
         public bool Enable { get; set; }
 
-        [Display(Name = "采集启用状态")]
+        [Display(Name = "采集启用状态)")]
         public string EnableStr => Enable ? "启用" : "禁用";
 
         /// <summary>
         /// 站点服务状态
         /// </summary>
-        [Display(Name = "采集服务状态")]
+        [Display(Name = "采集服务状态)")]
         public EnumServerStatus ServerStatus { get; set; }
 
-        [Display(Name = "采集通道")]
+        [Display(Name = "采集通道)")]
         public List<AdChannelViewModel> AdChannels { get; set; } = new List<AdChannelViewModel>();
     }
 }

+ 3 - 2
DW5S.ViewModel/SigViewModel.cs

@@ -28,7 +28,8 @@ namespace DW5S.ViewModel
         [Display(Name = "门限(dB)")]
         public double Snr { get; set; }
 
-        [Display(Name = "采样率(Hz)")]
+
+        [Display(Name = "带宽(Hz)")]
         public int Band { get; set; }
 
         [Display(Name = "是否是固定站", AutoGenerateField = false)]
@@ -36,7 +37,7 @@ namespace DW5S.ViewModel
 
         public override string ToString()
         {
-            return $"上行{FreqUpDis}MHz 下行{FreqDownDis}MHz 采样率{Band}Hz";
+            return $"上行{FreqUpDis}MHz 下行{FreqDownDis}MHz 带宽{Band}Hz";
         }
     }
 }

+ 2 - 3
DW5S.WebApi/WebApiHelper.cs

@@ -45,7 +45,7 @@ namespace DW5S.WebApi
         /// <param name="staticDir">要启用的静态目录预览及文件下载的目录(已经包含upload、download、logs三个目录)</param>
         /// <param name="dllKey">使用DI注入时程序集标识</param>
         /// <exception cref="Exception"></exception>
-        public static void Start(int _localPort, string dtoXmlName = null, string[] staticDir = null, string controllerXmlName = null, string dllKey = "DW5S")
+        public  static void Start(int _localPort, string dtoXmlName = null, string[] staticDir = null, string controllerXmlName = null, string dllKey = "DW5S")
         {
             BaseController.EnsureAssemblyLoaded();
             _cts = new CancellationTokenSource();
@@ -305,8 +305,7 @@ namespace DW5S.WebApi
              app.RunAsync(_cts.Token);
             //app.Run();
         }
-       
-       
+
         /// <summary>
         /// 结束WebAPI
         /// </summary>