add:增加文档和上位机

This commit is contained in:
2026-05-21 12:56:29 +08:00
parent 8ee0849831
commit a1d1f19585
95 changed files with 8594 additions and 43 deletions

View File

@@ -0,0 +1 @@
{"RootPath":"C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC","ProjectFileName":"YKC.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"App.xaml.cs"},{"SourceFile":"MainWindow.xaml.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Properties\\Settings.Designer.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.7.2.AssemblyAttributes.cs"},{"SourceFile":"C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\obj\\Debug\\MainWindow.g.cs"},{"SourceFile":"C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\obj\\Debug\\App.g.cs"}],"References":[{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\PresentationCore.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\PresentationFramework.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xaml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\WindowsBase.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\bin\\Debug\\YKC.exe","OutputItemRelativePath":"YKC.exe"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]}

Binary file not shown.

View File

@@ -0,0 +1,228 @@
{
"Version": 1,
"WorkspaceRootPath": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|c:\\users\\administrator\\pycharmprojects\\pythonproject\\c#\\ykc\\pages\\realtimepage.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:pages\\realtimepage.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|c:\\users\\administrator\\pycharmprojects\\pythonproject\\c#\\ykc\\pages\\gatewaypage.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:pages\\gatewaypage.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|c:\\users\\administrator\\pycharmprojects\\pythonproject\\c#\\ykc\\pages\\realtimepage.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:pages\\realtimepage.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|c:\\users\\administrator\\pycharmprojects\\pythonproject\\c#\\ykc\\pages\\gatewaypage.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:pages\\gatewaypage.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|c:\\users\\administrator\\pycharmprojects\\pythonproject\\c#\\ykc\\pages\\dashboardpage.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:pages\\dashboardpage.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|c:\\users\\administrator\\pycharmprojects\\pythonproject\\c#\\ykc\\pages\\chargerpage.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:pages\\chargerpage.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|c:\\users\\administrator\\pycharmprojects\\pythonproject\\c#\\ykc\\mainwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:mainwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\3714f74b82eacc6cf8dcf1e32980b0908d4f8b447d25d4eb08ff1424a7b57c02\\ResourcePart.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\app.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:app.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\app.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:app.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{00000000-0000-0000-0000-000000000000}|\u003CSolution\u003E|YKC||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 0,
"Children": [
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "RealtimePage.xaml",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\RealtimePage.xaml",
"RelativeDocumentMoniker": "Pages\\RealtimePage.xaml",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\RealtimePage.xaml",
"RelativeToolTip": "Pages\\RealtimePage.xaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2026-05-20T03:56:55.66Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "RealtimePage.xaml.cs",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\RealtimePage.xaml.cs",
"RelativeDocumentMoniker": "Pages\\RealtimePage.xaml.cs",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\RealtimePage.xaml.cs",
"RelativeToolTip": "Pages\\RealtimePage.xaml.cs",
"ViewState": "AgIAAFcAAAAAAAAAAAAowH8AAAAQAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-05-20T03:48:04.174Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "GatewayPage.xaml.cs",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\GatewayPage.xaml.cs",
"RelativeDocumentMoniker": "Pages\\GatewayPage.xaml.cs",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\GatewayPage.xaml.cs",
"RelativeToolTip": "Pages\\GatewayPage.xaml.cs",
"ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-05-20T03:56:52.729Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "DashboardPage.xaml",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\DashboardPage.xaml",
"RelativeDocumentMoniker": "Pages\\DashboardPage.xaml",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\DashboardPage.xaml",
"RelativeToolTip": "Pages\\DashboardPage.xaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2026-05-20T03:55:04.048Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 5,
"Title": "ChargerPage.xaml",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\ChargerPage.xaml",
"RelativeDocumentMoniker": "Pages\\ChargerPage.xaml",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\ChargerPage.xaml",
"RelativeToolTip": "Pages\\ChargerPage.xaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2026-05-20T03:55:01.467Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 9,
"Title": "MainWindow.xaml.cs",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\MainWindow.xaml.cs",
"RelativeDocumentMoniker": "MainWindow.xaml.cs",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\MainWindow.xaml.cs",
"RelativeToolTip": "MainWindow.xaml.cs",
"ViewState": "AgIAADMAAAAAAAAAAAAewEoAAAAMAAAAAAAAAA==",
"Icon": "00000000-0000-0000-0000-000000000000.000000|iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJ7SURBVDhP7ZQ9aBNhGMef9y7t2eH0TOPHnbnzzmDjkpTqNSEdShDBpRbBQbEI/bCSRVA7iFWk1OpS0CGDH5OlgQgZihRioTgU0VzTEKhSTeLg2aYBLUIgzfUj17wuXptcQUFdBH/j83//P953eF4AE0eGZljXkLL4ZErFsY9LA\u002Bb8VyDz4NGUyiKARDJb5A7srMkc27Wcjr98DpFIBLxeL/A8Hx4cHAybewbkwZuvB9aPXvDrcqcfPJ3\u002BN2rBX1dDtMTUZeqbptfr\u002BgYqZd/G5ubmzrAs66Ioql6W5dL09PQ7swwAgGRaL/YVS5jTcZkDBBwug50kCelLoWQBQIAttbHJh7f6McadVqs1RdP0HoRQk8/n\u002B\u002BR0OnOzs7N6pXDbk1\u002B8/8oifSMxMrPECUzt8mmXdezsCfk6QRAJh8Nxw\u002BPxHNI07TIA6ABwslwufwgGg2tGn6jWAdyb\u002BAx3J7PgE2k43rD7Md5Re8XIenp6HnR3dwMAXAWAeoTQBEKotbJfdcPh4eHmdUz0TerusXMtDVoTX5f2OvZment7WYvFklhZWeHm5\u002BczuVwuzzCM50etXVGUccNh2dIBKIqyjyCI1v3kzLVA/7OcMW9sbCwUi8X70WiUVlUVAABWV1dfYYwvEcS2R24hSVKbKIo5nuc5c2ZGEARWFMVFSZJOVc5/ov89/gv/nH9MSFEU2Gw2aygUeppOp41N2EYqlWoOhUIjgiBYGYapyqpWLxAItJEkOW632yEej4eTyWSmMjdwu92HZVk\u002Bn8/nQdf19mAwuLl6VcLR0dFmTdNuRyIRWFhYgLW1zU\u002BkCpIkwWazQVdXF9A0faejoyNuPvPX\u002BA5Fb\u002BAHZWstowAAAABJRU5ErkJggg==",
"WhenOpened": "2026-05-13T09:04:45.364Z"
},
{
"$type": "Document",
"DocumentIndex": 11,
"Title": "App.xaml.cs",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\App.xaml.cs",
"RelativeDocumentMoniker": "App.xaml.cs",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\App.xaml.cs",
"RelativeToolTip": "App.xaml.cs",
"ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
"Icon": "00000000-0000-0000-0000-000000000000.000000|iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJ7SURBVDhP7ZQ9aBNhGMef9y7t2eH0TOPHnbnzzmDjkpTqNSEdShDBpRbBQbEI/bCSRVA7iFWk1OpS0CGDH5OlgQgZihRioTgU0VzTEKhSTeLg2aYBLUIgzfUj17wuXptcQUFdBH/j83//P953eF4AE0eGZljXkLL4ZErFsY9LA\u002Bb8VyDz4NGUyiKARDJb5A7srMkc27Wcjr98DpFIBLxeL/A8Hx4cHAybewbkwZuvB9aPXvDrcqcfPJ3\u002BN2rBX1dDtMTUZeqbptfr\u002BgYqZd/G5ubmzrAs66Ioql6W5dL09PQ7swwAgGRaL/YVS5jTcZkDBBwug50kCelLoWQBQIAttbHJh7f6McadVqs1RdP0HoRQk8/n\u002B\u002BR0OnOzs7N6pXDbk1\u002B8/8oifSMxMrPECUzt8mmXdezsCfk6QRAJh8Nxw\u002BPxHNI07TIA6ABwslwufwgGg2tGn6jWAdyb\u002BAx3J7PgE2k43rD7Md5Re8XIenp6HnR3dwMAXAWAeoTQBEKotbJfdcPh4eHmdUz0TerusXMtDVoTX5f2OvZment7WYvFklhZWeHm5\u002BczuVwuzzCM50etXVGUccNh2dIBKIqyjyCI1v3kzLVA/7OcMW9sbCwUi8X70WiUVlUVAABWV1dfYYwvEcS2R24hSVKbKIo5nuc5c2ZGEARWFMVFSZJOVc5/ov89/gv/nH9MSFEU2Gw2aygUeppOp41N2EYqlWoOhUIjgiBYGYapyqpWLxAItJEkOW632yEej4eTyWSmMjdwu92HZVk\u002Bn8/nQdf19mAwuLl6VcLR0dFmTdNuRyIRWFhYgLW1zU\u002BkCpIkwWazQVdXF9A0faejoyNuPvPX\u002BA5Fb\u002BAHZWstowAAAABJRU5ErkJggg==",
"WhenOpened": "2026-05-13T09:10:18.727Z"
},
{
"$type": "Document",
"DocumentIndex": 10,
"Title": "App.xaml",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\App.xaml",
"RelativeDocumentMoniker": "App.xaml",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\App.xaml",
"RelativeToolTip": "App.xaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2026-05-13T09:08:55.359Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 6,
"Title": "MainWindow.xaml",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\MainWindow.xaml",
"RelativeDocumentMoniker": "MainWindow.xaml",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\MainWindow.xaml",
"RelativeToolTip": "MainWindow.xaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2026-05-13T09:04:45.868Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "GatewayPage.xaml",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\GatewayPage.xaml",
"RelativeDocumentMoniker": "Pages\\GatewayPage.xaml",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\GatewayPage.xaml",
"RelativeToolTip": "Pages\\GatewayPage.xaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2026-05-20T03:55:06.415Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 12,
"Title": "YKC",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\YKC.csproj",
"RelativeDocumentMoniker": "YKC.csproj",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\YKC.csproj",
"RelativeToolTip": "YKC.csproj",
"Icon": "00000000-0000-0000-0000-000000000000.000000|iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAALUSURBVDhP5ZRfSFNRHMe/5267zrur003TDJrTQJx/yGHRCMFAM3CTRHqoJ6EyiHyIyDdBHwoSRz340OpFihYMwzCD6GnkSOthD7aFuzhMJMUY5vXavNe7u9NLylwpPQZ94Lz8fr/P9xwOhwP8dxAA8Pl8J2ZmZkqmp6ehKEr2zIF0dnbCbrcLvb29AgDoAUCSpH69Xu/heV6RZXktW/oThBCd2Wy2Ukp1siwPAhgAAAYARkdHUVxcDK/XO6VpWuPfrK6urraRkZGEKIoIBAJ7d7PZbBPt7e3\u002BWCx2cm9nfwRByBEEodXlcn2orKwc2KkT/AoEEO5\u002B2u1PqslL/rknaDl6FscKKoL9TYNBR8DBM5J2jdGTV9o2LWOAsk9XY/5Md3FxcQAAdABQUFBwEcCK5Uy\u002BIqUkn8VoaTYZuOat1NbidlvqM01uuxVNvbMp/1BSVG2hhLQfOV\u002B6kNtpWkYQFwCsiKIYxM4d7jC\u002B8BKhr1PpW87b3yilK1PL7ySqqvVpiuHvypp5U5VurCtih7S9UQ9Kh/NSeeZMH9mBALCurCfG4i/OMZqhUaV4tMEkQ0m62Zam6QQFuQkCn6IpU5Tq2yLmSCLb/y2QZ03mjnLPPU2vPmQJcfOUr\u002BNgGiJgzCD0Oig8rI6tA9GGHKLj4BO6Slw4XtSQ8/rLZCtD4XFYaqp0KU0EQ2bzWF7NYXLinIFbztVxIkh6ViOamukjO/DU4dOr1ZbqyTEhMElBJmsKa4XZnjmBUP3dPEP\u002BeKmx5IGVLXzMs6Znkcsxb\u002BxKTMr0dykvL59oaGgYjkQiluzeflBKmfn5\u002BUNVVVVvbTbb7jtkAIDjOLjd7h6WZe/vsQ4gHo8XaZr2pra2timzTgCgr69vQhRFz9LS0mo0Gv2YObAfHMcZnU5nk9VqNRoMhkGv1zuAnc/Bbrc/D4VC4Wg0mu3tiyzLCIfD791uNyoqKoLZ/X\u002BXn25ERIg8ycqdAAAAAElFTkSuQmCC",
"WhenOpened": "2026-05-13T09:08:51.991Z"
},
{
"$type": "Document",
"DocumentIndex": 8,
"Title": "App.config",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\App.config",
"RelativeDocumentMoniker": "App.config",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\App.config",
"RelativeToolTip": "App.config",
"ViewState": "AgIAAAAAAAAAAAAAAADwvwUAAAAQAAAAAAAAAA==",
"Icon": "00000000-0000-0000-0000-000000000000.000000|iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOhSURBVDhPrZRPSCNXHMe/LxNjTbquSYiLSYwV/1MwEEwFIWsOBQ/\u002BxS6ElUV6qiIG3ZNQSrGswQotu4i3QqkHXTCIYbeHFi9u2Wo1YhSNh7mkQaNpzWSMzDATNXm9OKIj2B76gXd53\u002B/vw\u002BM9eMD/DFFvzM3NGQG8DAaDpv39fWSz2Vu50\u002BlEY2NjeGJi4sWt4ApGveFwOIyJRGLK4XA0GY3G41gs9geA46vltVgsLSaTydbc3Fzo8Xj2VldXz2/O3zmhy\u002BUqA7A5ODiY8Hq9r2pra\u002BeVrKKi4k1lZWWd0\u002BnMAKgC8JxS\u002Buv09PRfSkdzbboilUohnU5jcnLyxU2ZQiaTeVtWVvYdpfSSEPIjIaRtaGjoQyW/I/w3Ojs7v\u002Bjr6/uMENJGKU0BeKnVageUXHu7DgQCAVBKAQD9/f23svb2diQSiQfDw8Ot0WjUaDKZHjIM8wGl9IHSuX6UcDjsbWpq\u002BnxmZsZrtVpbCgoKCn0\u002BH7e0tPSn0nny5Alisdje1tbWZj6fPxBF8XdBEKyCIOxlMpkV3HyUcDjcF4lERoPBoJvnebhcLpSXl8\u002BXlpa\u002BGhgYCCs9NRUVFW8AbMXj8XEA0ITD4TKWZQvdbve8wWD4sqen5\u002B\u002BLi4vc8vIydnd3\u002BwRB\u002BFotuQ8NIWQzk8k8BoDz8/P3sViszWKxpPR6PaLRKBYWFtQz98Kk0\u002Bnvj46O6rq7u8Xe3t6Cqqqqb1dWVmp5ntfKsgxJklie51\u002BrBxVKSkqeAjhW7pBhGGZclmVbKpUyb29vf3xwcNCzs7OjFUURVwWW47j/LNQ2NDSAZVkwDONNJpM4OTlBNpsFpRRarRZFRUWPRkdHP\u002BV5/v3s7KysFqrReL3eY6vVmhVFEYlEArIsgxACQgguLy\u002Bh0\u002BnckiTNGQyGer/fX6gWqNHkcrmmjo6O31pbW1FcXAyNRgOz2QydTgcA4DgOa2tr5lwu9wsh5LFaoEbj9/uP9Hr9VzqdrosQ0kUp7WIYpsvj8WzU1NQgn89DEAQmEok84jhuYmRk5CkAxONxI8uyP7W0tHxiMpmuhQwAhEKhxMbGBptMJtnT01P28PCQ9fl8IqXUrNFoPuI4DqIoglJqOzs728vn80ehUOi5LMvP9Hq9yW63v1tfX1/BfZ/D2NjY6\u002Brq6h/q6\u002BvDdrsdDMNAkiQIggAAD3mer1tcXHxnMBh\u002BdrvdrDJ35z9UMzU11SFJ0ttgMAi32w2bzfZNIBAYV/cU/gFl85csP2dGWAAAAABJRU5ErkJggg==",
"WhenOpened": "2026-05-13T09:08:54.548Z"
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "ResourcePart.cs",
"DocumentMoniker": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\3714f74b82eacc6cf8dcf1e32980b0908d4f8b447d25d4eb08ff1424a7b57c02\\ResourcePart.cs",
"RelativeDocumentMoniker": "..\\..\\..\\..\\AppData\\Local\\Temp\\.vsdbgsrc\\3714f74b82eacc6cf8dcf1e32980b0908d4f8b447d25d4eb08ff1424a7b57c02\\ResourcePart.cs",
"ToolTip": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\3714f74b82eacc6cf8dcf1e32980b0908d4f8b447d25d4eb08ff1424a7b57c02\\ResourcePart.cs [\u53EA\u8BFB]",
"RelativeToolTip": "..\\..\\..\\..\\AppData\\Local\\Temp\\.vsdbgsrc\\3714f74b82eacc6cf8dcf1e32980b0908d4f8b447d25d4eb08ff1424a7b57c02\\ResourcePart.cs [\u53EA\u8BFB]",
"ViewState": "AgIAABMAAAAAAAAAAAAowCcAAAADAAAAAQAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-05-13T09:19:37.213Z",
"EditorCaption": " [\u53EA\u8BFB]"
}
]
}
]
}
]
}

View File

@@ -0,0 +1,228 @@
{
"Version": 1,
"WorkspaceRootPath": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|c:\\users\\administrator\\pycharmprojects\\pythonproject\\c#\\ykc\\pages\\realtimepage.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:pages\\realtimepage.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|c:\\users\\administrator\\pycharmprojects\\pythonproject\\c#\\ykc\\pages\\gatewaypage.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:pages\\gatewaypage.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|c:\\users\\administrator\\pycharmprojects\\pythonproject\\c#\\ykc\\pages\\realtimepage.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:pages\\realtimepage.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|c:\\users\\administrator\\pycharmprojects\\pythonproject\\c#\\ykc\\pages\\gatewaypage.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:pages\\gatewaypage.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|c:\\users\\administrator\\pycharmprojects\\pythonproject\\c#\\ykc\\pages\\dashboardpage.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:pages\\dashboardpage.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|c:\\users\\administrator\\pycharmprojects\\pythonproject\\c#\\ykc\\pages\\chargerpage.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:pages\\chargerpage.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|c:\\users\\administrator\\pycharmprojects\\pythonproject\\c#\\ykc\\mainwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:mainwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\3714f74b82eacc6cf8dcf1e32980b0908d4f8b447d25d4eb08ff1424a7b57c02\\ResourcePart.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:mainwindow.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\app.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:app.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\app.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}|YKC.csproj|solutionrelative:app.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{00000000-0000-0000-0000-000000000000}|\u003CSolution\u003E|YKC||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 0,
"Children": [
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "RealtimePage.xaml",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\RealtimePage.xaml",
"RelativeDocumentMoniker": "Pages\\RealtimePage.xaml",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\RealtimePage.xaml",
"RelativeToolTip": "Pages\\RealtimePage.xaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2026-05-20T03:56:55.66Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "RealtimePage.xaml.cs",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\RealtimePage.xaml.cs",
"RelativeDocumentMoniker": "Pages\\RealtimePage.xaml.cs",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\RealtimePage.xaml.cs",
"RelativeToolTip": "Pages\\RealtimePage.xaml.cs",
"ViewState": "AgIAAFcAAAAAAAAAAAAowH8AAAAQAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-05-20T03:48:04.174Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "GatewayPage.xaml.cs",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\GatewayPage.xaml.cs",
"RelativeDocumentMoniker": "Pages\\GatewayPage.xaml.cs",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\GatewayPage.xaml.cs",
"RelativeToolTip": "Pages\\GatewayPage.xaml.cs",
"ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-05-20T03:56:52.729Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "DashboardPage.xaml",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\DashboardPage.xaml",
"RelativeDocumentMoniker": "Pages\\DashboardPage.xaml",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\DashboardPage.xaml",
"RelativeToolTip": "Pages\\DashboardPage.xaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2026-05-20T03:55:04.048Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 5,
"Title": "ChargerPage.xaml",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\ChargerPage.xaml",
"RelativeDocumentMoniker": "Pages\\ChargerPage.xaml",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\ChargerPage.xaml",
"RelativeToolTip": "Pages\\ChargerPage.xaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2026-05-20T03:55:01.467Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 9,
"Title": "MainWindow.xaml.cs",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\MainWindow.xaml.cs",
"RelativeDocumentMoniker": "MainWindow.xaml.cs",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\MainWindow.xaml.cs",
"RelativeToolTip": "MainWindow.xaml.cs",
"ViewState": "AgIAADMAAAAAAAAAAAAewEoAAAAMAAAAAAAAAA==",
"Icon": "00000000-0000-0000-0000-000000000000.000000|iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJ7SURBVDhP7ZQ9aBNhGMef9y7t2eH0TOPHnbnzzmDjkpTqNSEdShDBpRbBQbEI/bCSRVA7iFWk1OpS0CGDH5OlgQgZihRioTgU0VzTEKhSTeLg2aYBLUIgzfUj17wuXptcQUFdBH/j83//P953eF4AE0eGZljXkLL4ZErFsY9LA\u002Bb8VyDz4NGUyiKARDJb5A7srMkc27Wcjr98DpFIBLxeL/A8Hx4cHAybewbkwZuvB9aPXvDrcqcfPJ3\u002BN2rBX1dDtMTUZeqbptfr\u002BgYqZd/G5ubmzrAs66Ioql6W5dL09PQ7swwAgGRaL/YVS5jTcZkDBBwug50kCelLoWQBQIAttbHJh7f6McadVqs1RdP0HoRQk8/n\u002B\u002BR0OnOzs7N6pXDbk1\u002B8/8oifSMxMrPECUzt8mmXdezsCfk6QRAJh8Nxw\u002BPxHNI07TIA6ABwslwufwgGg2tGn6jWAdyb\u002BAx3J7PgE2k43rD7Md5Re8XIenp6HnR3dwMAXAWAeoTQBEKotbJfdcPh4eHmdUz0TerusXMtDVoTX5f2OvZment7WYvFklhZWeHm5\u002BczuVwuzzCM50etXVGUccNh2dIBKIqyjyCI1v3kzLVA/7OcMW9sbCwUi8X70WiUVlUVAABWV1dfYYwvEcS2R24hSVKbKIo5nuc5c2ZGEARWFMVFSZJOVc5/ov89/gv/nH9MSFEU2Gw2aygUeppOp41N2EYqlWoOhUIjgiBYGYapyqpWLxAItJEkOW632yEej4eTyWSmMjdwu92HZVk\u002Bn8/nQdf19mAwuLl6VcLR0dFmTdNuRyIRWFhYgLW1zU\u002BkCpIkwWazQVdXF9A0faejoyNuPvPX\u002BA5Fb\u002BAHZWstowAAAABJRU5ErkJggg==",
"WhenOpened": "2026-05-13T09:04:45.364Z"
},
{
"$type": "Document",
"DocumentIndex": 11,
"Title": "App.xaml.cs",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\App.xaml.cs",
"RelativeDocumentMoniker": "App.xaml.cs",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\App.xaml.cs",
"RelativeToolTip": "App.xaml.cs",
"ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
"Icon": "00000000-0000-0000-0000-000000000000.000000|iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJ7SURBVDhP7ZQ9aBNhGMef9y7t2eH0TOPHnbnzzmDjkpTqNSEdShDBpRbBQbEI/bCSRVA7iFWk1OpS0CGDH5OlgQgZihRioTgU0VzTEKhSTeLg2aYBLUIgzfUj17wuXptcQUFdBH/j83//P953eF4AE0eGZljXkLL4ZErFsY9LA\u002Bb8VyDz4NGUyiKARDJb5A7srMkc27Wcjr98DpFIBLxeL/A8Hx4cHAybewbkwZuvB9aPXvDrcqcfPJ3\u002BN2rBX1dDtMTUZeqbptfr\u002BgYqZd/G5ubmzrAs66Ioql6W5dL09PQ7swwAgGRaL/YVS5jTcZkDBBwug50kCelLoWQBQIAttbHJh7f6McadVqs1RdP0HoRQk8/n\u002B\u002BR0OnOzs7N6pXDbk1\u002B8/8oifSMxMrPECUzt8mmXdezsCfk6QRAJh8Nxw\u002BPxHNI07TIA6ABwslwufwgGg2tGn6jWAdyb\u002BAx3J7PgE2k43rD7Md5Re8XIenp6HnR3dwMAXAWAeoTQBEKotbJfdcPh4eHmdUz0TerusXMtDVoTX5f2OvZment7WYvFklhZWeHm5\u002BczuVwuzzCM50etXVGUccNh2dIBKIqyjyCI1v3kzLVA/7OcMW9sbCwUi8X70WiUVlUVAABWV1dfYYwvEcS2R24hSVKbKIo5nuc5c2ZGEARWFMVFSZJOVc5/ov89/gv/nH9MSFEU2Gw2aygUeppOp41N2EYqlWoOhUIjgiBYGYapyqpWLxAItJEkOW632yEej4eTyWSmMjdwu92HZVk\u002Bn8/nQdf19mAwuLl6VcLR0dFmTdNuRyIRWFhYgLW1zU\u002BkCpIkwWazQVdXF9A0faejoyNuPvPX\u002BA5Fb\u002BAHZWstowAAAABJRU5ErkJggg==",
"WhenOpened": "2026-05-13T09:10:18.727Z"
},
{
"$type": "Document",
"DocumentIndex": 10,
"Title": "App.xaml",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\App.xaml",
"RelativeDocumentMoniker": "App.xaml",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\App.xaml",
"RelativeToolTip": "App.xaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2026-05-13T09:08:55.359Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 6,
"Title": "MainWindow.xaml",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\MainWindow.xaml",
"RelativeDocumentMoniker": "MainWindow.xaml",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\MainWindow.xaml",
"RelativeToolTip": "MainWindow.xaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2026-05-13T09:04:45.868Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "GatewayPage.xaml",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\GatewayPage.xaml",
"RelativeDocumentMoniker": "Pages\\GatewayPage.xaml",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\Pages\\GatewayPage.xaml",
"RelativeToolTip": "Pages\\GatewayPage.xaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2026-05-20T03:55:06.415Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 12,
"Title": "YKC",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\YKC.csproj",
"RelativeDocumentMoniker": "YKC.csproj",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\YKC.csproj",
"RelativeToolTip": "YKC.csproj",
"Icon": "00000000-0000-0000-0000-000000000000.000000|iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAALUSURBVDhP5ZRfSFNRHMe/5267zrur003TDJrTQJx/yGHRCMFAM3CTRHqoJ6EyiHyIyDdBHwoSRz340OpFihYMwzCD6GnkSOthD7aFuzhMJMUY5vXavNe7u9NLylwpPQZ94Lz8fr/P9xwOhwP8dxAA8Pl8J2ZmZkqmp6ehKEr2zIF0dnbCbrcLvb29AgDoAUCSpH69Xu/heV6RZXktW/oThBCd2Wy2Ukp1siwPAhgAAAYARkdHUVxcDK/XO6VpWuPfrK6urraRkZGEKIoIBAJ7d7PZbBPt7e3\u002BWCx2cm9nfwRByBEEodXlcn2orKwc2KkT/AoEEO5\u002B2u1PqslL/rknaDl6FscKKoL9TYNBR8DBM5J2jdGTV9o2LWOAsk9XY/5Md3FxcQAAdABQUFBwEcCK5Uy\u002BIqUkn8VoaTYZuOat1NbidlvqM01uuxVNvbMp/1BSVG2hhLQfOV\u002B6kNtpWkYQFwCsiKIYxM4d7jC\u002B8BKhr1PpW87b3yilK1PL7ySqqvVpiuHvypp5U5VurCtih7S9UQ9Kh/NSeeZMH9mBALCurCfG4i/OMZqhUaV4tMEkQ0m62Zam6QQFuQkCn6IpU5Tq2yLmSCLb/y2QZ03mjnLPPU2vPmQJcfOUr\u002BNgGiJgzCD0Oig8rI6tA9GGHKLj4BO6Slw4XtSQ8/rLZCtD4XFYaqp0KU0EQ2bzWF7NYXLinIFbztVxIkh6ViOamukjO/DU4dOr1ZbqyTEhMElBJmsKa4XZnjmBUP3dPEP\u002BeKmx5IGVLXzMs6Znkcsxb\u002BxKTMr0dykvL59oaGgYjkQiluzeflBKmfn5\u002BUNVVVVvbTbb7jtkAIDjOLjd7h6WZe/vsQ4gHo8XaZr2pra2timzTgCgr69vQhRFz9LS0mo0Gv2YObAfHMcZnU5nk9VqNRoMhkGv1zuAnc/Bbrc/D4VC4Wg0mu3tiyzLCIfD791uNyoqKoLZ/X\u002BXn25ERIg8ycqdAAAAAElFTkSuQmCC",
"WhenOpened": "2026-05-13T09:08:51.991Z"
},
{
"$type": "Document",
"DocumentIndex": 8,
"Title": "App.config",
"DocumentMoniker": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\App.config",
"RelativeDocumentMoniker": "App.config",
"ToolTip": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\App.config",
"RelativeToolTip": "App.config",
"ViewState": "AgIAAAAAAAAAAAAAAADwvwUAAAAQAAAAAAAAAA==",
"Icon": "00000000-0000-0000-0000-000000000000.000000|iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOhSURBVDhPrZRPSCNXHMe/LxNjTbquSYiLSYwV/1MwEEwFIWsOBQ/\u002BxS6ElUV6qiIG3ZNQSrGswQotu4i3QqkHXTCIYbeHFi9u2Wo1YhSNh7mkQaNpzWSMzDATNXm9OKIj2B76gXd53\u002B/vw\u002BM9eMD/DFFvzM3NGQG8DAaDpv39fWSz2Vu50\u002BlEY2NjeGJi4sWt4ApGveFwOIyJRGLK4XA0GY3G41gs9geA46vltVgsLSaTydbc3Fzo8Xj2VldXz2/O3zmhy\u002BUqA7A5ODiY8Hq9r2pra\u002BeVrKKi4k1lZWWd0\u002BnMAKgC8JxS\u002Buv09PRfSkdzbboilUohnU5jcnLyxU2ZQiaTeVtWVvYdpfSSEPIjIaRtaGjoQyW/I/w3Ojs7v\u002Bjr6/uMENJGKU0BeKnVageUXHu7DgQCAVBKAQD9/f23svb2diQSiQfDw8Ot0WjUaDKZHjIM8wGl9IHSuX6UcDjsbWpq\u002BnxmZsZrtVpbCgoKCn0\u002BH7e0tPSn0nny5Alisdje1tbWZj6fPxBF8XdBEKyCIOxlMpkV3HyUcDjcF4lERoPBoJvnebhcLpSXl8\u002BXlpa\u002BGhgYCCs9NRUVFW8AbMXj8XEA0ITD4TKWZQvdbve8wWD4sqen5\u002B\u002BLi4vc8vIydnd3\u002BwRB\u002BFotuQ8NIWQzk8k8BoDz8/P3sViszWKxpPR6PaLRKBYWFtQz98Kk0\u002Bnvj46O6rq7u8Xe3t6Cqqqqb1dWVmp5ntfKsgxJklie51\u002BrBxVKSkqeAjhW7pBhGGZclmVbKpUyb29vf3xwcNCzs7OjFUURVwWW47j/LNQ2NDSAZVkwDONNJpM4OTlBNpsFpRRarRZFRUWPRkdHP\u002BV5/v3s7KysFqrReL3eY6vVmhVFEYlEArIsgxACQgguLy\u002Bh0\u002BnckiTNGQyGer/fX6gWqNHkcrmmjo6O31pbW1FcXAyNRgOz2QydTgcA4DgOa2tr5lwu9wsh5LFaoEbj9/uP9Hr9VzqdrosQ0kUp7WIYpsvj8WzU1NQgn89DEAQmEok84jhuYmRk5CkAxONxI8uyP7W0tHxiMpmuhQwAhEKhxMbGBptMJtnT01P28PCQ9fl8IqXUrNFoPuI4DqIoglJqOzs728vn80ehUOi5LMvP9Hq9yW63v1tfX1/BfZ/D2NjY6\u002Brq6h/q6\u002BvDdrsdDMNAkiQIggAAD3mer1tcXHxnMBh\u002BdrvdrDJ35z9UMzU11SFJ0ttgMAi32w2bzfZNIBAYV/cU/gFl85csP2dGWAAAAABJRU5ErkJggg==",
"WhenOpened": "2026-05-13T09:08:54.548Z"
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "ResourcePart.cs",
"DocumentMoniker": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\3714f74b82eacc6cf8dcf1e32980b0908d4f8b447d25d4eb08ff1424a7b57c02\\ResourcePart.cs",
"RelativeDocumentMoniker": "..\\..\\..\\..\\AppData\\Local\\Temp\\.vsdbgsrc\\3714f74b82eacc6cf8dcf1e32980b0908d4f8b447d25d4eb08ff1424a7b57c02\\ResourcePart.cs",
"ToolTip": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\3714f74b82eacc6cf8dcf1e32980b0908d4f8b447d25d4eb08ff1424a7b57c02\\ResourcePart.cs [\u53EA\u8BFB]",
"RelativeToolTip": "..\\..\\..\\..\\AppData\\Local\\Temp\\.vsdbgsrc\\3714f74b82eacc6cf8dcf1e32980b0908d4f8b447d25d4eb08ff1424a7b57c02\\ResourcePart.cs [\u53EA\u8BFB]",
"ViewState": "AgIAABMAAAAAAAAAAAAowCcAAAADAAAAAQAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-05-13T09:19:37.213Z",
"EditorCaption": " [\u53EA\u8BFB]"
}
]
}
]
}
]
}

6
上位机/YKC/App.config Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>

274
上位机/YKC/App.xaml Normal file
View File

@@ -0,0 +1,274 @@
<Application x:Class="YKC.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="LoginWindow.xaml">
<Application.Resources>
<!-- 颜色 -->
<SolidColorBrush x:Key="PrimaryBrush" Color="#3B82F6"/>
<SolidColorBrush x:Key="PrimaryDarkBrush" Color="#2563EB"/>
<SolidColorBrush x:Key="SidebarBrush" Color="#1E293B"/>
<SolidColorBrush x:Key="BgBrush" Color="#F0F2F5"/>
<SolidColorBrush x:Key="CardBrush" Color="#FFFFFF"/>
<SolidColorBrush x:Key="BorderBrush" Color="#E2E8F0"/>
<SolidColorBrush x:Key="TextBrush" Color="#1E293B"/>
<SolidColorBrush x:Key="TextDimBrush" Color="#64748B"/>
<SolidColorBrush x:Key="TextLightBrush" Color="#94A3B8"/>
<SolidColorBrush x:Key="SuccessBrush" Color="#10B981"/>
<SolidColorBrush x:Key="DangerBrush" Color="#EF4444"/>
<!-- 圆角输入框样式 -->
<Style x:Key="FormInput" TargetType="TextBox">
<Setter Property="Padding" Value="10,8"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="BorderBrush" Value="#E2E8F0"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TextBox">
<Border Background="White" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="4">
<ScrollViewer x:Name="PART_ContentHost" Margin="{TemplateBinding Padding}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- 密码框样式 -->
<Style x:Key="PwdInput" TargetType="PasswordBox">
<Setter Property="Padding" Value="10,8"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="BorderBrush" Value="#E2E8F0"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="PasswordBox">
<Border Background="White" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="4">
<Grid>
<Rectangle Fill="Transparent"/>
<ScrollViewer x:Name="PART_ContentHost"
Margin="{TemplateBinding Padding}"
VerticalAlignment="Center"/>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- 蓝色主按钮 -->
<Style x:Key="BtnPrimary" TargetType="Button">
<Setter Property="Background" Value="#3B82F6"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Padding" Value="20,9"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}" CornerRadius="4"
Padding="{TemplateBinding Padding}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#2563EB"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.5"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- 白色边框按钮 -->
<Style x:Key="BtnOutline" TargetType="Button" BasedOn="{StaticResource BtnPrimary}">
<Setter Property="Background" Value="White"/>
<Setter Property="Foreground" Value="#3B82F6"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="#3B82F6"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#EFF6FF"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- 红色危险按钮 -->
<Style x:Key="BtnDanger" TargetType="Button" BasedOn="{StaticResource BtnPrimary}">
<Setter Property="Background" Value="#EF4444"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#DC2626"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- 侧边导航按钮 -->
<Style x:Key="NavBtn" TargetType="Button">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="#8899AA"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="Height" Value="44"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="Padding" Value="22,0,0,0"/>
<Setter Property="BorderThickness" Value="3,0,0,0"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<Border Background="{TemplateBinding Background}"
Padding="{TemplateBinding Padding}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="Center"/>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#1A2433"/>
<Setter Property="Foreground" Value="#CCDDEE"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- 表单标签(在输入框上方) -->
<Style x:Key="FieldLabel" TargetType="TextBlock">
<Setter Property="Foreground" Value="#64748B"/>
<Setter Property="FontSize" Value="13"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Margin" Value="0,0,0,4"/>
</Style>
<!-- 信息行标签(灰色小字) -->
<Style x:Key="InfoLabel" TargetType="TextBlock">
<Setter Property="Foreground" Value="#94A3B8"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="Margin" Value="0,0,0,2"/>
</Style>
<!-- 信息行值 -->
<Style x:Key="InfoValue" TargetType="TextBlock">
<Setter Property="Foreground" Value="#1E293B"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Margin" Value="0,0,0,8"/>
</Style>
<!-- 徽章 -->
<Style x:Key="Badge" TargetType="TextBlock">
<Setter Property="FontSize" Value="11"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Padding" Value="8,3"/>
</Style>
<!-- 下拉框样式 -->
<Style x:Key="StyledCombo" TargetType="ComboBox">
<Setter Property="FontSize" Value="13"/>
<Setter Property="Height" Value="34"/>
<Setter Property="Foreground" Value="#1E293B"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Background" Value="White"/>
<Setter Property="Padding" Value="12,0,10,0"/>
<Setter Property="MinWidth" Value="60"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBox">
<Grid>
<Border x:Name="border" Background="{TemplateBinding Background}"
BorderBrush="{StaticResource BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="4">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<ContentPresenter Grid.Column="0" Margin="{TemplateBinding Padding}"
VerticalAlignment="Center"
Content="{TemplateBinding SelectionBoxItem}"
ContentTemplate="{TemplateBinding ItemTemplate}"
IsHitTestVisible="False"/>
<Path Grid.Column="1" Data="M0,0 L7,0 L3.5,5 Z"
Fill="#94A3B8" Margin="0,0,10,0"
VerticalAlignment="Center" Stretch="Uniform"/>
</Grid>
</Border>
<Popup x:Name="PART_Popup" AllowsTransparency="True"
IsOpen="{TemplateBinding IsDropDownOpen}"
Placement="Bottom" Focusable="False"
PopupAnimation="Fade"
VerticalOffset="2">
<Border x:Name="dropDownBorder" Background="White"
BorderBrush="#E2E8F0" BorderThickness="1"
CornerRadius="6" Padding="4"
Effect="{Binding RelativeSource={RelativeSource Self}, Path=Tag}">
<ScrollViewer>
<ItemsPresenter/>
</ScrollViewer>
</Border>
</Popup>
<!-- 点击切换的 ToggleButton -->
<ToggleButton x:Name="toggleBtn"
IsChecked="{Binding IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
Focusable="False"
Background="Transparent"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="BorderBrush" Value="#3B82F6"/>
<Setter TargetName="border" Property="Background" Value="#F8FAFC"/>
</Trigger>
<Trigger Property="IsDropDownOpen" Value="True">
<Setter TargetName="border" Property="BorderBrush" Value="#3B82F6"/>
<Setter TargetName="border" Property="Background" Value="White"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- 下拉框项样式 -->
<Style TargetType="ComboBoxItem">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="#1E293B"/>
<Setter Property="FontSize" Value="13"/>
<Setter Property="Padding" Value="12,8"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBoxItem">
<Border x:Name="border" Background="{TemplateBinding Background}"
Padding="{TemplateBinding Padding}" CornerRadius="3">
<ContentPresenter/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="Background" Value="#EFF6FF"/>
<Setter Property="Foreground" Value="#3B82F6"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="border" Property="Background" Value="#DBEAFE"/>
<Setter Property="Foreground" Value="#1E40AF"/>
<Setter Property="FontWeight" Value="SemiBold"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Application.Resources>
</Application>

17
上位机/YKC/App.xaml.cs Normal file
View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
namespace YKC
{
/// <summary>
/// App.xaml 的交互逻辑
/// </summary>
public partial class App : Application
{
}
}

31
上位机/YKC/Config.cs Normal file
View File

@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
namespace YKC
{
public static class Config
{
public static string TargetIp { get; set; } = "10.12.19.100";
public static int TargetPort { get; set; } = 6001;
public static int LocalPort { get; set; } = 6002;
public static int UdpTimeout { get; set; } = 3;
public static readonly Dictionary<string, string> Cmd = new Dictionary<string, string>
{
["LOGIN"] = "server_login",
["GET_STATUS"] = "server_get_status",
["SET_PILE_ID"] = "server_set_pile_id",
["GET_PILE_INFO"] = "server_get_pile_info",
["REBOOT"] = "server_reboot",
["REPORT_DATA"] = "report_data",
["PILE_METRICS"] = "pile_metrics",
["REAL_TIME_DATA"] = "real_time_data",
["GET_GW_INFO"] = "gateway_get_info",
["GET_4G_STATUS"] = "gateway_get_4g_status",
["GET_CLOUD_CONFIG"] = "gateway_get_cloud_config",
["SET_CLOUD_CONFIG"] = "gateway_set_cloud_config",
["GET_NET_CONFIG"] = "gateway_get_net_config",
["SET_NET_CONFIG"] = "gateway_set_net_config",
};
}
}

View File

@@ -0,0 +1,39 @@
<Window x:Class="YKC.LoginWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="登录 - 百瑞充电桩网关管理" Height="420" Width="400"
WindowStartupLocation="CenterScreen"
WindowStyle="None" AllowsTransparency="True"
Background="Transparent"
ResizeMode="NoResize">
<Border Background="White" CornerRadius="8" Padding="40,36"
Margin="0" BorderBrush="#E2E8F0" BorderThickness="1"
Effect="{Binding RelativeSource={RelativeSource Self}, Path=Tag}">
<Border.Tag>
<DropShadowEffect BlurRadius="20" ShadowDepth="4" Color="#CC000000" Opacity="0.12"/>
</Border.Tag>
<StackPanel>
<TextBlock Text="充电桩管理系统" FontSize="22" FontWeight="Bold"
Foreground="#1E293B" HorizontalAlignment="Center" Margin="0,0,0,4"/>
<TextBlock Text="百瑞充电桩网关后台" FontSize="13" Foreground="#94A3B8"
HorizontalAlignment="Center" Margin="0,0,0,28"/>
<TextBlock Text="账号" Style="{StaticResource FieldLabel}"/>
<TextBox x:Name="txtUsername" Style="{StaticResource FormInput}"
Height="50" FontSize="14" Margin="0,0,0,16" Text="admin"/>
<TextBlock Text="密码" Style="{StaticResource FieldLabel}"/>
<PasswordBox x:Name="txtPassword" Style="{StaticResource PwdInput}"
Height="50" FontSize="14" Margin="0,0,0,24"/>
<Button x:Name="btnLogin" Content="登 录"
Style="{StaticResource BtnPrimary}"
Height="42" FontSize="15"
Click="Login_Click"/>
<TextBlock x:Name="txtError" Foreground="#EF4444" FontSize="13"
HorizontalAlignment="Center" Margin="0,12,0,0"/>
</StackPanel>
</Border>
</Window>

View File

@@ -0,0 +1,66 @@
using System;
using System.Windows;
using System.Windows.Input;
using Newtonsoft.Json.Linq;
namespace YKC
{
public partial class LoginWindow : Window
{
public LoginWindow()
{
InitializeComponent();
txtUsername.Focus();
KeyDown += (s, e) =>
{
if (e.Key == Key.Enter) Login();
};
}
private async void Login_Click(object sender, RoutedEventArgs e) => Login();
private async void Login()
{
string user = txtUsername.Text.Trim();
string pass = txtPassword.Password;
if (string.IsNullOrEmpty(user) || string.IsNullOrEmpty(pass))
{
txtError.Text = "请输入账号和密码";
return;
}
btnLogin.IsEnabled = false;
btnLogin.Content = "校验中...";
txtError.Text = "";
await System.Threading.Tasks.Task.Run(() =>
{
var result = UdpClientHolder.Instance.SendSync(new JObject
{
["cmd"] = Config.Cmd["LOGIN"],
["username"] = user,
["password"] = pass
});
Dispatcher.BeginInvoke(new Action(() =>
{
if (result.Value<bool>("success"))
{
var mainWin = new MainWindow();
mainWin.SetUser(user);
mainWin.Show();
Close();
}
else
{
txtError.Text = result.Value<string>("error") ?? "账号或密码错误";
btnLogin.IsEnabled = true;
btnLogin.Content = "登 录";
}
}));
});
}
}
}

View File

@@ -0,0 +1,77 @@
<Window x:Class="YKC.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="百瑞充电桩网关管理" Height="956" Width="1365"
MinHeight="640" MinWidth="1060"
WindowStartupLocation="CenterScreen"
Background="#F0F2F5">
<WindowChrome.WindowChrome>
<WindowChrome CaptionHeight="0" GlassFrameThickness="0" ResizeBorderThickness="4"/>
</WindowChrome.WindowChrome>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- 侧边栏 -->
<Border Grid.Column="0" Background="#1E293B">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="48"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border Grid.Row="0" Background="#162033"
Padding="18,0" BorderBrush="#2A3A50" BorderThickness="0,0,0,1"
MouseLeftButtonDown="Header_MouseDown">
<TextBlock Text="百瑞充电桩网关" Foreground="White"
FontSize="14" FontWeight="SemiBold" VerticalAlignment="Center"/>
</Border>
<StackPanel Grid.Row="1" Margin="0,4,0,0">
<Button x:Name="btnDashboard" Content="&#x1F4CA; 总览"
Style="{StaticResource NavBtn}" Click="NavButton_Click"
Tag="dashboard"/>
<Button x:Name="btnRealtime" Content="&#x1F4C8; 实时监控"
Style="{StaticResource NavBtn}" Click="NavButton_Click"
Tag="realtime"/>
<Button x:Name="btnCharger" Content="&#x2699; 充电桩管理"
Style="{StaticResource NavBtn}" Click="NavButton_Click"
Tag="charger"/>
<Button x:Name="btnGateway" Content="&#x1F310; 网关管理"
Style="{StaticResource NavBtn}" Click="NavButton_Click"
Tag="gateway"/>
</StackPanel>
</Grid>
</Border>
<!-- 主内容区 -->
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="48"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- 顶栏 -->
<Border Grid.Row="0" Background="White" BorderBrush="#E2E8F0" BorderThickness="0,0,0,1"
Padding="16,0">
<Grid>
<TextBlock x:Name="txtPageTitle" Text="总览" FontSize="16"
FontWeight="SemiBold" Foreground="#1E293B" VerticalAlignment="Center"/>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right"
VerticalAlignment="Center">
<TextBlock x:Name="txtUser" Text="Admin" Foreground="#64748B" FontSize="13"
VerticalAlignment="Center" Margin="0,0,10,0"/>
<Button Content="退出登录" Style="{StaticResource BtnOutline}"
Padding="12,5" FontSize="12" Click="Logout_Click"/>
</StackPanel>
</Grid>
</Border>
<!-- 页面 Frame -->
<Frame x:Name="contentFrame" Grid.Row="1" NavigationUIVisibility="Hidden"/>
</Grid>
</Grid>
</Window>

