style: 重新调整一下后端的结构,并通过csharpier格式化
This commit is contained in:
parent
5ba71d220f
commit
7ffb15c722
|
@ -1,8 +1,5 @@
|
||||||
using System.Net;
|
|
||||||
using System.Net.Sockets;
|
|
||||||
using Microsoft.AspNetCore.Http.Features;
|
using Microsoft.AspNetCore.Http.Features;
|
||||||
using Microsoft.Extensions.FileProviders;
|
using Microsoft.Extensions.FileProviders;
|
||||||
using Microsoft.Extensions.Hosting;
|
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using NLog;
|
using NLog;
|
||||||
using NLog.Web;
|
using NLog.Web;
|
||||||
|
@ -38,7 +35,9 @@ try
|
||||||
// Configure Newtonsoft.Json options here
|
// Configure Newtonsoft.Json options here
|
||||||
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
|
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
|
||||||
options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
|
options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
|
||||||
}); // Add CORS policy
|
});
|
||||||
|
|
||||||
|
// Add CORS policy
|
||||||
if (builder.Environment.IsDevelopment())
|
if (builder.Environment.IsDevelopment())
|
||||||
{
|
{
|
||||||
builder.Services.AddCors(options =>
|
builder.Services.AddCors(options =>
|
||||||
|
@ -56,7 +55,9 @@ try
|
||||||
.AllowAnyOrigin()
|
.AllowAnyOrigin()
|
||||||
.AllowAnyHeader()
|
.AllowAnyHeader()
|
||||||
);
|
);
|
||||||
}); // Add Swagger
|
});
|
||||||
|
|
||||||
|
// Add Swagger
|
||||||
builder.Services.AddOpenApiDocument(options =>
|
builder.Services.AddOpenApiDocument(options =>
|
||||||
{
|
{
|
||||||
options.PostProcess = document =>
|
options.PostProcess = document =>
|
||||||
|
@ -78,8 +79,10 @@ try
|
||||||
// Url = "https://example.com/license"
|
// Url = "https://example.com/license"
|
||||||
// }
|
// }
|
||||||
};
|
};
|
||||||
}; });
|
};
|
||||||
// 添加 HTTP 视频流服务 - 使用简化的类型引用
|
});
|
||||||
|
|
||||||
|
// 添加 HTTP 视频流服务
|
||||||
builder.Services.AddSingleton<HttpVideoStreamService>();
|
builder.Services.AddSingleton<HttpVideoStreamService>();
|
||||||
builder.Services.AddHostedService(provider => provider.GetRequiredService<HttpVideoStreamService>());
|
builder.Services.AddHostedService(provider => provider.GetRequiredService<HttpVideoStreamService>());
|
||||||
|
|
||||||
|
@ -96,12 +99,14 @@ try
|
||||||
logger.Info($"Use Static Files : {Path.Combine(Directory.GetCurrentDirectory(), "wwwroot")}");
|
logger.Info($"Use Static Files : {Path.Combine(Directory.GetCurrentDirectory(), "wwwroot")}");
|
||||||
app.UseDefaultFiles();
|
app.UseDefaultFiles();
|
||||||
app.UseStaticFiles(); // Serves files from wwwroot by default
|
app.UseStaticFiles(); // Serves files from wwwroot by default
|
||||||
|
|
||||||
// Assets Files
|
// Assets Files
|
||||||
app.UseStaticFiles(new StaticFileOptions
|
app.UseStaticFiles(new StaticFileOptions
|
||||||
{
|
{
|
||||||
FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "assets")),
|
FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "assets")),
|
||||||
RequestPath = "/assets"
|
RequestPath = "/assets"
|
||||||
});
|
});
|
||||||
|
|
||||||
// Log Files
|
// Log Files
|
||||||
if (!Directory.Exists(Path.Combine(Directory.GetCurrentDirectory(), "log")))
|
if (!Directory.Exists(Path.Combine(Directory.GetCurrentDirectory(), "log")))
|
||||||
{
|
{
|
||||||
|
@ -114,7 +119,7 @@ try
|
||||||
});
|
});
|
||||||
app.MapFallbackToFile("index.html");
|
app.MapFallbackToFile("index.html");
|
||||||
}
|
}
|
||||||
// Add logs
|
|
||||||
app.UseHttpsRedirection();
|
app.UseHttpsRedirection();
|
||||||
app.UseRouting();
|
app.UseRouting();
|
||||||
app.UseCors();
|
app.UseCors();
|
||||||
|
|
|
@ -1,16 +1,8 @@
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Net.Sockets;
|
using System.Text;
|
||||||
using System.Threading;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Microsoft.Extensions.Hosting;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using SixLabors.ImageSharp;
|
using SixLabors.ImageSharp;
|
||||||
using SixLabors.ImageSharp.Formats.Jpeg;
|
using SixLabors.ImageSharp.Formats.Jpeg;
|
||||||
using SixLabors.ImageSharp.PixelFormats;
|
using SixLabors.ImageSharp.PixelFormats;
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace server.src
|
namespace server.src
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
// 此接口提供获取例程目录服务
|
|
||||||
// GET /api/tutorials 返回所有可用的例程目录
|
|
||||||
|
|
||||||
import fs from 'fs';
|
|
||||||
import path from 'path';
|
|
||||||
import { fileURLToPath } from 'url';
|
|
||||||
import { Request, Response } from 'express';
|
|
||||||
|
|
||||||
// 获取当前文件的目录
|
|
||||||
const __filename = fileURLToPath(import.meta.url);
|
|
||||||
const __dirname = path.dirname(__filename);
|
|
||||||
const publicDir = path.resolve(__dirname, '../public');
|
|
||||||
|
|
||||||
export function getTutorials(req: Request, res: Response) {
|
|
||||||
try {
|
|
||||||
const docDir = path.join(publicDir, 'doc');
|
|
||||||
|
|
||||||
// 读取doc目录下的所有文件夹
|
|
||||||
const entries = fs.readdirSync(docDir, { withFileTypes: true });
|
|
||||||
const dirs = entries
|
|
||||||
.filter(dirent => dirent.isDirectory())
|
|
||||||
.map(dirent => dirent.name);
|
|
||||||
|
|
||||||
// 返回文件夹列表
|
|
||||||
res.json({ tutorials: dirs });
|
|
||||||
} catch (error) {
|
|
||||||
console.error('获取例程目录失败:', error);
|
|
||||||
res.status(500).json({ error: '无法读取例程目录' });
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -180,6 +180,7 @@ public class UDPClientPool
|
||||||
/// [TODO:description]
|
/// [TODO:description]
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="endPoint">[TODO:parameter]</param>
|
/// <param name="endPoint">[TODO:parameter]</param>
|
||||||
|
/// <param name="taskID">[TODO:parameter]</param>
|
||||||
/// <param name="devAddr">[TODO:parameter]</param>
|
/// <param name="devAddr">[TODO:parameter]</param>
|
||||||
/// <param name="timeout">[TODO:parameter]</param>
|
/// <param name="timeout">[TODO:parameter]</param>
|
||||||
/// <returns>[TODO:return]</returns>
|
/// <returns>[TODO:return]</returns>
|
||||||
|
@ -220,6 +221,7 @@ public class UDPClientPool
|
||||||
/// [TODO:description]
|
/// [TODO:description]
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="endPoint">[TODO:parameter]</param>
|
/// <param name="endPoint">[TODO:parameter]</param>
|
||||||
|
/// <param name="taskID">[TODO:parameter]</param>
|
||||||
/// <param name="devAddr">[TODO:parameter]</param>
|
/// <param name="devAddr">[TODO:parameter]</param>
|
||||||
/// <param name="result">[TODO:parameter]</param>
|
/// <param name="result">[TODO:parameter]</param>
|
||||||
/// <param name="resultMask">[TODO:parameter]</param>
|
/// <param name="resultMask">[TODO:parameter]</param>
|
||||||
|
@ -258,6 +260,7 @@ public class UDPClientPool
|
||||||
/// [TODO:description]
|
/// [TODO:description]
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="endPoint">[TODO:parameter]</param>
|
/// <param name="endPoint">[TODO:parameter]</param>
|
||||||
|
/// <param name="taskID">[TODO:parameter]</param>
|
||||||
/// <param name="devAddr">[TODO:parameter]</param>
|
/// <param name="devAddr">[TODO:parameter]</param>
|
||||||
/// <param name="result">[TODO:parameter]</param>
|
/// <param name="result">[TODO:parameter]</param>
|
||||||
/// <param name="resultMask">[TODO:parameter]</param>
|
/// <param name="resultMask">[TODO:parameter]</param>
|
||||||
|
@ -307,6 +310,7 @@ public class UDPClientPool
|
||||||
/// [TODO:description]
|
/// [TODO:description]
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="endPoint">[TODO:parameter]</param>
|
/// <param name="endPoint">[TODO:parameter]</param>
|
||||||
|
/// <param name="taskID">[TODO:parameter]</param>
|
||||||
/// <param name="devAddr">[TODO:parameter]</param>
|
/// <param name="devAddr">[TODO:parameter]</param>
|
||||||
/// <param name="data">[TODO:parameter]</param>
|
/// <param name="data">[TODO:parameter]</param>
|
||||||
/// <param name="timeout">[TODO:parameter]</param>
|
/// <param name="timeout">[TODO:parameter]</param>
|
||||||
|
@ -347,6 +351,7 @@ public class UDPClientPool
|
||||||
/// [TODO:description]
|
/// [TODO:description]
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="endPoint">[TODO:parameter]</param>
|
/// <param name="endPoint">[TODO:parameter]</param>
|
||||||
|
/// <param name="taskID">[TODO:parameter]</param>
|
||||||
/// <param name="devAddr">[TODO:parameter]</param>
|
/// <param name="devAddr">[TODO:parameter]</param>
|
||||||
/// <param name="dataArray">[TODO:parameter]</param>
|
/// <param name="dataArray">[TODO:parameter]</param>
|
||||||
/// <param name="timeout">[TODO:parameter]</param>
|
/// <param name="timeout">[TODO:parameter]</param>
|
||||||
|
|
|
@ -231,6 +231,7 @@ public class UDPServer
|
||||||
/// 异步等待写响应
|
/// 异步等待写响应
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="address">IP地址</param>
|
/// <param name="address">IP地址</param>
|
||||||
|
/// <param name="taskID">[TODO:parameter]</param>
|
||||||
/// <param name="port">UDP 端口</param>
|
/// <param name="port">UDP 端口</param>
|
||||||
/// <param name="timeout">超时时间范围</param>
|
/// <param name="timeout">超时时间范围</param>
|
||||||
/// <returns>接收响应包</returns>
|
/// <returns>接收响应包</returns>
|
||||||
|
@ -256,6 +257,7 @@ public class UDPServer
|
||||||
/// 异步等待数据
|
/// 异步等待数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="address">IP地址</param>
|
/// <param name="address">IP地址</param>
|
||||||
|
/// <param name="taskID">[TODO:parameter]</param>
|
||||||
/// <param name="port">UDP 端口</param>
|
/// <param name="port">UDP 端口</param>
|
||||||
/// <param name="timeout">超时时间范围</param>
|
/// <param name="timeout">超时时间范围</param>
|
||||||
/// <returns>接收数据包</returns>
|
/// <returns>接收数据包</returns>
|
||||||
|
@ -420,6 +422,7 @@ public class UDPServer
|
||||||
/// 清空指定IP地址的数据
|
/// 清空指定IP地址的数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="ipAddr">IP地址</param>
|
/// <param name="ipAddr">IP地址</param>
|
||||||
|
/// <param name="taskID">[TODO:parameter]</param>
|
||||||
/// <returns>无</returns>
|
/// <returns>无</returns>
|
||||||
public async Task ClearUDPData(string ipAddr, int taskID)
|
public async Task ClearUDPData(string ipAddr, int taskID)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue