|
@ -96,7 +96,7 @@ public class CellularNetworkService : ICellularNetworkService |
|
|
if (commands?.NetworkCommands != null) |
|
|
if (commands?.NetworkCommands != null) |
|
|
{ |
|
|
{ |
|
|
var stopCommands = commands.NetworkCommands |
|
|
var stopCommands = commands.NetworkCommands |
|
|
.Where(s => s.Type == NetworkCommandType.Stop) |
|
|
.Where(s => s.Type == NetworkCommandType.StopNetwork) |
|
|
.ToArray(); |
|
|
.ToArray(); |
|
|
|
|
|
|
|
|
foreach (var cmd in stopCommands) |
|
|
foreach (var cmd in stopCommands) |
|
@ -145,7 +145,7 @@ public class CellularNetworkService : ICellularNetworkService |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 3. 执行初始化命令
|
|
|
// 3. 执行初始化命令
|
|
|
await ExecuteInitializeCommandsAsync(); |
|
|
await ExecuteInitializeCommandsAsync(true); |
|
|
|
|
|
|
|
|
// 4. 启动网络接口
|
|
|
// 4. 启动网络接口
|
|
|
_logger.LogInformation("正在启动蜂窝网络接口: {InterfaceName}", key); |
|
|
_logger.LogInformation("正在启动蜂窝网络接口: {InterfaceName}", key); |
|
@ -166,14 +166,14 @@ public class CellularNetworkService : ICellularNetworkService |
|
|
return true; |
|
|
return true; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private async Task ExecuteInitializeCommandsAsync() |
|
|
private async Task ExecuteInitializeCommandsAsync(bool bStartInit = false) |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
|
var commands = _context.GetNetworkCommandConfig(); |
|
|
var commands = _context.GetNetworkCommandConfig(); |
|
|
if (commands?.NetworkCommands != null) |
|
|
if (commands?.NetworkCommands != null) |
|
|
{ |
|
|
{ |
|
|
var initCommands = commands.NetworkCommands |
|
|
var initCommands = commands.NetworkCommands |
|
|
.Where(s => s.Type == NetworkCommandType.Initialize) |
|
|
.Where(s => s.Type == NetworkCommandType.Initialize || |
|
|
|
|
|
(bStartInit && s.Type == NetworkCommandType.PreNetworkOperation)) |
|
|
.ToArray(); |
|
|
.ToArray(); |
|
|
|
|
|
|
|
|
foreach (var cmd in initCommands) |
|
|
foreach (var cmd in initCommands) |
|
@ -224,7 +224,7 @@ public class CellularNetworkService : ICellularNetworkService |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
var commands = _context.GetNetworkCommandConfig(); |
|
|
var commands = _context.GetNetworkCommandConfig(); |
|
|
var startCommand = commands.NetworkCommands.FirstOrDefault(s => s.Type == NetworkCommandType.Start); |
|
|
var startCommand = commands.NetworkCommands.FirstOrDefault(s => s.Type == NetworkCommandType.NetworkOperation); |
|
|
if (startCommand == null) |
|
|
if (startCommand == null) |
|
|
{ |
|
|
{ |
|
|
_logger.LogError("未找到启动命令配置"); |
|
|
_logger.LogError("未找到启动命令配置"); |
|
@ -268,31 +268,49 @@ public class CellularNetworkService : ICellularNetworkService |
|
|
Directory.CreateDirectory(_appSettings.TempDirectory); |
|
|
Directory.CreateDirectory(_appSettings.TempDirectory); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 复制 RAG 配置值并更新路径
|
|
|
// 复制 RAG 配置文件
|
|
|
if (!string.IsNullOrEmpty(networkConfig.RagConfig)) |
|
|
if (!string.IsNullOrEmpty(networkConfig.RagConfig)) |
|
|
{ |
|
|
{ |
|
|
|
|
|
if (!File.Exists(networkConfig.RagConfig)) |
|
|
|
|
|
{ |
|
|
|
|
|
_logger.LogError("RAG配置文件不存在: {FilePath}", networkConfig.RagConfig); |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
var ragFileName = Path.GetFileName(networkConfig.RagConfig); |
|
|
var ragFileName = Path.GetFileName(networkConfig.RagConfig); |
|
|
var ragTempPath = $"{_appSettings.TempDirectory}{ragFileName}"; |
|
|
var ragTempPath = Path.Combine(_appSettings.TempDirectory, ragFileName); |
|
|
await File.WriteAllTextAsync(ragTempPath, networkConfig.RagConfig); |
|
|
File.Copy(networkConfig.RagConfig, ragTempPath, true); |
|
|
networkConfig.RagConfig = ragTempPath; |
|
|
networkConfig.RagConfig = ragTempPath; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 复制核心网络配置值和IMS配置值并更新路径
|
|
|
// 复制核心网络配置文件和IMS配置文件
|
|
|
foreach (var config in networkConfig.CoreOrImsConfigs) |
|
|
foreach (var config in networkConfig.CoreOrImsConfigs) |
|
|
{ |
|
|
{ |
|
|
if (!string.IsNullOrEmpty(config.CoreNetworkConfig)) |
|
|
if (!string.IsNullOrEmpty(config.CoreNetworkConfig)) |
|
|
{ |
|
|
{ |
|
|
|
|
|
if (!File.Exists(config.CoreNetworkConfig)) |
|
|
|
|
|
{ |
|
|
|
|
|
_logger.LogError("核心网络配置文件不存在: {FilePath}", config.CoreNetworkConfig); |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
var coreFileName = Path.GetFileName(config.CoreNetworkConfig); |
|
|
var coreFileName = Path.GetFileName(config.CoreNetworkConfig); |
|
|
var coreTempPath = $"{_appSettings.TempDirectory}{coreFileName}"; |
|
|
var coreTempPath = Path.Combine(_appSettings.TempDirectory, coreFileName); |
|
|
await File.WriteAllTextAsync(coreTempPath, config.CoreNetworkConfig); |
|
|
File.Copy(config.CoreNetworkConfig, coreTempPath, true); |
|
|
config.CoreNetworkConfig = coreTempPath; |
|
|
config.CoreNetworkConfig = coreTempPath; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(config.ImsConfig)) |
|
|
if (!string.IsNullOrEmpty(config.ImsConfig)) |
|
|
{ |
|
|
{ |
|
|
|
|
|
if (!File.Exists(config.ImsConfig)) |
|
|
|
|
|
{ |
|
|
|
|
|
_logger.LogError("IMS配置文件不存在: {FilePath}", config.ImsConfig); |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
var imsFileName = Path.GetFileName(config.ImsConfig); |
|
|
var imsFileName = Path.GetFileName(config.ImsConfig); |
|
|
var imsTempPath = $"{_appSettings.TempDirectory}{imsFileName}"; |
|
|
var imsTempPath = Path.Combine(_appSettings.TempDirectory, imsFileName); |
|
|
await File.WriteAllTextAsync(imsTempPath, config.ImsConfig); |
|
|
File.Copy(config.ImsConfig, imsTempPath, true); |
|
|
config.ImsConfig = imsTempPath; |
|
|
config.ImsConfig = imsTempPath; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@ -301,7 +319,7 @@ public class CellularNetworkService : ICellularNetworkService |
|
|
} |
|
|
} |
|
|
catch (Exception ex) |
|
|
catch (Exception ex) |
|
|
{ |
|
|
{ |
|
|
_logger.LogError(ex, "复制配置值到临时目录时发生错误"); |
|
|
_logger.LogError(ex, "复制配置文件到临时目录时发生错误"); |
|
|
return false; |
|
|
return false; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|