View File

@@ -0,0 +1,110 @@
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace YKC
{
public partial class MainWindow : Window
{
private Dictionary<string, Button> _navButtons = new Dictionary<string, Button>();
private Dictionary<string, string> _navTitles = new Dictionary<string, string>();
private string _username = "Admin";
public void SetUser(string name)
{
_username = name;
if (txtUser != null) txtUser.Text = name;
}
public MainWindow()
{
InitializeComponent();
_navButtons["dashboard"] = btnDashboard;
_navButtons["realtime"] = btnRealtime;
_navButtons["charger"] = btnCharger;
_navButtons["gateway"] = btnGateway;
_navTitles["dashboard"] = "总览";
_navTitles["realtime"] = "实时监控";
_navTitles["charger"] = "充电桩管理";
_navTitles["gateway"] = "网关管理";
txtUser.Text = "Admin";
Loaded += (s, e) =>
{
UdpClientHolder.Instance.OnActiveReport += PilesStoreHolder.Instance.HandleReport;
NavigateTo("dashboard");
};
}
private void SetActiveNav(string key)
{
foreach (var kv in _navButtons)
{
var btn = kv.Value;
var border = btn.Template?.FindName("border", btn) as Border;
if (kv.Key == key)
{
btn.Foreground = new SolidColorBrush(Colors.White);
btn.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#1A3A5C"));
btn.BorderBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#3B82F6"));
btn.BorderThickness = new Thickness(3, 0, 0, 0);
}
else
{
btn.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#8899AA"));
btn.Background = new SolidColorBrush(Colors.Transparent);
btn.BorderBrush = new SolidColorBrush(Colors.Transparent);
btn.BorderThickness = new Thickness(3, 0, 0, 0);
}
}
}
private void NavigateTo(string key)
{
SetActiveNav(key);
txtPageTitle.Text = _navTitles.ContainsKey(key) ? _navTitles[key] : key;
Uri uri;
switch (key)
{
case "dashboard": uri = new Uri("Pages/DashboardPage.xaml", UriKind.Relative); break;
case "realtime": uri = new Uri("Pages/RealtimePage.xaml", UriKind.Relative); break;
case "charger": uri = new Uri("Pages/ChargerPage.xaml", UriKind.Relative); break;
case "gateway": uri = new Uri("Pages/GatewayPage.xaml", UriKind.Relative); break;
default: return;
}
contentFrame.Source = uri;
}
private void NavButton_Click(object sender, RoutedEventArgs e)
{
if (sender is Button btn && btn.Tag is string key)
{
NavigateTo(key);
}
}
private void Logout_Click(object sender, RoutedEventArgs e)
{
var result = MessageBox.Show("确认退出登录?", "退出", MessageBoxButton.YesNo, MessageBoxImage.Question);
if (result == MessageBoxResult.Yes)
{
var loginWin = new LoginWindow();
loginWin.Show();
Close();
}
}
private void Header_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
if (e.LeftButton == System.Windows.Input.MouseButtonState.Pressed)
DragMove();
}
}
}

View File

@@ -0,0 +1,96 @@
<Page x:Class="YKC.ChargerPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="充电桩管理" Background="#F0F2F5">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel Margin="24">
<TextBlock Text="充电桩管理" FontSize="16" FontWeight="SemiBold"
Foreground="#1E293B" Margin="0,0,0,20"/>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- 写入桩ID -->
<Border Grid.Column="0" Background="White" CornerRadius="6"
Margin="0,0,8,0" Padding="24">
<StackPanel>
<TextBlock Text="写入桩 ID" FontSize="14" FontWeight="SemiBold"
Foreground="#1E293B" Margin="0,0,0,16"/>
<TextBlock Text="桩编号" Style="{StaticResource FieldLabel}"/>
<TextBox x:Name="txtSetPileIdx" Text="1" Width="80"
Style="{StaticResource FormInput}" Margin="0,0,0,16"/>
<TextBlock Text="序列号 (HEX, 14位)" Style="{StaticResource FieldLabel}"/>
<TextBox x:Name="txtSetPileId" Width="240" MaxLength="14"
Style="{StaticResource FormInput}" FontFamily="Consolas"
Margin="0,0,0,16"/>
<WrapPanel>
<Button Content="写 入" Style="{StaticResource BtnPrimary}" Width="90"
Click="SetPileId_Click"/>
<TextBlock x:Name="txtSetResult" Foreground="#10B981"
FontSize="13" VerticalAlignment="Center" Margin="12,0,0,0"/>
</WrapPanel>
</StackPanel>
</Border>
<!-- 查询充电桩 -->
<Border Grid.Column="1" Background="White" CornerRadius="6"
Margin="8,0,0,0" Padding="24">
<StackPanel>
<TextBlock Text="查询充电桩信息" FontSize="14" FontWeight="SemiBold"
Foreground="#1E293B" Margin="0,0,0,16"/>
<TextBlock Text="桩编号" Style="{StaticResource FieldLabel}"/>
<WrapPanel Margin="0,0,0,14">
<TextBox x:Name="txtInfoPileIdx" Text="1" Width="80"
Style="{StaticResource FormInput}"/>
<Button Content="查 询" Style="{StaticResource BtnOutline}" Width="80"
Margin="10,0,0,0" Click="GetPileInfo_Click"/>
<TextBlock x:Name="txtInfoResult" VerticalAlignment="Center"
FontSize="13" Margin="10,0,0,0"/>
</WrapPanel>
<!-- 查询结果 -->
<Border x:Name="panelInfo" Background="#F8FAFC"
CornerRadius="4" Padding="14" Visibility="Collapsed">
<StackPanel>
<TextBlock Text="序列号" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtInfoSerial" Text="--" Style="{StaticResource InfoValue}"/>
<TextBlock Text="类型" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtInfoType" Text="--" Style="{StaticResource InfoValue}"/>
<TextBlock Text="枪数量" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtInfoGuns" Text="--" Style="{StaticResource InfoValue}"/>
<TextBlock Text="协议版本" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtInfoProto" Text="--" Style="{StaticResource InfoValue}"/>
<TextBlock Text="软件版本" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtInfoSw" Text="--" Style="{StaticResource InfoValue}"/>
<TextBlock Text="SIM 卡" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtInfoSim" Text="--" Style="{StaticResource InfoValue}"/>
</StackPanel>
</Border>
</StackPanel>
</Border>
</Grid>
<!-- 设备操作 -->
<Border Background="White" CornerRadius="6" Padding="24" Margin="0,14,0,0">
<StackPanel>
<TextBlock Text="设备操作" FontSize="14" FontWeight="SemiBold"
Foreground="#1E293B" Margin="0,0,0,14"/>
<WrapPanel>
<Button Content="重启设备" Style="{StaticResource BtnDanger}" Width="110"
Click="Reboot_Click"/>
<TextBlock x:Name="txtRebootResult" Foreground="#10B981"
FontSize="13" VerticalAlignment="Center" Margin="12,0,0,0"/>
</WrapPanel>
</StackPanel>
</Border>
</StackPanel>
</ScrollViewer>
</Page>

View File

