분리후 첫 Crawling 성공 모델
This commit is contained in:
19
OpcPksPlatform/Documents/init.sql
Normal file
19
OpcPksPlatform/Documents/init.sql
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
-- 1. 마스터 정보 (메타데이터)
|
||||||
|
CREATE TABLE tag_master (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
server_name TEXT,
|
||||||
|
area_code TEXT,
|
||||||
|
tag_name TEXT,
|
||||||
|
parameter TEXT,
|
||||||
|
full_node_id TEXT UNIQUE,
|
||||||
|
data_type TEXT,
|
||||||
|
is_active BOOLEAN DEFAULT TRUE
|
||||||
|
);
|
||||||
|
|
||||||
|
-- 2. 실시간 최신값 (Update-only)
|
||||||
|
CREATE TABLE tag_live_data (
|
||||||
|
full_node_id TEXT PRIMARY KEY REFERENCES tag_master(full_node_id),
|
||||||
|
live_value TEXT,
|
||||||
|
quality TEXT,
|
||||||
|
last_updated TIMESTAMP DEFAULT NOW()
|
||||||
|
);
|
||||||
8166
OpcPksPlatform/Documents/프로젝트대화.md
Normal file
8166
OpcPksPlatform/Documents/프로젝트대화.md
Normal file
File diff suppressed because it is too large
Load Diff
14
OpcPksPlatform/OpcPks.Collector/OpcPks.Collector.csproj
Normal file
14
OpcPksPlatform/OpcPks.Collector/OpcPks.Collector.csproj
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>Exe</OutputType> <TargetFramework>net8.0</TargetFramework>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\OpcPks.Core\OpcPks.Core.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Npgsql" Version="8.0.4" />
|
||||||
|
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Client" Version="1.5.374.78" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
27
OpcPksPlatform/OpcPks.Collector/Program.cs
Normal file
27
OpcPksPlatform/OpcPks.Collector/Program.cs
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
using System;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using OpcPks.Core.Data;
|
||||||
|
|
||||||
|
namespace OpcPks.Collector
|
||||||
|
{
|
||||||
|
class Program
|
||||||
|
{
|
||||||
|
static async Task Main(string[] args)
|
||||||
|
{
|
||||||
|
Console.WriteLine("=== Honeywell OPC PKS Platform Collector ===");
|
||||||
|
|
||||||
|
// CSV 파일 경로 (상황에 맞춰 수정하세요)
|
||||||
|
string csvPath = "../OpcPks.Core/Data/Honeywell_FullMap.csv";
|
||||||
|
|
||||||
|
if (System.IO.File.Exists(csvPath))
|
||||||
|
{
|
||||||
|
AssetLoader loader = new AssetLoader();
|
||||||
|
await loader.ImportFullMapAsync(csvPath);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine("❌ CSV 파일을 찾을 수 없습니다: " + csvPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
9
OpcPksPlatform/OpcPks.Collector/appsettings.json
Normal file
9
OpcPksPlatform/OpcPks.Collector/appsettings.json
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"OpcUa": {
|
||||||
|
"ServerUrl": "opc.tcp://192.168.0.20:48010",
|
||||||
|
"AutoAcceptUntrustedCertificates": true
|
||||||
|
},
|
||||||
|
"ConnectionStrings": {
|
||||||
|
"DefaultConnection": "Host=localhost;Database=opcpks;Username=pacer;Password=yourpassword"
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Newtonsoft.Json.dll
Executable file
BIN
OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Newtonsoft.Json.dll
Executable file
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Npgsql.dll
Executable file
BIN
OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Npgsql.dll
Executable file
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Opc.Ua.Client.dll
Executable file
BIN
OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Opc.Ua.Client.dll
Executable file
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Opc.Ua.Configuration.dll
Executable file
BIN
OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Opc.Ua.Configuration.dll
Executable file
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Opc.Ua.Core.dll
Executable file
BIN
OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Opc.Ua.Core.dll
Executable file
Binary file not shown.
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/OpcPks.Collector
Executable file
BIN
OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/OpcPks.Collector
Executable file
Binary file not shown.
@@ -0,0 +1,204 @@
|
|||||||
|
{
|
||||||
|
"runtimeTarget": {
|
||||||
|
"name": ".NETCoreApp,Version=v8.0",
|
||||||
|
"signature": ""
|
||||||
|
},
|
||||||
|
"compilationOptions": {},
|
||||||
|
"targets": {
|
||||||
|
".NETCoreApp,Version=v8.0": {
|
||||||
|
"OpcPks.Collector/1.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Npgsql": "8.0.4",
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client": "1.5.374.78",
|
||||||
|
"OpcPks.Core": "1.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"OpcPks.Collector.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
|
||||||
|
"assemblyVersion": "8.0.0.0",
|
||||||
|
"fileVersion": "8.0.324.11423"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions/8.0.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": {
|
||||||
|
"assemblyVersion": "8.0.0.0",
|
||||||
|
"fileVersion": "8.0.324.11423"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Newtonsoft.Json/13.0.3": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Newtonsoft.Json.dll": {
|
||||||
|
"assemblyVersion": "13.0.0.0",
|
||||||
|
"fileVersion": "13.0.3.27908"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Npgsql/8.0.4": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions": "8.0.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Npgsql.dll": {
|
||||||
|
"assemblyVersion": "8.0.4.0",
|
||||||
|
"fileVersion": "8.0.4.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client/1.5.374.78": {
|
||||||
|
"dependencies": {
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Configuration": "1.5.374.78",
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.374.78"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Opc.Ua.Client.dll": {
|
||||||
|
"assemblyVersion": "1.5.374.0",
|
||||||
|
"fileVersion": "1.5.374.78"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Configuration/1.5.374.78": {
|
||||||
|
"dependencies": {
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.374.78"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Opc.Ua.Configuration.dll": {
|
||||||
|
"assemblyVersion": "1.5.374.0",
|
||||||
|
"fileVersion": "1.5.374.78"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Core/1.5.374.78": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions": "8.0.1",
|
||||||
|
"Newtonsoft.Json": "13.0.3",
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates": "1.5.374.78"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Opc.Ua.Core.dll": {
|
||||||
|
"assemblyVersion": "1.5.374.0",
|
||||||
|
"fileVersion": "1.5.374.78"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates/1.5.374.78": {
|
||||||
|
"dependencies": {
|
||||||
|
"System.Formats.Asn1": "8.0.1",
|
||||||
|
"System.Security.Cryptography.Cng": "5.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Opc.Ua.Security.Certificates.dll": {
|
||||||
|
"assemblyVersion": "1.5.374.0",
|
||||||
|
"fileVersion": "1.5.374.78"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Formats.Asn1/8.0.1": {},
|
||||||
|
"System.Security.Cryptography.Cng/5.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"System.Formats.Asn1": "8.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OpcPks.Core/1.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Npgsql": "8.0.4",
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client": "1.5.374.78"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"OpcPks.Core.dll": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"OpcPks.Collector/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"serviceable": false,
|
||||||
|
"sha512": ""
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-fGLiCRLMYd00JYpClraLjJTNKLmMJPnqxMaiRzEBIIvevlzxz33mXy39Lkd48hu1G+N21S7QpaO5ZzKsI6FRuA==",
|
||||||
|
"path": "microsoft.extensions.dependencyinjection.abstractions/8.0.1",
|
||||||
|
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-RIFgaqoaINxkM2KTOw72dmilDmTrYA0ns2KW4lDz4gZ2+o6IQ894CzmdL3StM2oh7QQq44nCWiqKqc4qUI9Jmg==",
|
||||||
|
"path": "microsoft.extensions.logging.abstractions/8.0.1",
|
||||||
|
"hashPath": "microsoft.extensions.logging.abstractions.8.0.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Newtonsoft.Json/13.0.3": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
|
||||||
|
"path": "newtonsoft.json/13.0.3",
|
||||||
|
"hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Npgsql/8.0.4": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-vaYEUlF/pB9m8bs21wQv3Da0kMHT4A9USe47VfY/L2BO97xz5KfIxhEu22QS9d68ZrLxvtL3wQDfDLPr2OjbjA==",
|
||||||
|
"path": "npgsql/8.0.4",
|
||||||
|
"hashPath": "npgsql.8.0.4.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client/1.5.374.78": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-MXd8GIxpZ2u4Tbb78wyQzqeyhSgyedZtegHYz7pOM0AmSiMwg/Eghx3xqO/owqo1dsyW20zf0mZflUcNX8rIOQ==",
|
||||||
|
"path": "opcfoundation.netstandard.opc.ua.client/1.5.374.78",
|
||||||
|
"hashPath": "opcfoundation.netstandard.opc.ua.client.1.5.374.78.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Configuration/1.5.374.78": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-bkOZFH+hQsBlZhsci+SaZWrT4yJRnWwmcJLl8BJecWCtW2u6QoC5U1muYHPMN/23ltu8xoy4CPIJMzPR6PNmRw==",
|
||||||
|
"path": "opcfoundation.netstandard.opc.ua.configuration/1.5.374.78",
|
||||||
|
"hashPath": "opcfoundation.netstandard.opc.ua.configuration.1.5.374.78.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Core/1.5.374.78": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-iyuo99u7QKv7ZWKGAUxCnGPCzJSThlzn93ce1EDGAH6AnPJHiWtFDQ1n4TlE03kGHA69yO5qlVPLdw+Z/RdYDw==",
|
||||||
|
"path": "opcfoundation.netstandard.opc.ua.core/1.5.374.78",
|
||||||
|
"hashPath": "opcfoundation.netstandard.opc.ua.core.1.5.374.78.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates/1.5.374.78": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-iT++cPyzSnFAGJo9D0NPtHM+byBvIGeGGi535vGla2CTNAWvU1i7MH2T1PGqoYxiEY7dpKlqBlTtg3MQ3eXBrA==",
|
||||||
|
"path": "opcfoundation.netstandard.opc.ua.security.certificates/1.5.374.78",
|
||||||
|
"hashPath": "opcfoundation.netstandard.opc.ua.security.certificates.1.5.374.78.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Formats.Asn1/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-XqKba7Mm/koKSjKMfW82olQdmfbI5yqeoLV/tidRp7fbh5rmHAQ5raDI/7SU0swTzv+jgqtUGkzmFxuUg0it1A==",
|
||||||
|
"path": "system.formats.asn1/8.0.1",
|
||||||
|
"hashPath": "system.formats.asn1.8.0.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Security.Cryptography.Cng/5.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-jIMXsKn94T9JY7PvPq/tMfqa6GAaHpElRDpmG+SuL+D3+sTw2M8VhnibKnN8Tq+4JqbPJ/f+BwtLeDMEnzAvRg==",
|
||||||
|
"path": "system.security.cryptography.cng/5.0.0",
|
||||||
|
"hashPath": "system.security.cryptography.cng.5.0.0.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"OpcPks.Core/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"serviceable": false,
|
||||||
|
"sha512": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"runtimeOptions": {
|
||||||
|
"tfm": "net8.0",
|
||||||
|
"framework": {
|
||||||
|
"name": "Microsoft.NETCore.App",
|
||||||
|
"version": "8.0.0"
|
||||||
|
},
|
||||||
|
"configProperties": {
|
||||||
|
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/OpcPks.Core.dll
Normal file
BIN
OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/OpcPks.Core.dll
Normal file
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/OpcPks.Core.pdb
Normal file
BIN
OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/OpcPks.Core.pdb
Normal file
Binary file not shown.
@@ -0,0 +1,4 @@
|
|||||||
|
// <autogenerated />
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
[assembly: System.Reflection.AssemblyCompanyAttribute("OpcPks.Collector")]
|
||||||
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+171aaf6115cde8e9e930d14886fafa5fe4c1e4c0")]
|
||||||
|
[assembly: System.Reflection.AssemblyProductAttribute("OpcPks.Collector")]
|
||||||
|
[assembly: System.Reflection.AssemblyTitleAttribute("OpcPks.Collector")]
|
||||||
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|
||||||
|
// Generated by the MSBuild WriteCodeFragment class.
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
209bb3a0d499ad79d64f5d7a0d7d5751da0a096972f0887479fd6077018132d3
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
is_global = true
|
||||||
|
build_property.TargetFramework = net8.0
|
||||||
|
build_property.TargetPlatformMinVersion =
|
||||||
|
build_property.UsingMicrosoftNETSdkWeb =
|
||||||
|
build_property.ProjectTypeGuids =
|
||||||
|
build_property.InvariantGlobalization =
|
||||||
|
build_property.PlatformNeutralAssembly =
|
||||||
|
build_property.EnforceExtendedAnalyzerRules =
|
||||||
|
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||||
|
build_property.RootNamespace = OpcPks.Collector
|
||||||
|
build_property.ProjectDir = /home/pacer/projects/OpcPksPlatform/OpcPks.Collector/
|
||||||
|
build_property.EnableComHosting =
|
||||||
|
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
// <auto-generated/>
|
||||||
|
global using global::System;
|
||||||
|
global using global::System.Collections.Generic;
|
||||||
|
global using global::System.IO;
|
||||||
|
global using global::System.Linq;
|
||||||
|
global using global::System.Net.Http;
|
||||||
|
global using global::System.Threading;
|
||||||
|
global using global::System.Threading.Tasks;
|
||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
4cf7baffa34516138043fd39648462ec804918f8051fec8d47bde3c8cd95ddec
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/OpcPks.Collector
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/OpcPks.Collector.deps.json
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/OpcPks.Collector.runtimeconfig.json
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/OpcPks.Collector.dll
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/OpcPks.Collector.pdb
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Microsoft.Extensions.Logging.Abstractions.dll
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Newtonsoft.Json.dll
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Npgsql.dll
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Opc.Ua.Client.dll
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Opc.Ua.Configuration.dll
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Opc.Ua.Core.dll
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/Opc.Ua.Security.Certificates.dll
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/OpcPks.Core.dll
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/bin/Debug/net8.0/OpcPks.Core.pdb
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/obj/Debug/net8.0/OpcPks.Collector.csproj.AssemblyReference.cache
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/obj/Debug/net8.0/OpcPks.Collector.GeneratedMSBuildEditorConfig.editorconfig
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/obj/Debug/net8.0/OpcPks.Collector.AssemblyInfoInputs.cache
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/obj/Debug/net8.0/OpcPks.Collector.AssemblyInfo.cs
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/obj/Debug/net8.0/OpcPks.Collector.csproj.CoreCompileInputs.cache
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/obj/Debug/net8.0/OpcPks.Collector.csproj.CopyComplete
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/obj/Debug/net8.0/OpcPks.Collector.dll
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/obj/Debug/net8.0/refint/OpcPks.Collector.dll
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/obj/Debug/net8.0/OpcPks.Collector.pdb
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/obj/Debug/net8.0/OpcPks.Collector.genruntimeconfig.cache
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/obj/Debug/net8.0/ref/OpcPks.Collector.dll
|
||||||
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
2e7da7d25c95ea2605f57b3304ec3e5957ac308a18471f4e6a38c17e90cb7ac6
|
||||||
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Collector/obj/Debug/net8.0/apphost
Executable file
BIN
OpcPksPlatform/OpcPks.Collector/obj/Debug/net8.0/apphost
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,138 @@
|
|||||||
|
{
|
||||||
|
"format": 1,
|
||||||
|
"restore": {
|
||||||
|
"/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/OpcPks.Collector.csproj": {}
|
||||||
|
},
|
||||||
|
"projects": {
|
||||||
|
"/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/OpcPks.Collector.csproj": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"restore": {
|
||||||
|
"projectUniqueName": "/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/OpcPks.Collector.csproj",
|
||||||
|
"projectName": "OpcPks.Collector",
|
||||||
|
"projectPath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/OpcPks.Collector.csproj",
|
||||||
|
"packagesPath": "/home/pacer/.nuget/packages/",
|
||||||
|
"outputPath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/obj/",
|
||||||
|
"projectStyle": "PackageReference",
|
||||||
|
"configFilePaths": [
|
||||||
|
"/home/pacer/.nuget/NuGet/NuGet.Config"
|
||||||
|
],
|
||||||
|
"originalTargetFrameworks": [
|
||||||
|
"net8.0"
|
||||||
|
],
|
||||||
|
"sources": {
|
||||||
|
"https://api.nuget.org/v3/index.json": {}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net8.0": {
|
||||||
|
"targetAlias": "net8.0",
|
||||||
|
"projectReferences": {
|
||||||
|
"/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj": {
|
||||||
|
"projectPath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"warningProperties": {
|
||||||
|
"warnAsError": [
|
||||||
|
"NU1605"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net8.0": {
|
||||||
|
"targetAlias": "net8.0",
|
||||||
|
"dependencies": {
|
||||||
|
"Npgsql": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[8.0.4, )"
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[1.5.374.78, )"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"net461",
|
||||||
|
"net462",
|
||||||
|
"net47",
|
||||||
|
"net471",
|
||||||
|
"net472",
|
||||||
|
"net48",
|
||||||
|
"net481"
|
||||||
|
],
|
||||||
|
"assetTargetFallback": true,
|
||||||
|
"warn": true,
|
||||||
|
"frameworkReferences": {
|
||||||
|
"Microsoft.NETCore.App": {
|
||||||
|
"privateAssets": "all"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeIdentifierGraphPath": "/usr/lib/dotnet/sdk/8.0.124/PortableRuntimeIdentifierGraph.json"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"restore": {
|
||||||
|
"projectUniqueName": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj",
|
||||||
|
"projectName": "OpcPks.Core",
|
||||||
|
"projectPath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj",
|
||||||
|
"packagesPath": "/home/pacer/.nuget/packages/",
|
||||||
|
"outputPath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/",
|
||||||
|
"projectStyle": "PackageReference",
|
||||||
|
"configFilePaths": [
|
||||||
|
"/home/pacer/.nuget/NuGet/NuGet.Config"
|
||||||
|
],
|
||||||
|
"originalTargetFrameworks": [
|
||||||
|
"net8.0"
|
||||||
|
],
|
||||||
|
"sources": {
|
||||||
|
"https://api.nuget.org/v3/index.json": {}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net8.0": {
|
||||||
|
"targetAlias": "net8.0",
|
||||||
|
"projectReferences": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"warningProperties": {
|
||||||
|
"warnAsError": [
|
||||||
|
"NU1605"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net8.0": {
|
||||||
|
"targetAlias": "net8.0",
|
||||||
|
"dependencies": {
|
||||||
|
"Npgsql": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[8.0.4, )"
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[1.5.374.78, )"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"net461",
|
||||||
|
"net462",
|
||||||
|
"net47",
|
||||||
|
"net471",
|
||||||
|
"net472",
|
||||||
|
"net48",
|
||||||
|
"net481"
|
||||||
|
],
|
||||||
|
"assetTargetFallback": true,
|
||||||
|
"warn": true,
|
||||||
|
"frameworkReferences": {
|
||||||
|
"Microsoft.NETCore.App": {
|
||||||
|
"privateAssets": "all"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeIdentifierGraphPath": "/usr/lib/dotnet/sdk/8.0.124/PortableRuntimeIdentifierGraph.json"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||||
|
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||||
|
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||||
|
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/home/pacer/.nuget/packages/</NuGetPackageRoot>
|
||||||
|
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/home/pacer/.nuget/packages/</NuGetPackageFolders>
|
||||||
|
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||||
|
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.8.1</NuGetToolVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<SourceRoot Include="/home/pacer/.nuget/packages/" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/8.0.1/buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/8.0.1/buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets')" />
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
647
OpcPksPlatform/OpcPks.Collector/obj/project.assets.json
Normal file
647
OpcPksPlatform/OpcPks.Collector/obj/project.assets.json
Normal file
@@ -0,0 +1,647 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"targets": {
|
||||||
|
"net8.0": {
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"compile": {
|
||||||
|
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"build": {
|
||||||
|
"buildTransitive/net6.0/_._": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"build": {
|
||||||
|
"buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Newtonsoft.Json/13.0.3": {
|
||||||
|
"type": "package",
|
||||||
|
"compile": {
|
||||||
|
"lib/net6.0/Newtonsoft.Json.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Newtonsoft.Json.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Npgsql/8.0.4": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions": "8.0.0"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"lib/net8.0/Npgsql.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Npgsql.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client/1.5.374.78": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Configuration": "1.5.374.78",
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.374.78"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"lib/net8.0/Opc.Ua.Client.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Opc.Ua.Client.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Configuration/1.5.374.78": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.374.78"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"lib/net8.0/Opc.Ua.Configuration.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Opc.Ua.Configuration.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Core/1.5.374.78": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions": "8.0.1",
|
||||||
|
"Newtonsoft.Json": "13.0.3",
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates": "1.5.374.78"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"lib/net8.0/Opc.Ua.Core.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Opc.Ua.Core.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates/1.5.374.78": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"System.Formats.Asn1": "8.0.1",
|
||||||
|
"System.Security.Cryptography.Cng": "5.0.0"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"lib/net8.0/Opc.Ua.Security.Certificates.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Opc.Ua.Security.Certificates.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Formats.Asn1/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"compile": {
|
||||||
|
"lib/net8.0/System.Formats.Asn1.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/System.Formats.Asn1.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"build": {
|
||||||
|
"buildTransitive/net6.0/_._": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Security.Cryptography.Cng/5.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"System.Formats.Asn1": "5.0.0"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"ref/netcoreapp3.0/System.Security.Cryptography.Cng.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll": {
|
||||||
|
"assetType": "runtime",
|
||||||
|
"rid": "win"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OpcPks.Core/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"framework": ".NETCoreApp,Version=v8.0",
|
||||||
|
"dependencies": {
|
||||||
|
"Npgsql": "8.0.4",
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client": "1.5.374.78"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"bin/placeholder/OpcPks.Core.dll": {}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"bin/placeholder/OpcPks.Core.dll": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": {
|
||||||
|
"sha512": "fGLiCRLMYd00JYpClraLjJTNKLmMJPnqxMaiRzEBIIvevlzxz33mXy39Lkd48hu1G+N21S7QpaO5ZzKsI6FRuA==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "microsoft.extensions.dependencyinjection.abstractions/8.0.1",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"Icon.png",
|
||||||
|
"LICENSE.TXT",
|
||||||
|
"PACKAGE.md",
|
||||||
|
"THIRD-PARTY-NOTICES.TXT",
|
||||||
|
"buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets",
|
||||||
|
"buildTransitive/net462/_._",
|
||||||
|
"buildTransitive/net6.0/_._",
|
||||||
|
"buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets",
|
||||||
|
"lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
|
||||||
|
"lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
|
||||||
|
"lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
|
||||||
|
"lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
|
||||||
|
"lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
|
||||||
|
"lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
|
||||||
|
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
|
||||||
|
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
|
||||||
|
"lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
|
||||||
|
"lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
|
||||||
|
"lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
|
||||||
|
"lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
|
||||||
|
"microsoft.extensions.dependencyinjection.abstractions.8.0.1.nupkg.sha512",
|
||||||
|
"microsoft.extensions.dependencyinjection.abstractions.nuspec",
|
||||||
|
"useSharedDesignerContext.txt"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions/8.0.1": {
|
||||||
|
"sha512": "RIFgaqoaINxkM2KTOw72dmilDmTrYA0ns2KW4lDz4gZ2+o6IQ894CzmdL3StM2oh7QQq44nCWiqKqc4qUI9Jmg==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "microsoft.extensions.logging.abstractions/8.0.1",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"Icon.png",
|
||||||
|
"LICENSE.TXT",
|
||||||
|
"PACKAGE.md",
|
||||||
|
"THIRD-PARTY-NOTICES.TXT",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets",
|
||||||
|
"buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets",
|
||||||
|
"buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets",
|
||||||
|
"buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets",
|
||||||
|
"buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets",
|
||||||
|
"lib/net462/Microsoft.Extensions.Logging.Abstractions.dll",
|
||||||
|
"lib/net462/Microsoft.Extensions.Logging.Abstractions.xml",
|
||||||
|
"lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll",
|
||||||
|
"lib/net6.0/Microsoft.Extensions.Logging.Abstractions.xml",
|
||||||
|
"lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll",
|
||||||
|
"lib/net7.0/Microsoft.Extensions.Logging.Abstractions.xml",
|
||||||
|
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll",
|
||||||
|
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml",
|
||||||
|
"lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll",
|
||||||
|
"lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml",
|
||||||
|
"microsoft.extensions.logging.abstractions.8.0.1.nupkg.sha512",
|
||||||
|
"microsoft.extensions.logging.abstractions.nuspec",
|
||||||
|
"useSharedDesignerContext.txt"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Newtonsoft.Json/13.0.3": {
|
||||||
|
"sha512": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "newtonsoft.json/13.0.3",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"LICENSE.md",
|
||||||
|
"README.md",
|
||||||
|
"lib/net20/Newtonsoft.Json.dll",
|
||||||
|
"lib/net20/Newtonsoft.Json.xml",
|
||||||
|
"lib/net35/Newtonsoft.Json.dll",
|
||||||
|
"lib/net35/Newtonsoft.Json.xml",
|
||||||
|
"lib/net40/Newtonsoft.Json.dll",
|
||||||
|
"lib/net40/Newtonsoft.Json.xml",
|
||||||
|
"lib/net45/Newtonsoft.Json.dll",
|
||||||
|
"lib/net45/Newtonsoft.Json.xml",
|
||||||
|
"lib/net6.0/Newtonsoft.Json.dll",
|
||||||
|
"lib/net6.0/Newtonsoft.Json.xml",
|
||||||
|
"lib/netstandard1.0/Newtonsoft.Json.dll",
|
||||||
|
"lib/netstandard1.0/Newtonsoft.Json.xml",
|
||||||
|
"lib/netstandard1.3/Newtonsoft.Json.dll",
|
||||||
|
"lib/netstandard1.3/Newtonsoft.Json.xml",
|
||||||
|
"lib/netstandard2.0/Newtonsoft.Json.dll",
|
||||||
|
"lib/netstandard2.0/Newtonsoft.Json.xml",
|
||||||
|
"newtonsoft.json.13.0.3.nupkg.sha512",
|
||||||
|
"newtonsoft.json.nuspec",
|
||||||
|
"packageIcon.png"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Npgsql/8.0.4": {
|
||||||
|
"sha512": "vaYEUlF/pB9m8bs21wQv3Da0kMHT4A9USe47VfY/L2BO97xz5KfIxhEu22QS9d68ZrLxvtL3wQDfDLPr2OjbjA==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "npgsql/8.0.4",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"README.md",
|
||||||
|
"lib/net6.0/Npgsql.dll",
|
||||||
|
"lib/net6.0/Npgsql.xml",
|
||||||
|
"lib/net7.0/Npgsql.dll",
|
||||||
|
"lib/net7.0/Npgsql.xml",
|
||||||
|
"lib/net8.0/Npgsql.dll",
|
||||||
|
"lib/net8.0/Npgsql.xml",
|
||||||
|
"lib/netstandard2.0/Npgsql.dll",
|
||||||
|
"lib/netstandard2.0/Npgsql.xml",
|
||||||
|
"lib/netstandard2.1/Npgsql.dll",
|
||||||
|
"lib/netstandard2.1/Npgsql.xml",
|
||||||
|
"npgsql.8.0.4.nupkg.sha512",
|
||||||
|
"npgsql.nuspec",
|
||||||
|
"postgresql.png"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client/1.5.374.78": {
|
||||||
|
"sha512": "MXd8GIxpZ2u4Tbb78wyQzqeyhSgyedZtegHYz7pOM0AmSiMwg/Eghx3xqO/owqo1dsyW20zf0mZflUcNX8rIOQ==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "opcfoundation.netstandard.opc.ua.client/1.5.374.78",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"NugetREADME.md",
|
||||||
|
"OPC Foundation MIT license.txt",
|
||||||
|
"images/logo.jpg",
|
||||||
|
"lib/net472/Opc.Ua.Client.dll",
|
||||||
|
"lib/net472/Opc.Ua.Client.xml",
|
||||||
|
"lib/net48/Opc.Ua.Client.dll",
|
||||||
|
"lib/net48/Opc.Ua.Client.xml",
|
||||||
|
"lib/net6.0/Opc.Ua.Client.dll",
|
||||||
|
"lib/net6.0/Opc.Ua.Client.xml",
|
||||||
|
"lib/net8.0/Opc.Ua.Client.dll",
|
||||||
|
"lib/net8.0/Opc.Ua.Client.xml",
|
||||||
|
"lib/netstandard2.0/Opc.Ua.Client.dll",
|
||||||
|
"lib/netstandard2.0/Opc.Ua.Client.xml",
|
||||||
|
"lib/netstandard2.1/Opc.Ua.Client.dll",
|
||||||
|
"lib/netstandard2.1/Opc.Ua.Client.xml",
|
||||||
|
"opcfoundation.netstandard.opc.ua.client.1.5.374.78.nupkg.sha512",
|
||||||
|
"opcfoundation.netstandard.opc.ua.client.nuspec"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Configuration/1.5.374.78": {
|
||||||
|
"sha512": "bkOZFH+hQsBlZhsci+SaZWrT4yJRnWwmcJLl8BJecWCtW2u6QoC5U1muYHPMN/23ltu8xoy4CPIJMzPR6PNmRw==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "opcfoundation.netstandard.opc.ua.configuration/1.5.374.78",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"NugetREADME.md",
|
||||||
|
"OPC Foundation MIT license.txt",
|
||||||
|
"images/logo.jpg",
|
||||||
|
"lib/net472/Opc.Ua.Configuration.dll",
|
||||||
|
"lib/net472/Opc.Ua.Configuration.xml",
|
||||||
|
"lib/net48/Opc.Ua.Configuration.dll",
|
||||||
|
"lib/net48/Opc.Ua.Configuration.xml",
|
||||||
|
"lib/net6.0/Opc.Ua.Configuration.dll",
|
||||||
|
"lib/net6.0/Opc.Ua.Configuration.xml",
|
||||||
|
"lib/net8.0/Opc.Ua.Configuration.dll",
|
||||||
|
"lib/net8.0/Opc.Ua.Configuration.xml",
|
||||||
|
"lib/netstandard2.0/Opc.Ua.Configuration.dll",
|
||||||
|
"lib/netstandard2.0/Opc.Ua.Configuration.xml",
|
||||||
|
"lib/netstandard2.1/Opc.Ua.Configuration.dll",
|
||||||
|
"lib/netstandard2.1/Opc.Ua.Configuration.xml",
|
||||||
|
"opcfoundation.netstandard.opc.ua.configuration.1.5.374.78.nupkg.sha512",
|
||||||
|
"opcfoundation.netstandard.opc.ua.configuration.nuspec"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Core/1.5.374.78": {
|
||||||
|
"sha512": "iyuo99u7QKv7ZWKGAUxCnGPCzJSThlzn93ce1EDGAH6AnPJHiWtFDQ1n4TlE03kGHA69yO5qlVPLdw+Z/RdYDw==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "opcfoundation.netstandard.opc.ua.core/1.5.374.78",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"NugetREADME.md",
|
||||||
|
"images/logo.jpg",
|
||||||
|
"lib/net472/Opc.Ua.Core.dll",
|
||||||
|
"lib/net472/Opc.Ua.Core.xml",
|
||||||
|
"lib/net48/Opc.Ua.Core.dll",
|
||||||
|
"lib/net48/Opc.Ua.Core.xml",
|
||||||
|
"lib/net6.0/Opc.Ua.Core.dll",
|
||||||
|
"lib/net6.0/Opc.Ua.Core.xml",
|
||||||
|
"lib/net8.0/Opc.Ua.Core.dll",
|
||||||
|
"lib/net8.0/Opc.Ua.Core.xml",
|
||||||
|
"lib/netstandard2.0/Opc.Ua.Core.dll",
|
||||||
|
"lib/netstandard2.0/Opc.Ua.Core.xml",
|
||||||
|
"lib/netstandard2.1/Opc.Ua.Core.dll",
|
||||||
|
"lib/netstandard2.1/Opc.Ua.Core.xml",
|
||||||
|
"licenses/LICENSE.txt",
|
||||||
|
"opcfoundation.netstandard.opc.ua.core.1.5.374.78.nupkg.sha512",
|
||||||
|
"opcfoundation.netstandard.opc.ua.core.nuspec"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates/1.5.374.78": {
|
||||||
|
"sha512": "iT++cPyzSnFAGJo9D0NPtHM+byBvIGeGGi535vGla2CTNAWvU1i7MH2T1PGqoYxiEY7dpKlqBlTtg3MQ3eXBrA==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "opcfoundation.netstandard.opc.ua.security.certificates/1.5.374.78",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"NugetREADME.md",
|
||||||
|
"OPC Foundation MIT license.txt",
|
||||||
|
"images/logo.jpg",
|
||||||
|
"lib/net472/Opc.Ua.Security.Certificates.dll",
|
||||||
|
"lib/net472/Opc.Ua.Security.Certificates.xml",
|
||||||
|
"lib/net48/Opc.Ua.Security.Certificates.dll",
|
||||||
|
"lib/net48/Opc.Ua.Security.Certificates.xml",
|
||||||
|
"lib/net6.0/Opc.Ua.Security.Certificates.dll",
|
||||||
|
"lib/net6.0/Opc.Ua.Security.Certificates.xml",
|
||||||
|
"lib/net8.0/Opc.Ua.Security.Certificates.dll",
|
||||||
|
"lib/net8.0/Opc.Ua.Security.Certificates.xml",
|
||||||
|
"lib/netstandard2.0/Opc.Ua.Security.Certificates.dll",
|
||||||
|
"lib/netstandard2.0/Opc.Ua.Security.Certificates.xml",
|
||||||
|
"lib/netstandard2.1/Opc.Ua.Security.Certificates.dll",
|
||||||
|
"lib/netstandard2.1/Opc.Ua.Security.Certificates.xml",
|
||||||
|
"opcfoundation.netstandard.opc.ua.security.certificates.1.5.374.78.nupkg.sha512",
|
||||||
|
"opcfoundation.netstandard.opc.ua.security.certificates.nuspec"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"System.Formats.Asn1/8.0.1": {
|
||||||
|
"sha512": "XqKba7Mm/koKSjKMfW82olQdmfbI5yqeoLV/tidRp7fbh5rmHAQ5raDI/7SU0swTzv+jgqtUGkzmFxuUg0it1A==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "system.formats.asn1/8.0.1",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"Icon.png",
|
||||||
|
"LICENSE.TXT",
|
||||||
|
"THIRD-PARTY-NOTICES.TXT",
|
||||||
|
"buildTransitive/net461/System.Formats.Asn1.targets",
|
||||||
|
"buildTransitive/net462/_._",
|
||||||
|
"buildTransitive/net6.0/_._",
|
||||||
|
"buildTransitive/netcoreapp2.0/System.Formats.Asn1.targets",
|
||||||
|
"lib/net462/System.Formats.Asn1.dll",
|
||||||
|
"lib/net462/System.Formats.Asn1.xml",
|
||||||
|
"lib/net6.0/System.Formats.Asn1.dll",
|
||||||
|
"lib/net6.0/System.Formats.Asn1.xml",
|
||||||
|
"lib/net7.0/System.Formats.Asn1.dll",
|
||||||
|
"lib/net7.0/System.Formats.Asn1.xml",
|
||||||
|
"lib/net8.0/System.Formats.Asn1.dll",
|
||||||
|
"lib/net8.0/System.Formats.Asn1.xml",
|
||||||
|
"lib/netstandard2.0/System.Formats.Asn1.dll",
|
||||||
|
"lib/netstandard2.0/System.Formats.Asn1.xml",
|
||||||
|
"system.formats.asn1.8.0.1.nupkg.sha512",
|
||||||
|
"system.formats.asn1.nuspec",
|
||||||
|
"useSharedDesignerContext.txt"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"System.Security.Cryptography.Cng/5.0.0": {
|
||||||
|
"sha512": "jIMXsKn94T9JY7PvPq/tMfqa6GAaHpElRDpmG+SuL+D3+sTw2M8VhnibKnN8Tq+4JqbPJ/f+BwtLeDMEnzAvRg==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "system.security.cryptography.cng/5.0.0",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"Icon.png",
|
||||||
|
"LICENSE.TXT",
|
||||||
|
"THIRD-PARTY-NOTICES.TXT",
|
||||||
|
"lib/MonoAndroid10/_._",
|
||||||
|
"lib/MonoTouch10/_._",
|
||||||
|
"lib/net46/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/net461/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/net461/System.Security.Cryptography.Cng.xml",
|
||||||
|
"lib/net462/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/net462/System.Security.Cryptography.Cng.xml",
|
||||||
|
"lib/net47/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/net47/System.Security.Cryptography.Cng.xml",
|
||||||
|
"lib/netcoreapp2.1/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/netcoreapp3.0/System.Security.Cryptography.Cng.xml",
|
||||||
|
"lib/netstandard1.3/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/netstandard1.4/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/netstandard1.6/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/netstandard2.0/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/netstandard2.0/System.Security.Cryptography.Cng.xml",
|
||||||
|
"lib/netstandard2.1/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/netstandard2.1/System.Security.Cryptography.Cng.xml",
|
||||||
|
"lib/uap10.0.16299/_._",
|
||||||
|
"lib/xamarinios10/_._",
|
||||||
|
"lib/xamarinmac20/_._",
|
||||||
|
"lib/xamarintvos10/_._",
|
||||||
|
"lib/xamarinwatchos10/_._",
|
||||||
|
"ref/MonoAndroid10/_._",
|
||||||
|
"ref/MonoTouch10/_._",
|
||||||
|
"ref/net46/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/net461/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/net461/System.Security.Cryptography.Cng.xml",
|
||||||
|
"ref/net462/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/net462/System.Security.Cryptography.Cng.xml",
|
||||||
|
"ref/net47/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/net47/System.Security.Cryptography.Cng.xml",
|
||||||
|
"ref/netcoreapp2.0/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/netcoreapp2.0/System.Security.Cryptography.Cng.xml",
|
||||||
|
"ref/netcoreapp2.1/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/netcoreapp2.1/System.Security.Cryptography.Cng.xml",
|
||||||
|
"ref/netcoreapp3.0/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/netcoreapp3.0/System.Security.Cryptography.Cng.xml",
|
||||||
|
"ref/netstandard1.3/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/netstandard1.4/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/netstandard1.6/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/netstandard2.0/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/netstandard2.0/System.Security.Cryptography.Cng.xml",
|
||||||
|
"ref/netstandard2.1/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/netstandard2.1/System.Security.Cryptography.Cng.xml",
|
||||||
|
"ref/uap10.0.16299/_._",
|
||||||
|
"ref/xamarinios10/_._",
|
||||||
|
"ref/xamarinmac20/_._",
|
||||||
|
"ref/xamarintvos10/_._",
|
||||||
|
"ref/xamarinwatchos10/_._",
|
||||||
|
"runtimes/win/lib/net46/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/net461/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/net461/System.Security.Cryptography.Cng.xml",
|
||||||
|
"runtimes/win/lib/net462/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/net462/System.Security.Cryptography.Cng.xml",
|
||||||
|
"runtimes/win/lib/net47/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/net47/System.Security.Cryptography.Cng.xml",
|
||||||
|
"runtimes/win/lib/netcoreapp2.0/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/netcoreapp2.1/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.xml",
|
||||||
|
"runtimes/win/lib/netstandard1.4/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/uap10.0.16299/_._",
|
||||||
|
"system.security.cryptography.cng.5.0.0.nupkg.sha512",
|
||||||
|
"system.security.cryptography.cng.nuspec",
|
||||||
|
"useSharedDesignerContext.txt",
|
||||||
|
"version.txt"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"OpcPks.Core/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"path": "../OpcPks.Core/OpcPks.Core.csproj",
|
||||||
|
"msbuildProject": "../OpcPks.Core/OpcPks.Core.csproj"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"projectFileDependencyGroups": {
|
||||||
|
"net8.0": [
|
||||||
|
"Npgsql >= 8.0.4",
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client >= 1.5.374.78",
|
||||||
|
"OpcPks.Core >= 1.0.0"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"packageFolders": {
|
||||||
|
"/home/pacer/.nuget/packages/": {}
|
||||||
|
},
|
||||||
|
"project": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"restore": {
|
||||||
|
"projectUniqueName": "/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/OpcPks.Collector.csproj",
|
||||||
|
"projectName": "OpcPks.Collector",
|
||||||
|
"projectPath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/OpcPks.Collector.csproj",
|
||||||
|
"packagesPath": "/home/pacer/.nuget/packages/",
|
||||||
|
"outputPath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/obj/",
|
||||||
|
"projectStyle": "PackageReference",
|
||||||
|
"configFilePaths": [
|
||||||
|
"/home/pacer/.nuget/NuGet/NuGet.Config"
|
||||||
|
],
|
||||||
|
"originalTargetFrameworks": [
|
||||||
|
"net8.0"
|
||||||
|
],
|
||||||
|
"sources": {
|
||||||
|
"https://api.nuget.org/v3/index.json": {}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net8.0": {
|
||||||
|
"targetAlias": "net8.0",
|
||||||
|
"projectReferences": {
|
||||||
|
"/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj": {
|
||||||
|
"projectPath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"warningProperties": {
|
||||||
|
"warnAsError": [
|
||||||
|
"NU1605"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net8.0": {
|
||||||
|
"targetAlias": "net8.0",
|
||||||
|
"dependencies": {
|
||||||
|
"Npgsql": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[8.0.4, )"
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[1.5.374.78, )"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"net461",
|
||||||
|
"net462",
|
||||||
|
"net47",
|
||||||
|
"net471",
|
||||||
|
"net472",
|
||||||
|
"net48",
|
||||||
|
"net481"
|
||||||
|
],
|
||||||
|
"assetTargetFallback": true,
|
||||||
|
"warn": true,
|
||||||
|
"frameworkReferences": {
|
||||||
|
"Microsoft.NETCore.App": {
|
||||||
|
"privateAssets": "all"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeIdentifierGraphPath": "/usr/lib/dotnet/sdk/8.0.124/PortableRuntimeIdentifierGraph.json"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
19
OpcPksPlatform/OpcPks.Collector/obj/project.nuget.cache
Normal file
19
OpcPksPlatform/OpcPks.Collector/obj/project.nuget.cache
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"dgSpecHash": "Ss/LGtmEz6bGqFLDBeOQraeIOz4GJx8DXco1HIk9iTBKYbd6NwtokIeOYq2RppLVb7CosaTJxhVcfARA/lFnlQ==",
|
||||||
|
"success": true,
|
||||||
|
"projectFilePath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Collector/OpcPks.Collector.csproj",
|
||||||
|
"expectedPackageFiles": [
|
||||||
|
"/home/pacer/.nuget/packages/microsoft.extensions.dependencyinjection.abstractions/8.0.1/microsoft.extensions.dependencyinjection.abstractions.8.0.1.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/microsoft.extensions.logging.abstractions/8.0.1/microsoft.extensions.logging.abstractions.8.0.1.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/newtonsoft.json/13.0.3/newtonsoft.json.13.0.3.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/npgsql/8.0.4/npgsql.8.0.4.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/opcfoundation.netstandard.opc.ua.client/1.5.374.78/opcfoundation.netstandard.opc.ua.client.1.5.374.78.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/opcfoundation.netstandard.opc.ua.configuration/1.5.374.78/opcfoundation.netstandard.opc.ua.configuration.1.5.374.78.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/opcfoundation.netstandard.opc.ua.core/1.5.374.78/opcfoundation.netstandard.opc.ua.core.1.5.374.78.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/opcfoundation.netstandard.opc.ua.security.certificates/1.5.374.78/opcfoundation.netstandard.opc.ua.security.certificates.1.5.374.78.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/system.formats.asn1/8.0.1/system.formats.asn1.8.0.1.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/system.security.cryptography.cng/5.0.0/system.security.cryptography.cng.5.0.0.nupkg.sha512"
|
||||||
|
],
|
||||||
|
"logs": []
|
||||||
|
}
|
||||||
6
OpcPksPlatform/OpcPks.Core/Class1.cs
Normal file
6
OpcPksPlatform/OpcPks.Core/Class1.cs
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
namespace OpcPks.Core;
|
||||||
|
|
||||||
|
public class Class1
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
71
OpcPksPlatform/OpcPks.Core/Data/AssetLoader.cs
Normal file
71
OpcPksPlatform/OpcPks.Core/Data/AssetLoader.cs
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Npgsql;
|
||||||
|
using OpcPks.Core.Data;
|
||||||
|
|
||||||
|
namespace OpcPks.Core.Data
|
||||||
|
{
|
||||||
|
public class AssetLoader
|
||||||
|
{
|
||||||
|
public async Task ImportFullMapAsync(string csvPath)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"🚀 CSV 데이터 로드 시작: {csvPath}");
|
||||||
|
|
||||||
|
if (!File.Exists(csvPath))
|
||||||
|
{
|
||||||
|
Console.WriteLine("❌ 파일을 찾을 수 없습니다.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CSV 파일 읽기 (첫 줄 헤더 제외)
|
||||||
|
var lines = await File.ReadAllLinesAsync(csvPath);
|
||||||
|
Console.WriteLine($"📊 총 {lines.Length - 1}개의 라인을 처리합니다...");
|
||||||
|
|
||||||
|
using var conn = new NpgsqlConnection(DbConfig.ConnectionString);
|
||||||
|
await conn.OpenAsync();
|
||||||
|
|
||||||
|
// PostgreSQL Binary Copy 시작
|
||||||
|
// level, class, name, node_id, data_type 총 5개 필드
|
||||||
|
using (var writer = conn.BeginBinaryImport("COPY raw_node_map (level, class, name, node_id, data_type) FROM STDIN (FORMAT BINARY)"))
|
||||||
|
{
|
||||||
|
int count = 0;
|
||||||
|
for (int i = 1; i < lines.Length; i++) // i=1 부터 시작하여 헤더 스킵
|
||||||
|
{
|
||||||
|
var line = lines[i];
|
||||||
|
if (string.IsNullOrWhiteSpace(line)) continue;
|
||||||
|
|
||||||
|
var cols = line.Split(',');
|
||||||
|
if (cols.Length < 4) continue; // 최소 4개 필드(NodeId까지)는 있어야 함
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
writer.StartRow();
|
||||||
|
// 1. Level (int)
|
||||||
|
writer.Write(int.Parse(cols[0]), NpgsqlTypes.NpgsqlDbType.Integer);
|
||||||
|
// 2. Class (string)
|
||||||
|
writer.Write(cols[1], NpgsqlTypes.NpgsqlDbType.Text);
|
||||||
|
// 3. Name (string)
|
||||||
|
writer.Write(cols[2], NpgsqlTypes.NpgsqlDbType.Text);
|
||||||
|
// 4. NodeId (string)
|
||||||
|
writer.Write(cols[3], NpgsqlTypes.NpgsqlDbType.Text);
|
||||||
|
|
||||||
|
// 5. DataType (데이터가 없으면 "Unknown" 처리)
|
||||||
|
string dataType = cols.Length > 4 ? cols[4].Trim() : "Unknown";
|
||||||
|
writer.Write(dataType, NpgsqlTypes.NpgsqlDbType.Text);
|
||||||
|
|
||||||
|
count++;
|
||||||
|
if (count % 50000 == 0) Console.WriteLine($"... {count}개 처리 중");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"⚠️ 에러 발생 (라인 {i+1}): {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await writer.CompleteAsync();
|
||||||
|
Console.WriteLine($"✅ 총 {count}개 노드 로드 완료!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
8
OpcPksPlatform/OpcPks.Core/Data/DbConfig.cs
Normal file
8
OpcPksPlatform/OpcPks.Core/Data/DbConfig.cs
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
namespace OpcPks.Core.Data
|
||||||
|
{
|
||||||
|
public static class DbConfig
|
||||||
|
{
|
||||||
|
// PostgreSQL 접속 정보로 수정하세요.
|
||||||
|
public static string ConnectionString = "Host=localhost;Username=pacer;Password=pacer;Database=opcdb";
|
||||||
|
}
|
||||||
|
}
|
||||||
522280
OpcPksPlatform/OpcPks.Core/Data/Honeywell_FullMap.csv
Normal file
522280
OpcPksPlatform/OpcPks.Core/Data/Honeywell_FullMap.csv
Normal file
File diff suppressed because it is too large
Load Diff
24
OpcPksPlatform/OpcPks.Core/Data/pki/own/certs/8845hs.crt
Executable file
24
OpcPksPlatform/OpcPks.Core/Data/pki/own/certs/8845hs.crt
Executable file
@@ -0,0 +1,24 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEAzCCAuugAwIBAgIUdxkuyO0kUlLnKYoSV4bt7FJZ7+4wDQYJKoZIhvcNAQEL
|
||||||
|
BQAwgZAxCzAJBgNVBAYTAktPMQ4wDAYDVQQIDAVTZW91bDEOMAwGA1UEBwwFU2Vv
|
||||||
|
dWwxFjAUBgNVBAoMDWhhbm1vIGNvbnRyb2wxEDAOBgNVBAsMB2NvbnRyb2wxEDAO
|
||||||
|
BgNVBAMMB25ldHdvcmsxJTAjBgkqhkiG9w0BCQEWFmNvbnRhY3RAaGFubW9jbm4u
|
||||||
|
Y28ua3IwHhcNMjYwMjIyMDUzNDExWhcNMzYwMjIwMDUzNDExWjCBkDELMAkGA1UE
|
||||||
|
BhMCS08xDjAMBgNVBAgMBVNlb3VsMQ4wDAYDVQQHDAVTZW91bDEWMBQGA1UECgwN
|
||||||
|
aGFubW8gY29udHJvbDEQMA4GA1UECwwHY29udHJvbDEQMA4GA1UEAwwHbmV0d29y
|
||||||
|
azElMCMGCSqGSIb3DQEJARYWY29udGFjdEBoYW5tb2Nubi5jby5rcjCCASIwDQYJ
|
||||||
|
KoZIhvcNAQEBBQADggEPADCCAQoCggEBANV459zeHqHfvkfVfPeXu3lUOQfHvX9T
|
||||||
|
ca2roF8G1e3NKUQJeuCPCCwK1AM+++lyw70iGmIoULkSwMtIlAloKtyrf5FG/LWB
|
||||||
|
bUdjirF157CrkpITXmNuDDxTbVn6YXLZHC5R+OhZXH32iUj1aTq3tx37lOmTh3R/
|
||||||
|
IZOGxsLkCGDni0GirE54Z0ufdl6CFr8FfcakVO+9Y6SEUEsZp4uybrA5LfprZlj/
|
||||||
|
2uXu9svMoePTOb8D7MMg6WfZrsOb4hMg483P9t1rHqMg2AESbOT4N9H3HFDDrA5l
|
||||||
|
w7KozmIwCeskYeLQPGX/DQ+GxYGoezfsWSM1fXKM/0XNskXqZGmi59UCAwEAAaNT
|
||||||
|
MFEwHQYDVR0OBBYEFI3WwCA/ZNQgUkTaZtQttffbcnpeMB8GA1UdIwQYMBaAFI3W
|
||||||
|
wCA/ZNQgUkTaZtQttffbcnpeMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
|
||||||
|
BQADggEBAEHVsKOCTJSY7Hk0rLXb5yU7qbiS3uHq8elm+2JGaodJZ7TPnWuyqkEF
|
||||||
|
9/7713Y7MAXHcv2qEYeIE+qS4ZrlT9Xz+xf452zd+xRpUq6j4PBlKwEM77uXHnNl
|
||||||
|
yO0g1GgIdBRz5F61ESWfvwfR1GJ2Q3j0ry5qZPlVD1KjJyGYL8DJdVBsg/yJ62+M
|
||||||
|
xYFSk2JrRxU/JiV/Dq7Mxy3hvGupVGjdcQdnW/1xZK+xmWDG5ky+u/3qcH9nNlce
|
||||||
|
UiblRoYjlrdHnrVi3VAJFaquJZNwDr/Ar+LSxDHjEzDtpby9Q6VbtDnA77GcG7vn
|
||||||
|
TsBE6iGyly9WG9Q0dgNKEw59ciRGi6M=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
28
OpcPksPlatform/OpcPks.Core/Data/pki/own/private/8845hs.key
Executable file
28
OpcPksPlatform/OpcPks.Core/Data/pki/own/private/8845hs.key
Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDVeOfc3h6h375H
|
||||||
|
1Xz3l7t5VDkHx71/U3Gtq6BfBtXtzSlECXrgjwgsCtQDPvvpcsO9IhpiKFC5EsDL
|
||||||
|
SJQJaCrcq3+RRvy1gW1HY4qxdeewq5KSE15jbgw8U21Z+mFy2RwuUfjoWVx99olI
|
||||||
|
9Wk6t7cd+5Tpk4d0fyGThsbC5Ahg54tBoqxOeGdLn3Zegha/BX3GpFTvvWOkhFBL
|
||||||
|
GaeLsm6wOS36a2ZY/9rl7vbLzKHj0zm/A+zDIOln2a7Dm+ITIOPNz/bdax6jINgB
|
||||||
|
Emzk+DfR9xxQw6wOZcOyqM5iMAnrJGHi0Dxl/w0PhsWBqHs37FkjNX1yjP9FzbJF
|
||||||
|
6mRpoufVAgMBAAECggEABhcvglk3WttP31Z40iBFoeC5ydOJ6rk+QTwS1MiUpPbE
|
||||||
|
Cnlnb0MVcsWSUU9kOj+4fvZwoJlRiEjqhZeaBaoFAwvE6tJcK8TivHUww/8UWlw4
|
||||||
|
JSvL9x6bgcMdl8IcMqh9dILejP6JCYerA2ZhF2LzegsEr3oH6ivQZkL4+8mBcFui
|
||||||
|
1w2vuIMGlJbFbBjiWWvuWe04dRtKQ172PcH1980IGjT3zjwBzn3nbR69LBC+5tDj
|
||||||
|
ORPs/uORUb9SKAtrxlhggRQIehBuTqbmgAiEwEZXH0OaNLUZzUM6b8XfrCLYXEM9
|
||||||
|
Cexh5apqpTR0jDV7WVrCTOSvQ6VcfO5+ibs4DkeqUQKBgQDtDuH347CXDaaWuQqK
|
||||||
|
yOAugpWohFM0LArZySV6FXjX/fqOfpWwGRY6SAftF+GmR6MiPphjuI4yW9DsZG1h
|
||||||
|
8FWLwZrwkazVbk2cHwU4CZhoQVuNHhLYhF3G2QcyNqlL8uHb49z4iyvTYr3XFMgn
|
||||||
|
p7qULd0BFfzb04butWylgVy5GQKBgQDmh5Cz7wCeZBOR1KjAJqo8O2BhHp6j2GsA
|
||||||
|
5OmaxZw++O0uqh0JZnJpjXkyEpR7kUOM8+3uvuAti68kQis3chFNlITzNNLLZaDO
|
||||||
|
oy8qwPvPzTSbUVzDD2acfNrM7oHnsJ6IHmHMnzQGLg9zjGJt31wNtJyfdOp7Kn33
|
||||||
|
Q06QRD9wHQKBgQClj65b3YZ4iM0fGQ72zMJdWVBCiGA/4L6XSfdFo3dpinUSTfAn
|
||||||
|
M+4lOCdo/DPZWNDjWso9YyjUnPF2F9GZBCwK1mVqvKLz0PydG8EeWP07WuIg1a8d
|
||||||
|
zpxcAzkWZbypUXFSjHrIjxJFqQGjFF2R7H/Pe5SNbJjTwpDLaKP/lzB2CQKBgDe8
|
||||||
|
TQMD5O1mmsimVspmTsBTRsEUaxyIBY7oyYYPAvDCtG2U2YJdT4ovlz7A+T9K5r8c
|
||||||
|
dslDQuYgII8upE46eO592wsGGXTttExhbdTzZa5fGbn3mOrcPV3WXfwwKh4/OIUG
|
||||||
|
e3TChQx9dGTmayHPX+08XqW62bo/kscGcec1aPUNAoGAUq++tYrNfzWvu8GXTpTI
|
||||||
|
KWhHxRNd3zOOjdG62ss/dFCuZ+hr1gEKZxsHgvEO56wbzNTPsZdY+oq6p/hrOS7P
|
||||||
|
IsNvSmZO0QJeOxnU/NZ1Hyd7sHCYp7guyJOhhPAuFMa7w/8yrYzBVe3PwTp/cnEk
|
||||||
|
lx20RyQMp2eQSQF0gs6hr1U=
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
BIN
OpcPksPlatform/OpcPks.Core/Data/pki/own/private/OpcTestClient.pfx
Executable file
BIN
OpcPksPlatform/OpcPks.Core/Data/pki/own/private/OpcTestClient.pfx
Executable file
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Core/Data/pki/trusted/certs/application_rsa_sha256.der
Executable file
BIN
OpcPksPlatform/OpcPks.Core/Data/pki/trusted/certs/application_rsa_sha256.der
Executable file
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Core/Data/pki/trusted/certs/rootCA.der
Executable file
BIN
OpcPksPlatform/OpcPks.Core/Data/pki/trusted/certs/rootCA.der
Executable file
Binary file not shown.
11
OpcPksPlatform/OpcPks.Core/Models/TagMaster.cs
Normal file
11
OpcPksPlatform/OpcPks.Core/Models/TagMaster.cs
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
namespace OpcPks.Core.Models;
|
||||||
|
|
||||||
|
public class TagMaster
|
||||||
|
{
|
||||||
|
public string TagName { get; set; } = string.Empty;
|
||||||
|
public string FullNodeId { get; set; } = string.Empty; // NodeId 대신 크롤러가 찾는 이름
|
||||||
|
public string Description { get; set; } = string.Empty;
|
||||||
|
public string DataType { get; set; } = string.Empty;
|
||||||
|
public string NodeClass { get; set; } = string.Empty; // 추가
|
||||||
|
public int Level { get; set; } // string에서 int로 변경 (크롤러 연산용)
|
||||||
|
}
|
||||||
11
OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj
Normal file
11
OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net8.0</TargetFramework> <ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Npgsql" Version="8.0.4" />
|
||||||
|
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Client" Version="1.5.374.78" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
145
OpcPksPlatform/OpcPks.Core/Services/HoneywellCrawler.cs
Normal file
145
OpcPksPlatform/OpcPks.Core/Services/HoneywellCrawler.cs
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
using Opc.Ua;
|
||||||
|
using Opc.Ua.Client;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using OpcPks.Core.Models;
|
||||||
|
|
||||||
|
namespace OpcPks.Core.Services
|
||||||
|
{
|
||||||
|
public class HoneywellCrawler
|
||||||
|
{
|
||||||
|
// ✅ Session 대신 ISession 인터페이스를 사용하여 호환성 확보
|
||||||
|
private readonly ISession _session;
|
||||||
|
private readonly List<TagMaster> _discoveredTags = new();
|
||||||
|
|
||||||
|
public HoneywellCrawler(ISession session)
|
||||||
|
{
|
||||||
|
_session = session ?? throw new ArgumentNullException(nameof(session));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 탐사 시작점
|
||||||
|
/// </summary>
|
||||||
|
public async Task RunAsync(string startNodeId, string csvPath)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"\n🚀 하니웰 자산모델 탐사 시작: {startNodeId}");
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_discoveredTags.Clear();
|
||||||
|
NodeId rootNode = NodeId.Parse(startNodeId);
|
||||||
|
await BrowseRecursiveAsync(rootNode, 0);
|
||||||
|
|
||||||
|
Console.WriteLine("\n===============================================");
|
||||||
|
Console.WriteLine($"✅ 탐사 완료! 총 {_discoveredTags.Count}개의 항목 발견.");
|
||||||
|
Console.WriteLine("===============================================");
|
||||||
|
|
||||||
|
SaveToCsv(csvPath);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"❌ 탐사 중 오류: {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task BrowseRecursiveAsync(NodeId nodeId, int level)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
BrowseDescription description = new() {
|
||||||
|
NodeId = nodeId,
|
||||||
|
BrowseDirection = BrowseDirection.Forward,
|
||||||
|
ReferenceTypeId = ReferenceTypeIds.HierarchicalReferences,
|
||||||
|
IncludeSubtypes = true,
|
||||||
|
NodeClassMask = (uint)(NodeClass.Variable | NodeClass.Object),
|
||||||
|
ResultMask = (uint)BrowseResultMask.All
|
||||||
|
};
|
||||||
|
|
||||||
|
// BrowseAsync 호출
|
||||||
|
BrowseResponse response = await _session.BrowseAsync(null, null, 0, new BrowseDescriptionCollection { description }, default);
|
||||||
|
|
||||||
|
if (response?.Results == null || response.Results.Count == 0) return;
|
||||||
|
|
||||||
|
foreach (var result in response.Results)
|
||||||
|
{
|
||||||
|
await ProcessReferencesAsync(result.References, level);
|
||||||
|
|
||||||
|
byte[] cp = result.ContinuationPoint;
|
||||||
|
while (cp != null && cp.Length > 0)
|
||||||
|
{
|
||||||
|
// ✅ ByteStringCollection을 사용하여 라이브러리 표준 인자 타입 일치화
|
||||||
|
var cpCollection = new ByteStringCollection { cp };
|
||||||
|
BrowseNextResponse nextResponse = await _session.BrowseNextAsync(null, false, cpCollection, default);
|
||||||
|
|
||||||
|
if (nextResponse?.Results != null && nextResponse.Results.Count > 0)
|
||||||
|
{
|
||||||
|
await ProcessReferencesAsync(nextResponse.Results[0].References, level);
|
||||||
|
cp = nextResponse.Results[0].ContinuationPoint;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cp = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception) { /* 접근 권한 없는 노드는 무시 */ }
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task ProcessReferencesAsync(ReferenceDescriptionCollection references, int level)
|
||||||
|
{
|
||||||
|
if (references == null || references.Count == 0) return;
|
||||||
|
|
||||||
|
foreach (var rd in references)
|
||||||
|
{
|
||||||
|
// ExpandedNodeId -> NodeId 변환
|
||||||
|
NodeId childId = ExpandedNodeId.ToNodeId(rd.NodeId, _session.NamespaceUris);
|
||||||
|
|
||||||
|
// TagMaster 모델 규격에 맞춰 데이터 추가
|
||||||
|
_discoveredTags.Add(new TagMaster
|
||||||
|
{
|
||||||
|
TagName = rd.BrowseName.Name ?? "Unknown",
|
||||||
|
FullNodeId = childId.ToString(),
|
||||||
|
NodeClass = rd.NodeClass.ToString(),
|
||||||
|
Level = level
|
||||||
|
});
|
||||||
|
|
||||||
|
string indent = new string(' ', level * 2);
|
||||||
|
Console.WriteLine($"{indent} [{rd.NodeClass}] {rd.BrowseName.Name} (ID: {childId})");
|
||||||
|
|
||||||
|
// 하위 폴더(Object)가 있고 탐사 깊이가 5단계 미만이면 재귀 탐색
|
||||||
|
if (rd.NodeClass == NodeClass.Object && level < 5)
|
||||||
|
{
|
||||||
|
await BrowseRecursiveAsync(childId, level + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SaveToCsv(string filePath)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// 디렉토리가 없으면 생성
|
||||||
|
string dir = Path.GetDirectoryName(filePath);
|
||||||
|
if (!string.IsNullOrEmpty(dir) && !Directory.Exists(dir))
|
||||||
|
{
|
||||||
|
Directory.CreateDirectory(dir);
|
||||||
|
}
|
||||||
|
|
||||||
|
using StreamWriter sw = new(filePath);
|
||||||
|
sw.WriteLine("Level,Class,Name,NodeId");
|
||||||
|
foreach (var tag in _discoveredTags)
|
||||||
|
{
|
||||||
|
sw.WriteLine($"{tag.Level},{tag.NodeClass},{tag.TagName},{tag.FullNodeId}");
|
||||||
|
}
|
||||||
|
Console.WriteLine($"💾 CSV 저장 완료: {filePath}");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"❌ CSV 저장 실패: {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
108
OpcPksPlatform/OpcPks.Core/Services/OpcSessionManager.cs
Normal file
108
OpcPksPlatform/OpcPks.Core/Services/OpcSessionManager.cs
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
using Opc.Ua;
|
||||||
|
using Opc.Ua.Client;
|
||||||
|
using System.Security.Cryptography.X509Certificates;
|
||||||
|
using System.Net;
|
||||||
|
|
||||||
|
namespace OpcPks.Core.Services
|
||||||
|
{
|
||||||
|
public class OpcSessionManager
|
||||||
|
{
|
||||||
|
private ISession? _session;
|
||||||
|
public ISession? Session => _session;
|
||||||
|
|
||||||
|
public async Task<ISession> GetSessionAsync()
|
||||||
|
{
|
||||||
|
if (_session != null && _session.Connected) return _session;
|
||||||
|
|
||||||
|
string serverHostName = "192.168.0.20";
|
||||||
|
string endpointUrl = $"opc.tcp://{serverHostName}:4840";
|
||||||
|
string applicationUri = "urn:dbsvr:OpcTestClient";
|
||||||
|
string userName = "mngr";
|
||||||
|
string password = "mngr";
|
||||||
|
string pfxPassword = ""; // openssl에서 확인한 비밀번호가 있다면 입력
|
||||||
|
|
||||||
|
string baseDataPath = "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/Data/pki";
|
||||||
|
string pfxFilePath = Path.Combine(baseDataPath, "own/private/OpcTestClient.pfx");
|
||||||
|
|
||||||
|
var config = new ApplicationConfiguration {
|
||||||
|
ApplicationName = "OpcTestClient",
|
||||||
|
ApplicationType = ApplicationType.Client,
|
||||||
|
ApplicationUri = applicationUri,
|
||||||
|
SecurityConfiguration = new SecurityConfiguration {
|
||||||
|
ApplicationCertificate = new CertificateIdentifier {
|
||||||
|
StoreType = "Directory",
|
||||||
|
StorePath = Path.Combine(baseDataPath, "own"),
|
||||||
|
SubjectName = "OpcTestClient"
|
||||||
|
},
|
||||||
|
TrustedPeerCertificates = new CertificateTrustList {
|
||||||
|
StoreType = "Directory",
|
||||||
|
StorePath = Path.Combine(baseDataPath, "trusted")
|
||||||
|
},
|
||||||
|
AutoAcceptUntrustedCertificates = true,
|
||||||
|
AddAppCertToTrustedStore = true
|
||||||
|
},
|
||||||
|
TransportQuotas = new TransportQuotas { OperationTimeout = 60000 },
|
||||||
|
ClientConfiguration = new ClientConfiguration { DefaultSessionTimeout = 60000 }
|
||||||
|
};
|
||||||
|
|
||||||
|
// 1. [인증서 강제 로드] Validate 호출 전에 인증서를 명시적으로 로드합니다.
|
||||||
|
if (!File.Exists(pfxFilePath)) {
|
||||||
|
throw new Exception($"❌ PFX 파일을 찾을 수 없습니다: {pfxFilePath}");
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 리눅스 .NET 호환용 플래그
|
||||||
|
var cert = new X509Certificate2(
|
||||||
|
pfxFilePath,
|
||||||
|
pfxPassword,
|
||||||
|
X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet
|
||||||
|
);
|
||||||
|
|
||||||
|
// config에 인증서 직접 주입
|
||||||
|
config.SecurityConfiguration.ApplicationCertificate.Certificate = cert;
|
||||||
|
Console.WriteLine($"✅ [인증서 로드] {cert.Subject}");
|
||||||
|
} catch (Exception ex) {
|
||||||
|
Console.WriteLine($"❌ [인증서 에러] PFX 로드 실패: {ex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 설정 검증 (인증서 주입 후 실행)
|
||||||
|
await config.Validate(ApplicationType.Client);
|
||||||
|
|
||||||
|
// Validate 이후 인증서가 풀렸을 경우를 대비해 다시 확인
|
||||||
|
if (config.SecurityConfiguration.ApplicationCertificate.Certificate == null) {
|
||||||
|
Console.WriteLine("⚠️ [경고] Validate 과정에서 인증서 설정이 유실되어 재할당합니다.");
|
||||||
|
config.SecurityConfiguration.ApplicationCertificate.Certificate = new X509Certificate2(pfxFilePath, pfxPassword, X509KeyStorageFlags.MachineKeySet);
|
||||||
|
}
|
||||||
|
|
||||||
|
config.CertificateValidator.CertificateValidation += (s, e) => { e.Accept = true; };
|
||||||
|
|
||||||
|
// 3. 엔드포인트 선택 및 보안 정책 로그
|
||||||
|
var endpointDescription = CoreClientUtils.SelectEndpoint(endpointUrl, true);
|
||||||
|
var endpointConfiguration = EndpointConfiguration.Create(config);
|
||||||
|
var configuredEndpoint = new ConfiguredEndpoint(null, endpointDescription, endpointConfiguration);
|
||||||
|
|
||||||
|
Console.WriteLine($"📡 [세션] 연결 시도: {endpointUrl}");
|
||||||
|
Console.WriteLine($"🔐 [보안] {endpointDescription.SecurityPolicyUri} ({endpointDescription.SecurityMode})");
|
||||||
|
|
||||||
|
// 4. 세션 생성 시도
|
||||||
|
try {
|
||||||
|
_session = await Opc.Ua.Client.Session.Create(
|
||||||
|
config,
|
||||||
|
configuredEndpoint,
|
||||||
|
true,
|
||||||
|
"OpcPksSession",
|
||||||
|
60000,
|
||||||
|
new UserIdentity(userName, password),
|
||||||
|
null
|
||||||
|
);
|
||||||
|
Console.WriteLine("🚀 [성공] 하니웰 서버와 연결되었습니다!");
|
||||||
|
} catch (ServiceResultException srex) {
|
||||||
|
Console.WriteLine($"❌ [OPC 에러] {srex.StatusCode}: {srex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
return _session;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"runtimeTarget": {
|
||||||
|
"name": ".NETCoreApp,Version=v8.0",
|
||||||
|
"signature": ""
|
||||||
|
},
|
||||||
|
"compilationOptions": {},
|
||||||
|
"targets": {
|
||||||
|
".NETCoreApp,Version=v8.0": {
|
||||||
|
"OpcPks.Core/1.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"Npgsql": "8.0.4",
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client": "1.5.374.78"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"OpcPks.Core.dll": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
|
||||||
|
"assemblyVersion": "8.0.0.0",
|
||||||
|
"fileVersion": "8.0.324.11423"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions/8.0.1": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": {
|
||||||
|
"assemblyVersion": "8.0.0.0",
|
||||||
|
"fileVersion": "8.0.324.11423"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Newtonsoft.Json/13.0.3": {
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Newtonsoft.Json.dll": {
|
||||||
|
"assemblyVersion": "13.0.0.0",
|
||||||
|
"fileVersion": "13.0.3.27908"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Npgsql/8.0.4": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions": "8.0.1"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Npgsql.dll": {
|
||||||
|
"assemblyVersion": "8.0.4.0",
|
||||||
|
"fileVersion": "8.0.4.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client/1.5.374.78": {
|
||||||
|
"dependencies": {
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Configuration": "1.5.374.78",
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.374.78"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Opc.Ua.Client.dll": {
|
||||||
|
"assemblyVersion": "1.5.374.0",
|
||||||
|
"fileVersion": "1.5.374.78"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Configuration/1.5.374.78": {
|
||||||
|
"dependencies": {
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.374.78"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Opc.Ua.Configuration.dll": {
|
||||||
|
"assemblyVersion": "1.5.374.0",
|
||||||
|
"fileVersion": "1.5.374.78"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Core/1.5.374.78": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions": "8.0.1",
|
||||||
|
"Newtonsoft.Json": "13.0.3",
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates": "1.5.374.78"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Opc.Ua.Core.dll": {
|
||||||
|
"assemblyVersion": "1.5.374.0",
|
||||||
|
"fileVersion": "1.5.374.78"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates/1.5.374.78": {
|
||||||
|
"dependencies": {
|
||||||
|
"System.Formats.Asn1": "8.0.1",
|
||||||
|
"System.Security.Cryptography.Cng": "5.0.0"
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Opc.Ua.Security.Certificates.dll": {
|
||||||
|
"assemblyVersion": "1.5.374.0",
|
||||||
|
"fileVersion": "1.5.374.78"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Formats.Asn1/8.0.1": {},
|
||||||
|
"System.Security.Cryptography.Cng/5.0.0": {
|
||||||
|
"dependencies": {
|
||||||
|
"System.Formats.Asn1": "8.0.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"OpcPks.Core/1.0.0": {
|
||||||
|
"type": "project",
|
||||||
|
"serviceable": false,
|
||||||
|
"sha512": ""
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-fGLiCRLMYd00JYpClraLjJTNKLmMJPnqxMaiRzEBIIvevlzxz33mXy39Lkd48hu1G+N21S7QpaO5ZzKsI6FRuA==",
|
||||||
|
"path": "microsoft.extensions.dependencyinjection.abstractions/8.0.1",
|
||||||
|
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-RIFgaqoaINxkM2KTOw72dmilDmTrYA0ns2KW4lDz4gZ2+o6IQ894CzmdL3StM2oh7QQq44nCWiqKqc4qUI9Jmg==",
|
||||||
|
"path": "microsoft.extensions.logging.abstractions/8.0.1",
|
||||||
|
"hashPath": "microsoft.extensions.logging.abstractions.8.0.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Newtonsoft.Json/13.0.3": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
|
||||||
|
"path": "newtonsoft.json/13.0.3",
|
||||||
|
"hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"Npgsql/8.0.4": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-vaYEUlF/pB9m8bs21wQv3Da0kMHT4A9USe47VfY/L2BO97xz5KfIxhEu22QS9d68ZrLxvtL3wQDfDLPr2OjbjA==",
|
||||||
|
"path": "npgsql/8.0.4",
|
||||||
|
"hashPath": "npgsql.8.0.4.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client/1.5.374.78": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-MXd8GIxpZ2u4Tbb78wyQzqeyhSgyedZtegHYz7pOM0AmSiMwg/Eghx3xqO/owqo1dsyW20zf0mZflUcNX8rIOQ==",
|
||||||
|
"path": "opcfoundation.netstandard.opc.ua.client/1.5.374.78",
|
||||||
|
"hashPath": "opcfoundation.netstandard.opc.ua.client.1.5.374.78.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Configuration/1.5.374.78": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-bkOZFH+hQsBlZhsci+SaZWrT4yJRnWwmcJLl8BJecWCtW2u6QoC5U1muYHPMN/23ltu8xoy4CPIJMzPR6PNmRw==",
|
||||||
|
"path": "opcfoundation.netstandard.opc.ua.configuration/1.5.374.78",
|
||||||
|
"hashPath": "opcfoundation.netstandard.opc.ua.configuration.1.5.374.78.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Core/1.5.374.78": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-iyuo99u7QKv7ZWKGAUxCnGPCzJSThlzn93ce1EDGAH6AnPJHiWtFDQ1n4TlE03kGHA69yO5qlVPLdw+Z/RdYDw==",
|
||||||
|
"path": "opcfoundation.netstandard.opc.ua.core/1.5.374.78",
|
||||||
|
"hashPath": "opcfoundation.netstandard.opc.ua.core.1.5.374.78.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates/1.5.374.78": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-iT++cPyzSnFAGJo9D0NPtHM+byBvIGeGGi535vGla2CTNAWvU1i7MH2T1PGqoYxiEY7dpKlqBlTtg3MQ3eXBrA==",
|
||||||
|
"path": "opcfoundation.netstandard.opc.ua.security.certificates/1.5.374.78",
|
||||||
|
"hashPath": "opcfoundation.netstandard.opc.ua.security.certificates.1.5.374.78.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Formats.Asn1/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-XqKba7Mm/koKSjKMfW82olQdmfbI5yqeoLV/tidRp7fbh5rmHAQ5raDI/7SU0swTzv+jgqtUGkzmFxuUg0it1A==",
|
||||||
|
"path": "system.formats.asn1/8.0.1",
|
||||||
|
"hashPath": "system.formats.asn1.8.0.1.nupkg.sha512"
|
||||||
|
},
|
||||||
|
"System.Security.Cryptography.Cng/5.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"serviceable": true,
|
||||||
|
"sha512": "sha512-jIMXsKn94T9JY7PvPq/tMfqa6GAaHpElRDpmG+SuL+D3+sTw2M8VhnibKnN8Tq+4JqbPJ/f+BwtLeDMEnzAvRg==",
|
||||||
|
"path": "system.security.cryptography.cng/5.0.0",
|
||||||
|
"hashPath": "system.security.cryptography.cng.5.0.0.nupkg.sha512"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
OpcPksPlatform/OpcPks.Core/bin/Debug/net8.0/OpcPks.Core.dll
Normal file
BIN
OpcPksPlatform/OpcPks.Core/bin/Debug/net8.0/OpcPks.Core.dll
Normal file
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Core/bin/Debug/net8.0/OpcPks.Core.pdb
Normal file
BIN
OpcPksPlatform/OpcPks.Core/bin/Debug/net8.0/OpcPks.Core.pdb
Normal file
Binary file not shown.
@@ -0,0 +1,4 @@
|
|||||||
|
// <autogenerated />
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
[assembly: System.Reflection.AssemblyCompanyAttribute("OpcPks.Core")]
|
||||||
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+171aaf6115cde8e9e930d14886fafa5fe4c1e4c0")]
|
||||||
|
[assembly: System.Reflection.AssemblyProductAttribute("OpcPks.Core")]
|
||||||
|
[assembly: System.Reflection.AssemblyTitleAttribute("OpcPks.Core")]
|
||||||
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|
||||||
|
// Generated by the MSBuild WriteCodeFragment class.
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
fb717191c02dff3f083190ed14d847598609d6461f7931778b4e474636da4508
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
is_global = true
|
||||||
|
build_property.TargetFramework = net8.0
|
||||||
|
build_property.TargetPlatformMinVersion =
|
||||||
|
build_property.UsingMicrosoftNETSdkWeb =
|
||||||
|
build_property.ProjectTypeGuids =
|
||||||
|
build_property.InvariantGlobalization =
|
||||||
|
build_property.PlatformNeutralAssembly =
|
||||||
|
build_property.EnforceExtendedAnalyzerRules =
|
||||||
|
build_property._SupportedPlatformList = Linux,macOS,Windows
|
||||||
|
build_property.RootNamespace = OpcPks.Core
|
||||||
|
build_property.ProjectDir = /home/pacer/projects/OpcPksPlatform/OpcPks.Core/
|
||||||
|
build_property.EnableComHosting =
|
||||||
|
build_property.EnableGeneratedComInterfaceComImportInterop =
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
// <auto-generated/>
|
||||||
|
global using global::System;
|
||||||
|
global using global::System.Collections.Generic;
|
||||||
|
global using global::System.IO;
|
||||||
|
global using global::System.Linq;
|
||||||
|
global using global::System.Net.Http;
|
||||||
|
global using global::System.Threading;
|
||||||
|
global using global::System.Threading.Tasks;
|
||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
2304a9d0dd6384b5068ce141d8c63b025727e909890abc7b08e5f2fff4bf5261
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/bin/Debug/net8.0/OpcPks.Core.deps.json
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/bin/Debug/net8.0/OpcPks.Core.dll
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/bin/Debug/net8.0/OpcPks.Core.pdb
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.csproj.AssemblyReference.cache
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.GeneratedMSBuildEditorConfig.editorconfig
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.AssemblyInfoInputs.cache
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.AssemblyInfo.cs
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.csproj.CoreCompileInputs.cache
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.dll
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/refint/OpcPks.Core.dll
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.pdb
|
||||||
|
/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/ref/OpcPks.Core.dll
|
||||||
BIN
OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.dll
Normal file
BIN
OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.dll
Normal file
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.pdb
Normal file
BIN
OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/OpcPks.Core.pdb
Normal file
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/ref/OpcPks.Core.dll
Normal file
BIN
OpcPksPlatform/OpcPks.Core/obj/Debug/net8.0/ref/OpcPks.Core.dll
Normal file
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,71 @@
|
|||||||
|
{
|
||||||
|
"format": 1,
|
||||||
|
"restore": {
|
||||||
|
"/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj": {}
|
||||||
|
},
|
||||||
|
"projects": {
|
||||||
|
"/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"restore": {
|
||||||
|
"projectUniqueName": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj",
|
||||||
|
"projectName": "OpcPks.Core",
|
||||||
|
"projectPath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj",
|
||||||
|
"packagesPath": "/home/pacer/.nuget/packages/",
|
||||||
|
"outputPath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/",
|
||||||
|
"projectStyle": "PackageReference",
|
||||||
|
"configFilePaths": [
|
||||||
|
"/home/pacer/.nuget/NuGet/NuGet.Config"
|
||||||
|
],
|
||||||
|
"originalTargetFrameworks": [
|
||||||
|
"net8.0"
|
||||||
|
],
|
||||||
|
"sources": {
|
||||||
|
"https://api.nuget.org/v3/index.json": {}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net8.0": {
|
||||||
|
"targetAlias": "net8.0",
|
||||||
|
"projectReferences": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"warningProperties": {
|
||||||
|
"warnAsError": [
|
||||||
|
"NU1605"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net8.0": {
|
||||||
|
"targetAlias": "net8.0",
|
||||||
|
"dependencies": {
|
||||||
|
"Npgsql": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[8.0.4, )"
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[1.5.374.78, )"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"net461",
|
||||||
|
"net462",
|
||||||
|
"net47",
|
||||||
|
"net471",
|
||||||
|
"net472",
|
||||||
|
"net48",
|
||||||
|
"net481"
|
||||||
|
],
|
||||||
|
"assetTargetFallback": true,
|
||||||
|
"warn": true,
|
||||||
|
"frameworkReferences": {
|
||||||
|
"Microsoft.NETCore.App": {
|
||||||
|
"privateAssets": "all"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeIdentifierGraphPath": "/usr/lib/dotnet/sdk/8.0.124/PortableRuntimeIdentifierGraph.json"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||||
|
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||||
|
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||||
|
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/home/pacer/.nuget/packages/</NuGetPackageRoot>
|
||||||
|
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/home/pacer/.nuget/packages/</NuGetPackageFolders>
|
||||||
|
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||||
|
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.8.1</NuGetToolVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<SourceRoot Include="/home/pacer/.nuget/packages/" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<Import Project="$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/8.0.1/buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.extensions.logging.abstractions/8.0.1/buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets')" />
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
623
OpcPksPlatform/OpcPks.Core/obj/project.assets.json
Normal file
623
OpcPksPlatform/OpcPks.Core/obj/project.assets.json
Normal file
@@ -0,0 +1,623 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"targets": {
|
||||||
|
"net8.0": {
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"compile": {
|
||||||
|
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"build": {
|
||||||
|
"buildTransitive/net6.0/_._": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"build": {
|
||||||
|
"buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Newtonsoft.Json/13.0.3": {
|
||||||
|
"type": "package",
|
||||||
|
"compile": {
|
||||||
|
"lib/net6.0/Newtonsoft.Json.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net6.0/Newtonsoft.Json.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Npgsql/8.0.4": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions": "8.0.0"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"lib/net8.0/Npgsql.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Npgsql.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client/1.5.374.78": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Configuration": "1.5.374.78",
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.374.78"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"lib/net8.0/Opc.Ua.Client.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Opc.Ua.Client.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Configuration/1.5.374.78": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Core": "1.5.374.78"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"lib/net8.0/Opc.Ua.Configuration.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Opc.Ua.Configuration.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Core/1.5.374.78": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions": "8.0.1",
|
||||||
|
"Newtonsoft.Json": "13.0.3",
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates": "1.5.374.78"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"lib/net8.0/Opc.Ua.Core.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Opc.Ua.Core.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates/1.5.374.78": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"System.Formats.Asn1": "8.0.1",
|
||||||
|
"System.Security.Cryptography.Cng": "5.0.0"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"lib/net8.0/Opc.Ua.Security.Certificates.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/Opc.Ua.Security.Certificates.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Formats.Asn1/8.0.1": {
|
||||||
|
"type": "package",
|
||||||
|
"compile": {
|
||||||
|
"lib/net8.0/System.Formats.Asn1.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/net8.0/System.Formats.Asn1.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"build": {
|
||||||
|
"buildTransitive/net6.0/_._": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"System.Security.Cryptography.Cng/5.0.0": {
|
||||||
|
"type": "package",
|
||||||
|
"dependencies": {
|
||||||
|
"System.Formats.Asn1": "5.0.0"
|
||||||
|
},
|
||||||
|
"compile": {
|
||||||
|
"ref/netcoreapp3.0/System.Security.Cryptography.Cng.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
"lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll": {
|
||||||
|
"related": ".xml"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeTargets": {
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll": {
|
||||||
|
"assetType": "runtime",
|
||||||
|
"rid": "win"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": {
|
||||||
|
"sha512": "fGLiCRLMYd00JYpClraLjJTNKLmMJPnqxMaiRzEBIIvevlzxz33mXy39Lkd48hu1G+N21S7QpaO5ZzKsI6FRuA==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "microsoft.extensions.dependencyinjection.abstractions/8.0.1",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"Icon.png",
|
||||||
|
"LICENSE.TXT",
|
||||||
|
"PACKAGE.md",
|
||||||
|
"THIRD-PARTY-NOTICES.TXT",
|
||||||
|
"buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets",
|
||||||
|
"buildTransitive/net462/_._",
|
||||||
|
"buildTransitive/net6.0/_._",
|
||||||
|
"buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets",
|
||||||
|
"lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
|
||||||
|
"lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
|
||||||
|
"lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
|
||||||
|
"lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
|
||||||
|
"lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
|
||||||
|
"lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
|
||||||
|
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
|
||||||
|
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
|
||||||
|
"lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
|
||||||
|
"lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
|
||||||
|
"lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
|
||||||
|
"lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
|
||||||
|
"microsoft.extensions.dependencyinjection.abstractions.8.0.1.nupkg.sha512",
|
||||||
|
"microsoft.extensions.dependencyinjection.abstractions.nuspec",
|
||||||
|
"useSharedDesignerContext.txt"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Microsoft.Extensions.Logging.Abstractions/8.0.1": {
|
||||||
|
"sha512": "RIFgaqoaINxkM2KTOw72dmilDmTrYA0ns2KW4lDz4gZ2+o6IQ894CzmdL3StM2oh7QQq44nCWiqKqc4qUI9Jmg==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "microsoft.extensions.logging.abstractions/8.0.1",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"Icon.png",
|
||||||
|
"LICENSE.TXT",
|
||||||
|
"PACKAGE.md",
|
||||||
|
"THIRD-PARTY-NOTICES.TXT",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll",
|
||||||
|
"buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets",
|
||||||
|
"buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets",
|
||||||
|
"buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets",
|
||||||
|
"buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets",
|
||||||
|
"buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets",
|
||||||
|
"lib/net462/Microsoft.Extensions.Logging.Abstractions.dll",
|
||||||
|
"lib/net462/Microsoft.Extensions.Logging.Abstractions.xml",
|
||||||
|
"lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll",
|
||||||
|
"lib/net6.0/Microsoft.Extensions.Logging.Abstractions.xml",
|
||||||
|
"lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll",
|
||||||
|
"lib/net7.0/Microsoft.Extensions.Logging.Abstractions.xml",
|
||||||
|
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll",
|
||||||
|
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml",
|
||||||
|
"lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll",
|
||||||
|
"lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml",
|
||||||
|
"microsoft.extensions.logging.abstractions.8.0.1.nupkg.sha512",
|
||||||
|
"microsoft.extensions.logging.abstractions.nuspec",
|
||||||
|
"useSharedDesignerContext.txt"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Newtonsoft.Json/13.0.3": {
|
||||||
|
"sha512": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "newtonsoft.json/13.0.3",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"LICENSE.md",
|
||||||
|
"README.md",
|
||||||
|
"lib/net20/Newtonsoft.Json.dll",
|
||||||
|
"lib/net20/Newtonsoft.Json.xml",
|
||||||
|
"lib/net35/Newtonsoft.Json.dll",
|
||||||
|
"lib/net35/Newtonsoft.Json.xml",
|
||||||
|
"lib/net40/Newtonsoft.Json.dll",
|
||||||
|
"lib/net40/Newtonsoft.Json.xml",
|
||||||
|
"lib/net45/Newtonsoft.Json.dll",
|
||||||
|
"lib/net45/Newtonsoft.Json.xml",
|
||||||
|
"lib/net6.0/Newtonsoft.Json.dll",
|
||||||
|
"lib/net6.0/Newtonsoft.Json.xml",
|
||||||
|
"lib/netstandard1.0/Newtonsoft.Json.dll",
|
||||||
|
"lib/netstandard1.0/Newtonsoft.Json.xml",
|
||||||
|
"lib/netstandard1.3/Newtonsoft.Json.dll",
|
||||||
|
"lib/netstandard1.3/Newtonsoft.Json.xml",
|
||||||
|
"lib/netstandard2.0/Newtonsoft.Json.dll",
|
||||||
|
"lib/netstandard2.0/Newtonsoft.Json.xml",
|
||||||
|
"newtonsoft.json.13.0.3.nupkg.sha512",
|
||||||
|
"newtonsoft.json.nuspec",
|
||||||
|
"packageIcon.png"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Npgsql/8.0.4": {
|
||||||
|
"sha512": "vaYEUlF/pB9m8bs21wQv3Da0kMHT4A9USe47VfY/L2BO97xz5KfIxhEu22QS9d68ZrLxvtL3wQDfDLPr2OjbjA==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "npgsql/8.0.4",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"README.md",
|
||||||
|
"lib/net6.0/Npgsql.dll",
|
||||||
|
"lib/net6.0/Npgsql.xml",
|
||||||
|
"lib/net7.0/Npgsql.dll",
|
||||||
|
"lib/net7.0/Npgsql.xml",
|
||||||
|
"lib/net8.0/Npgsql.dll",
|
||||||
|
"lib/net8.0/Npgsql.xml",
|
||||||
|
"lib/netstandard2.0/Npgsql.dll",
|
||||||
|
"lib/netstandard2.0/Npgsql.xml",
|
||||||
|
"lib/netstandard2.1/Npgsql.dll",
|
||||||
|
"lib/netstandard2.1/Npgsql.xml",
|
||||||
|
"npgsql.8.0.4.nupkg.sha512",
|
||||||
|
"npgsql.nuspec",
|
||||||
|
"postgresql.png"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client/1.5.374.78": {
|
||||||
|
"sha512": "MXd8GIxpZ2u4Tbb78wyQzqeyhSgyedZtegHYz7pOM0AmSiMwg/Eghx3xqO/owqo1dsyW20zf0mZflUcNX8rIOQ==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "opcfoundation.netstandard.opc.ua.client/1.5.374.78",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"NugetREADME.md",
|
||||||
|
"OPC Foundation MIT license.txt",
|
||||||
|
"images/logo.jpg",
|
||||||
|
"lib/net472/Opc.Ua.Client.dll",
|
||||||
|
"lib/net472/Opc.Ua.Client.xml",
|
||||||
|
"lib/net48/Opc.Ua.Client.dll",
|
||||||
|
"lib/net48/Opc.Ua.Client.xml",
|
||||||
|
"lib/net6.0/Opc.Ua.Client.dll",
|
||||||
|
"lib/net6.0/Opc.Ua.Client.xml",
|
||||||
|
"lib/net8.0/Opc.Ua.Client.dll",
|
||||||
|
"lib/net8.0/Opc.Ua.Client.xml",
|
||||||
|
"lib/netstandard2.0/Opc.Ua.Client.dll",
|
||||||
|
"lib/netstandard2.0/Opc.Ua.Client.xml",
|
||||||
|
"lib/netstandard2.1/Opc.Ua.Client.dll",
|
||||||
|
"lib/netstandard2.1/Opc.Ua.Client.xml",
|
||||||
|
"opcfoundation.netstandard.opc.ua.client.1.5.374.78.nupkg.sha512",
|
||||||
|
"opcfoundation.netstandard.opc.ua.client.nuspec"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Configuration/1.5.374.78": {
|
||||||
|
"sha512": "bkOZFH+hQsBlZhsci+SaZWrT4yJRnWwmcJLl8BJecWCtW2u6QoC5U1muYHPMN/23ltu8xoy4CPIJMzPR6PNmRw==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "opcfoundation.netstandard.opc.ua.configuration/1.5.374.78",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"NugetREADME.md",
|
||||||
|
"OPC Foundation MIT license.txt",
|
||||||
|
"images/logo.jpg",
|
||||||
|
"lib/net472/Opc.Ua.Configuration.dll",
|
||||||
|
"lib/net472/Opc.Ua.Configuration.xml",
|
||||||
|
"lib/net48/Opc.Ua.Configuration.dll",
|
||||||
|
"lib/net48/Opc.Ua.Configuration.xml",
|
||||||
|
"lib/net6.0/Opc.Ua.Configuration.dll",
|
||||||
|
"lib/net6.0/Opc.Ua.Configuration.xml",
|
||||||
|
"lib/net8.0/Opc.Ua.Configuration.dll",
|
||||||
|
"lib/net8.0/Opc.Ua.Configuration.xml",
|
||||||
|
"lib/netstandard2.0/Opc.Ua.Configuration.dll",
|
||||||
|
"lib/netstandard2.0/Opc.Ua.Configuration.xml",
|
||||||
|
"lib/netstandard2.1/Opc.Ua.Configuration.dll",
|
||||||
|
"lib/netstandard2.1/Opc.Ua.Configuration.xml",
|
||||||
|
"opcfoundation.netstandard.opc.ua.configuration.1.5.374.78.nupkg.sha512",
|
||||||
|
"opcfoundation.netstandard.opc.ua.configuration.nuspec"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Core/1.5.374.78": {
|
||||||
|
"sha512": "iyuo99u7QKv7ZWKGAUxCnGPCzJSThlzn93ce1EDGAH6AnPJHiWtFDQ1n4TlE03kGHA69yO5qlVPLdw+Z/RdYDw==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "opcfoundation.netstandard.opc.ua.core/1.5.374.78",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"NugetREADME.md",
|
||||||
|
"images/logo.jpg",
|
||||||
|
"lib/net472/Opc.Ua.Core.dll",
|
||||||
|
"lib/net472/Opc.Ua.Core.xml",
|
||||||
|
"lib/net48/Opc.Ua.Core.dll",
|
||||||
|
"lib/net48/Opc.Ua.Core.xml",
|
||||||
|
"lib/net6.0/Opc.Ua.Core.dll",
|
||||||
|
"lib/net6.0/Opc.Ua.Core.xml",
|
||||||
|
"lib/net8.0/Opc.Ua.Core.dll",
|
||||||
|
"lib/net8.0/Opc.Ua.Core.xml",
|
||||||
|
"lib/netstandard2.0/Opc.Ua.Core.dll",
|
||||||
|
"lib/netstandard2.0/Opc.Ua.Core.xml",
|
||||||
|
"lib/netstandard2.1/Opc.Ua.Core.dll",
|
||||||
|
"lib/netstandard2.1/Opc.Ua.Core.xml",
|
||||||
|
"licenses/LICENSE.txt",
|
||||||
|
"opcfoundation.netstandard.opc.ua.core.1.5.374.78.nupkg.sha512",
|
||||||
|
"opcfoundation.netstandard.opc.ua.core.nuspec"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Security.Certificates/1.5.374.78": {
|
||||||
|
"sha512": "iT++cPyzSnFAGJo9D0NPtHM+byBvIGeGGi535vGla2CTNAWvU1i7MH2T1PGqoYxiEY7dpKlqBlTtg3MQ3eXBrA==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "opcfoundation.netstandard.opc.ua.security.certificates/1.5.374.78",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"NugetREADME.md",
|
||||||
|
"OPC Foundation MIT license.txt",
|
||||||
|
"images/logo.jpg",
|
||||||
|
"lib/net472/Opc.Ua.Security.Certificates.dll",
|
||||||
|
"lib/net472/Opc.Ua.Security.Certificates.xml",
|
||||||
|
"lib/net48/Opc.Ua.Security.Certificates.dll",
|
||||||
|
"lib/net48/Opc.Ua.Security.Certificates.xml",
|
||||||
|
"lib/net6.0/Opc.Ua.Security.Certificates.dll",
|
||||||
|
"lib/net6.0/Opc.Ua.Security.Certificates.xml",
|
||||||
|
"lib/net8.0/Opc.Ua.Security.Certificates.dll",
|
||||||
|
"lib/net8.0/Opc.Ua.Security.Certificates.xml",
|
||||||
|
"lib/netstandard2.0/Opc.Ua.Security.Certificates.dll",
|
||||||
|
"lib/netstandard2.0/Opc.Ua.Security.Certificates.xml",
|
||||||
|
"lib/netstandard2.1/Opc.Ua.Security.Certificates.dll",
|
||||||
|
"lib/netstandard2.1/Opc.Ua.Security.Certificates.xml",
|
||||||
|
"opcfoundation.netstandard.opc.ua.security.certificates.1.5.374.78.nupkg.sha512",
|
||||||
|
"opcfoundation.netstandard.opc.ua.security.certificates.nuspec"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"System.Formats.Asn1/8.0.1": {
|
||||||
|
"sha512": "XqKba7Mm/koKSjKMfW82olQdmfbI5yqeoLV/tidRp7fbh5rmHAQ5raDI/7SU0swTzv+jgqtUGkzmFxuUg0it1A==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "system.formats.asn1/8.0.1",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"Icon.png",
|
||||||
|
"LICENSE.TXT",
|
||||||
|
"THIRD-PARTY-NOTICES.TXT",
|
||||||
|
"buildTransitive/net461/System.Formats.Asn1.targets",
|
||||||
|
"buildTransitive/net462/_._",
|
||||||
|
"buildTransitive/net6.0/_._",
|
||||||
|
"buildTransitive/netcoreapp2.0/System.Formats.Asn1.targets",
|
||||||
|
"lib/net462/System.Formats.Asn1.dll",
|
||||||
|
"lib/net462/System.Formats.Asn1.xml",
|
||||||
|
"lib/net6.0/System.Formats.Asn1.dll",
|
||||||
|
"lib/net6.0/System.Formats.Asn1.xml",
|
||||||
|
"lib/net7.0/System.Formats.Asn1.dll",
|
||||||
|
"lib/net7.0/System.Formats.Asn1.xml",
|
||||||
|
"lib/net8.0/System.Formats.Asn1.dll",
|
||||||
|
"lib/net8.0/System.Formats.Asn1.xml",
|
||||||
|
"lib/netstandard2.0/System.Formats.Asn1.dll",
|
||||||
|
"lib/netstandard2.0/System.Formats.Asn1.xml",
|
||||||
|
"system.formats.asn1.8.0.1.nupkg.sha512",
|
||||||
|
"system.formats.asn1.nuspec",
|
||||||
|
"useSharedDesignerContext.txt"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"System.Security.Cryptography.Cng/5.0.0": {
|
||||||
|
"sha512": "jIMXsKn94T9JY7PvPq/tMfqa6GAaHpElRDpmG+SuL+D3+sTw2M8VhnibKnN8Tq+4JqbPJ/f+BwtLeDMEnzAvRg==",
|
||||||
|
"type": "package",
|
||||||
|
"path": "system.security.cryptography.cng/5.0.0",
|
||||||
|
"files": [
|
||||||
|
".nupkg.metadata",
|
||||||
|
".signature.p7s",
|
||||||
|
"Icon.png",
|
||||||
|
"LICENSE.TXT",
|
||||||
|
"THIRD-PARTY-NOTICES.TXT",
|
||||||
|
"lib/MonoAndroid10/_._",
|
||||||
|
"lib/MonoTouch10/_._",
|
||||||
|
"lib/net46/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/net461/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/net461/System.Security.Cryptography.Cng.xml",
|
||||||
|
"lib/net462/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/net462/System.Security.Cryptography.Cng.xml",
|
||||||
|
"lib/net47/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/net47/System.Security.Cryptography.Cng.xml",
|
||||||
|
"lib/netcoreapp2.1/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/netcoreapp3.0/System.Security.Cryptography.Cng.xml",
|
||||||
|
"lib/netstandard1.3/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/netstandard1.4/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/netstandard1.6/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/netstandard2.0/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/netstandard2.0/System.Security.Cryptography.Cng.xml",
|
||||||
|
"lib/netstandard2.1/System.Security.Cryptography.Cng.dll",
|
||||||
|
"lib/netstandard2.1/System.Security.Cryptography.Cng.xml",
|
||||||
|
"lib/uap10.0.16299/_._",
|
||||||
|
"lib/xamarinios10/_._",
|
||||||
|
"lib/xamarinmac20/_._",
|
||||||
|
"lib/xamarintvos10/_._",
|
||||||
|
"lib/xamarinwatchos10/_._",
|
||||||
|
"ref/MonoAndroid10/_._",
|
||||||
|
"ref/MonoTouch10/_._",
|
||||||
|
"ref/net46/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/net461/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/net461/System.Security.Cryptography.Cng.xml",
|
||||||
|
"ref/net462/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/net462/System.Security.Cryptography.Cng.xml",
|
||||||
|
"ref/net47/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/net47/System.Security.Cryptography.Cng.xml",
|
||||||
|
"ref/netcoreapp2.0/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/netcoreapp2.0/System.Security.Cryptography.Cng.xml",
|
||||||
|
"ref/netcoreapp2.1/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/netcoreapp2.1/System.Security.Cryptography.Cng.xml",
|
||||||
|
"ref/netcoreapp3.0/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/netcoreapp3.0/System.Security.Cryptography.Cng.xml",
|
||||||
|
"ref/netstandard1.3/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/netstandard1.4/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/netstandard1.6/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/netstandard2.0/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/netstandard2.0/System.Security.Cryptography.Cng.xml",
|
||||||
|
"ref/netstandard2.1/System.Security.Cryptography.Cng.dll",
|
||||||
|
"ref/netstandard2.1/System.Security.Cryptography.Cng.xml",
|
||||||
|
"ref/uap10.0.16299/_._",
|
||||||
|
"ref/xamarinios10/_._",
|
||||||
|
"ref/xamarinmac20/_._",
|
||||||
|
"ref/xamarintvos10/_._",
|
||||||
|
"ref/xamarinwatchos10/_._",
|
||||||
|
"runtimes/win/lib/net46/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/net461/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/net461/System.Security.Cryptography.Cng.xml",
|
||||||
|
"runtimes/win/lib/net462/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/net462/System.Security.Cryptography.Cng.xml",
|
||||||
|
"runtimes/win/lib/net47/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/net47/System.Security.Cryptography.Cng.xml",
|
||||||
|
"runtimes/win/lib/netcoreapp2.0/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/netcoreapp2.1/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/netcoreapp3.0/System.Security.Cryptography.Cng.xml",
|
||||||
|
"runtimes/win/lib/netstandard1.4/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Cng.dll",
|
||||||
|
"runtimes/win/lib/uap10.0.16299/_._",
|
||||||
|
"system.security.cryptography.cng.5.0.0.nupkg.sha512",
|
||||||
|
"system.security.cryptography.cng.nuspec",
|
||||||
|
"useSharedDesignerContext.txt",
|
||||||
|
"version.txt"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"projectFileDependencyGroups": {
|
||||||
|
"net8.0": [
|
||||||
|
"Npgsql >= 8.0.4",
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client >= 1.5.374.78"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"packageFolders": {
|
||||||
|
"/home/pacer/.nuget/packages/": {}
|
||||||
|
},
|
||||||
|
"project": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"restore": {
|
||||||
|
"projectUniqueName": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj",
|
||||||
|
"projectName": "OpcPks.Core",
|
||||||
|
"projectPath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj",
|
||||||
|
"packagesPath": "/home/pacer/.nuget/packages/",
|
||||||
|
"outputPath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/obj/",
|
||||||
|
"projectStyle": "PackageReference",
|
||||||
|
"configFilePaths": [
|
||||||
|
"/home/pacer/.nuget/NuGet/NuGet.Config"
|
||||||
|
],
|
||||||
|
"originalTargetFrameworks": [
|
||||||
|
"net8.0"
|
||||||
|
],
|
||||||
|
"sources": {
|
||||||
|
"https://api.nuget.org/v3/index.json": {}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net8.0": {
|
||||||
|
"targetAlias": "net8.0",
|
||||||
|
"projectReferences": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"warningProperties": {
|
||||||
|
"warnAsError": [
|
||||||
|
"NU1605"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"net8.0": {
|
||||||
|
"targetAlias": "net8.0",
|
||||||
|
"dependencies": {
|
||||||
|
"Npgsql": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[8.0.4, )"
|
||||||
|
},
|
||||||
|
"OPCFoundation.NetStandard.Opc.Ua.Client": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[1.5.374.78, )"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"net461",
|
||||||
|
"net462",
|
||||||
|
"net47",
|
||||||
|
"net471",
|
||||||
|
"net472",
|
||||||
|
"net48",
|
||||||
|
"net481"
|
||||||
|
],
|
||||||
|
"assetTargetFallback": true,
|
||||||
|
"warn": true,
|
||||||
|
"frameworkReferences": {
|
||||||
|
"Microsoft.NETCore.App": {
|
||||||
|
"privateAssets": "all"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeIdentifierGraphPath": "/usr/lib/dotnet/sdk/8.0.124/PortableRuntimeIdentifierGraph.json"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
19
OpcPksPlatform/OpcPks.Core/obj/project.nuget.cache
Normal file
19
OpcPksPlatform/OpcPks.Core/obj/project.nuget.cache
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"dgSpecHash": "4hhhTNv5rdj9W8LEgtqRzvNnobbH+nWA4apshlgfd3j4OdsEpRlMXC2Q3X2ScEegniOPFgZFJJ9l+i9qtr7LrA==",
|
||||||
|
"success": true,
|
||||||
|
"projectFilePath": "/home/pacer/projects/OpcPksPlatform/OpcPks.Core/OpcPks.Core.csproj",
|
||||||
|
"expectedPackageFiles": [
|
||||||
|
"/home/pacer/.nuget/packages/microsoft.extensions.dependencyinjection.abstractions/8.0.1/microsoft.extensions.dependencyinjection.abstractions.8.0.1.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/microsoft.extensions.logging.abstractions/8.0.1/microsoft.extensions.logging.abstractions.8.0.1.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/newtonsoft.json/13.0.3/newtonsoft.json.13.0.3.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/npgsql/8.0.4/npgsql.8.0.4.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/opcfoundation.netstandard.opc.ua.client/1.5.374.78/opcfoundation.netstandard.opc.ua.client.1.5.374.78.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/opcfoundation.netstandard.opc.ua.configuration/1.5.374.78/opcfoundation.netstandard.opc.ua.configuration.1.5.374.78.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/opcfoundation.netstandard.opc.ua.core/1.5.374.78/opcfoundation.netstandard.opc.ua.core.1.5.374.78.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/opcfoundation.netstandard.opc.ua.security.certificates/1.5.374.78/opcfoundation.netstandard.opc.ua.security.certificates.1.5.374.78.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/system.formats.asn1/8.0.1/system.formats.asn1.8.0.1.nupkg.sha512",
|
||||||
|
"/home/pacer/.nuget/packages/system.security.cryptography.cng/5.0.0/system.security.cryptography.cng.5.0.0.nupkg.sha512"
|
||||||
|
],
|
||||||
|
"logs": []
|
||||||
|
}
|
||||||
152
OpcPksPlatform/OpcPks.Web/Controllers/EngineeringController.cs
Normal file
152
OpcPksPlatform/OpcPks.Web/Controllers/EngineeringController.cs
Normal file
@@ -0,0 +1,152 @@
|
|||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Npgsql;
|
||||||
|
using OpcPks.Core.Data;
|
||||||
|
using OpcPks.Core.Services;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.IO;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace OpcPks.Web.Controllers;
|
||||||
|
|
||||||
|
[Route("Engineering")] // 🚨 경로를 명시적으로 고정
|
||||||
|
public class EngineeringController : Controller
|
||||||
|
{
|
||||||
|
[HttpGet("TagExplorer")] // Engineering/TagExplorer
|
||||||
|
public IActionResult TagExplorer() => View();
|
||||||
|
|
||||||
|
[HttpGet("Admin")] // Engineering/Admin
|
||||||
|
public IActionResult Admin() => View();
|
||||||
|
|
||||||
|
[HttpPost("SearchByFilter")]
|
||||||
|
public async Task<IActionResult> SearchByFilter([FromBody] SearchRequest request)
|
||||||
|
{
|
||||||
|
var results = new List<object>();
|
||||||
|
if (request?.Suffixes == null || request.Suffixes.Count == 0) return Json(results);
|
||||||
|
|
||||||
|
using var conn = new NpgsqlConnection(DbConfig.ConnectionString);
|
||||||
|
await conn.OpenAsync();
|
||||||
|
|
||||||
|
var suffixConditions = string.Join(" OR ", request.Suffixes.Select((s, i) => $"node_id ILIKE @s{i}"));
|
||||||
|
var sql = $@"SELECT name, node_id, data_type FROM raw_node_map
|
||||||
|
WHERE name ILIKE @tagTerm AND ({suffixConditions})
|
||||||
|
ORDER BY name ASC LIMIT 1500";
|
||||||
|
|
||||||
|
using var cmd = new NpgsqlCommand(sql, conn);
|
||||||
|
cmd.Parameters.AddWithValue("tagTerm", $"%{request.TagTerm}%");
|
||||||
|
for (int i = 0; i < request.Suffixes.Count; i++)
|
||||||
|
cmd.Parameters.AddWithValue($"s{i}", $"%{request.Suffixes[i]}");
|
||||||
|
|
||||||
|
using var reader = await cmd.ExecuteReaderAsync();
|
||||||
|
while (await reader.ReadAsync()) {
|
||||||
|
results.Add(new {
|
||||||
|
name = reader.GetString(0),
|
||||||
|
nodeId = reader.GetString(1),
|
||||||
|
dataType = reader.IsDBNull(2) ? "Double" : reader.GetString(2)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return Json(results);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost("RegisterTags")]
|
||||||
|
public async Task<IActionResult> RegisterTags([FromBody] List<TagRegistrationRequest> tags)
|
||||||
|
{
|
||||||
|
if (tags == null || tags.Count == 0) return Ok();
|
||||||
|
using var conn = new NpgsqlConnection(DbConfig.ConnectionString);
|
||||||
|
await conn.OpenAsync();
|
||||||
|
using var trans = await conn.BeginTransactionAsync();
|
||||||
|
try {
|
||||||
|
var masterSql = @"INSERT INTO tag_master (server_name, area_code, tag_name, parameter, full_node_id, data_type)
|
||||||
|
VALUES (@server, @area, @tag, @param, @nodeId, @type)
|
||||||
|
ON CONFLICT (full_node_id) DO UPDATE SET data_type = EXCLUDED.data_type;";
|
||||||
|
|
||||||
|
var liveSql = @"INSERT INTO tag_live_data (full_node_id, live_value, quality)
|
||||||
|
VALUES (@nodeId, '0', 'Initial')
|
||||||
|
ON CONFLICT (full_node_id) DO NOTHING;";
|
||||||
|
|
||||||
|
foreach (var tag in tags) {
|
||||||
|
string sContent = tag.NodeId.Contains("s=") ? tag.NodeId.Split("s=")[1] : tag.NodeId;
|
||||||
|
string[] parts = sContent.Split(':');
|
||||||
|
string server = parts[0];
|
||||||
|
string area = parts.Length >= 3 ? parts[1] : "unassigned";
|
||||||
|
string remains = parts.Last();
|
||||||
|
int lastDot = remains.LastIndexOf('.');
|
||||||
|
string tagName = (lastDot != -1) ? remains.Substring(0, lastDot) : remains;
|
||||||
|
string param = (lastDot != -1) ? remains.Substring(lastDot + 1) : "pv";
|
||||||
|
|
||||||
|
using (var cmd = new NpgsqlCommand(masterSql, conn, trans)) {
|
||||||
|
cmd.Parameters.AddWithValue("server", server);
|
||||||
|
cmd.Parameters.AddWithValue("area", area);
|
||||||
|
cmd.Parameters.AddWithValue("tag", tagName);
|
||||||
|
cmd.Parameters.AddWithValue("param", param);
|
||||||
|
cmd.Parameters.AddWithValue("nodeId", tag.NodeId);
|
||||||
|
cmd.Parameters.AddWithValue("type", tag.DataType ?? "Double");
|
||||||
|
await cmd.ExecuteNonQueryAsync();
|
||||||
|
}
|
||||||
|
using (var cmd = new NpgsqlCommand(liveSql, conn, trans)) {
|
||||||
|
cmd.Parameters.AddWithValue("nodeId", tag.NodeId);
|
||||||
|
await cmd.ExecuteNonQueryAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await trans.CommitAsync();
|
||||||
|
return Ok();
|
||||||
|
} catch (Exception ex) {
|
||||||
|
await trans.RollbackAsync();
|
||||||
|
return BadRequest(ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost("RunCrawler")]
|
||||||
|
public async Task<IActionResult> RunCrawler()
|
||||||
|
{
|
||||||
|
Console.WriteLine("\n[API] === RunCrawler 요청 수신됨 ===");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var sessionManager = new OpcSessionManager();
|
||||||
|
var session = await sessionManager.GetSessionAsync();
|
||||||
|
|
||||||
|
if (session == null || !session.Connected)
|
||||||
|
{
|
||||||
|
Console.WriteLine("❌ [API] 세션 연결 실패!");
|
||||||
|
return BadRequest(new { message = "하니웰 서버 연결 실패." });
|
||||||
|
}
|
||||||
|
|
||||||
|
var crawler = new HoneywellCrawler(session);
|
||||||
|
string csvPath = @"/home/pacer/projects/OpcPksPlatform/OpcPks.Core/Data/Honeywell_FullMap.csv";
|
||||||
|
|
||||||
|
string dir = Path.GetDirectoryName(csvPath);
|
||||||
|
if (!Directory.Exists(dir)) Directory.CreateDirectory(dir);
|
||||||
|
|
||||||
|
await crawler.RunAsync("ns=1;s=$assetmodel", csvPath);
|
||||||
|
|
||||||
|
Console.WriteLine("✅ [API] 모든 탐사 공정 완료!");
|
||||||
|
return Ok(new { message = "탐사 및 CSV 생성 완료!" });
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"❌ [API] 치명적 오류: {ex.Message}");
|
||||||
|
return BadRequest(new { message = ex.Message });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost("ImportCsv")]
|
||||||
|
public async Task<IActionResult> ImportCsv()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
using var conn = new NpgsqlConnection(DbConfig.ConnectionString);
|
||||||
|
await conn.OpenAsync();
|
||||||
|
var sql = @"TRUNCATE raw_node_map;
|
||||||
|
COPY raw_node_map(level, node_class, name, node_id)
|
||||||
|
FROM '/home/pacer/projects/OpcPksPlatform/OpcPks.Core/Data/Honeywell_FullMap.csv'
|
||||||
|
DELIMITER ',' CSV HEADER;";
|
||||||
|
using var cmd = new NpgsqlCommand(sql, conn);
|
||||||
|
await cmd.ExecuteNonQueryAsync();
|
||||||
|
return Ok(new { message = "DB 동기화 완료" });
|
||||||
|
}
|
||||||
|
catch (Exception ex) { return BadRequest(ex.Message); }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SearchRequest { public string TagTerm { get; set; } public List<string> Suffixes { get; set; } }
|
||||||
|
public class TagRegistrationRequest { public string TagName { get; set; } public string NodeId { get; set; } public string DataType { get; set; } }
|
||||||
|
}
|
||||||
16
OpcPksPlatform/OpcPks.Web/Controllers/HomeController.cs
Normal file
16
OpcPksPlatform/OpcPks.Web/Controllers/HomeController.cs
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
|
namespace OpcPks.Web.Controllers;
|
||||||
|
|
||||||
|
public class HomeController : Controller
|
||||||
|
{
|
||||||
|
private readonly ILogger<HomeController> _logger;
|
||||||
|
|
||||||
|
public HomeController(ILogger<HomeController> logger)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IActionResult Index() => View();
|
||||||
|
}
|
||||||
8
OpcPksPlatform/OpcPks.Web/Models/ErrorViewModel.cs
Normal file
8
OpcPksPlatform/OpcPks.Web/Models/ErrorViewModel.cs
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
namespace OpcPks.Web.Models;
|
||||||
|
|
||||||
|
public class ErrorViewModel
|
||||||
|
{
|
||||||
|
public string? RequestId { get; set; }
|
||||||
|
|
||||||
|
public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
|
||||||
|
}
|
||||||
14
OpcPksPlatform/OpcPks.Web/OpcPks.Web.csproj
Normal file
14
OpcPksPlatform/OpcPks.Web/OpcPks.Web.csproj
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup>
|
||||||
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\OpcPks.Core\OpcPks.Core.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Npgsql" Version="8.0.4" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
27
OpcPksPlatform/OpcPks.Web/Program.cs
Normal file
27
OpcPksPlatform/OpcPks.Web/Program.cs
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
|
||||||
|
// Add services to the container.
|
||||||
|
builder.Services.AddControllersWithViews();
|
||||||
|
|
||||||
|
var app = builder.Build();
|
||||||
|
|
||||||
|
// Configure the HTTP request pipeline.
|
||||||
|
if (!app.Environment.IsDevelopment())
|
||||||
|
{
|
||||||
|
app.UseExceptionHandler("/Home/Error");
|
||||||
|
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
|
||||||
|
app.UseHsts();
|
||||||
|
}
|
||||||
|
|
||||||
|
//app.UseHttpsRedirection();
|
||||||
|
app.UseStaticFiles();
|
||||||
|
|
||||||
|
app.UseRouting();
|
||||||
|
|
||||||
|
app.UseAuthorization();
|
||||||
|
|
||||||
|
app.MapControllerRoute(
|
||||||
|
name: "default",
|
||||||
|
pattern: "{controller=Home}/{action=Index}/{id?}");
|
||||||
|
|
||||||
|
app.Run();
|
||||||
38
OpcPksPlatform/OpcPks.Web/Properties/launchSettings.json
Normal file
38
OpcPksPlatform/OpcPks.Web/Properties/launchSettings.json
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"$schema": "http://json.schemastore.org/launchsettings.json",
|
||||||
|
"iisSettings": {
|
||||||
|
"windowsAuthentication": false,
|
||||||
|
"anonymousAuthentication": true,
|
||||||
|
"iisExpress": {
|
||||||
|
"applicationUrl": "http://localhost:17871",
|
||||||
|
"sslPort": 44392
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profiles": {
|
||||||
|
"http": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"launchBrowser": true,
|
||||||
|
"applicationUrl": "http://localhost:5000",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"https": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"launchBrowser": true,
|
||||||
|
"applicationUrl": "https://localhost:7252;http://localhost:5000",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IIS Express": {
|
||||||
|
"commandName": "IISExpress",
|
||||||
|
"launchBrowser": true,
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
24
OpcPksPlatform/OpcPks.Web/Views/Engineering/Admin.cshtml
Normal file
24
OpcPksPlatform/OpcPks.Web/Views/Engineering/Admin.cshtml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<div class="card border-danger">
|
||||||
|
<div class="card-header bg-danger text-white">System Engineering - Discovery Mode</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<h5>1. 하니웰 자산 모델 탐사 (Crawler)</h5>
|
||||||
|
<p class="text-muted">서버의 모든 노드를 훑어 CSV 파일을 생성합니다. (시간이 오래 걸릴 수 있음)</p>
|
||||||
|
<button id="btnRunCrawler" class="btn btn-danger" onclick="runCrawler()">🚀 탐사 및 CSV 생성 시작</button>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<h5>2. DB 동기화 (CSV to Database)</h5>
|
||||||
|
<p class="text-muted">생성된 Honeywell_FullMap.csv 파일을 읽어 DB에 일괄 저장합니다.</p>
|
||||||
|
<button id="btnImportCsv" class="btn btn-warning" onclick="importCsvToDb()">📥 CSV 데이터를 DB로 가져오기</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function runCrawler() {
|
||||||
|
if(!confirm("전체 노드 탐사를 시작하시겠습니까? 하니웰 서버에 부하가 갈 수 있습니다.")) return;
|
||||||
|
// API 호출: /Engineering/RunCrawler
|
||||||
|
}
|
||||||
|
function importCsvToDb() {
|
||||||
|
// API 호출: /Engineering/ImportCsv
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
@{
|
||||||
|
ViewData["Title"] = "Honeywell Engineering";
|
||||||
|
}
|
||||||
|
|
||||||
|
<div class="container mt-5">
|
||||||
|
<div class="card border-success shadow">
|
||||||
|
<div class="card-header bg-success text-white">
|
||||||
|
<strong>✅ Connection Verified (Ready to Crawl)</strong>
|
||||||
|
</div>
|
||||||
|
<div class="card-body text-center">
|
||||||
|
<h5 class="mb-4">하니웰 서버 탐사 준비 완료</h5>
|
||||||
|
|
||||||
|
<button type="button" onclick="startHoneywellCrawler()" class="btn btn-success btn-lg px-5 fw-bold">
|
||||||
|
🚀 Run Honeywell Crawler
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div id="debugLog" class="mt-4 p-3 bg-light text-start small border" style="display:none; max-height: 200px; overflow-y: auto;">
|
||||||
|
<strong>로그:</strong> <div id="logContent"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function startHoneywellCrawler() {
|
||||||
|
const logDiv = document.getElementById('debugLog');
|
||||||
|
const content = document.getElementById('logContent');
|
||||||
|
logDiv.style.display = 'block';
|
||||||
|
content.innerHTML += "<div>📡 서버에 탐사 신호를 보냅니다...</div>";
|
||||||
|
|
||||||
|
// curl -X POST와 동일한 동작
|
||||||
|
fetch('/Engineering/RunCrawler', {
|
||||||
|
method: 'POST'
|
||||||
|
})
|
||||||
|
.then(async res => {
|
||||||
|
const data = await res.json();
|
||||||
|
content.innerHTML += `<div>📥 서버 응답 (${res.status}): ${data.message || '완료'}</div>`;
|
||||||
|
|
||||||
|
if (res.ok) {
|
||||||
|
alert("성공! 우분투 터미널에서 탐사 진행 상황을 확인하세요.");
|
||||||
|
} else {
|
||||||
|
// 아까 curl에서 보셨던 인증서 에러가 여기 팝업으로 뜰 겁니다.
|
||||||
|
alert("서버 내부 로직 에러: " + (data.message || "알 수 없는 오류"));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
content.innerHTML += `<div class="text-danger">❌ 통신 실패: ${err}</div>`;
|
||||||
|
alert("서버 연결 실패!");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
6
OpcPksPlatform/OpcPks.Web/Views/Home/Privacy.cshtml
Normal file
6
OpcPksPlatform/OpcPks.Web/Views/Home/Privacy.cshtml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
@{
|
||||||
|
ViewData["Title"] = "Privacy Policy";
|
||||||
|
}
|
||||||
|
<h1>@ViewData["Title"]</h1>
|
||||||
|
|
||||||
|
<p>Use this page to detail your site's privacy policy.</p>
|
||||||
37
OpcPksPlatform/OpcPks.Web/Views/Home/index.cshtml
Normal file
37
OpcPksPlatform/OpcPks.Web/Views/Home/index.cshtml
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
cat <<EOF > ~/projects/OpcPksPlatform/OpcPks.Web/Views/Home/Index.cshtml
|
||||||
|
@{
|
||||||
|
ViewData["Title"] = "PKS 통합 플랫폼";
|
||||||
|
}
|
||||||
|
|
||||||
|
<div class="container mt-5">
|
||||||
|
<div class="p-5 mb-4 bg-light rounded-3 border">
|
||||||
|
<div class="container-fluid py-5 text-center">
|
||||||
|
<h1 class="display-5 fw-bold text-primary">Honeywell PKS 관리 플랫폼</h1>
|
||||||
|
<p class="col-md-12 fs-4 mt-3">
|
||||||
|
OPC UA 기반의 실시간 데이터 수집 및 엔지니어링 도구입니다.<br/>
|
||||||
|
하니웰 자산 모델(Asset Model) 탐사 및 태그 등록을 시작하세요.
|
||||||
|
</p>
|
||||||
|
<hr class="my-4">
|
||||||
|
<div class="d-grid gap-3 d-sm-flex justify-content-sm-center">
|
||||||
|
<a href="/Engineering/TagExplorer" class="btn btn-primary btn-lg px-4">태그 탐색기 실행</a>
|
||||||
|
<a href="/Engineering/Admin" class="btn btn-outline-secondary btn-lg px-4">시스템 관리</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row align-items-md-stretch text-center">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="h-100 p-4 border rounded-3 bg-white">
|
||||||
|
<h2>데이터 동기화</h2>
|
||||||
|
<p>CSV 파일로부터 하니웰 노드 맵을 읽어와 로컬 데이터베이스와 동기화합니다.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="h-100 p-4 border rounded-3 bg-white">
|
||||||
|
<h2>실시간 모니터링</h2>
|
||||||
|
<p>등록된 태그들의 현재값(PV, SP, OP) 및 알람 상태를 실시간으로 확인합니다.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
EOF
|
||||||
25
OpcPksPlatform/OpcPks.Web/Views/Shared/Error.cshtml
Normal file
25
OpcPksPlatform/OpcPks.Web/Views/Shared/Error.cshtml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
@model ErrorViewModel
|
||||||
|
@{
|
||||||
|
ViewData["Title"] = "Error";
|
||||||
|
}
|
||||||
|
|
||||||
|
<h1 class="text-danger">Error.</h1>
|
||||||
|
<h2 class="text-danger">An error occurred while processing your request.</h2>
|
||||||
|
|
||||||
|
@if (Model.ShowRequestId)
|
||||||
|
{
|
||||||
|
<p>
|
||||||
|
<strong>Request ID:</strong> <code>@Model.RequestId</code>
|
||||||
|
</p>
|
||||||
|
}
|
||||||
|
|
||||||
|
<h3>Development Mode</h3>
|
||||||
|
<p>
|
||||||
|
Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
|
||||||
|
It can result in displaying sensitive information from exceptions to end users.
|
||||||
|
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
|
||||||
|
and restarting the app.
|
||||||
|
</p>
|
||||||
49
OpcPksPlatform/OpcPks.Web/Views/Shared/_Layout.cshtml
Normal file
49
OpcPksPlatform/OpcPks.Web/Views/Shared/_Layout.cshtml
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>@ViewData["Title"] - OpcPks.Web</title>
|
||||||
|
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
|
||||||
|
<link rel="stylesheet" href="~/css/site.css" asp-append-version="true" />
|
||||||
|
<link rel="stylesheet" href="~/OpcPks.Web.styles.css" asp-append-version="true" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">OpcPks.Web</a>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
|
||||||
|
aria-expanded="false" aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
|
||||||
|
<ul class="navbar-nav flex-grow-1">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Index">Home</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
<div class="container">
|
||||||
|
<main role="main" class="pb-3">
|
||||||
|
@RenderBody()
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="border-top footer text-muted">
|
||||||
|
<div class="container">
|
||||||
|
© 2026 - OpcPks.Web - <a asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="~/lib/jquery/dist/jquery.min.js"></script>
|
||||||
|
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
|
<script src="~/js/site.js" asp-append-version="true"></script>
|
||||||
|
@await RenderSectionAsync("Scripts", required: false)
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
48
OpcPksPlatform/OpcPks.Web/Views/Shared/_Layout.cshtml.css
Normal file
48
OpcPksPlatform/OpcPks.Web/Views/Shared/_Layout.cshtml.css
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
/* Please see documentation at https://learn.microsoft.com/aspnet/core/client-side/bundling-and-minification
|
||||||
|
for details on configuring this project to bundle and minify static web assets. */
|
||||||
|
|
||||||
|
a.navbar-brand {
|
||||||
|
white-space: normal;
|
||||||
|
text-align: center;
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #0077cc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #1b6ec2;
|
||||||
|
border-color: #1861ac;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #1b6ec2;
|
||||||
|
border-color: #1861ac;
|
||||||
|
}
|
||||||
|
|
||||||
|
.border-top {
|
||||||
|
border-top: 1px solid #e5e5e5;
|
||||||
|
}
|
||||||
|
.border-bottom {
|
||||||
|
border-bottom: 1px solid #e5e5e5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-shadow {
|
||||||
|
box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
|
||||||
|
}
|
||||||
|
|
||||||
|
button.accept-policy {
|
||||||
|
font-size: 1rem;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
width: 100%;
|
||||||
|
white-space: nowrap;
|
||||||
|
line-height: 60px;
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
|
||||||
|
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
|
||||||
3
OpcPksPlatform/OpcPks.Web/Views/_ViewImports.cshtml
Normal file
3
OpcPksPlatform/OpcPks.Web/Views/_ViewImports.cshtml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
@using OpcPks.Web
|
||||||
|
@using OpcPks.Web.Models
|
||||||
|
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
||||||
3
OpcPksPlatform/OpcPks.Web/Views/_ViewStart.cshtml
Normal file
3
OpcPksPlatform/OpcPks.Web/Views/_ViewStart.cshtml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
@{
|
||||||
|
Layout = "_Layout";
|
||||||
|
}
|
||||||
8
OpcPksPlatform/OpcPks.Web/appsettings.Development.json
Normal file
8
OpcPksPlatform/OpcPks.Web/appsettings.Development.json
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
9
OpcPksPlatform/OpcPks.Web/appsettings.json
Normal file
9
OpcPksPlatform/OpcPks.Web/appsettings.json
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*"
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Web/bin/Debug/net8.0/Newtonsoft.Json.dll
Executable file
BIN
OpcPksPlatform/OpcPks.Web/bin/Debug/net8.0/Newtonsoft.Json.dll
Executable file
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Web/bin/Debug/net8.0/Npgsql.dll
Executable file
BIN
OpcPksPlatform/OpcPks.Web/bin/Debug/net8.0/Npgsql.dll
Executable file
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Web/bin/Debug/net8.0/Opc.Ua.Client.dll
Executable file
BIN
OpcPksPlatform/OpcPks.Web/bin/Debug/net8.0/Opc.Ua.Client.dll
Executable file
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Web/bin/Debug/net8.0/Opc.Ua.Configuration.dll
Executable file
BIN
OpcPksPlatform/OpcPks.Web/bin/Debug/net8.0/Opc.Ua.Configuration.dll
Executable file
Binary file not shown.
BIN
OpcPksPlatform/OpcPks.Web/bin/Debug/net8.0/Opc.Ua.Core.dll
Executable file
BIN
OpcPksPlatform/OpcPks.Web/bin/Debug/net8.0/Opc.Ua.Core.dll
Executable file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user