diff --git a/server/src/Controllers/NetConfigController.cs b/server/src/Controllers/NetConfigController.cs
index 0573f8b..078bd2a 100644
--- a/server/src/Controllers/NetConfigController.cs
+++ b/server/src/Controllers/NetConfigController.cs
@@ -19,41 +19,37 @@ public class NetConfigController : ControllerBase
///
/// 设置主机IP地址
///
- /// 板卡ID
+ /// 板卡IP地址
+ /// 板卡端口
/// 主机IP地址
/// 操作结果
[HttpPost("SetHostIP")]
[EnableCors("Users")]
[ProducesResponseType(typeof(bool), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
- [ProducesResponseType(StatusCodes.Status404NotFound)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task SetHostIP(Guid boardId, string hostIp)
+ public async Task SetHostIP(string boardIp, int boardPort, string hostIp)
{
- if (boardId == Guid.Empty)
- return BadRequest("板卡ID不能为空");
+ if (string.IsNullOrWhiteSpace(boardIp))
+ return BadRequest("板卡IP地址不能为空");
+
+ if (boardPort <= 0 || boardPort > 65535)
+ return BadRequest("板卡端口号无效");
if (string.IsNullOrWhiteSpace(hostIp))
return BadRequest("主机IP地址不能为空");
- if (!IPAddress.TryParse(hostIp, out var ipAddress))
- return BadRequest("IP地址格式不正确");
+ if (!IPAddress.TryParse(boardIp, out _))
+ return BadRequest("板卡IP地址格式不正确");
+
+ if (!IPAddress.TryParse(hostIp, out var hostIpAddress))
+ return BadRequest("主机IP地址格式不正确");
try
{
- // 获取板卡信息
- using var db = new Database.AppDataConnection();
- var boardRet = db.GetBoardByID(boardId);
- if (!boardRet.IsSuccessful)
- return StatusCode(StatusCodes.Status500InternalServerError, "数据库操作失败");
- if (!boardRet.Value.HasValue)
- return NotFound("未找到对应的板卡");
-
- var board = boardRet.Value.Value;
-
// 创建网络配置客户端
- var netConfig = new NetConfig(board.IpAddr, board.Port, 0);
- var result = await netConfig.SetHostIP(ipAddress);
+ var netConfig = new NetConfig(boardIp, boardPort, 0);
+ var result = await netConfig.SetHostIP(hostIpAddress);
if (!result.IsSuccessful)
{
@@ -73,41 +69,37 @@ public class NetConfigController : ControllerBase
///
/// 设置板卡IP地址
///
- /// 板卡ID
- /// 板卡IP地址
+ /// 当前板卡IP地址
+ /// 板卡端口
+ /// 新的板卡IP地址
/// 操作结果
[HttpPost("SetBoardIP")]
[EnableCors("Users")]
[ProducesResponseType(typeof(bool), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
- [ProducesResponseType(StatusCodes.Status404NotFound)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task SetBoardIP(Guid boardId, string boardIp)
+ public async Task SetBoardIP(string currentBoardIp, int boardPort, string newBoardIp)
{
- if (boardId == Guid.Empty)
- return BadRequest("板卡ID不能为空");
+ if (string.IsNullOrWhiteSpace(currentBoardIp))
+ return BadRequest("当前板卡IP地址不能为空");
- if (string.IsNullOrWhiteSpace(boardIp))
- return BadRequest("板卡IP地址不能为空");
+ if (boardPort <= 0 || boardPort > 65535)
+ return BadRequest("板卡端口号无效");
- if (!IPAddress.TryParse(boardIp, out var ipAddress))
- return BadRequest("IP地址格式不正确");
+ if (string.IsNullOrWhiteSpace(newBoardIp))
+ return BadRequest("新的板卡IP地址不能为空");
+
+ if (!IPAddress.TryParse(currentBoardIp, out _))
+ return BadRequest("当前板卡IP地址格式不正确");
+
+ if (!IPAddress.TryParse(newBoardIp, out var newIpAddress))
+ return BadRequest("新的板卡IP地址格式不正确");
try
{
- // 获取板卡信息
- using var db = new Database.AppDataConnection();
- var boardRet = db.GetBoardByID(boardId);
- if (!boardRet.IsSuccessful)
- return StatusCode(StatusCodes.Status500InternalServerError, "数据库操作失败");
- if (!boardRet.Value.HasValue)
- return NotFound("未找到对应的板卡");
-
- var board = boardRet.Value.Value;
-
// 创建网络配置客户端
- var netConfig = new NetConfig(board.IpAddr, board.Port, 0);
- var result = await netConfig.SetBoardIP(ipAddress);
+ var netConfig = new NetConfig(currentBoardIp, boardPort, 0);
+ var result = await netConfig.SetBoardIP(newIpAddress);
if (!result.IsSuccessful)
{
@@ -115,13 +107,6 @@ public class NetConfigController : ControllerBase
return StatusCode(StatusCodes.Status500InternalServerError, $"设置失败: {result.Error}");
}
- var ret = db.UpdateBoardIpAddr(boardId, ipAddress.ToString());
- if (ret <= 0)
- {
- logger.Error($"数据库更新失败");
- return StatusCode(StatusCodes.Status500InternalServerError, $"数据库更新失败");
- }
-
return Ok(result.Value);
}
catch (Exception ex)
@@ -134,41 +119,37 @@ public class NetConfigController : ControllerBase
///
/// 设置主机MAC地址
///
- /// 板卡ID
+ /// 板卡IP地址
+ /// 板卡端口
/// 主机MAC地址(格式:AA:BB:CC:DD:EE:FF)
/// 操作结果
[HttpPost("SetHostMAC")]
[EnableCors("Users")]
[ProducesResponseType(typeof(bool), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
- [ProducesResponseType(StatusCodes.Status404NotFound)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task SetHostMAC(Guid boardId, string hostMac)
+ public async Task SetHostMAC(string boardIp, int boardPort, string hostMac)
{
- if (boardId == Guid.Empty)
- return BadRequest("板卡ID不能为空");
+ if (string.IsNullOrWhiteSpace(boardIp))
+ return BadRequest("板卡IP地址不能为空");
+
+ if (boardPort <= 0 || boardPort > 65535)
+ return BadRequest("板卡端口号无效");
if (string.IsNullOrWhiteSpace(hostMac))
return BadRequest("主机MAC地址不能为空");
+ if (!IPAddress.TryParse(boardIp, out _))
+ return BadRequest("板卡IP地址格式不正确");
+
// 解析MAC地址
if (!TryParseMacAddress(hostMac, out var macBytes))
return BadRequest("MAC地址格式不正确,请使用格式:AA:BB:CC:DD:EE:FF");
try
{
- // 获取板卡信息
- using var db = new Database.AppDataConnection();
- var boardRet = db.GetBoardByID(boardId);
- if (!boardRet.IsSuccessful)
- return StatusCode(StatusCodes.Status500InternalServerError, "数据库操作失败");
- if (!boardRet.Value.HasValue)
- return NotFound("未找到对应的板卡");
-
- var board = boardRet.Value.Value;
-
// 创建网络配置客户端
- var netConfig = new NetConfig(board.IpAddr, board.Port, 0);
+ var netConfig = new NetConfig(boardIp, boardPort, 0);
var result = await netConfig.SetHostMAC(macBytes);
if (!result.IsSuccessful)
@@ -189,18 +170,24 @@ public class NetConfigController : ControllerBase
///
/// 更新主机MAC地址
///
- /// 板卡ID
+ /// 板卡IP地址
+ /// 板卡端口
/// 操作结果
[HttpPost("UpdateHostMAC")]
[EnableCors("Users")]
[ProducesResponseType(typeof(bool), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
- [ProducesResponseType(StatusCodes.Status404NotFound)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task UpdateHostMAC(Guid boardId)
+ public async Task UpdateHostMAC(string boardIp, int boardPort)
{
- if (boardId == Guid.Empty)
- return BadRequest("板卡ID不能为空");
+ if (string.IsNullOrWhiteSpace(boardIp))
+ return BadRequest("板卡IP地址不能为空");
+
+ if (boardPort <= 0 || boardPort > 65535)
+ return BadRequest("板卡端口号无效");
+
+ if (!IPAddress.TryParse(boardIp, out _))
+ return BadRequest("板卡IP地址格式不正确");
byte[]? macBytes = null;
try
@@ -216,18 +203,8 @@ public class NetConfigController : ControllerBase
if (macBytes == null)
return StatusCode(StatusCodes.Status500InternalServerError, "无法获取本机MAC地址");
- // 获取板卡信息
- using var db = new Database.AppDataConnection();
- var boardRet = db.GetBoardByID(boardId);
- if (!boardRet.IsSuccessful)
- return StatusCode(StatusCodes.Status500InternalServerError, "数据库操作失败");
- if (!boardRet.Value.HasValue)
- return NotFound("未找到对应的板卡");
-
- var board = boardRet.Value.Value;
-
// 创建网络配置客户端
- var netConfig = new NetConfig(board.IpAddr, board.Port, 0);
+ var netConfig = new NetConfig(boardIp, boardPort, 0);
var result = await netConfig.SetHostMAC(macBytes);
if (!result.IsSuccessful)
@@ -248,41 +225,37 @@ public class NetConfigController : ControllerBase
///
/// 设置板卡MAC地址
///
- /// 板卡ID
+ /// 板卡IP地址
+ /// 板卡端口
/// 板卡MAC地址(格式:AA:BB:CC:DD:EE:FF)
/// 操作结果
[HttpPost("SetBoardMAC")]
[EnableCors("Users")]
[ProducesResponseType(typeof(bool), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
- [ProducesResponseType(StatusCodes.Status404NotFound)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task SetBoardMAC(Guid boardId, string boardMac)
+ public async Task SetBoardMAC(string boardIp, int boardPort, string boardMac)
{
- if (boardId == Guid.Empty)
- return BadRequest("板卡ID不能为空");
+ if (string.IsNullOrWhiteSpace(boardIp))
+ return BadRequest("板卡IP地址不能为空");
+
+ if (boardPort <= 0 || boardPort > 65535)
+ return BadRequest("板卡端口号无效");
if (string.IsNullOrWhiteSpace(boardMac))
return BadRequest("板卡MAC地址不能为空");
+ if (!IPAddress.TryParse(boardIp, out _))
+ return BadRequest("板卡IP地址格式不正确");
+
// 解析MAC地址
if (!TryParseMacAddress(boardMac, out var macBytes))
return BadRequest("MAC地址格式不正确,请使用格式:AA:BB:CC:DD:EE:FF");
try
{
- // 获取板卡信息
- using var db = new Database.AppDataConnection();
- var boardRet = db.GetBoardByID(boardId);
- if (!boardRet.IsSuccessful)
- return StatusCode(StatusCodes.Status500InternalServerError, "数据库操作失败");
- if (!boardRet.Value.HasValue)
- return NotFound("未找到对应的板卡");
-
- var board = boardRet.Value.Value;
-
// 创建网络配置客户端
- var netConfig = new NetConfig(board.IpAddr, board.Port, 0);
+ var netConfig = new NetConfig(boardIp, boardPort, 0);
var result = await netConfig.SetBoardMAC(macBytes);
if (!result.IsSuccessful)
diff --git a/src/views/User/AddBoardDialog.vue b/src/views/User/AddBoardDialog.vue
index f1a6da6..24854f4 100644
--- a/src/views/User/AddBoardDialog.vue
+++ b/src/views/User/AddBoardDialog.vue
@@ -111,8 +111,8 @@ const boardManager = useBoardManager()!;
// 表单数据
const form = reactive({
- name: '',
- ipAddr: '',
+ name: 'Board1',
+ ipAddr: '169.254.103.0',
port: 1234
});
@@ -176,8 +176,8 @@ function validateForm(): boolean {
// 重置表单
function resetForm() {
- form.name = '';
- form.ipAddr = '';
+ form.name = 'Board1';
+ form.ipAddr = '169.254.103.0';
form.port = 1234;
errors.name = '';
errors.ipAddr = '';