@@ -0,0 +1,118 @@
using System;
using System.Windows;
using System.Windows.Controls;
using Newtonsoft.Json.Linq;
namespace YKC
{
public partial class ChargerPage : Page
{
public ChargerPage()
{
InitializeComponent();
}
private async void SetPileId_Click(object sender, RoutedEventArgs e)
{
string idx = txtSetPileIdx.Text.Trim();
string id = txtSetPileId.Text.Trim();
if (string.IsNullOrEmpty(id) || id.Length != 14)
{
ShowResult(txtSetResult, "序列号需14位HEX", false);
return;
}
ShowResult(txtSetResult, "发送中...", true);
await System.Threading.Tasks.Task.Run(() =>
{
var result = UdpClientHolder.Instance.SendSync(new JObject
{
["cmd"] = Config.Cmd["SET_PILE_ID"],
["pile_index"] = int.Parse(idx),
["pile_id"] = id
});
Dispatcher.BeginInvoke(new Action(() =>
{
if (result.Value<bool>("success"))
ShowResult(txtSetResult, "写入成功", true);
else
ShowResult(txtSetResult, result.Value<string>("error") ?? "失败", false);
}));
});
}
private async void GetPileInfo_Click(object sender, RoutedEventArgs e)
{
string idx = txtInfoPileIdx.Text.Trim();
panelInfo.Visibility = Visibility.Visible;
txtInfoResult.Text = "查询中...";
txtInfoResult.Foreground = new System.Windows.Media.SolidColorBrush(
(System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("#64748B"));
await System.Threading.Tasks.Task.Run(() =>
{
var result = UdpClientHolder.Instance.SendSync(new JObject
{
["cmd"] = Config.Cmd["GET_PILE_INFO"],
["pile_index"] = int.Parse(idx)
});
Dispatcher.BeginInvoke(new Action(() =>
{
if (result.Value<bool>("success") && result["serial"] != null)
{
txtInfoSerial.Text = result.Value<string>("serial") ?? "--";
txtInfoType.Text = result.Value<string>("type") ?? "--";
txtInfoGuns.Text = result.Value<string>("gun_num") ?? "--";
txtInfoProto.Text = result.Value<string>("protocol_ver") ?? "--";
txtInfoSw.Text = result.Value<string>("software_ver") ?? "--";
txtInfoSim.Text = result.Value<string>("sim") ?? "--";
txtInfoResult.Text = "";
}
else
{
txtInfoSerial.Text = "--"; txtInfoType.Text = "--";
txtInfoGuns.Text = "--"; txtInfoProto.Text = "--";
txtInfoSw.Text = "--"; txtInfoSim.Text = "--";
ShowResult(txtInfoResult, result.Value<string>("error") ?? "查询失败", false);
}
}));
});
}
private async void Reboot_Click(object sender, RoutedEventArgs e)
{
var dialogResult = MessageBox.Show("确认重启设备?", "警告", MessageBoxButton.YesNo, MessageBoxImage.Warning);
if (dialogResult != MessageBoxResult.Yes) return;
ShowResult(txtRebootResult, "发送中...", true);
await System.Threading.Tasks.Task.Run(() =>
{
var result = UdpClientHolder.Instance.SendSync(new JObject
{
["cmd"] = Config.Cmd["REBOOT"]
});
Dispatcher.BeginInvoke(new Action(() =>
{
if (result.Value<bool>("success"))
ShowResult(txtRebootResult, "重启指令已发送", true);
else
ShowResult(txtRebootResult, result.Value<string>("error") ?? "失败", false);
}));
});
}
private void ShowResult(TextBlock el, string msg, bool ok)
{
el.Text = msg;
el.Foreground = new System.Windows.Media.SolidColorBrush(
(System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString(
ok ? "#10B981" : "#EF4444"));
var timer = new System.Windows.Threading.DispatcherTimer { Interval = TimeSpan.FromSeconds(4) };
timer.Tick += (s, _) => { el.Text = ""; timer.Stop(); };
timer.Start();
}
}
}

View File

@@ -0,0 +1,92 @@
<Page x:Class="YKC.DashboardPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="总览" Background="#F0F2F5">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel Margin="24">
<!-- 统计卡片行 -->
<WrapPanel Margin="0,0,0,20">
<Border Background="White" CornerRadius="6" Width="240"
Padding="20,18" Margin="0,0,16,16">
<StackPanel>
<TextBlock Text="设备连接" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtConnStatus" Text="--"
FontSize="20" FontWeight="SemiBold" Foreground="#1E293B"/>
</StackPanel>
</Border>
<Border Background="White" CornerRadius="6" Width="240"
Padding="20,18" Margin="0,0,16,16">
<StackPanel>
<TextBlock Text="在线充电桩" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtOnlineCount" Text="--"
FontSize="28" FontWeight="SemiBold" Foreground="#10B981"/>
</StackPanel>
</Border>
<Border Background="White" CornerRadius="6" Width="240"
Padding="20,18" Margin="0,0,16,16">
<StackPanel>
<TextBlock Text="充电中" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtChargingCount" Text="--"
FontSize="28" FontWeight="SemiBold" Foreground="#3B82F6"/>
</StackPanel>
</Border>
</WrapPanel>
<!-- 标题 + 按钮 -->
<Grid Margin="0,0,0,12">
<TextBlock Text="充电桩列表" FontSize="15" FontWeight="SemiBold"
Foreground="#1E293B" VerticalAlignment="Center"/>
<Button Content="刷新" Style="{StaticResource BtnPrimary}"
Width="90" HorizontalAlignment="Right"
Click="Refresh_Click"/>
</Grid>
<!-- 表格 -->
<Border Background="White" CornerRadius="6" Padding="0">
<DataGrid x:Name="dgPiles" AutoGenerateColumns="False" IsReadOnly="True"
HeadersVisibility="Column" CanUserAddRows="False"
CanUserDeleteRows="False" RowHeight="40"
GridLinesVisibility="Horizontal"
HorizontalGridLinesBrush="#F1F5F9"
BorderThickness="0" Background="White">
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="Background" Value="#F8FAFC"/>
<Setter Property="Foreground" Value="#64748B"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Padding" Value="16,10"/>
<Setter Property="BorderBrush" Value="#E2E8F0"/>
<Setter Property="BorderThickness" Value="0,0,0,1"/>
</Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="FontSize" Value="13"/>
<Setter Property="Padding" Value="16,8"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridCell">
<Border Background="{TemplateBinding Background}">
<ContentPresenter Margin="{TemplateBinding Padding}"
VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.CellStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="#" Width="50" Binding="{Binding Index}"/>
<DataGridTextColumn Header="序列号" Width="*" Binding="{Binding Serial}"/>
<DataGridTextColumn Header="桩状态" Width="80" Binding="{Binding StatusText}"/>
<DataGridTextColumn Header="枪1" Width="80" Binding="{Binding Gun1Text}"/>
<DataGridTextColumn Header="枪2" Width="80" Binding="{Binding Gun2Text}"/>
</DataGrid.Columns>
</DataGrid>
</Border>
</StackPanel>
</ScrollViewer>
</Page>

View File

@@ -0,0 +1,105 @@
using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using Newtonsoft.Json.Linq;
using OxyPlot;
namespace YKC
{
public partial class DashboardPage : Page
{
private Timer _timer;
public class PileRow
{
public int Index { get; set; }
public string Serial { get; set; } = "--";
public string StatusText { get; set; } = "--";
public string Gun1Text { get; set; } = "--";
public string Gun2Text { get; set; } = "--";
}
public ObservableCollection<PileRow> Rows { get; } = new ObservableCollection<PileRow>();
public DashboardPage()
{
InitializeComponent();
dgPiles.ItemsSource = Rows;
Loaded += (s, e) =>
{
Dispatcher.BeginInvoke(new Action(() => RefreshData()),
System.Windows.Threading.DispatcherPriority.Background);
_timer = new Timer((_) => Dispatcher.BeginInvoke(new Action(RefreshData)), null, 5000, 5000);
};
Unloaded += (s, e) => _timer?.Dispose();
}
private void Refresh_Click(object sender, RoutedEventArgs e) => RefreshData();
private void RefreshData()
{
try
{
var result = UdpClientHolder.Instance.SendSync(new JObject
{
["cmd"] = Config.Cmd["GET_STATUS"]
});
if (result.Value<bool>("success") == false && result["piles"] == null)
{
Dispatcher.BeginInvoke(new Action(() => txtConnStatus.Text = "无响应"));
return;
}
Dispatcher.BeginInvoke(new Action(() => txtConnStatus.Text = "在线"));
var piles = result["piles"] as JArray ?? new JArray();
int online = 0, charging = 0;
var rows = new ObservableCollection<PileRow>();
foreach (var p in piles)
{
bool isOnline = p.Value<bool>("is_online");
if (isOnline) online++;
var guns = p["guns"] as JArray ?? new JArray();
foreach (var g in guns)
if (g.Value<int?>("status") == 3) charging++;
rows.Add(new PileRow
{
Index = rows.Count + 1,
Serial = p.Value<string>("serial") ?? "--",
StatusText = isOnline ? "在线" : "离线",
Gun1Text = guns.Count > 0 ? GunStatusText(guns[0].Value<int>("status")) : "--",
Gun2Text = guns.Count > 1 ? GunStatusText(guns[1].Value<int>("status")) : "--",
});
}
Dispatcher.BeginInvoke(new Action(() =>
{
txtOnlineCount.Text = online.ToString();
txtChargingCount.Text = charging.ToString();
Rows.Clear();
foreach (var r in rows) Rows.Add(r);
}));
}
catch { }
}
private string GunStatusText(int status)
{
switch (status)
{
case 0: return "离线";
case 1: return "故障";
case 2: return "空闲";
case 3: return "充电中";
default: return status.ToString();
}
}
}
}

View File

@@ -0,0 +1,145 @@
<Page x:Class="YKC.GatewayPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="网关管理" Background="#F0F2F5">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel Margin="24">
<TextBlock Text="网关管理" FontSize="16" FontWeight="SemiBold"
Foreground="#1E293B" Margin="0,0,0,20"/>
<Grid Margin="0,0,0,14">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- 网关基本信息 -->
<Border Grid.Column="0" Background="White" CornerRadius="6"
Margin="0,0,8,0" Padding="24">
<StackPanel>
<TextBlock Text="网关基本信息" FontSize="14" FontWeight="SemiBold"
Foreground="#1E293B" Margin="0,0,0,14"/>
<TextBlock Text="网关 ID" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtGwId" Text="--" Style="{StaticResource InfoValue}"
FontFamily="Consolas"/>
<TextBlock Text="软件版本" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtGwSw" Text="--" Style="{StaticResource InfoValue}"/>
<TextBlock Text="硬件版本" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtGwHw" Text="--" Style="{StaticResource InfoValue}"/>
<TextBlock Text="运行时间" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtGwUptime" Text="--" Style="{StaticResource InfoValue}"/>
<Grid>
<Button Content="刷新" Style="{StaticResource BtnPrimary}" Width="80"
Click="RefreshGwInfo_Click" Margin="0,4,0,0"/>
<TextBlock x:Name="txtGwStatus" FontSize="12"
VerticalAlignment="Center" Margin="92,4,0,0"/>
</Grid>
</StackPanel>
</Border>
<!-- 4G 状态 -->
<Border Grid.Column="1" Background="White" CornerRadius="6"
Margin="8,0,0,0" Padding="24">
<StackPanel>
<TextBlock Text="4G 状态" FontSize="14" FontWeight="SemiBold"
Foreground="#1E293B" Margin="0,0,0,14"/>
<TextBlock Text="SIM 卡号" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtSim" Text="--" Style="{StaticResource InfoValue}"
FontFamily="Consolas"/>
<TextBlock Text="网络状态" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtNetStatus" Text="--" Style="{StaticResource InfoValue}"
Foreground="#10B981"/>
<TextBlock Text="信号强度" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtSignal" Text="--" Style="{StaticResource InfoValue}"/>
<TextBlock Text="运营商" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtIsp" Text="--" Style="{StaticResource InfoValue}"/>
<Grid>
<Button Content="刷新" Style="{StaticResource BtnPrimary}" Width="80"
Click="Refresh4G_Click" Margin="0,4,0,0"/>
<TextBlock x:Name="txt4GStatus" FontSize="12"
VerticalAlignment="Center" Margin="92,4,0,0"/>
</Grid>
</StackPanel>
</Border>
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- 云服务器配置 -->
<Border Grid.Column="0" Background="White" CornerRadius="6"
Margin="0,0,8,0" Padding="24">
<StackPanel>
<TextBlock Text="云服务器配置" FontSize="14" FontWeight="SemiBold"
Foreground="#1E293B" Margin="0,0,0,14"/>
<TextBlock Text="服务器地址 (IP 或域名)" Style="{StaticResource FieldLabel}"/>
<TextBox x:Name="txtCloudHost" Width="220"
Style="{StaticResource FormInput}" Margin="0,0,0,12"/>
<TextBlock Text="端口号" Style="{StaticResource FieldLabel}"/>
<TextBox x:Name="txtCloudPort" Width="120"
Style="{StaticResource FormInput}" Margin="0,0,0,16"/>
<WrapPanel>
<Button Content="查 询" Style="{StaticResource BtnOutline}" Width="80"
Click="LoadCloudConfig_Click"/>
<Button Content="保 存" Style="{StaticResource BtnPrimary}" Width="80"
Click="SaveCloudConfig_Click" Margin="8,0,0,0"/>
<TextBlock x:Name="txtCloudResult" Foreground="#10B981"
FontSize="13" VerticalAlignment="Center" Margin="12,0,0,0"/>
</WrapPanel>
</StackPanel>
</Border>
<!-- 网络配置 -->
<Border Grid.Column="1" Background="White" CornerRadius="6"
Margin="8,0,0,0" Padding="24">
<StackPanel>
<TextBlock Text="有线网络配置" FontSize="14" FontWeight="SemiBold"
Foreground="#1E293B" Margin="0,0,0,14"/>
<TextBlock Text="IP 地址" Style="{StaticResource FieldLabel}"/>
<TextBox x:Name="txtNetIp" Width="200"
Style="{StaticResource FormInput}" Margin="0,0,0,10"/>
<TextBlock Text="子网掩码" Style="{StaticResource FieldLabel}"/>
<TextBox x:Name="txtNetMask" Width="200"
Style="{StaticResource FormInput}" Margin="0,0,0,10"/>
<TextBlock Text="默认网关" Style="{StaticResource FieldLabel}"/>
<TextBox x:Name="txtNetGw" Width="200"
Style="{StaticResource FormInput}" Margin="0,0,0,10"/>
<TextBlock Text="DNS 服务器" Style="{StaticResource FieldLabel}"/>
<TextBox x:Name="txtNetDns" Width="200"
Style="{StaticResource FormInput}" Margin="0,0,0,16"/>
<WrapPanel>
<Button Content="查 询" Style="{StaticResource BtnOutline}" Width="80"
Click="LoadNetConfig_Click"/>
<Button Content="保 存" Style="{StaticResource BtnPrimary}" Width="80"
Click="SaveNetConfig_Click" Margin="8,0,0,0"/>
<TextBlock x:Name="txtNetResult" Foreground="#10B981"
FontSize="13" VerticalAlignment="Center" Margin="12,0,0,0"/>
</WrapPanel>
</StackPanel>
</Border>
</Grid>
</StackPanel>
</ScrollViewer>
</Page>

View File

@@ -0,0 +1,227 @@
using System;
using System.Text.RegularExpressions;
using System.Windows;
using System.Windows.Controls;
using Newtonsoft.Json.Linq;
namespace YKC
{
public partial class GatewayPage : Page
{
private static readonly Regex IpRegex = new Regex(
@"^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)$");
private static readonly Regex DomainRegex = new Regex(
@"^(?!-)[A-Za-z0-9-]{1,63}(?<!-)(\.[A-Za-z]{2,})+$");
public GatewayPage()
{
InitializeComponent();
Loaded += (s, e) =>
{
Dispatcher.BeginInvoke(new Action(() =>
{
if (txtGwId != null) RefreshAll();
}), System.Windows.Threading.DispatcherPriority.Background);
};
}
private bool IsValidIp(string s) => IpRegex.IsMatch(s);
private bool IsValidDomain(string s) => DomainRegex.IsMatch(s);
private bool IsValidHost(string s) => IsValidIp(s) || IsValidDomain(s);
private void ShowResult(TextBlock el, string msg, bool ok)
{
el.Text = msg;
el.Foreground = new System.Windows.Media.SolidColorBrush(
(System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString(
ok ? "#10B981" : "#EF4444"));
var timer = new System.Windows.Threading.DispatcherTimer { Interval = TimeSpan.FromSeconds(3) };
timer.Tick += (s, _) => { el.Text = ""; timer.Stop(); };
timer.Start();
}
private string FormatUptime(int sec)
{
if (sec <= 0) return "--";
int d = sec / 86400;
int h = (sec % 86400) / 3600;
int m = (sec % 3600) / 60;
string result = "";
if (d > 0) result += d + "天";
if (h > 0) result += h + "时";
if (m > 0) result += m + "分";
return result.Length > 0 ? result : sec + "秒";
}
private void RefreshAll()
{
RefreshGwInfo();
Refresh4G();
}
private async void RefreshGwInfo()
{
txtGwStatus.Text = "加载中...";
txtGwStatus.Foreground = new System.Windows.Media.SolidColorBrush(
(System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("#64748B"));
await System.Threading.Tasks.Task.Run(() =>
{
var result = UdpClientHolder.Instance.SendSync(new JObject { ["cmd"] = Config.Cmd["GET_GW_INFO"] });
Dispatcher.BeginInvoke(new Action(() =>
{
if (result.Value<bool>("success") && result["device_id"] != null)
{
txtGwId.Text = result.Value<string>("device_id") ?? "--";
txtGwSw.Text = result.Value<string>("software_ver") ?? result.Value<string>("sw_ver") ?? "--";
txtGwHw.Text = result.Value<string>("hardware_ver") ?? result.Value<string>("hw_ver") ?? "--";
txtGwUptime.Text = FormatUptime(result.Value<int?>("uptime") ?? 0);
txtGwStatus.Text = "";
}
else
{
txtGwId.Text = "--"; txtGwSw.Text = "--"; txtGwHw.Text = "--"; txtGwUptime.Text = "--";
ShowResult(txtGwStatus, result.Value<string>("error") ?? "查询超时", false);
}
}));
});
}
private async void Refresh4G()
{
txt4GStatus.Text = "加载中...";
txt4GStatus.Foreground = new System.Windows.Media.SolidColorBrush(
(System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("#64748B"));
await System.Threading.Tasks.Task.Run(() =>
{
var result = UdpClientHolder.Instance.SendSync(new JObject { ["cmd"] = Config.Cmd["GET_4G_STATUS"] });
Dispatcher.BeginInvoke(new Action(() =>
{
if (result.Value<bool>("success") && result["sim"] != null)
{
txtSim.Text = result.Value<string>("sim") ?? result.Value<string>("iccid") ?? "--";
txtNetStatus.Text = result.Value<string>("net_status") ?? result.Value<string>("status_text") ?? "--";
txtSignal.Text = result.Value<string>("signal") != null ? result.Value<int>("signal") + " dBm" : "--";
txtIsp.Text = result.Value<string>("isp") ?? result.Value<string>("operator") ?? "--";
txt4GStatus.Text = "";
}
else
{
txtSim.Text = "--"; txtNetStatus.Text = "--"; txtSignal.Text = "--"; txtIsp.Text = "--";
ShowResult(txt4GStatus, result.Value<string>("error") ?? "查询超时", false);
}
}));
});
}
private void RefreshGwInfo_Click(object sender, RoutedEventArgs e) => RefreshGwInfo();
private void Refresh4G_Click(object sender, RoutedEventArgs e) => Refresh4G();
private async void LoadCloudConfig_Click(object sender, RoutedEventArgs e)
{
txtCloudResult.Text = "加载中...";
txtCloudResult.Foreground = new System.Windows.Media.SolidColorBrush(
(System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("#64748B"));
await System.Threading.Tasks.Task.Run(() =>
{
var result = UdpClientHolder.Instance.SendSync(new JObject { ["cmd"] = Config.Cmd["GET_CLOUD_CONFIG"] });
Dispatcher.BeginInvoke(new Action(() =>
{
txtCloudResult.Text = "";
if (result.Value<bool>("success") && result["host"] != null)
{
txtCloudHost.Text = result.Value<string>("host") ?? "";
txtCloudPort.Text = result.Value<string>("port") ?? result.Value<int?>("port")?.ToString() ?? "";
}
else
{
ShowResult(txtCloudResult, result.Value<string>("error") ?? "查询超时", false);
}
}));
});
}
private async void SaveCloudConfig_Click(object sender, RoutedEventArgs e)
{
string host = txtCloudHost.Text.Trim();
string port = txtCloudPort.Text.Trim();
if (string.IsNullOrEmpty(host)) { ShowResult(txtCloudResult, "请输入服务器地址", false); return; }
if (!IsValidHost(host)) { ShowResult(txtCloudResult, "地址格式错误", false); return; }
if (string.IsNullOrEmpty(port) || !int.TryParse(port, out int p) || p < 1 || p > 65535)
{ ShowResult(txtCloudResult, "端口范围 1-65535", false); return; }
ShowResult(txtCloudResult, "保存中...", true);
await System.Threading.Tasks.Task.Run(() =>
{
var result = UdpClientHolder.Instance.SendSync(new JObject
{
["cmd"] = Config.Cmd["SET_CLOUD_CONFIG"],
["host"] = host,
["port"] = p
});
Dispatcher.BeginInvoke(new Action(() =>
{
ShowResult(txtCloudResult, result.Value<bool>("success") ? "保存成功" : (result.Value<string>("error") ?? "失败"), result.Value<bool>("success"));
}));
});
}
private async void LoadNetConfig_Click(object sender, RoutedEventArgs e)
{
txtNetResult.Text = "加载中...";
txtNetResult.Foreground = new System.Windows.Media.SolidColorBrush(
(System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("#64748B"));
await System.Threading.Tasks.Task.Run(() =>
{
var result = UdpClientHolder.Instance.SendSync(new JObject { ["cmd"] = Config.Cmd["GET_NET_CONFIG"] });
Dispatcher.BeginInvoke(new Action(() =>
{
txtNetResult.Text = "";
if (result.Value<bool>("success") && result["ip"] != null)
{
txtNetIp.Text = result.Value<string>("ip") ?? "";
txtNetMask.Text = result.Value<string>("mask") ?? result.Value<string>("netmask") ?? "";
txtNetGw.Text = result.Value<string>("gateway") ?? result.Value<string>("gw") ?? "";
txtNetDns.Text = result.Value<string>("dns") ?? "";
}
else
{
ShowResult(txtNetResult, result.Value<string>("error") ?? "查询超时", false);
}
}));
});
}
private async void SaveNetConfig_Click(object sender, RoutedEventArgs e)
{
string ip = txtNetIp.Text.Trim();
string mask = txtNetMask.Text.Trim();
string gw = txtNetGw.Text.Trim();
string dns = txtNetDns.Text.Trim();
if (string.IsNullOrEmpty(ip)) { ShowResult(txtNetResult, "请输入IP地址", false); return; }
if (!IsValidIp(ip)) { ShowResult(txtNetResult, "IP格式错误", false); return; }
if (string.IsNullOrEmpty(mask)) { ShowResult(txtNetResult, "请输入子网掩码", false); return; }
if (!IsValidIp(mask)) { ShowResult(txtNetResult, "掩码格式错误", false); return; }
if (!string.IsNullOrEmpty(gw) && !IsValidIp(gw)) { ShowResult(txtNetResult, "网关格式错误", false); return; }
if (!string.IsNullOrEmpty(dns) && !IsValidIp(dns)) { ShowResult(txtNetResult, "DNS格式错误", false); return; }
ShowResult(txtNetResult, "保存中...", true);
await System.Threading.Tasks.Task.Run(() =>
{
var result = UdpClientHolder.Instance.SendSync(new JObject
{
["cmd"] = Config.Cmd["SET_NET_CONFIG"],
["ip"] = ip,
["mask"] = mask,
["gateway"] = gw,
["dns"] = dns
});
Dispatcher.BeginInvoke(new Action(() =>
{
ShowResult(txtNetResult, result.Value<bool>("success") ? "保存成功,重启生效" : (result.Value<string>("error") ?? "失败"), result.Value<bool>("success"));
}));
});
}
}
}

View File

@@ -0,0 +1,170 @@
<Page x:Class="YKC.RealtimePage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:oxy="http://oxyplot.org/wpf"
Title="实时监控" Background="#F0F2F5">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel Margin="20">
<!-- 标题 + 选择器 -->
<Grid Margin="0,0,0,12">
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Text="实时监控" FontSize="16" FontWeight="SemiBold"
Foreground="#1E293B"/>
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock Text="桩" Foreground="#64748B" FontSize="13"
VerticalAlignment="Center" Margin="0,0,6,0"/>
<ComboBox x:Name="cmbPile" Style="{StaticResource StyledCombo}" Width="80"
SelectedIndex="0" SelectionChanged="PileGun_Changed">
<ComboBoxItem>桩 01</ComboBoxItem><ComboBoxItem>桩 02</ComboBoxItem>
<ComboBoxItem>桩 03</ComboBoxItem><ComboBoxItem>桩 04</ComboBoxItem>
<ComboBoxItem>桩 05</ComboBoxItem><ComboBoxItem>桩 06</ComboBoxItem>
</ComboBox>
<TextBlock Text="枪" Foreground="#64748B" FontSize="13"
VerticalAlignment="Center" Margin="12,0,6,0"/>
<ComboBox x:Name="cmbGun" Style="{StaticResource StyledCombo}" Width="70"
SelectedIndex="0" SelectionChanged="PileGun_Changed">
<ComboBoxItem>枪 1</ComboBoxItem><ComboBoxItem>枪 2</ComboBoxItem>
</ComboBox>
</StackPanel>
</Grid>
<!-- 数值卡片行1 -->
<WrapPanel Margin="0,0,0,6">
<Border Background="White" CornerRadius="6" Width="170"
Padding="14,12" Margin="0,0,8,8">
<StackPanel>
<TextBlock Text="电流 (A)" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtCurrent" Text="--" FontSize="22"
FontWeight="SemiBold" Foreground="#10B981"/>
</StackPanel>
</Border>
<Border Background="White" CornerRadius="6" Width="170"
Padding="14,12" Margin="0,0,8,8">
<StackPanel>
<TextBlock Text="电压 (V)" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtVoltage" Text="--" FontSize="22"
FontWeight="SemiBold" Foreground="#1E293B"/>
</StackPanel>
</Border>
<Border Background="White" CornerRadius="6" Width="170"
Padding="14,12" Margin="0,0,8,8">
<StackPanel>
<TextBlock Text="功率 (kW)" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtPower" Text="--" FontSize="22"
FontWeight="SemiBold" Foreground="#1E293B"/>
</StackPanel>
</Border>
<Border Background="White" CornerRadius="6" Width="170"
Padding="14,12" Margin="0,0,8,8">
<StackPanel>
<TextBlock Text="度数 (kWh)" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtEnergy" Text="--" FontSize="22"
FontWeight="SemiBold" Foreground="#1E293B"/>
</StackPanel>
</Border>
<Border Background="White" CornerRadius="6" Width="170"
Padding="14,12" Margin="0,0,8,8">
<StackPanel>
<TextBlock Text="总金额 (元)" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtTotalAmount" Text="--" FontSize="22"
FontWeight="SemiBold" Foreground="#FF5722"/>
</StackPanel>
</Border>
<Border Background="White" CornerRadius="6" Width="150"
Padding="14,12" Margin="0,0,8,8">
<StackPanel>
<TextBlock Text="状态" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtStatus" Text="--" FontSize="22"
FontWeight="SemiBold" Foreground="#3B82F6"/>
</StackPanel>
</Border>
</WrapPanel>
<!-- 订单信息行 -->
<WrapPanel Margin="0,0,0,10">
<Border Background="White" CornerRadius="6" Width="280"
Padding="14,12" Margin="0,0,8,8">
<StackPanel>
<TextBlock Text="订单编号" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtOrderNo" Text="--" FontSize="13"
FontWeight="SemiBold" Foreground="#1E293B"
FontFamily="Consolas" TextWrapping="Wrap"/>
</StackPanel>
</Border>
<Border Background="White" CornerRadius="6" Width="140"
Padding="14,12" Margin="0,0,8,8">
<StackPanel>
<TextBlock Text="目标 SOC" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtSoc" Text="--" FontSize="22"
FontWeight="SemiBold" Foreground="#1E293B"/>
</StackPanel>
</Border>
<Border Background="White" CornerRadius="6" Width="180"
Padding="14,12" Margin="0,0,8,8">
<StackPanel>
<TextBlock Text="累计充电时间" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtCumTime" Text="--" FontSize="18"
FontWeight="SemiBold" Foreground="#1E293B"
FontFamily="Consolas"/>
</StackPanel>
</Border>
<Border Background="White" CornerRadius="6" Width="180"
Padding="14,12" Margin="0,0,8,8">
<StackPanel>
<TextBlock Text="剩余时间" Style="{StaticResource InfoLabel}"/>
<TextBlock x:Name="txtRemTime" Text="--" FontSize="18"
FontWeight="SemiBold" Foreground="#1E293B"
FontFamily="Consolas"/>
</StackPanel>
</Border>
</WrapPanel>
<!-- 图表 2x2 -->
<Grid Height="580">
<Grid.RowDefinitions>
<RowDefinition Height="290"/>
<RowDefinition Height="290"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Row="0" Grid.Column="0" Background="White" CornerRadius="6"
Margin="0,0,7,7">
<Grid>
<TextBlock Text="电流曲线 (A)" Foreground="#94A3B8" FontSize="12"
Margin="14,10,0,0" VerticalAlignment="Top"/>
<oxy:PlotView x:Name="plotCurrent" Margin="8,32,8,8"/>
</Grid>
</Border>
<Border Grid.Row="0" Grid.Column="1" Background="White" CornerRadius="6"
Margin="7,0,0,7">
<Grid>
<TextBlock Text="电压曲线 (V)" Foreground="#94A3B8" FontSize="12"
Margin="14,10,0,0" VerticalAlignment="Top"/>
<oxy:PlotView x:Name="plotVoltage" Margin="8,32,8,8"/>
</Grid>
</Border>
<Border Grid.Row="1" Grid.Column="0" Background="White" CornerRadius="6"
Margin="0,7,7,0">
<Grid>
<TextBlock Text="功率曲线 (kW)" Foreground="#94A3B8" FontSize="12"
Margin="14,10,0,0" VerticalAlignment="Top"/>
<oxy:PlotView x:Name="plotPower" Margin="8,32,8,8"/>
</Grid>
</Border>
<Border Grid.Row="1" Grid.Column="1" Background="White" CornerRadius="6"
Margin="7,7,0,0">
<Grid>
<TextBlock Text="费用明细 (元)" Foreground="#94A3B8" FontSize="12"
Margin="14,10,0,0" VerticalAlignment="Top"/>
<oxy:PlotView x:Name="plotAmount" Margin="8,32,8,8"/>
</Grid>
</Border>
</Grid>
</StackPanel>
</ScrollViewer>
</Page>

View File

@@ -0,0 +1,214 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using Newtonsoft.Json.Linq;
using OxyPlot;
using OxyPlot.Axes;
using OxyPlot.Series;
namespace YKC
{
public partial class RealtimePage : Page
{
private Timer _pollTimer;
private int _currentPile = 1;
private int _currentGun = 1;
public RealtimePage()
{
InitializeComponent();
InitLinePlot(plotCurrent, OxyColor.Parse("#3B82F6"));
InitLinePlot(plotVoltage, OxyColor.Parse("#8B5CF6"));
InitLinePlot(plotPower, OxyColor.Parse("#F59E0B"));
InitBarPlot(plotAmount);
Loaded += (s, e) =>
{
Dispatcher.BeginInvoke(new Action(RefreshData),
System.Windows.Threading.DispatcherPriority.Background);
_pollTimer = new Timer((_) =>
Dispatcher.BeginInvoke(new Action(RefreshData)), null, 2000, 2000);
};
Unloaded += (s, e) => _pollTimer?.Dispose();
}
private void InitLinePlot(OxyPlot.Wpf.PlotView pv, OxyColor color)
{
var model = new PlotModel { PlotAreaBorderColor = OxyColors.Transparent };
model.Axes.Add(new DateTimeAxis
{
Position = AxisPosition.Bottom,
TextColor = OxyColor.Parse("#94A3B8"),
AxislineColor = OxyColor.Parse("#E2E8F0"),
TicklineColor = OxyColor.Parse("#E2E8F0"),
MajorGridlineColor = OxyColor.Parse("#F1F5F9"),
StringFormat = "HH:mm:ss",
FontSize = 10
});
model.Axes.Add(new LinearAxis
{
Position = AxisPosition.Left,
TextColor = OxyColor.Parse("#94A3B8"),
AxislineColor = OxyColors.Transparent,
TicklineColor = OxyColors.Transparent,
MajorGridlineStyle = LineStyle.Dash,
MajorGridlineColor = OxyColor.Parse("#F1F5F9"),
FontSize = 10,
MinimumPadding = 0.1,
MaximumPadding = 0.1
});
model.Series.Add(new LineSeries
{
Color = color,
StrokeThickness = 2,
MarkerType = MarkerType.None,
CanTrackerInterpolatePoints = false
});
pv.Model = model;
}
private void InitBarPlot(OxyPlot.Wpf.PlotView pv)
{
var model = new PlotModel { PlotAreaBorderColor = OxyColors.Transparent };
var catAxis = new CategoryAxis
{
Position = AxisPosition.Bottom,
TextColor = OxyColor.Parse("#64748B"),
FontSize = 12,
AxislineColor = OxyColor.Parse("#E2E8F0"),
TicklineColor = OxyColor.Parse("#E2E8F0")
};
catAxis.Labels.Add("服务费");
catAxis.Labels.Add("电费");
catAxis.Labels.Add("总金额");
model.Axes.Add(catAxis);
model.Axes.Add(new LinearAxis
{
Position = AxisPosition.Left,
Title = "元",
TextColor = OxyColor.Parse("#94A3B8"),
FontSize = 10,
AxislineColor = OxyColors.Transparent,
TicklineColor = OxyColors.Transparent,
MajorGridlineStyle = LineStyle.Dash,
MajorGridlineColor = OxyColor.Parse("#F1F5F9"),
MinimumPadding = 0,
MaximumPadding = 0.15
});
model.Series.Add(new RectangleBarSeries { FillColor = OxyColor.Parse("#1E9FFF") });
model.Series.Add(new RectangleBarSeries { FillColor = OxyColor.Parse("#10B981") });
model.Series.Add(new RectangleBarSeries { FillColor = OxyColor.Parse("#6366F1") });
pv.Model = model;
}
private void PileGun_Changed(object sender, SelectionChangedEventArgs e)
{
try
{
if (cmbPile == null || cmbGun == null) return;
_currentPile = cmbPile.SelectedIndex + 1;
_currentGun = cmbGun.SelectedIndex + 1;
RefreshData();
}
catch { }
}
private void RefreshData()
{
try
{
if (txtCurrent == null || plotCurrent == null || plotCurrent.Model == null) return;
var latest = PilesStoreHolder.Instance.GetLatest(_currentPile, _currentGun);
if (latest == null) return;
txtCurrent.Text = FormatValue(latest.Value<double?>("current")) + " A";
txtVoltage.Text = FormatValue(latest.Value<double?>("voltage")) + " V";
txtPower.Text = FormatValue(latest.Value<double?>("power")) + " kW";
txtEnergy.Text = FormatValue(latest.Value<double?>("energy")) + " kWh";
txtTotalAmount.Text = "¥ " + FormatValue(latest.Value<double?>("total_amount"));
int? st = latest.Value<int?>("status");
if (st == 0) { txtStatus.Text = "离线"; txtStatus.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#909399")); }
else if (st == 1) { txtStatus.Text = "故障"; txtStatus.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#EF4444")); }
else if (st == 2) { txtStatus.Text = "空闲"; txtStatus.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#10B981")); }
else if (st == 3) { txtStatus.Text = "充电中"; txtStatus.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#3B82F6")); }
else { txtStatus.Text = "--"; }
txtOrderNo.Text = latest.Value<string>("order_no") ?? "--";
txtSoc.Text = latest.Value<double?>("soc") != null ? latest.Value<double>("soc").ToString("F1") + "%" : "--";
txtCumTime.Text = FormatMin(latest.Value<double?>("cumulative_time"));
txtRemTime.Text = FormatMin(latest.Value<double?>("remaining_time"));
UpdateCharts();
}
catch { }
}
private void UpdateCharts()
{
try
{
if (plotCurrent == null || plotCurrent.Model == null || plotCurrent.Model.Series.Count == 0) return;
if (plotAmount == null || plotAmount.Model == null || plotAmount.Model.Series.Count == 0) return;
var chartData = PilesStoreHolder.Instance.GetChartData(_currentPile, _currentGun);
if (chartData == null || chartData.Count == 0) return;
var curPoints = new List<DataPoint>();
var volPoints = new List<DataPoint>();
var powPoints = new List<DataPoint>();
foreach (var item in chartData)
{
long unixTs = item.Value<long>("t");
var dt = DateTimeOffset.FromUnixTimeSeconds(unixTs).DateTime;
double oxyTime = DateTimeAxis.ToDouble(dt);
curPoints.Add(new DataPoint(oxyTime, item.Value<double?>("current") ?? 0));
volPoints.Add(new DataPoint(oxyTime, item.Value<double?>("voltage") ?? 0));
powPoints.Add(new DataPoint(oxyTime, item.Value<double?>("power") ?? 0));
}
((LineSeries)plotCurrent.Model.Series[0]).Points.Clear();
((LineSeries)plotCurrent.Model.Series[0]).Points.AddRange(curPoints);
((LineSeries)plotVoltage.Model.Series[0]).Points.Clear();
((LineSeries)plotVoltage.Model.Series[0]).Points.AddRange(volPoints);
((LineSeries)plotPower.Model.Series[0]).Points.Clear();
((LineSeries)plotPower.Model.Series[0]).Points.AddRange(powPoints);
plotCurrent.InvalidatePlot(true);
plotVoltage.InvalidatePlot(true);
plotPower.InvalidatePlot(true);
var latest = PilesStoreHolder.Instance.GetLatest(_currentPile, _currentGun);
if (latest != null)
{
double sf = latest.Value<double?>("service_fee") ?? 0;
double ef = latest.Value<double?>("electricity_fee") ?? 0;
double ta = latest.Value<double?>("total_amount") ?? 0;
((RectangleBarSeries)plotAmount.Model.Series[0]).Items.Clear();
((RectangleBarSeries)plotAmount.Model.Series[0]).Items.Add(new RectangleBarItem(-0.25, 0, 0.25, sf));
((RectangleBarSeries)plotAmount.Model.Series[1]).Items.Clear();
((RectangleBarSeries)plotAmount.Model.Series[1]).Items.Add(new RectangleBarItem(0.75, 0, 1.25, ef));
((RectangleBarSeries)plotAmount.Model.Series[2]).Items.Clear();
((RectangleBarSeries)plotAmount.Model.Series[2]).Items.Add(new RectangleBarItem(1.75, 0, 2.25, ta));
plotAmount.InvalidatePlot(true);
}
}
catch { }
}
private string FormatValue(double? v)
{
return v.HasValue ? v.Value.ToString("F2") : "--";
}
private string FormatMin(double? v)
{
return v.HasValue ? Math.Round(v.Value).ToString() + " min" : "--";
}
}
}

View File

@@ -0,0 +1,174 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Newtonsoft.Json.Linq;
namespace YKC
{
public class GunData
{
public List<double> Current { get; set; } = new List<double>();
public List<double> Voltage { get; set; } = new List<double>();
public List<double> Power { get; set; } = new List<double>();
public List<double> Energy { get; set; } = new List<double>();
public List<double> ServiceFee { get; set; } = new List<double>();
public List<double> ElectricityFee { get; set; } = new List<double>();
public List<double> TotalAmount { get; set; } = new List<double>();
public List<int> Status { get; set; } = new List<int>();
public List<DateTime> Timestamps { get; set; } = new List<DateTime>();
public string OrderNo { get; set; } = "";
public double? Soc { get; set; } = null;
public double? CumulativeTime { get; set; } = 0;
public double? RemainingTime { get; set; } = 0;
private const int MaxPoints = 300;
private void AddToList<T>(List<T> list, T value)
{
list.Add(value);
if (list.Count > MaxPoints)
list.RemoveAt(0);
}
public void Append(JObject g)
{
AddToList(Timestamps, DateTime.Now);
AddToList(Current, g.Value<double?>("current") ?? double.NaN);
AddToList(Voltage, g.Value<double?>("voltage") ?? double.NaN);
AddToList(Power, g.Value<double?>("power") ?? double.NaN);
AddToList(Energy, g.Value<double?>("energy") ?? double.NaN);
AddToList(ServiceFee, g.Value<double?>("service_fee") ?? double.NaN);
AddToList(ElectricityFee, g.Value<double?>("electricity_fee") ?? double.NaN);
double? total = g.Value<double?>("total_amount");
if (total == null)
{
double? sf = g.Value<double?>("service_fee");
double? ef = g.Value<double?>("electricity_fee");
if (sf != null && ef != null)
total = sf + ef;
}
AddToList(TotalAmount, total ?? double.NaN);
AddToList(Status, g.Value<int?>("status") ?? 0);
OrderNo = g.Value<string>("order_no") ?? OrderNo;
Soc = g.Value<double?>("soc") ?? Soc;
CumulativeTime = g.Value<double?>("cumulative_time") ?? CumulativeTime;
RemainingTime = g.Value<double?>("remaining_time") ?? RemainingTime;
}
public double? LatestOrNull(List<double> list)
{
for (int i = list.Count - 1; i >= 0; i--)
if (!double.IsNaN(list[i])) return list[i];
return null;
}
public int? LatestStatus()
{
for (int i = Status.Count - 1; i >= 0; i--)
return Status[i];
return null;
}
}
public class PileData
{
public GunData Gun1 { get; set; } = new GunData();
public GunData Gun2 { get; set; } = new GunData();
}
public class PilesDataStore
{
private readonly object _lock = new object();
public Dictionary<int, PileData> Piles { get; } = new Dictionary<int, PileData>();
private const int PileCount = 6;
public PilesDataStore()
{
for (int i = 1; i <= PileCount; i++)
Piles[i] = new PileData();
}
public void HandleReport(JObject msg)
{
var pilesArr = msg["piles"] as JArray ?? msg["data"] as JArray;
if (pilesArr == null) return;
lock (_lock)
{
foreach (var p in pilesArr)
{
int idx = p.Value<int?>("index") ?? p.Value<int?>("pile_index") ?? p.Value<int?>("id") ?? 0;
if (idx < 1 || idx > PileCount) continue;
var gunsArr = p["guns"] as JArray;
if (gunsArr == null)
{
Piles[idx].Gun1.Append((JObject)p);
continue;
}
foreach (var g in gunsArr)
{
int gunNum = g.Value<int?>("gun") ?? g.Value<int?>("gun_no") ?? g.Value<int?>("id") ?? 0;
if (gunNum == 1) Piles[idx].Gun1.Append((JObject)g);
else if (gunNum == 2) Piles[idx].Gun2.Append((JObject)g);
}
}
}
}
public JObject GetLatest(int pileIndex, int gunNum)
{
lock (_lock)
{
if (!Piles.ContainsKey(pileIndex)) return null;
var gun = gunNum == 1 ? Piles[pileIndex].Gun1 : Piles[pileIndex].Gun2;
return new JObject
{
["current"] = gun.LatestOrNull(gun.Current),
["voltage"] = gun.LatestOrNull(gun.Voltage),
["power"] = gun.LatestOrNull(gun.Power),
["energy"] = gun.LatestOrNull(gun.Energy),
["service_fee"] = gun.LatestOrNull(gun.ServiceFee),
["electricity_fee"] = gun.LatestOrNull(gun.ElectricityFee),
["total_amount"] = gun.LatestOrNull(gun.TotalAmount),
["status"] = gun.LatestStatus(),
["order_no"] = gun.OrderNo,
["soc"] = gun.Soc,
["cumulative_time"] = gun.CumulativeTime,
["remaining_time"] = gun.RemainingTime,
};
}
}
public JArray GetChartData(int pileIndex, int gunNum)
{
lock (_lock)
{
if (!Piles.ContainsKey(pileIndex)) return null;
var gun = gunNum == 1 ? Piles[pileIndex].Gun1 : Piles[pileIndex].Gun2;
var arr = new JArray();
for (int i = 0; i < gun.Timestamps.Count; i++)
{
arr.Add(new JObject
{
["t"] = new DateTimeOffset(gun.Timestamps[i]).ToUnixTimeSeconds(),
["current"] = double.IsNaN(gun.Current[i]) ? (JToken)null : gun.Current[i],
["voltage"] = double.IsNaN(gun.Voltage[i]) ? (JToken)null : gun.Voltage[i],
["power"] = double.IsNaN(gun.Power[i]) ? (JToken)null : gun.Power[i],
});
}
return arr;
}
}
}
public static class PilesStoreHolder
{
public static readonly PilesDataStore Instance = new PilesDataStore();
}
}

View File

@@ -0,0 +1,52 @@
using System.Reflection;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Windows;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("YKC")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("YKC")]
[assembly: AssemblyCopyright("Copyright © 2026")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
//若要开始生成可本地化的应用程序,请设置
//.csproj 文件中的 <UICulture>CultureYouAreCodingWith</UICulture>
//在 <PropertyGroup> 中。例如,如果你使用的是美国英语。
//使用的是美国英语,请将 <UICulture> 设置为 en-US。 然后取消
//对以下 NeutralResourceLanguage 特性的注释。 更新
//以下行中的“en-US”以匹配项目文件中的 UICulture 设置。
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //主题特定资源词典所处位置
//(未在页面中找到资源时使用,
//或应用程序资源字典中找到时使用)
ResourceDictionaryLocation.SourceAssembly //常规资源词典所处位置
//(未在页面中找到资源时使用,
//、应用程序或任何主题专用资源字典中找到时使用)
)]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,71 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本: 4.0.30319.42000
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace YKC.Properties
{
/// <summary>
/// 强类型资源类,用于查找本地化字符串等。
/// </summary>
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// 返回此类使用的缓存 ResourceManager 实例。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("YKC.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// 重写当前线程的 CurrentUICulture 属性,对
/// 使用此强类型资源类的所有资源查找执行重写。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}

View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,30 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace YKC.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}

View File

@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

170
上位机/YKC/UdpClient.cs Normal file
View File

@@ -0,0 +1,170 @@
using System;
using System.Collections.Concurrent;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace YKC
{
public class UdpClient : IDisposable
{
private Socket _sock;
private readonly object _lock = new object();
private readonly ConcurrentDictionary<string, Action<JObject>> _callbacks = new ConcurrentDictionary<string, Action<JObject>>();
private bool _running;
private const int FixedId = 7;
public event Action<JObject> OnActiveReport;
public UdpClient()
{
try
{
_sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
_sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
_sock.Bind(new IPEndPoint(IPAddress.Any, Config.LocalPort));
_sock.ReceiveTimeout = 1000;
_running = true;
Console.WriteLine($"[UDP] 监听端口 {Config.LocalPort}");
Task.Run(() => ListenLoop());
}
catch (Exception e)
{
Console.WriteLine($"[UDP] 初始化失败: {e.Message}");
}
}
private void ListenLoop()
{
var buffer = new byte[4096];
EndPoint remoteEp = new IPEndPoint(IPAddress.Any, 0);
while (_running)
{
try
{
int recv = _sock.ReceiveFrom(buffer, ref remoteEp);
string json = Encoding.UTF8.GetString(buffer, 0, recv);
var msg = JObject.Parse(json);
Dispatch(msg);
}
catch (SocketException) { }
catch (Exception e)
{
Console.WriteLine($"[UDP] 接收异常: {e.Message}");
}
}
}
private void Dispatch(JObject msg)
{
string reqId = msg.Value<string>("request_id");
Console.WriteLine($"[UDP] 收到回复: {msg}");
if (reqId != null && _callbacks.TryRemove(reqId, out var cb))
{
try { cb(msg); }
catch (Exception e) { Console.WriteLine($"[UDP] 回调异常: {e.Message}"); }
}
else
{
HandleActiveReport(msg);
}
}
private void HandleActiveReport(JObject msg)
{
string cmd = msg.Value<string>("cmd");
if (cmd == "report_data" || cmd == "pile_metrics" || cmd == "real_time_data")
{
Console.WriteLine($"[UDP] 收到主动上报, cmd={cmd}");
OnActiveReport?.Invoke(msg);
}
}
public void Send(JObject payload, Action<JObject> callback = null, string requestId = null)
{
if (requestId == null)
requestId = $"{payload.Value<string>("cmd")}_{DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()}";
payload["id"] = FixedId;
payload["request_id"] = requestId;
if (callback != null)
{
_callbacks[requestId] = callback;
StartTimeoutCleaner(requestId);
}
try
{
if (_sock == null)
{
Console.WriteLine("[UDP] 套接字未就绪");
callback?.Invoke(new JObject { ["success"] = false, ["error"] = "socket_not_ready", ["request_id"] = requestId });
return;
}
byte[] data = Encoding.UTF8.GetBytes(payload.ToString(Formatting.None));
_sock.SendTo(data, new IPEndPoint(IPAddress.Parse(Config.TargetIp), Config.TargetPort));
Console.WriteLine($"[UDP] 发送: {payload}");
}
catch (Exception e)
{
Console.WriteLine($"[UDP] 发送失败: {e.Message}");
_callbacks.TryRemove(requestId, out _);
}
}
public JObject SendSync(JObject payload, int timeoutSec = 4)
{
JObject result = null;
var evt = new ManualResetEvent(false);
Send(payload, (msg) =>
{
result = msg;
evt.Set();
});
evt.WaitOne(TimeSpan.FromSeconds(timeoutSec));
return result ?? new JObject { ["success"] = false, ["error"] = "设备无响应" };
}
private void StartTimeoutCleaner(string requestId)
{
Task.Run(async () =>
{
await Task.Delay(TimeSpan.FromSeconds(Config.UdpTimeout));
if (_callbacks.TryRemove(requestId, out var cb))
{
Console.WriteLine($"[UDP] 请求超时: {requestId}");
try
{
cb(new JObject
{
["success"] = false,
["error"] = "timeout",
["request_id"] = requestId
});
}
catch { }
}
});
}
public void Dispose()
{
_running = false;
_sock?.Close();
}
}
public static class UdpClientHolder
{
public static readonly UdpClient Instance = new UdpClient();
}
}

152
上位机/YKC/YKC.csproj Normal file
View File

@@ -0,0 +1,152 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{9F34DD1F-FB6D-4E13-9270-13C7A9A87AAA}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>YKC</RootNamespace>
<AssemblyName>YKC</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="OxyPlot.Wpf">
<Version>2.2.0</Version>
</PackageReference>
<PackageReference Include="Newtonsoft.Json">
<Version>13.0.3</Version>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Page Include="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="App.xaml.cs">
<DependentUpon>App.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Page Include="LoginWindow.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="LoginWindow.xaml.cs">
<DependentUpon>LoginWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Page Include="Pages\DashboardPage.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="Pages\DashboardPage.xaml.cs">
<DependentUpon>Pages\DashboardPage.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Page Include="Pages\RealtimePage.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="Pages\RealtimePage.xaml.cs">
<DependentUpon>Pages\RealtimePage.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Page Include="Pages\ChargerPage.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="Pages\ChargerPage.xaml.cs">
<DependentUpon>Pages\ChargerPage.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Page Include="Pages\GatewayPage.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Compile Include="Pages\GatewayPage.xaml.cs">
<DependentUpon>Pages\GatewayPage.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<Compile Include="Config.cs" />
<Compile Include="UdpClient.cs" />
<Compile Include="PilesDataStore.cs" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

3
上位机/YKC/YKC.slnx Normal file
View File

@@ -0,0 +1,3 @@
<Solution>
<Project Path="YKC.csproj" Id="9f34dd1f-fb6d-4e13-9270-13c7a9a87aaa" />
</Solution>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>

Binary file not shown.

BIN
上位机/YKC/nuget.exe Normal file

Binary file not shown.

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]

Binary file not shown.

View File

@@ -0,0 +1,82 @@
#pragma checksum "..\..\App.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "6AD4E2C6807A155B5F2677B4A8772DA510C0A9A2F8A7C4909C202DC219BF4813"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace YKC {
/// <summary>
/// App
/// </summary>
public partial class App : System.Windows.Application {
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
#line 4 "..\..\App.xaml"
this.StartupUri = new System.Uri("LoginWindow.xaml", System.UriKind.Relative);
#line default
#line hidden
System.Uri resourceLocater = new System.Uri("/YKC;component/app.xaml", System.UriKind.Relative);
#line 1 "..\..\App.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
/// <summary>
/// Application Entry Point.
/// </summary>
[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public static void Main() {
YKC.App app = new YKC.App();
app.InitializeComponent();
app.Run();
}
}
}

View File

@@ -0,0 +1,82 @@
#pragma checksum "..\..\App.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "6AD4E2C6807A155B5F2677B4A8772DA510C0A9A2F8A7C4909C202DC219BF4813"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace YKC {
/// <summary>
/// App
/// </summary>
public partial class App : System.Windows.Application {
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
#line 4 "..\..\App.xaml"
this.StartupUri = new System.Uri("LoginWindow.xaml", System.UriKind.Relative);
#line default
#line hidden
System.Uri resourceLocater = new System.Uri("/YKC;component/app.xaml", System.UriKind.Relative);
#line 1 "..\..\App.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
/// <summary>
/// Application Entry Point.
/// </summary>
[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public static void Main() {
YKC.App app = new YKC.App();
app.InitializeComponent();
app.Run();
}
}
}

Binary file not shown.

View File

@@ -0,0 +1,127 @@
#pragma checksum "..\..\LoginWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "0FC0E565435A8BC0FBD8D62E4120A53F6C01B21198BAFAC45DE921A44D172582"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace YKC {
/// <summary>
/// LoginWindow
/// </summary>
public partial class LoginWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
#line 24 "..\..\LoginWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtUsername;
#line default
#line hidden
#line 28 "..\..\LoginWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.PasswordBox txtPassword;
#line default
#line hidden
#line 30 "..\..\LoginWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnLogin;
#line default
#line hidden
#line 35 "..\..\LoginWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtError;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/YKC;component/loginwindow.xaml", System.UriKind.Relative);
#line 1 "..\..\LoginWindow.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.txtUsername = ((System.Windows.Controls.TextBox)(target));
return;
case 2:
this.txtPassword = ((System.Windows.Controls.PasswordBox)(target));
return;
case 3:
this.btnLogin = ((System.Windows.Controls.Button)(target));
#line 33 "..\..\LoginWindow.xaml"
this.btnLogin.Click += new System.Windows.RoutedEventHandler(this.Login_Click);
#line default
#line hidden
return;
case 4:
this.txtError = ((System.Windows.Controls.TextBlock)(target));
return;
}
this._contentLoaded = true;
}
}
}

View File

@@ -0,0 +1,127 @@
#pragma checksum "..\..\LoginWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "0FC0E565435A8BC0FBD8D62E4120A53F6C01B21198BAFAC45DE921A44D172582"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace YKC {
/// <summary>
/// LoginWindow
/// </summary>
public partial class LoginWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
#line 24 "..\..\LoginWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtUsername;
#line default
#line hidden
#line 28 "..\..\LoginWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.PasswordBox txtPassword;
#line default
#line hidden
#line 30 "..\..\LoginWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnLogin;
#line default
#line hidden
#line 35 "..\..\LoginWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtError;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/YKC;component/loginwindow.xaml", System.UriKind.Relative);
#line 1 "..\..\LoginWindow.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.txtUsername = ((System.Windows.Controls.TextBox)(target));
return;
case 2:
this.txtPassword = ((System.Windows.Controls.PasswordBox)(target));
return;
case 3:
this.btnLogin = ((System.Windows.Controls.Button)(target));
#line 33 "..\..\LoginWindow.xaml"
this.btnLogin.Click += new System.Windows.RoutedEventHandler(this.Login_Click);
#line default
#line hidden
return;
case 4:
this.txtError = ((System.Windows.Controls.TextBlock)(target));
return;
}
this._contentLoaded = true;
}
}
}

Binary file not shown.

View File

@@ -0,0 +1,194 @@
#pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "971CC5B57AF7C8C90EEFD1CD5BF5F4033C0F29A3DDEBC4D68144258B257B7158"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace YKC {
/// <summary>
/// MainWindow
/// </summary>
public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
#line 34 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnDashboard;
#line default
#line hidden
#line 37 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnRealtime;
#line default
#line hidden
#line 40 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnCharger;
#line default
#line hidden
#line 43 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnGateway;
#line default
#line hidden
#line 61 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtPageTitle;
#line default
#line hidden
#line 65 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtUser;
#line default
#line hidden
#line 74 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Frame contentFrame;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/YKC;component/mainwindow.xaml", System.UriKind.Relative);
#line 1 "..\..\MainWindow.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
#line 28 "..\..\MainWindow.xaml"
((System.Windows.Controls.Border)(target)).MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Header_MouseDown);
#line default
#line hidden
return;
case 2:
this.btnDashboard = ((System.Windows.Controls.Button)(target));
#line 35 "..\..\MainWindow.xaml"
this.btnDashboard.Click += new System.Windows.RoutedEventHandler(this.NavButton_Click);
#line default
#line hidden
return;
case 3:
this.btnRealtime = ((System.Windows.Controls.Button)(target));
#line 38 "..\..\MainWindow.xaml"
this.btnRealtime.Click += new System.Windows.RoutedEventHandler(this.NavButton_Click);
#line default
#line hidden
return;
case 4:
this.btnCharger = ((System.Windows.Controls.Button)(target));
#line 41 "..\..\MainWindow.xaml"
this.btnCharger.Click += new System.Windows.RoutedEventHandler(this.NavButton_Click);
#line default
#line hidden
return;
case 5:
this.btnGateway = ((System.Windows.Controls.Button)(target));
#line 44 "..\..\MainWindow.xaml"
this.btnGateway.Click += new System.Windows.RoutedEventHandler(this.NavButton_Click);
#line default
#line hidden
return;
case 6:
this.txtPageTitle = ((System.Windows.Controls.TextBlock)(target));
return;
case 7:
this.txtUser = ((System.Windows.Controls.TextBlock)(target));
return;
case 8:
#line 68 "..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Logout_Click);
#line default
#line hidden
return;
case 9:
this.contentFrame = ((System.Windows.Controls.Frame)(target));
return;
}
this._contentLoaded = true;
}
}
}

View File

@@ -0,0 +1,194 @@
#pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "971CC5B57AF7C8C90EEFD1CD5BF5F4033C0F29A3DDEBC4D68144258B257B7158"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace YKC {
/// <summary>
/// MainWindow
/// </summary>
public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
#line 34 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnDashboard;
#line default
#line hidden
#line 37 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnRealtime;
#line default
#line hidden
#line 40 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnCharger;
#line default
#line hidden
#line 43 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button btnGateway;
#line default
#line hidden
#line 61 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtPageTitle;
#line default
#line hidden
#line 65 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtUser;
#line default
#line hidden
#line 74 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Frame contentFrame;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/YKC;component/mainwindow.xaml", System.UriKind.Relative);
#line 1 "..\..\MainWindow.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
#line 28 "..\..\MainWindow.xaml"
((System.Windows.Controls.Border)(target)).MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Header_MouseDown);
#line default
#line hidden
return;
case 2:
this.btnDashboard = ((System.Windows.Controls.Button)(target));
#line 35 "..\..\MainWindow.xaml"
this.btnDashboard.Click += new System.Windows.RoutedEventHandler(this.NavButton_Click);
#line default
#line hidden
return;
case 3:
this.btnRealtime = ((System.Windows.Controls.Button)(target));
#line 38 "..\..\MainWindow.xaml"
this.btnRealtime.Click += new System.Windows.RoutedEventHandler(this.NavButton_Click);
#line default
#line hidden
return;
case 4:
this.btnCharger = ((System.Windows.Controls.Button)(target));
#line 41 "..\..\MainWindow.xaml"
this.btnCharger.Click += new System.Windows.RoutedEventHandler(this.NavButton_Click);
#line default
#line hidden
return;
case 5:
this.btnGateway = ((System.Windows.Controls.Button)(target));
#line 44 "..\..\MainWindow.xaml"
this.btnGateway.Click += new System.Windows.RoutedEventHandler(this.NavButton_Click);
#line default
#line hidden
return;
case 6:
this.txtPageTitle = ((System.Windows.Controls.TextBlock)(target));
return;
case 7:
this.txtUser = ((System.Windows.Controls.TextBlock)(target));
return;
case 8:
#line 68 "..\..\MainWindow.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Logout_Click);
#line default
#line hidden
return;
case 9:
this.contentFrame = ((System.Windows.Controls.Frame)(target));
return;
}
this._contentLoaded = true;
}
}
}

Binary file not shown.

View File

@@ -0,0 +1,244 @@
#pragma checksum "..\..\..\Pages\ChargerPage.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "C0301C7F4B365AA464333B677A7BAC04916A4E141B083003114E616F02126402"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace YKC {
/// <summary>
/// ChargerPage
/// </summary>
public partial class ChargerPage : System.Windows.Controls.Page, System.Windows.Markup.IComponentConnector {
#line 25 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtSetPileIdx;
#line default
#line hidden
#line 29 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtSetPileId;
#line default
#line hidden
#line 36 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtSetResult;
#line default
#line hidden
#line 51 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtInfoPileIdx;
#line default
#line hidden
#line 55 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtInfoResult;
#line default
#line hidden
#line 60 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Border panelInfo;
#line default
#line hidden
#line 64 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtInfoSerial;
#line default
#line hidden
#line 66 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtInfoType;
#line default
#line hidden
#line 68 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtInfoGuns;
#line default
#line hidden
#line 70 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtInfoProto;
#line default
#line hidden
#line 72 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtInfoSw;
#line default
#line hidden
#line 74 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtInfoSim;
#line default
#line hidden
#line 89 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtRebootResult;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/YKC;component/pages/chargerpage.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Pages\ChargerPage.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.txtSetPileIdx = ((System.Windows.Controls.TextBox)(target));
return;
case 2:
this.txtSetPileId = ((System.Windows.Controls.TextBox)(target));
return;
case 3:
#line 35 "..\..\..\Pages\ChargerPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.SetPileId_Click);
#line default
#line hidden
return;
case 4:
this.txtSetResult = ((System.Windows.Controls.TextBlock)(target));
return;
case 5:
this.txtInfoPileIdx = ((System.Windows.Controls.TextBox)(target));
return;
case 6:
#line 54 "..\..\..\Pages\ChargerPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.GetPileInfo_Click);
#line default
#line hidden
return;
case 7:
this.txtInfoResult = ((System.Windows.Controls.TextBlock)(target));
return;
case 8:
this.panelInfo = ((System.Windows.Controls.Border)(target));
return;
case 9:
this.txtInfoSerial = ((System.Windows.Controls.TextBlock)(target));
return;
case 10:
this.txtInfoType = ((System.Windows.Controls.TextBlock)(target));
return;
case 11:
this.txtInfoGuns = ((System.Windows.Controls.TextBlock)(target));
return;
case 12:
this.txtInfoProto = ((System.Windows.Controls.TextBlock)(target));
return;
case 13:
this.txtInfoSw = ((System.Windows.Controls.TextBlock)(target));
return;
case 14:
this.txtInfoSim = ((System.Windows.Controls.TextBlock)(target));
return;
case 15:
#line 88 "..\..\..\Pages\ChargerPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Reboot_Click);
#line default
#line hidden
return;
case 16:
this.txtRebootResult = ((System.Windows.Controls.TextBlock)(target));
return;
}
this._contentLoaded = true;
}
}
}

View File

@@ -0,0 +1,244 @@
#pragma checksum "..\..\..\Pages\ChargerPage.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "C0301C7F4B365AA464333B677A7BAC04916A4E141B083003114E616F02126402"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace YKC {
/// <summary>
/// ChargerPage
/// </summary>
public partial class ChargerPage : System.Windows.Controls.Page, System.Windows.Markup.IComponentConnector {
#line 25 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtSetPileIdx;
#line default
#line hidden
#line 29 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtSetPileId;
#line default
#line hidden
#line 36 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtSetResult;
#line default
#line hidden
#line 51 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtInfoPileIdx;
#line default
#line hidden
#line 55 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtInfoResult;
#line default
#line hidden
#line 60 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Border panelInfo;
#line default
#line hidden
#line 64 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtInfoSerial;
#line default
#line hidden
#line 66 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtInfoType;
#line default
#line hidden
#line 68 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtInfoGuns;
#line default
#line hidden
#line 70 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtInfoProto;
#line default
#line hidden
#line 72 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtInfoSw;
#line default
#line hidden
#line 74 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtInfoSim;
#line default
#line hidden
#line 89 "..\..\..\Pages\ChargerPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtRebootResult;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/YKC;component/pages/chargerpage.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Pages\ChargerPage.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.txtSetPileIdx = ((System.Windows.Controls.TextBox)(target));
return;
case 2:
this.txtSetPileId = ((System.Windows.Controls.TextBox)(target));
return;
case 3:
#line 35 "..\..\..\Pages\ChargerPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.SetPileId_Click);
#line default
#line hidden
return;
case 4:
this.txtSetResult = ((System.Windows.Controls.TextBlock)(target));
return;
case 5:
this.txtInfoPileIdx = ((System.Windows.Controls.TextBox)(target));
return;
case 6:
#line 54 "..\..\..\Pages\ChargerPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.GetPileInfo_Click);
#line default
#line hidden
return;
case 7:
this.txtInfoResult = ((System.Windows.Controls.TextBlock)(target));
return;
case 8:
this.panelInfo = ((System.Windows.Controls.Border)(target));
return;
case 9:
this.txtInfoSerial = ((System.Windows.Controls.TextBlock)(target));
return;
case 10:
this.txtInfoType = ((System.Windows.Controls.TextBlock)(target));
return;
case 11:
this.txtInfoGuns = ((System.Windows.Controls.TextBlock)(target));
return;
case 12:
this.txtInfoProto = ((System.Windows.Controls.TextBlock)(target));
return;
case 13:
this.txtInfoSw = ((System.Windows.Controls.TextBlock)(target));
return;
case 14:
this.txtInfoSim = ((System.Windows.Controls.TextBlock)(target));
return;
case 15:
#line 88 "..\..\..\Pages\ChargerPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Reboot_Click);
#line default
#line hidden
return;
case 16:
this.txtRebootResult = ((System.Windows.Controls.TextBlock)(target));
return;
}
this._contentLoaded = true;
}
}
}

Binary file not shown.

View File

@@ -0,0 +1,129 @@
#pragma checksum "..\..\..\Pages\DashboardPage.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "1508FCA098B53360DD176713F2E4977308A7F57161CCE5CD2E7FF08AF66F460C"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace YKC {
/// <summary>
/// DashboardPage
/// </summary>
public partial class DashboardPage : System.Windows.Controls.Page, System.Windows.Markup.IComponentConnector {
#line 14 "..\..\..\Pages\DashboardPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtConnStatus;
#line default
#line hidden
#line 22 "..\..\..\Pages\DashboardPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtOnlineCount;
#line default
#line hidden
#line 30 "..\..\..\Pages\DashboardPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtChargingCount;
#line default
#line hidden
#line 47 "..\..\..\Pages\DashboardPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.DataGrid dgPiles;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/YKC;component/pages/dashboardpage.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Pages\DashboardPage.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.txtConnStatus = ((System.Windows.Controls.TextBlock)(target));
return;
case 2:
this.txtOnlineCount = ((System.Windows.Controls.TextBlock)(target));
return;
case 3:
this.txtChargingCount = ((System.Windows.Controls.TextBlock)(target));
return;
case 4:
#line 42 "..\..\..\Pages\DashboardPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Refresh_Click);
#line default
#line hidden
return;
case 5:
this.dgPiles = ((System.Windows.Controls.DataGrid)(target));
return;
}
this._contentLoaded = true;
}
}
}

View File

@@ -0,0 +1,129 @@
#pragma checksum "..\..\..\Pages\DashboardPage.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "1508FCA098B53360DD176713F2E4977308A7F57161CCE5CD2E7FF08AF66F460C"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace YKC {
/// <summary>
/// DashboardPage
/// </summary>
public partial class DashboardPage : System.Windows.Controls.Page, System.Windows.Markup.IComponentConnector {
#line 14 "..\..\..\Pages\DashboardPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtConnStatus;
#line default
#line hidden
#line 22 "..\..\..\Pages\DashboardPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtOnlineCount;
#line default
#line hidden
#line 30 "..\..\..\Pages\DashboardPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtChargingCount;
#line default
#line hidden
#line 47 "..\..\..\Pages\DashboardPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.DataGrid dgPiles;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/YKC;component/pages/dashboardpage.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Pages\DashboardPage.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.txtConnStatus = ((System.Windows.Controls.TextBlock)(target));
return;
case 2:
this.txtOnlineCount = ((System.Windows.Controls.TextBlock)(target));
return;
case 3:
this.txtChargingCount = ((System.Windows.Controls.TextBlock)(target));
return;
case 4:
#line 42 "..\..\..\Pages\DashboardPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Refresh_Click);
#line default
#line hidden
return;
case 5:
this.dgPiles = ((System.Windows.Controls.DataGrid)(target));
return;
}
this._contentLoaded = true;
}
}
}

Binary file not shown.

View File

@@ -0,0 +1,323 @@
#pragma checksum "..\..\..\Pages\GatewayPage.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "AD46577C7B1F8341FA8948443614B6661F41BCF60263F7064FF2BFEBAFA9DC81"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace YKC {
/// <summary>
/// GatewayPage
/// </summary>
public partial class GatewayPage : System.Windows.Controls.Page, System.Windows.Markup.IComponentConnector {
#line 25 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtGwId;
#line default
#line hidden
#line 29 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtGwSw;
#line default
#line hidden
#line 32 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtGwHw;
#line default
#line hidden
#line 35 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtGwUptime;
#line default
#line hidden
#line 40 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtGwStatus;
#line default
#line hidden
#line 54 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtSim;
#line default
#line hidden
#line 58 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtNetStatus;
#line default
#line hidden
#line 62 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtSignal;
#line default
#line hidden
#line 65 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtIsp;
#line default
#line hidden
#line 70 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txt4GStatus;
#line default
#line hidden
#line 91 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtCloudHost;
#line default
#line hidden
#line 95 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtCloudPort;
#line default
#line hidden
#line 103 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtCloudResult;
#line default
#line hidden
#line 117 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtNetIp;
#line default
#line hidden
#line 121 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtNetMask;
#line default
#line hidden
#line 125 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtNetGw;
#line default
#line hidden
#line 129 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtNetDns;
#line default
#line hidden
#line 137 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtNetResult;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/YKC;component/pages/gatewaypage.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Pages\GatewayPage.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.txtGwId = ((System.Windows.Controls.TextBlock)(target));
return;
case 2:
this.txtGwSw = ((System.Windows.Controls.TextBlock)(target));
return;
case 3:
this.txtGwHw = ((System.Windows.Controls.TextBlock)(target));
return;
case 4:
this.txtGwUptime = ((System.Windows.Controls.TextBlock)(target));
return;
case 5:
#line 39 "..\..\..\Pages\GatewayPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.RefreshGwInfo_Click);
#line default
#line hidden
return;
case 6:
this.txtGwStatus = ((System.Windows.Controls.TextBlock)(target));
return;
case 7:
this.txtSim = ((System.Windows.Controls.TextBlock)(target));
return;
case 8:
this.txtNetStatus = ((System.Windows.Controls.TextBlock)(target));
return;
case 9:
this.txtSignal = ((System.Windows.Controls.TextBlock)(target));
return;
case 10:
this.txtIsp = ((System.Windows.Controls.TextBlock)(target));
return;
case 11:
#line 69 "..\..\..\Pages\GatewayPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Refresh4G_Click);
#line default
#line hidden
return;
case 12:
this.txt4GStatus = ((System.Windows.Controls.TextBlock)(target));
return;
case 13:
this.txtCloudHost = ((System.Windows.Controls.TextBox)(target));
return;
case 14:
this.txtCloudPort = ((System.Windows.Controls.TextBox)(target));
return;
case 15:
#line 100 "..\..\..\Pages\GatewayPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.LoadCloudConfig_Click);
#line default
#line hidden
return;
case 16:
#line 102 "..\..\..\Pages\GatewayPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.SaveCloudConfig_Click);
#line default
#line hidden
return;
case 17:
this.txtCloudResult = ((System.Windows.Controls.TextBlock)(target));
return;
case 18:
this.txtNetIp = ((System.Windows.Controls.TextBox)(target));
return;
case 19:
this.txtNetMask = ((System.Windows.Controls.TextBox)(target));
return;
case 20:
this.txtNetGw = ((System.Windows.Controls.TextBox)(target));
return;
case 21:
this.txtNetDns = ((System.Windows.Controls.TextBox)(target));
return;
case 22:
#line 134 "..\..\..\Pages\GatewayPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.LoadNetConfig_Click);
#line default
#line hidden
return;
case 23:
#line 136 "..\..\..\Pages\GatewayPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.SaveNetConfig_Click);
#line default
#line hidden
return;
case 24:
this.txtNetResult = ((System.Windows.Controls.TextBlock)(target));
return;
}
this._contentLoaded = true;
}
}
}

View File

@@ -0,0 +1,323 @@
#pragma checksum "..\..\..\Pages\GatewayPage.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "AD46577C7B1F8341FA8948443614B6661F41BCF60263F7064FF2BFEBAFA9DC81"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace YKC {
/// <summary>
/// GatewayPage
/// </summary>
public partial class GatewayPage : System.Windows.Controls.Page, System.Windows.Markup.IComponentConnector {
#line 25 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtGwId;
#line default
#line hidden
#line 29 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtGwSw;
#line default
#line hidden
#line 32 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtGwHw;
#line default
#line hidden
#line 35 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtGwUptime;
#line default
#line hidden
#line 40 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtGwStatus;
#line default
#line hidden
#line 54 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtSim;
#line default
#line hidden
#line 58 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtNetStatus;
#line default
#line hidden
#line 62 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtSignal;
#line default
#line hidden
#line 65 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtIsp;
#line default
#line hidden
#line 70 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txt4GStatus;
#line default
#line hidden
#line 91 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtCloudHost;
#line default
#line hidden
#line 95 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtCloudPort;
#line default
#line hidden
#line 103 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtCloudResult;
#line default
#line hidden
#line 117 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtNetIp;
#line default
#line hidden
#line 121 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtNetMask;
#line default
#line hidden
#line 125 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtNetGw;
#line default
#line hidden
#line 129 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox txtNetDns;
#line default
#line hidden
#line 137 "..\..\..\Pages\GatewayPage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtNetResult;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/YKC;component/pages/gatewaypage.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Pages\GatewayPage.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.txtGwId = ((System.Windows.Controls.TextBlock)(target));
return;
case 2:
this.txtGwSw = ((System.Windows.Controls.TextBlock)(target));
return;
case 3:
this.txtGwHw = ((System.Windows.Controls.TextBlock)(target));
return;
case 4:
this.txtGwUptime = ((System.Windows.Controls.TextBlock)(target));
return;
case 5:
#line 39 "..\..\..\Pages\GatewayPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.RefreshGwInfo_Click);
#line default
#line hidden
return;
case 6:
this.txtGwStatus = ((System.Windows.Controls.TextBlock)(target));
return;
case 7:
this.txtSim = ((System.Windows.Controls.TextBlock)(target));
return;
case 8:
this.txtNetStatus = ((System.Windows.Controls.TextBlock)(target));
return;
case 9:
this.txtSignal = ((System.Windows.Controls.TextBlock)(target));
return;
case 10:
this.txtIsp = ((System.Windows.Controls.TextBlock)(target));
return;
case 11:
#line 69 "..\..\..\Pages\GatewayPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Refresh4G_Click);
#line default
#line hidden
return;
case 12:
this.txt4GStatus = ((System.Windows.Controls.TextBlock)(target));
return;
case 13:
this.txtCloudHost = ((System.Windows.Controls.TextBox)(target));
return;
case 14:
this.txtCloudPort = ((System.Windows.Controls.TextBox)(target));
return;
case 15:
#line 100 "..\..\..\Pages\GatewayPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.LoadCloudConfig_Click);
#line default
#line hidden
return;
case 16:
#line 102 "..\..\..\Pages\GatewayPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.SaveCloudConfig_Click);
#line default
#line hidden
return;
case 17:
this.txtCloudResult = ((System.Windows.Controls.TextBlock)(target));
return;
case 18:
this.txtNetIp = ((System.Windows.Controls.TextBox)(target));
return;
case 19:
this.txtNetMask = ((System.Windows.Controls.TextBox)(target));
return;
case 20:
this.txtNetGw = ((System.Windows.Controls.TextBox)(target));
return;
case 21:
this.txtNetDns = ((System.Windows.Controls.TextBox)(target));
return;
case 22:
#line 134 "..\..\..\Pages\GatewayPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.LoadNetConfig_Click);
#line default
#line hidden
return;
case 23:
#line 136 "..\..\..\Pages\GatewayPage.xaml"
((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.SaveNetConfig_Click);
#line default
#line hidden
return;
case 24:
this.txtNetResult = ((System.Windows.Controls.TextBlock)(target));
return;
}
this._contentLoaded = true;
}
}
}

Binary file not shown.

View File

@@ -0,0 +1,266 @@
#pragma checksum "..\..\..\Pages\RealtimePage.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "5EED3EEEA729DC8EA1B9280A5B02D0300579DE890C7796C5C8C4CF0D736781DD"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using OxyPlot.Wpf;
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace YKC {
/// <summary>
/// RealtimePage
/// </summary>
public partial class RealtimePage : System.Windows.Controls.Page, System.Windows.Markup.IComponentConnector {
#line 18 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cmbPile;
#line default
#line hidden
#line 26 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cmbGun;
#line default
#line hidden
#line 39 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtCurrent;
#line default
#line hidden
#line 47 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtVoltage;
#line default
#line hidden
#line 55 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtPower;
#line default
#line hidden
#line 63 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtEnergy;
#line default
#line hidden
#line 71 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtTotalAmount;
#line default
#line hidden
#line 79 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtStatus;
#line default
#line hidden
#line 91 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtOrderNo;
#line default
#line hidden
#line 100 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtSoc;
#line default
#line hidden
#line 108 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtCumTime;
#line default
#line hidden
#line 117 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtRemTime;
#line default
#line hidden
#line 140 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal OxyPlot.Wpf.PlotView plotCurrent;
#line default
#line hidden
#line 148 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal OxyPlot.Wpf.PlotView plotVoltage;
#line default
#line hidden
#line 156 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal OxyPlot.Wpf.PlotView plotPower;
#line default
#line hidden
#line 164 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal OxyPlot.Wpf.PlotView plotAmount;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/YKC;component/pages/realtimepage.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Pages\RealtimePage.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.cmbPile = ((System.Windows.Controls.ComboBox)(target));
#line 19 "..\..\..\Pages\RealtimePage.xaml"
this.cmbPile.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.PileGun_Changed);
#line default
#line hidden
return;
case 2:
this.cmbGun = ((System.Windows.Controls.ComboBox)(target));
#line 27 "..\..\..\Pages\RealtimePage.xaml"
this.cmbGun.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.PileGun_Changed);
#line default
#line hidden
return;
case 3:
this.txtCurrent = ((System.Windows.Controls.TextBlock)(target));
return;
case 4:
this.txtVoltage = ((System.Windows.Controls.TextBlock)(target));
return;
case 5:
this.txtPower = ((System.Windows.Controls.TextBlock)(target));
return;
case 6:
this.txtEnergy = ((System.Windows.Controls.TextBlock)(target));
return;
case 7:
this.txtTotalAmount = ((System.Windows.Controls.TextBlock)(target));
return;
case 8:
this.txtStatus = ((System.Windows.Controls.TextBlock)(target));
return;
case 9:
this.txtOrderNo = ((System.Windows.Controls.TextBlock)(target));
return;
case 10:
this.txtSoc = ((System.Windows.Controls.TextBlock)(target));
return;
case 11:
this.txtCumTime = ((System.Windows.Controls.TextBlock)(target));
return;
case 12:
this.txtRemTime = ((System.Windows.Controls.TextBlock)(target));
return;
case 13:
this.plotCurrent = ((OxyPlot.Wpf.PlotView)(target));
return;
case 14:
this.plotVoltage = ((OxyPlot.Wpf.PlotView)(target));
return;
case 15:
this.plotPower = ((OxyPlot.Wpf.PlotView)(target));
return;
case 16:
this.plotAmount = ((OxyPlot.Wpf.PlotView)(target));
return;
}
this._contentLoaded = true;
}
}
}

View File

@@ -0,0 +1,266 @@
#pragma checksum "..\..\..\Pages\RealtimePage.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "5EED3EEEA729DC8EA1B9280A5B02D0300579DE890C7796C5C8C4CF0D736781DD"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using OxyPlot.Wpf;
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;
namespace YKC {
/// <summary>
/// RealtimePage
/// </summary>
public partial class RealtimePage : System.Windows.Controls.Page, System.Windows.Markup.IComponentConnector {
#line 18 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cmbPile;
#line default
#line hidden
#line 26 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.ComboBox cmbGun;
#line default
#line hidden
#line 39 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtCurrent;
#line default
#line hidden
#line 47 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtVoltage;
#line default
#line hidden
#line 55 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtPower;
#line default
#line hidden
#line 63 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtEnergy;
#line default
#line hidden
#line 71 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtTotalAmount;
#line default
#line hidden
#line 79 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtStatus;
#line default
#line hidden
#line 91 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtOrderNo;
#line default
#line hidden
#line 100 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtSoc;
#line default
#line hidden
#line 108 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtCumTime;
#line default
#line hidden
#line 117 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock txtRemTime;
#line default
#line hidden
#line 140 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal OxyPlot.Wpf.PlotView plotCurrent;
#line default
#line hidden
#line 148 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal OxyPlot.Wpf.PlotView plotVoltage;
#line default
#line hidden
#line 156 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal OxyPlot.Wpf.PlotView plotPower;
#line default
#line hidden
#line 164 "..\..\..\Pages\RealtimePage.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal OxyPlot.Wpf.PlotView plotAmount;
#line default
#line hidden
private bool _contentLoaded;
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/YKC;component/pages/realtimepage.xaml", System.UriKind.Relative);
#line 1 "..\..\..\Pages\RealtimePage.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
switch (connectionId)
{
case 1:
this.cmbPile = ((System.Windows.Controls.ComboBox)(target));
#line 19 "..\..\..\Pages\RealtimePage.xaml"
this.cmbPile.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.PileGun_Changed);
#line default
#line hidden
return;
case 2:
this.cmbGun = ((System.Windows.Controls.ComboBox)(target));
#line 27 "..\..\..\Pages\RealtimePage.xaml"
this.cmbGun.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.PileGun_Changed);
#line default
#line hidden
return;
case 3:
this.txtCurrent = ((System.Windows.Controls.TextBlock)(target));
return;
case 4:
this.txtVoltage = ((System.Windows.Controls.TextBlock)(target));
return;
case 5:
this.txtPower = ((System.Windows.Controls.TextBlock)(target));
return;
case 6:
this.txtEnergy = ((System.Windows.Controls.TextBlock)(target));
return;
case 7:
this.txtTotalAmount = ((System.Windows.Controls.TextBlock)(target));
return;
case 8:
this.txtStatus = ((System.Windows.Controls.TextBlock)(target));
return;
case 9:
this.txtOrderNo = ((System.Windows.Controls.TextBlock)(target));
return;
case 10:
this.txtSoc = ((System.Windows.Controls.TextBlock)(target));
return;
case 11:
this.txtCumTime = ((System.Windows.Controls.TextBlock)(target));
return;
case 12:
this.txtRemTime = ((System.Windows.Controls.TextBlock)(target));
return;
case 13:
this.plotCurrent = ((OxyPlot.Wpf.PlotView)(target));
return;
case 14:
this.plotVoltage = ((OxyPlot.Wpf.PlotView)(target));
return;
case 15:
this.plotPower = ((OxyPlot.Wpf.PlotView)(target));
return;
case 16:
this.plotAmount = ((OxyPlot.Wpf.PlotView)(target));
return;
}
this._contentLoaded = true;
}
}
}

View File

@@ -0,0 +1 @@
b70b92aee237e65b6ea21cb2cfff89384ebd80dce4b9ea16adc79dd9cef2fdf5

View File

@@ -0,0 +1,30 @@
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\bin\Debug\YKC.exe.config
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\bin\Debug\YKC.exe
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\bin\Debug\YKC.pdb
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\YKC.csproj.AssemblyReference.cache
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\MainWindow.baml
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\App.baml
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\MainWindow.g.cs
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\App.g.cs
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\YKC_MarkupCompile.cache
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\YKC.g.resources
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\YKC.Properties.Resources.resources
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\YKC.csproj.GenerateResource.cache
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\YKC.csproj.CoreCompileInputs.cache
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\YKC.exe
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\YKC.pdb
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\Pages\DashboardPage.baml
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\Pages\RealtimePage.baml
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\Pages\ChargerPage.baml
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\Pages\GatewayPage.baml
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\Pages\DashboardPage.g.cs
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\Pages\RealtimePage.g.cs
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\Pages\ChargerPage.g.cs
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\Pages\GatewayPage.g.cs
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\bin\Debug\OxyPlot.dll
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\bin\Debug\OxyPlot.Wpf.dll
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\bin\Debug\OxyPlot.Wpf.Shared.dll
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\YKC.csproj.Up2Date
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\bin\Debug\Newtonsoft.Json.dll
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\LoginWindow.baml
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\LoginWindow.g.cs

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,20 @@
YKC
winexe
C#
.cs
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\
YKC
none
false
DEBUG;TRACE
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\App.xaml
6469827525
13-721072773
19-2120478581
MainWindow.xaml;LoginWindow.xaml;Pages\DashboardPage.xaml;Pages\RealtimePage.xaml;Pages\ChargerPage.xaml;Pages\GatewayPage.xaml;
False

View File

@@ -0,0 +1,20 @@
YKC
winexe
C#
.cs
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\obj\Debug\
YKC
none
false
DEBUG;TRACE
C:\Users\Administrator\PycharmProjects\PythonProject\C#\YKC\App.xaml
6469827525
141491805905
19-2120478581
MainWindow.xaml;LoginWindow.xaml;Pages\DashboardPage.xaml;Pages\RealtimePage.xaml;Pages\ChargerPage.xaml;Pages\GatewayPage.xaml;
False

View File

@@ -0,0 +1,72 @@
{
"format": 1,
"restore": {
"C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\YKC.csproj": {}
},
"projects": {
"C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\YKC.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\YKC.csproj",
"projectName": "YKC",
"projectPath": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\YKC.csproj",
"packagesPath": "C:\\Users\\Administrator\\.nuget\\packages\\",
"outputPath": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\obj\\",
"projectStyle": "PackageReference",
"skipContentFileWrite": true,
"UsingMicrosoftNETSdk": false,
"configFilePaths": [
"C:\\Users\\Administrator\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net472"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net472": {
"framework": "net472",
"projectReferences": {}
}
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"frameworks": {
"net472": {
"framework": "net472",
"dependencies": {
"Newtonsoft.Json": {
"target": "Package",
"version": "[13.0.3, )"
},
"OxyPlot.Wpf": {
"target": "Package",
"version": "[2.2.0, )"
}
}
}
},
"runtimes": {
"win": {
"#import": []
},
"win-arm64": {
"#import": []
},
"win-x64": {
"#import": []
},
"win-x86": {
"#import": []
}
}
}
}
}

View File

@@ -0,0 +1,18 @@
<?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)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Administrator\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\Administrator\.nuget\packages\" />
</ItemGroup>
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<PkgOxyPlot_Wpf Condition=" '$(PkgOxyPlot_Wpf)' == '' ">C:\Users\Administrator\.nuget\packages\oxyplot.wpf\2.2.0</PkgOxyPlot_Wpf>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />

View File

@@ -0,0 +1,972 @@
{
"version": 3,
"targets": {
".NETFramework,Version=v4.7.2": {
"Microsoft.NETFramework.ReferenceAssemblies/1.0.2": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies.net472": "1.0.2"
}
},
"Microsoft.NETFramework.ReferenceAssemblies.net472/1.0.2": {
"type": "package",
"build": {
"build/_._": {}
}
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"compile": {
"lib/net45/Newtonsoft.Json.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net45/Newtonsoft.Json.dll": {
"related": ".xml"
}
}
},
"OxyPlot.Core/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies": "1.0.2"
},
"compile": {
"lib/net462/OxyPlot.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net462/OxyPlot.dll": {
"related": ".xml"
}
}
},
"OxyPlot.Wpf/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies": "1.0.2",
"OxyPlot.Core": "2.2.0",
"OxyPlot.Wpf.Shared": "2.2.0"
},
"frameworkAssemblies": [
"ReachFramework",
"System.Printing"
],
"compile": {
"lib/net462/OxyPlot.Wpf.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net462/OxyPlot.Wpf.dll": {
"related": ".xml"
}
}
},
"OxyPlot.Wpf.Shared/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies": "1.0.2",
"OxyPlot.Core": "2.2.0"
},
"compile": {
"lib/net462/OxyPlot.Wpf.Shared.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net462/OxyPlot.Wpf.Shared.dll": {
"related": ".xml"
}
}
}
},
".NETFramework,Version=v4.7.2/win": {
"Microsoft.NETFramework.ReferenceAssemblies/1.0.2": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies.net472": "1.0.2"
}
},
"Microsoft.NETFramework.ReferenceAssemblies.net472/1.0.2": {
"type": "package",
"build": {
"build/_._": {}
}
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"compile": {
"lib/net45/Newtonsoft.Json.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net45/Newtonsoft.Json.dll": {
"related": ".xml"
}
}
},
"OxyPlot.Core/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies": "1.0.2"
},
"compile": {
"lib/net462/OxyPlot.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net462/OxyPlot.dll": {
"related": ".xml"
}
}
},
"OxyPlot.Wpf/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies": "1.0.2",
"OxyPlot.Core": "2.2.0",
"OxyPlot.Wpf.Shared": "2.2.0"
},
"frameworkAssemblies": [
"ReachFramework",
"System.Printing"
],
"compile": {
"lib/net462/OxyPlot.Wpf.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net462/OxyPlot.Wpf.dll": {
"related": ".xml"
}
}
},
"OxyPlot.Wpf.Shared/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies": "1.0.2",
"OxyPlot.Core": "2.2.0"
},
"compile": {
"lib/net462/OxyPlot.Wpf.Shared.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net462/OxyPlot.Wpf.Shared.dll": {
"related": ".xml"
}
}
}
},
".NETFramework,Version=v4.7.2/win-arm64": {
"Microsoft.NETFramework.ReferenceAssemblies/1.0.2": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies.net472": "1.0.2"
}
},
"Microsoft.NETFramework.ReferenceAssemblies.net472/1.0.2": {
"type": "package",
"build": {
"build/_._": {}
}
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"compile": {
"lib/net45/Newtonsoft.Json.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net45/Newtonsoft.Json.dll": {
"related": ".xml"
}
}
},
"OxyPlot.Core/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies": "1.0.2"
},
"compile": {
"lib/net462/OxyPlot.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net462/OxyPlot.dll": {
"related": ".xml"
}
}
},
"OxyPlot.Wpf/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies": "1.0.2",
"OxyPlot.Core": "2.2.0",
"OxyPlot.Wpf.Shared": "2.2.0"
},
"frameworkAssemblies": [
"ReachFramework",
"System.Printing"
],
"compile": {
"lib/net462/OxyPlot.Wpf.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net462/OxyPlot.Wpf.dll": {
"related": ".xml"
}
}
},
"OxyPlot.Wpf.Shared/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies": "1.0.2",
"OxyPlot.Core": "2.2.0"
},
"compile": {
"lib/net462/OxyPlot.Wpf.Shared.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net462/OxyPlot.Wpf.Shared.dll": {
"related": ".xml"
}
}
}
},
".NETFramework,Version=v4.7.2/win-x64": {
"Microsoft.NETFramework.ReferenceAssemblies/1.0.2": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies.net472": "1.0.2"
}
},
"Microsoft.NETFramework.ReferenceAssemblies.net472/1.0.2": {
"type": "package",
"build": {
"build/_._": {}
}
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"compile": {
"lib/net45/Newtonsoft.Json.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net45/Newtonsoft.Json.dll": {
"related": ".xml"
}
}
},
"OxyPlot.Core/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies": "1.0.2"
},
"compile": {
"lib/net462/OxyPlot.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net462/OxyPlot.dll": {
"related": ".xml"
}
}
},
"OxyPlot.Wpf/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies": "1.0.2",
"OxyPlot.Core": "2.2.0",
"OxyPlot.Wpf.Shared": "2.2.0"
},
"frameworkAssemblies": [
"ReachFramework",
"System.Printing"
],
"compile": {
"lib/net462/OxyPlot.Wpf.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net462/OxyPlot.Wpf.dll": {
"related": ".xml"
}
}
},
"OxyPlot.Wpf.Shared/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies": "1.0.2",
"OxyPlot.Core": "2.2.0"
},
"compile": {
"lib/net462/OxyPlot.Wpf.Shared.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net462/OxyPlot.Wpf.Shared.dll": {
"related": ".xml"
}
}
}
},
".NETFramework,Version=v4.7.2/win-x86": {
"Microsoft.NETFramework.ReferenceAssemblies/1.0.2": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies.net472": "1.0.2"
}
},
"Microsoft.NETFramework.ReferenceAssemblies.net472/1.0.2": {
"type": "package",
"build": {
"build/_._": {}
}
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"compile": {
"lib/net45/Newtonsoft.Json.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net45/Newtonsoft.Json.dll": {
"related": ".xml"
}
}
},
"OxyPlot.Core/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies": "1.0.2"
},
"compile": {
"lib/net462/OxyPlot.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net462/OxyPlot.dll": {
"related": ".xml"
}
}
},
"OxyPlot.Wpf/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies": "1.0.2",
"OxyPlot.Core": "2.2.0",
"OxyPlot.Wpf.Shared": "2.2.0"
},
"frameworkAssemblies": [
"ReachFramework",
"System.Printing"
],
"compile": {
"lib/net462/OxyPlot.Wpf.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net462/OxyPlot.Wpf.dll": {
"related": ".xml"
}
}
},
"OxyPlot.Wpf.Shared/2.2.0": {
"type": "package",
"dependencies": {
"Microsoft.NETFramework.ReferenceAssemblies": "1.0.2",
"OxyPlot.Core": "2.2.0"
},
"compile": {
"lib/net462/OxyPlot.Wpf.Shared.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net462/OxyPlot.Wpf.Shared.dll": {
"related": ".xml"
}
}
}
}
},
"libraries": {
"Microsoft.NETFramework.ReferenceAssemblies/1.0.2": {
"sha512": "5/cSEVld+px/CuRrbohO/djfg6++eR6zGpy88MgqloXvkj//WXWpFZyu/OpkXPN0u5m+dN/EVwLNYFUxD4h2+A==",
"type": "package",
"path": "microsoft.netframework.referenceassemblies/1.0.2",
"files": [
".nupkg.metadata",
".signature.p7s",
"microsoft.netframework.referenceassemblies.1.0.2.nupkg.sha512",
"microsoft.netframework.referenceassemblies.nuspec"
]
},
"Microsoft.NETFramework.ReferenceAssemblies.net472/1.0.2": {
"sha512": "ryAuwkvjMC9xYQ0VXsG7ZBo62y5tBmYaCnovOL5IXfnQPQqjvJGRkLMDyUx+dnCb96UVLJv83R6XK+sRnDnaZg==",
"type": "package",
"path": "microsoft.netframework.referenceassemblies.net472/1.0.2",
"files": [
".nupkg.metadata",
".signature.p7s",
"build/.NETFramework/v4.7.2/Accessibility.dll",
"build/.NETFramework/v4.7.2/Accessibility.xml",
"build/.NETFramework/v4.7.2/CustomMarshalers.dll",
"build/.NETFramework/v4.7.2/CustomMarshalers.xml",
"build/.NETFramework/v4.7.2/Facades/Microsoft.Win32.Primitives.dll",
"build/.NETFramework/v4.7.2/Facades/System.AppContext.dll",
"build/.NETFramework/v4.7.2/Facades/System.Collections.Concurrent.dll",
"build/.NETFramework/v4.7.2/Facades/System.Collections.NonGeneric.dll",
"build/.NETFramework/v4.7.2/Facades/System.Collections.Specialized.dll",
"build/.NETFramework/v4.7.2/Facades/System.Collections.dll",
"build/.NETFramework/v4.7.2/Facades/System.ComponentModel.Annotations.dll",
"build/.NETFramework/v4.7.2/Facades/System.ComponentModel.EventBasedAsync.dll",
"build/.NETFramework/v4.7.2/Facades/System.ComponentModel.Primitives.dll",
"build/.NETFramework/v4.7.2/Facades/System.ComponentModel.TypeConverter.dll",
"build/.NETFramework/v4.7.2/Facades/System.ComponentModel.dll",
"build/.NETFramework/v4.7.2/Facades/System.Console.dll",
"build/.NETFramework/v4.7.2/Facades/System.Data.Common.dll",
"build/.NETFramework/v4.7.2/Facades/System.Diagnostics.Contracts.dll",
"build/.NETFramework/v4.7.2/Facades/System.Diagnostics.Debug.dll",
"build/.NETFramework/v4.7.2/Facades/System.Diagnostics.FileVersionInfo.dll",
"build/.NETFramework/v4.7.2/Facades/System.Diagnostics.Process.dll",
"build/.NETFramework/v4.7.2/Facades/System.Diagnostics.StackTrace.dll",
"build/.NETFramework/v4.7.2/Facades/System.Diagnostics.TextWriterTraceListener.dll",
"build/.NETFramework/v4.7.2/Facades/System.Diagnostics.Tools.dll",
"build/.NETFramework/v4.7.2/Facades/System.Diagnostics.TraceSource.dll",
"build/.NETFramework/v4.7.2/Facades/System.Drawing.Primitives.dll",
"build/.NETFramework/v4.7.2/Facades/System.Dynamic.Runtime.dll",
"build/.NETFramework/v4.7.2/Facades/System.Globalization.Calendars.dll",
"build/.NETFramework/v4.7.2/Facades/System.Globalization.Extensions.dll",
"build/.NETFramework/v4.7.2/Facades/System.Globalization.dll",
"build/.NETFramework/v4.7.2/Facades/System.IO.Compression.ZipFile.dll",
"build/.NETFramework/v4.7.2/Facades/System.IO.FileSystem.DriveInfo.dll",
"build/.NETFramework/v4.7.2/Facades/System.IO.FileSystem.Primitives.dll",
"build/.NETFramework/v4.7.2/Facades/System.IO.FileSystem.Watcher.dll",
"build/.NETFramework/v4.7.2/Facades/System.IO.FileSystem.dll",
"build/.NETFramework/v4.7.2/Facades/System.IO.IsolatedStorage.dll",
"build/.NETFramework/v4.7.2/Facades/System.IO.MemoryMappedFiles.dll",
"build/.NETFramework/v4.7.2/Facades/System.IO.Pipes.dll",
"build/.NETFramework/v4.7.2/Facades/System.IO.UnmanagedMemoryStream.dll",
"build/.NETFramework/v4.7.2/Facades/System.IO.dll",
"build/.NETFramework/v4.7.2/Facades/System.Linq.Expressions.dll",
"build/.NETFramework/v4.7.2/Facades/System.Linq.Parallel.dll",
"build/.NETFramework/v4.7.2/Facades/System.Linq.Queryable.dll",
"build/.NETFramework/v4.7.2/Facades/System.Linq.dll",
"build/.NETFramework/v4.7.2/Facades/System.Net.Http.Rtc.dll",
"build/.NETFramework/v4.7.2/Facades/System.Net.NameResolution.dll",
"build/.NETFramework/v4.7.2/Facades/System.Net.NetworkInformation.dll",
"build/.NETFramework/v4.7.2/Facades/System.Net.Ping.dll",
"build/.NETFramework/v4.7.2/Facades/System.Net.Primitives.dll",
"build/.NETFramework/v4.7.2/Facades/System.Net.Requests.dll",
"build/.NETFramework/v4.7.2/Facades/System.Net.Security.dll",
"build/.NETFramework/v4.7.2/Facades/System.Net.Sockets.dll",
"build/.NETFramework/v4.7.2/Facades/System.Net.WebHeaderCollection.dll",
"build/.NETFramework/v4.7.2/Facades/System.Net.WebSockets.Client.dll",
"build/.NETFramework/v4.7.2/Facades/System.Net.WebSockets.dll",
"build/.NETFramework/v4.7.2/Facades/System.ObjectModel.dll",
"build/.NETFramework/v4.7.2/Facades/System.Reflection.Emit.ILGeneration.dll",
"build/.NETFramework/v4.7.2/Facades/System.Reflection.Emit.Lightweight.dll",
"build/.NETFramework/v4.7.2/Facades/System.Reflection.Emit.dll",
"build/.NETFramework/v4.7.2/Facades/System.Reflection.Extensions.dll",
"build/.NETFramework/v4.7.2/Facades/System.Reflection.Primitives.dll",
"build/.NETFramework/v4.7.2/Facades/System.Reflection.dll",
"build/.NETFramework/v4.7.2/Facades/System.Resources.Reader.dll",
"build/.NETFramework/v4.7.2/Facades/System.Resources.ResourceManager.dll",
"build/.NETFramework/v4.7.2/Facades/System.Resources.Writer.dll",
"build/.NETFramework/v4.7.2/Facades/System.Runtime.CompilerServices.VisualC.dll",
"build/.NETFramework/v4.7.2/Facades/System.Runtime.Extensions.dll",
"build/.NETFramework/v4.7.2/Facades/System.Runtime.Handles.dll",
"build/.NETFramework/v4.7.2/Facades/System.Runtime.InteropServices.RuntimeInformation.dll",
"build/.NETFramework/v4.7.2/Facades/System.Runtime.InteropServices.WindowsRuntime.dll",
"build/.NETFramework/v4.7.2/Facades/System.Runtime.InteropServices.dll",
"build/.NETFramework/v4.7.2/Facades/System.Runtime.Numerics.dll",
"build/.NETFramework/v4.7.2/Facades/System.Runtime.Serialization.Formatters.dll",
"build/.NETFramework/v4.7.2/Facades/System.Runtime.Serialization.Json.dll",
"build/.NETFramework/v4.7.2/Facades/System.Runtime.Serialization.Primitives.dll",
"build/.NETFramework/v4.7.2/Facades/System.Runtime.Serialization.Xml.dll",
"build/.NETFramework/v4.7.2/Facades/System.Runtime.dll",
"build/.NETFramework/v4.7.2/Facades/System.Security.Claims.dll",
"build/.NETFramework/v4.7.2/Facades/System.Security.Cryptography.Algorithms.dll",
"build/.NETFramework/v4.7.2/Facades/System.Security.Cryptography.Csp.dll",
"build/.NETFramework/v4.7.2/Facades/System.Security.Cryptography.Encoding.dll",
"build/.NETFramework/v4.7.2/Facades/System.Security.Cryptography.Primitives.dll",
"build/.NETFramework/v4.7.2/Facades/System.Security.Cryptography.X509Certificates.dll",
"build/.NETFramework/v4.7.2/Facades/System.Security.Principal.dll",
"build/.NETFramework/v4.7.2/Facades/System.Security.SecureString.dll",
"build/.NETFramework/v4.7.2/Facades/System.ServiceModel.Duplex.dll",
"build/.NETFramework/v4.7.2/Facades/System.ServiceModel.Http.dll",
"build/.NETFramework/v4.7.2/Facades/System.ServiceModel.NetTcp.dll",
"build/.NETFramework/v4.7.2/Facades/System.ServiceModel.Primitives.dll",
"build/.NETFramework/v4.7.2/Facades/System.ServiceModel.Security.dll",
"build/.NETFramework/v4.7.2/Facades/System.Text.Encoding.Extensions.dll",
"build/.NETFramework/v4.7.2/Facades/System.Text.Encoding.dll",
"build/.NETFramework/v4.7.2/Facades/System.Text.RegularExpressions.dll",
"build/.NETFramework/v4.7.2/Facades/System.Threading.Overlapped.dll",
"build/.NETFramework/v4.7.2/Facades/System.Threading.Tasks.Parallel.dll",
"build/.NETFramework/v4.7.2/Facades/System.Threading.Tasks.dll",
"build/.NETFramework/v4.7.2/Facades/System.Threading.Thread.dll",
"build/.NETFramework/v4.7.2/Facades/System.Threading.ThreadPool.dll",
"build/.NETFramework/v4.7.2/Facades/System.Threading.Timer.dll",
"build/.NETFramework/v4.7.2/Facades/System.Threading.dll",
"build/.NETFramework/v4.7.2/Facades/System.ValueTuple.dll",
"build/.NETFramework/v4.7.2/Facades/System.Xml.ReaderWriter.dll",
"build/.NETFramework/v4.7.2/Facades/System.Xml.XDocument.dll",
"build/.NETFramework/v4.7.2/Facades/System.Xml.XPath.XDocument.dll",
"build/.NETFramework/v4.7.2/Facades/System.Xml.XPath.dll",
"build/.NETFramework/v4.7.2/Facades/System.Xml.XmlDocument.dll",
"build/.NETFramework/v4.7.2/Facades/System.Xml.XmlSerializer.dll",
"build/.NETFramework/v4.7.2/Facades/netstandard.dll",
"build/.NETFramework/v4.7.2/ISymWrapper.dll",
"build/.NETFramework/v4.7.2/ISymWrapper.xml",
"build/.NETFramework/v4.7.2/Microsoft.Activities.Build.dll",
"build/.NETFramework/v4.7.2/Microsoft.Activities.Build.xml",
"build/.NETFramework/v4.7.2/Microsoft.Build.Conversion.v4.0.dll",
"build/.NETFramework/v4.7.2/Microsoft.Build.Conversion.v4.0.xml",
"build/.NETFramework/v4.7.2/Microsoft.Build.Engine.dll",
"build/.NETFramework/v4.7.2/Microsoft.Build.Engine.xml",
"build/.NETFramework/v4.7.2/Microsoft.Build.Framework.dll",
"build/.NETFramework/v4.7.2/Microsoft.Build.Framework.xml",
"build/.NETFramework/v4.7.2/Microsoft.Build.Tasks.v4.0.dll",
"build/.NETFramework/v4.7.2/Microsoft.Build.Tasks.v4.0.xml",
"build/.NETFramework/v4.7.2/Microsoft.Build.Utilities.v4.0.dll",
"build/.NETFramework/v4.7.2/Microsoft.Build.Utilities.v4.0.xml",
"build/.NETFramework/v4.7.2/Microsoft.Build.dll",
"build/.NETFramework/v4.7.2/Microsoft.Build.xml",
"build/.NETFramework/v4.7.2/Microsoft.CSharp.dll",
"build/.NETFramework/v4.7.2/Microsoft.CSharp.xml",
"build/.NETFramework/v4.7.2/Microsoft.JScript.dll",
"build/.NETFramework/v4.7.2/Microsoft.JScript.xml",
"build/.NETFramework/v4.7.2/Microsoft.VisualBasic.Compatibility.Data.dll",
"build/.NETFramework/v4.7.2/Microsoft.VisualBasic.Compatibility.Data.xml",
"build/.NETFramework/v4.7.2/Microsoft.VisualBasic.Compatibility.dll",
"build/.NETFramework/v4.7.2/Microsoft.VisualBasic.Compatibility.xml",
"build/.NETFramework/v4.7.2/Microsoft.VisualBasic.dll",
"build/.NETFramework/v4.7.2/Microsoft.VisualBasic.xml",
"build/.NETFramework/v4.7.2/Microsoft.VisualC.STLCLR.dll",
"build/.NETFramework/v4.7.2/Microsoft.VisualC.STLCLR.xml",
"build/.NETFramework/v4.7.2/Microsoft.VisualC.dll",
"build/.NETFramework/v4.7.2/Microsoft.VisualC.xml",
"build/.NETFramework/v4.7.2/PermissionSets/FullTrust.xml",
"build/.NETFramework/v4.7.2/PermissionSets/Internet.xml",
"build/.NETFramework/v4.7.2/PermissionSets/LocalIntranet.xml",
"build/.NETFramework/v4.7.2/PresentationBuildTasks.dll",
"build/.NETFramework/v4.7.2/PresentationBuildTasks.xml",
"build/.NETFramework/v4.7.2/PresentationCore.dll",
"build/.NETFramework/v4.7.2/PresentationCore.xml",
"build/.NETFramework/v4.7.2/PresentationFramework.Aero.dll",
"build/.NETFramework/v4.7.2/PresentationFramework.Aero.xml",
"build/.NETFramework/v4.7.2/PresentationFramework.Aero2.dll",
"build/.NETFramework/v4.7.2/PresentationFramework.Aero2.xml",
"build/.NETFramework/v4.7.2/PresentationFramework.AeroLite.dll",
"build/.NETFramework/v4.7.2/PresentationFramework.AeroLite.xml",
"build/.NETFramework/v4.7.2/PresentationFramework.Classic.dll",
"build/.NETFramework/v4.7.2/PresentationFramework.Classic.xml",
"build/.NETFramework/v4.7.2/PresentationFramework.Luna.dll",
"build/.NETFramework/v4.7.2/PresentationFramework.Luna.xml",
"build/.NETFramework/v4.7.2/PresentationFramework.Royale.dll",
"build/.NETFramework/v4.7.2/PresentationFramework.Royale.xml",
"build/.NETFramework/v4.7.2/PresentationFramework.dll",
"build/.NETFramework/v4.7.2/PresentationFramework.xml",
"build/.NETFramework/v4.7.2/ReachFramework.dll",
"build/.NETFramework/v4.7.2/ReachFramework.xml",
"build/.NETFramework/v4.7.2/RedistList/FrameworkList.xml",
"build/.NETFramework/v4.7.2/System.Activities.Core.Presentation.dll",
"build/.NETFramework/v4.7.2/System.Activities.Core.Presentation.xml",
"build/.NETFramework/v4.7.2/System.Activities.DurableInstancing.dll",
"build/.NETFramework/v4.7.2/System.Activities.DurableInstancing.xml",
"build/.NETFramework/v4.7.2/System.Activities.Presentation.dll",
"build/.NETFramework/v4.7.2/System.Activities.Presentation.xml",
"build/.NETFramework/v4.7.2/System.Activities.dll",
"build/.NETFramework/v4.7.2/System.Activities.xml",
"build/.NETFramework/v4.7.2/System.AddIn.Contract.dll",
"build/.NETFramework/v4.7.2/System.AddIn.Contract.xml",
"build/.NETFramework/v4.7.2/System.AddIn.dll",
"build/.NETFramework/v4.7.2/System.AddIn.xml",
"build/.NETFramework/v4.7.2/System.ComponentModel.Composition.Registration.dll",
"build/.NETFramework/v4.7.2/System.ComponentModel.Composition.Registration.xml",
"build/.NETFramework/v4.7.2/System.ComponentModel.Composition.dll",
"build/.NETFramework/v4.7.2/System.ComponentModel.Composition.xml",
"build/.NETFramework/v4.7.2/System.ComponentModel.DataAnnotations.dll",
"build/.NETFramework/v4.7.2/System.ComponentModel.DataAnnotations.xml",
"build/.NETFramework/v4.7.2/System.Configuration.Install.dll",
"build/.NETFramework/v4.7.2/System.Configuration.Install.xml",
"build/.NETFramework/v4.7.2/System.Configuration.dll",
"build/.NETFramework/v4.7.2/System.Configuration.xml",
"build/.NETFramework/v4.7.2/System.Core.dll",
"build/.NETFramework/v4.7.2/System.Core.xml",
"build/.NETFramework/v4.7.2/System.Data.DataSetExtensions.dll",
"build/.NETFramework/v4.7.2/System.Data.DataSetExtensions.xml",
"build/.NETFramework/v4.7.2/System.Data.Entity.Design.dll",
"build/.NETFramework/v4.7.2/System.Data.Entity.Design.xml",
"build/.NETFramework/v4.7.2/System.Data.Entity.dll",
"build/.NETFramework/v4.7.2/System.Data.Entity.xml",
"build/.NETFramework/v4.7.2/System.Data.Linq.dll",
"build/.NETFramework/v4.7.2/System.Data.Linq.xml",
"build/.NETFramework/v4.7.2/System.Data.OracleClient.dll",
"build/.NETFramework/v4.7.2/System.Data.OracleClient.xml",
"build/.NETFramework/v4.7.2/System.Data.Services.Client.dll",
"build/.NETFramework/v4.7.2/System.Data.Services.Client.xml",
"build/.NETFramework/v4.7.2/System.Data.Services.Design.dll",
"build/.NETFramework/v4.7.2/System.Data.Services.Design.xml",
"build/.NETFramework/v4.7.2/System.Data.Services.dll",
"build/.NETFramework/v4.7.2/System.Data.Services.xml",
"build/.NETFramework/v4.7.2/System.Data.SqlXml.dll",
"build/.NETFramework/v4.7.2/System.Data.SqlXml.xml",
"build/.NETFramework/v4.7.2/System.Data.dll",
"build/.NETFramework/v4.7.2/System.Data.xml",
"build/.NETFramework/v4.7.2/System.Deployment.dll",
"build/.NETFramework/v4.7.2/System.Deployment.xml",
"build/.NETFramework/v4.7.2/System.Design.dll",
"build/.NETFramework/v4.7.2/System.Design.xml",
"build/.NETFramework/v4.7.2/System.Device.dll",
"build/.NETFramework/v4.7.2/System.Device.xml",
"build/.NETFramework/v4.7.2/System.Diagnostics.Tracing.dll",
"build/.NETFramework/v4.7.2/System.Diagnostics.Tracing.xml",
"build/.NETFramework/v4.7.2/System.DirectoryServices.AccountManagement.dll",
"build/.NETFramework/v4.7.2/System.DirectoryServices.AccountManagement.xml",
"build/.NETFramework/v4.7.2/System.DirectoryServices.Protocols.dll",
"build/.NETFramework/v4.7.2/System.DirectoryServices.Protocols.xml",
"build/.NETFramework/v4.7.2/System.DirectoryServices.dll",
"build/.NETFramework/v4.7.2/System.DirectoryServices.xml",
"build/.NETFramework/v4.7.2/System.Drawing.Design.dll",
"build/.NETFramework/v4.7.2/System.Drawing.Design.xml",
"build/.NETFramework/v4.7.2/System.Drawing.dll",
"build/.NETFramework/v4.7.2/System.Drawing.xml",
"build/.NETFramework/v4.7.2/System.Dynamic.dll",
"build/.NETFramework/v4.7.2/System.EnterpriseServices.Thunk.dll",
"build/.NETFramework/v4.7.2/System.EnterpriseServices.Wrapper.dll",
"build/.NETFramework/v4.7.2/System.EnterpriseServices.dll",
"build/.NETFramework/v4.7.2/System.EnterpriseServices.xml",
"build/.NETFramework/v4.7.2/System.IO.Compression.FileSystem.dll",
"build/.NETFramework/v4.7.2/System.IO.Compression.FileSystem.xml",
"build/.NETFramework/v4.7.2/System.IO.Compression.dll",
"build/.NETFramework/v4.7.2/System.IO.Compression.xml",
"build/.NETFramework/v4.7.2/System.IO.Log.dll",
"build/.NETFramework/v4.7.2/System.IO.Log.xml",
"build/.NETFramework/v4.7.2/System.IdentityModel.Selectors.dll",
"build/.NETFramework/v4.7.2/System.IdentityModel.Selectors.xml",
"build/.NETFramework/v4.7.2/System.IdentityModel.Services.dll",
"build/.NETFramework/v4.7.2/System.IdentityModel.Services.xml",
"build/.NETFramework/v4.7.2/System.IdentityModel.dll",
"build/.NETFramework/v4.7.2/System.IdentityModel.xml",
"build/.NETFramework/v4.7.2/System.Linq.xml",
"build/.NETFramework/v4.7.2/System.Management.Instrumentation.dll",
"build/.NETFramework/v4.7.2/System.Management.Instrumentation.xml",
"build/.NETFramework/v4.7.2/System.Management.dll",
"build/.NETFramework/v4.7.2/System.Management.xml",
"build/.NETFramework/v4.7.2/System.Messaging.dll",
"build/.NETFramework/v4.7.2/System.Messaging.xml",
"build/.NETFramework/v4.7.2/System.Net.Http.WebRequest.dll",
"build/.NETFramework/v4.7.2/System.Net.Http.WebRequest.xml",
"build/.NETFramework/v4.7.2/System.Net.Http.dll",
"build/.NETFramework/v4.7.2/System.Net.Http.xml",
"build/.NETFramework/v4.7.2/System.Net.dll",
"build/.NETFramework/v4.7.2/System.Net.xml",
"build/.NETFramework/v4.7.2/System.Numerics.dll",
"build/.NETFramework/v4.7.2/System.Numerics.xml",
"build/.NETFramework/v4.7.2/System.Printing.dll",
"build/.NETFramework/v4.7.2/System.Printing.xml",
"build/.NETFramework/v4.7.2/System.Reflection.Context.dll",
"build/.NETFramework/v4.7.2/System.Reflection.Context.xml",
"build/.NETFramework/v4.7.2/System.Runtime.Caching.dll",
"build/.NETFramework/v4.7.2/System.Runtime.Caching.xml",
"build/.NETFramework/v4.7.2/System.Runtime.DurableInstancing.dll",
"build/.NETFramework/v4.7.2/System.Runtime.DurableInstancing.xml",
"build/.NETFramework/v4.7.2/System.Runtime.Remoting.dll",
"build/.NETFramework/v4.7.2/System.Runtime.Remoting.xml",
"build/.NETFramework/v4.7.2/System.Runtime.Serialization.Formatters.Soap.dll",
"build/.NETFramework/v4.7.2/System.Runtime.Serialization.Formatters.Soap.xml",
"build/.NETFramework/v4.7.2/System.Runtime.Serialization.dll",
"build/.NETFramework/v4.7.2/System.Runtime.Serialization.xml",
"build/.NETFramework/v4.7.2/System.Security.dll",
"build/.NETFramework/v4.7.2/System.Security.xml",
"build/.NETFramework/v4.7.2/System.ServiceModel.Activation.dll",
"build/.NETFramework/v4.7.2/System.ServiceModel.Activation.xml",
"build/.NETFramework/v4.7.2/System.ServiceModel.Activities.dll",
"build/.NETFramework/v4.7.2/System.ServiceModel.Activities.xml",
"build/.NETFramework/v4.7.2/System.ServiceModel.Channels.dll",
"build/.NETFramework/v4.7.2/System.ServiceModel.Channels.xml",
"build/.NETFramework/v4.7.2/System.ServiceModel.Discovery.dll",
"build/.NETFramework/v4.7.2/System.ServiceModel.Discovery.xml",
"build/.NETFramework/v4.7.2/System.ServiceModel.Routing.dll",
"build/.NETFramework/v4.7.2/System.ServiceModel.Routing.xml",
"build/.NETFramework/v4.7.2/System.ServiceModel.Web.dll",
"build/.NETFramework/v4.7.2/System.ServiceModel.Web.xml",
"build/.NETFramework/v4.7.2/System.ServiceModel.dll",
"build/.NETFramework/v4.7.2/System.ServiceModel.xml",
"build/.NETFramework/v4.7.2/System.ServiceProcess.dll",
"build/.NETFramework/v4.7.2/System.ServiceProcess.xml",
"build/.NETFramework/v4.7.2/System.Speech.dll",
"build/.NETFramework/v4.7.2/System.Speech.xml",
"build/.NETFramework/v4.7.2/System.Threading.Tasks.Dataflow.xml",
"build/.NETFramework/v4.7.2/System.Transactions.dll",
"build/.NETFramework/v4.7.2/System.Transactions.xml",
"build/.NETFramework/v4.7.2/System.Web.Abstractions.dll",
"build/.NETFramework/v4.7.2/System.Web.ApplicationServices.dll",
"build/.NETFramework/v4.7.2/System.Web.ApplicationServices.xml",
"build/.NETFramework/v4.7.2/System.Web.DataVisualization.Design.dll",
"build/.NETFramework/v4.7.2/System.Web.DataVisualization.dll",
"build/.NETFramework/v4.7.2/System.Web.DataVisualization.xml",
"build/.NETFramework/v4.7.2/System.Web.DynamicData.Design.dll",
"build/.NETFramework/v4.7.2/System.Web.DynamicData.Design.xml",
"build/.NETFramework/v4.7.2/System.Web.DynamicData.dll",
"build/.NETFramework/v4.7.2/System.Web.DynamicData.xml",
"build/.NETFramework/v4.7.2/System.Web.Entity.Design.dll",
"build/.NETFramework/v4.7.2/System.Web.Entity.Design.xml",
"build/.NETFramework/v4.7.2/System.Web.Entity.dll",
"build/.NETFramework/v4.7.2/System.Web.Entity.xml",
"build/.NETFramework/v4.7.2/System.Web.Extensions.Design.dll",
"build/.NETFramework/v4.7.2/System.Web.Extensions.Design.xml",
"build/.NETFramework/v4.7.2/System.Web.Extensions.dll",
"build/.NETFramework/v4.7.2/System.Web.Extensions.xml",
"build/.NETFramework/v4.7.2/System.Web.Mobile.dll",
"build/.NETFramework/v4.7.2/System.Web.Mobile.xml",
"build/.NETFramework/v4.7.2/System.Web.RegularExpressions.dll",
"build/.NETFramework/v4.7.2/System.Web.RegularExpressions.xml",
"build/.NETFramework/v4.7.2/System.Web.Routing.dll",
"build/.NETFramework/v4.7.2/System.Web.Services.dll",
"build/.NETFramework/v4.7.2/System.Web.Services.xml",
"build/.NETFramework/v4.7.2/System.Web.dll",
"build/.NETFramework/v4.7.2/System.Web.xml",
"build/.NETFramework/v4.7.2/System.Windows.Controls.Ribbon.dll",
"build/.NETFramework/v4.7.2/System.Windows.Controls.Ribbon.xml",
"build/.NETFramework/v4.7.2/System.Windows.Forms.DataVisualization.Design.dll",
"build/.NETFramework/v4.7.2/System.Windows.Forms.DataVisualization.dll",
"build/.NETFramework/v4.7.2/System.Windows.Forms.DataVisualization.xml",
"build/.NETFramework/v4.7.2/System.Windows.Forms.dll",
"build/.NETFramework/v4.7.2/System.Windows.Forms.xml",
"build/.NETFramework/v4.7.2/System.Windows.Input.Manipulations.dll",
"build/.NETFramework/v4.7.2/System.Windows.Input.Manipulations.xml",
"build/.NETFramework/v4.7.2/System.Windows.Presentation.dll",
"build/.NETFramework/v4.7.2/System.Windows.Presentation.xml",
"build/.NETFramework/v4.7.2/System.Windows.dll",
"build/.NETFramework/v4.7.2/System.Workflow.Activities.dll",
"build/.NETFramework/v4.7.2/System.Workflow.Activities.xml",
"build/.NETFramework/v4.7.2/System.Workflow.ComponentModel.dll",
"build/.NETFramework/v4.7.2/System.Workflow.ComponentModel.xml",
"build/.NETFramework/v4.7.2/System.Workflow.Runtime.dll",
"build/.NETFramework/v4.7.2/System.Workflow.Runtime.xml",
"build/.NETFramework/v4.7.2/System.WorkflowServices.dll",
"build/.NETFramework/v4.7.2/System.WorkflowServices.xml",
"build/.NETFramework/v4.7.2/System.Xaml.dll",
"build/.NETFramework/v4.7.2/System.Xaml.xml",
"build/.NETFramework/v4.7.2/System.Xml.Linq.dll",
"build/.NETFramework/v4.7.2/System.Xml.Linq.xml",
"build/.NETFramework/v4.7.2/System.Xml.Serialization.dll",
"build/.NETFramework/v4.7.2/System.Xml.dll",
"build/.NETFramework/v4.7.2/System.Xml.xml",
"build/.NETFramework/v4.7.2/System.dll",
"build/.NETFramework/v4.7.2/System.xml",
"build/.NETFramework/v4.7.2/UIAutomationClient.dll",
"build/.NETFramework/v4.7.2/UIAutomationClient.xml",
"build/.NETFramework/v4.7.2/UIAutomationClientsideProviders.dll",
"build/.NETFramework/v4.7.2/UIAutomationClientsideProviders.xml",
"build/.NETFramework/v4.7.2/UIAutomationProvider.dll",
"build/.NETFramework/v4.7.2/UIAutomationProvider.xml",
"build/.NETFramework/v4.7.2/UIAutomationTypes.dll",
"build/.NETFramework/v4.7.2/UIAutomationTypes.xml",
"build/.NETFramework/v4.7.2/WindowsBase.dll",
"build/.NETFramework/v4.7.2/WindowsBase.xml",
"build/.NETFramework/v4.7.2/WindowsFormsIntegration.dll",
"build/.NETFramework/v4.7.2/WindowsFormsIntegration.xml",
"build/.NETFramework/v4.7.2/XamlBuildTask.dll",
"build/.NETFramework/v4.7.2/XamlBuildTask.xml",
"build/.NETFramework/v4.7.2/mscorlib.dll",
"build/.NETFramework/v4.7.2/mscorlib.xml",
"build/.NETFramework/v4.7.2/namespaces.xml",
"build/.NETFramework/v4.7.2/sysglobl.dll",
"build/.NETFramework/v4.7.2/sysglobl.xml",
"build/Microsoft.NETFramework.ReferenceAssemblies.net472.targets",
"microsoft.netframework.referenceassemblies.net472.1.0.2.nupkg.sha512",
"microsoft.netframework.referenceassemblies.net472.nuspec"
]
},
"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"
]
},
"OxyPlot.Core/2.2.0": {
"sha512": "QhXNdXR5FPpro/VoLx3BOp6AhQo7YrbfmWEZ9cgY+pnYM7RYORZjnu+aDMA8ka9A1r8hLkX//NbCPZNUv+l8qA==",
"type": "package",
"path": "oxyplot.core/2.2.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"OxyPlot_128.png",
"README.md",
"lib/net462/OxyPlot.dll",
"lib/net462/OxyPlot.xml",
"lib/net6.0/OxyPlot.dll",
"lib/net6.0/OxyPlot.xml",
"lib/net8.0/OxyPlot.dll",
"lib/net8.0/OxyPlot.xml",
"lib/netstandard2.0/OxyPlot.dll",
"lib/netstandard2.0/OxyPlot.xml",
"oxyplot.core.2.2.0.nupkg.sha512",
"oxyplot.core.nuspec"
]
},
"OxyPlot.Wpf/2.2.0": {
"sha512": "69KzgsMWpJSZmeXZt07FwfV7B1D4CM1nl0MWMj4wjrCsb3USBMo32up1+fQIjxp5tHCPdGwX9VWhSxW8nsY7pQ==",
"type": "package",
"path": "oxyplot.wpf/2.2.0",
"hasTools": true,
"files": [
".nupkg.metadata",
".signature.p7s",
"OxyPlot_128.png",
"README.md",
"lib/net462/OxyPlot.Wpf.dll",
"lib/net462/OxyPlot.Wpf.xml",
"lib/net6.0-windows7.0/OxyPlot.Wpf.dll",
"lib/net6.0-windows7.0/OxyPlot.Wpf.xml",
"lib/net8.0-windows7.0/OxyPlot.Wpf.dll",
"lib/net8.0-windows7.0/OxyPlot.Wpf.xml",
"oxyplot.wpf.2.2.0.nupkg.sha512",
"oxyplot.wpf.nuspec",
"tools/VisualStudioToolsManifest.xml"
]
},
"OxyPlot.Wpf.Shared/2.2.0": {
"sha512": "JoOD/feTOlKFmgXqeTNrl4Ze0i0L6WizPapNw9pXwot+cnI0qhFgYv3tFjlSdu51hZw0EgmcgeRXMtm5bkueYA==",
"type": "package",
"path": "oxyplot.wpf.shared/2.2.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"OxyPlot_128.png",
"README.md",
"lib/net462/OxyPlot.Wpf.Shared.dll",
"lib/net462/OxyPlot.Wpf.Shared.xml",
"lib/net6.0-windows7.0/OxyPlot.Wpf.Shared.dll",
"lib/net6.0-windows7.0/OxyPlot.Wpf.Shared.xml",
"lib/net8.0-windows7.0/OxyPlot.Wpf.Shared.dll",
"lib/net8.0-windows7.0/OxyPlot.Wpf.Shared.xml",
"oxyplot.wpf.shared.2.2.0.nupkg.sha512",
"oxyplot.wpf.shared.nuspec"
]
}
},
"projectFileDependencyGroups": {
".NETFramework,Version=v4.7.2": [
"Newtonsoft.Json >= 13.0.3",
"OxyPlot.Wpf >= 2.2.0"
]
},
"packageFolders": {
"C:\\Users\\Administrator\\.nuget\\packages\\": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\YKC.csproj",
"projectName": "YKC",
"projectPath": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\YKC.csproj",
"packagesPath": "C:\\Users\\Administrator\\.nuget\\packages\\",
"outputPath": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\obj\\",
"projectStyle": "PackageReference",
"skipContentFileWrite": true,
"UsingMicrosoftNETSdk": false,
"configFilePaths": [
"C:\\Users\\Administrator\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net472"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net472": {
"framework": "net472",
"projectReferences": {}
}
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
}
},
"frameworks": {
"net472": {
"framework": "net472",
"dependencies": {
"Newtonsoft.Json": {
"target": "Package",
"version": "[13.0.3, )"
},
"OxyPlot.Wpf": {
"target": "Package",
"version": "[2.2.0, )"
}
}
}
},
"runtimes": {
"win": {
"#import": []
},
"win-arm64": {
"#import": []
},
"win-x64": {
"#import": []
},
"win-x86": {
"#import": []
}
}
}
}

View File

@@ -0,0 +1,15 @@
{
"version": 2,
"dgSpecHash": "isVL+vjG9Iw=",
"success": true,
"projectFilePath": "C:\\Users\\Administrator\\PycharmProjects\\PythonProject\\C#\\YKC\\YKC.csproj",
"expectedPackageFiles": [
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.netframework.referenceassemblies\\1.0.2\\microsoft.netframework.referenceassemblies.1.0.2.nupkg.sha512",
"C:\\Users\\Administrator\\.nuget\\packages\\microsoft.netframework.referenceassemblies.net472\\1.0.2\\microsoft.netframework.referenceassemblies.net472.1.0.2.nupkg.sha512",
"C:\\Users\\Administrator\\.nuget\\packages\\newtonsoft.json\\13.0.3\\newtonsoft.json.13.0.3.nupkg.sha512",
"C:\\Users\\Administrator\\.nuget\\packages\\oxyplot.core\\2.2.0\\oxyplot.core.2.2.0.nupkg.sha512",
"C:\\Users\\Administrator\\.nuget\\packages\\oxyplot.wpf\\2.2.0\\oxyplot.wpf.2.2.0.nupkg.sha512",
"C:\\Users\\Administrator\\.nuget\\packages\\oxyplot.wpf.shared\\2.2.0\\oxyplot.wpf.shared.2.2.0.nupkg.sha512"
],
"logs": []
}