新增功能:

1 解决文件和文件夹信息混乱的问题,以及文件夹大小无法读取的问题;
2 解决DataGrid排序和自动生成列冲突的问题;
This commit is contained in:
春风过客 2024-05-29 17:55:45 +08:00
parent 1f9421e63e
commit 266fb68387
25 changed files with 214 additions and 78 deletions

View File

@ -3,32 +3,48 @@
"WorkspaceRootPath": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\jiangsuearthquake\\models\\ftp\\ftpconnectmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\models\\ftp\\ftpconnectmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\jiangsuearthquake\\common\\tools.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\common\\tools.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\jiangsuearthquake\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}"
},
{
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|f:\\code\\jseq\\20240301_jseq_upperpc\\jiangsuearthquake\\jiangsuearthquake\\views\\alarmrecordview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\views\\alarmrecordview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\jiangsuearthquake\\views\\usercontrols\\ftpsettingview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\views\\usercontrols\\ftpsettingview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\jiangsuearthquake\\views\\usercontrols\\ftpsettingview.xaml.cs||{8B382828-6202-11D1-8870-0000F87579D2}|",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\views\\usercontrols\\ftpsettingview.xaml.cs||{8B382828-6202-11D1-8870-0000F87579D2}|"
},
{
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|f:\\code\\jseq\\20240301_jseq_upperpc\\jiangsuearthquake\\jiangsuearthquake\\views\\usercontrols\\ftpsettingview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\views\\usercontrols\\ftpsettingview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\jiangsuearthquake\\views\\systemstatedataview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\views\\systemstatedataview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\jiangsuearthquake\\views\\usercontrols\\ftpconnectsstview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\views\\usercontrols\\ftpconnectsstview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\jiangsuearthquake\\viewmodels\\systemstatedataviewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\viewmodels\\systemstatedataviewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\jiangsuearthquake\\common\\tools.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\common\\tools.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|f:\\code\\jseq\\20240301_jseq_upperpc\\jiangsuearthquake\\jiangsuearthquake\\models\\ftp\\ftpmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\models\\ftp\\ftpmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\jiangsuearthquake\\views\\usercontrols\\ftpconnectsstview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\views\\usercontrols\\ftpconnectsstview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|f:\\code\\jseq\\20240301_jseq_upperpc\\jiangsuearthquake\\jiangsuearthquake\\models\\ftp\\ftpconnectmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\models\\ftp\\ftpconnectmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\jiangsuearthquake\\models\\ftp\\ftplist.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\models\\ftp\\ftplist.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\jiangsuearthquake\\viewmodels\\mainviewmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@ -42,14 +58,6 @@
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\jiangsuearthquake\\views\\realtimedataview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\views\\realtimedataview.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\jiangsuearthquake\\models\\ftp\\ftplist.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\models\\ftp\\ftplist.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\jiangsuearthquake\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\app.config||{FA3CD31E-987B-443A-9B81-186104E8DAC1}"
},
{
"AbsoluteMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\jiangsuearthquake\\mainwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{51CD2C1B-B7CD-4AC0-8087-846E14D316AD}|JiangsuEarthquake\\JiangsuEarthquake.csproj|solutionrelative:jiangsuearthquake\\mainwindow.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
@ -66,11 +74,11 @@
"DocumentGroups": [
{
"DockedWidth": 169,
"SelectedChildIndex": 1,
"SelectedChildIndex": 11,
"Children": [
{
"$type": "Document",
"DocumentIndex": 11,
"DocumentIndex": 1,
"Title": "App.config",
"DocumentMoniker": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\App.config",
"RelativeDocumentMoniker": "JiangsuEarthquake\\App.config",
@ -79,24 +87,50 @@
"ViewState": "AQIAAAMAAAAAAAAAAAAAABwAAAAuAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000601|",
"WhenOpened": "2024-04-24T08:54:53.626Z",
"IsPinned": true
"IsPinned": true,
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"DocumentIndex": 2,
"Title": "AlarmRecordView.xaml",
"DocumentMoniker": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Views\\AlarmRecordView.xaml",
"RelativeDocumentMoniker": "JiangsuEarthquake\\Views\\AlarmRecordView.xaml",
"ToolTip": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Views\\AlarmRecordView.xaml",
"RelativeToolTip": "JiangsuEarthquake\\Views\\AlarmRecordView.xaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2024-05-29T09:01:02.168Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "FTPModel.cs",
"DocumentMoniker": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Models\\FTP\\FTPModel.cs",
"RelativeDocumentMoniker": "JiangsuEarthquake\\Models\\FTP\\FTPModel.cs",
"ToolTip": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Models\\FTP\\FTPModel.cs",
"RelativeToolTip": "JiangsuEarthquake\\Models\\FTP\\FTPModel.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAgAAAABAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-05-29T01:42:08.9Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 9,
"Title": "FTPConnectModel.cs",
"DocumentMoniker": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Models\\FTP\\FTPConnectModel.cs",
"RelativeDocumentMoniker": "JiangsuEarthquake\\Models\\FTP\\FTPConnectModel.cs",
"ToolTip": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Models\\FTP\\FTPConnectModel.cs",
"RelativeToolTip": "JiangsuEarthquake\\Models\\FTP\\FTPConnectModel.cs",
"ViewState": "AQIAAAsBAAAAAAAAAAAUwDYBAABOAAAA",
"ViewState": "AQIAAP8AAAAAAAAAAAAAABQBAAARAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-05-23T08:23:47.997Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 4,
"DocumentIndex": 8,
"Title": "FTPConnectSstView.xaml",
"DocumentMoniker": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Views\\UserControls\\FTPConnectSstView.xaml",
"RelativeDocumentMoniker": "JiangsuEarthquake\\Views\\UserControls\\FTPConnectSstView.xaml",
@ -108,20 +142,20 @@
},
{
"$type": "Document",
"DocumentIndex": 1,
"DocumentIndex": 4,
"Title": "FTPSettingView.xaml.cs",
"DocumentMoniker": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Views\\UserControls\\FTPSettingView.xaml.cs",
"RelativeDocumentMoniker": "JiangsuEarthquake\\Views\\UserControls\\FTPSettingView.xaml.cs",
"ToolTip": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Views\\UserControls\\FTPSettingView.xaml.cs",
"RelativeToolTip": "JiangsuEarthquake\\Views\\UserControls\\FTPSettingView.xaml.cs",
"ViewState": "AQIAAPMAAAAAAAAAAAAUwAUBAAA0AAAA",
"ViewState": "AQIAAAABAAAAAAAAAAAkwAoBAAA9AAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-05-21T02:25:53.875Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"DocumentIndex": 3,
"Title": "FTPSettingView.xaml",
"DocumentMoniker": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Views\\UserControls\\FTPSettingView.xaml",
"RelativeDocumentMoniker": "JiangsuEarthquake\\Views\\UserControls\\FTPSettingView.xaml",
@ -133,7 +167,7 @@
},
{
"$type": "Document",
"DocumentIndex": 3,
"DocumentIndex": 5,
"Title": "SystemStateDataView.xaml",
"DocumentMoniker": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Views\\SystemStateDataView.xaml",
"RelativeDocumentMoniker": "JiangsuEarthquake\\Views\\SystemStateDataView.xaml",
@ -145,13 +179,13 @@
},
{
"$type": "Document",
"DocumentIndex": 5,
"DocumentIndex": 6,
"Title": "SystemStateDataViewModel.cs",
"DocumentMoniker": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\ViewModels\\SystemStateDataViewModel.cs",
"RelativeDocumentMoniker": "JiangsuEarthquake\\ViewModels\\SystemStateDataViewModel.cs",
"ToolTip": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\ViewModels\\SystemStateDataViewModel.cs",
"RelativeToolTip": "JiangsuEarthquake\\ViewModels\\SystemStateDataViewModel.cs",
"ViewState": "AQIAABoBAAAAAAAAAAAiwCYBAAA3AAAA",
"ViewState": "AQIAABQBAAAAAAAAAAAAACwBAAAVAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-05-13T00:26:48.284Z",
"EditorCaption": ""
@ -164,13 +198,14 @@
"RelativeDocumentMoniker": "JiangsuEarthquake\\Models\\FTP\\FTPLIST.cs",
"ToolTip": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Models\\FTP\\FTPLIST.cs",
"RelativeToolTip": "JiangsuEarthquake\\Models\\FTP\\FTPLIST.cs",
"ViewState": "AQIAABAAAAAAAAAAAAA5wCYAAAAKAAAA",
"ViewState": "AQIAAAAAAAAAAAAAAAAAABMAAAAjAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-05-21T01:25:38.05Z"
"WhenOpened": "2024-05-21T01:25:38.05Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 12,
"DocumentIndex": 14,
"Title": "MainWindow.xaml",
"DocumentMoniker": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\MainWindow.xaml",
"RelativeDocumentMoniker": "JiangsuEarthquake\\MainWindow.xaml",
@ -181,20 +216,20 @@
},
{
"$type": "Document",
"DocumentIndex": 6,
"DocumentIndex": 0,
"Title": "Tools.cs",
"DocumentMoniker": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Common\\Tools.cs",
"RelativeDocumentMoniker": "JiangsuEarthquake\\Common\\Tools.cs",
"ToolTip": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Common\\Tools.cs",
"RelativeToolTip": "JiangsuEarthquake\\Common\\Tools.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAABQAAAAhAAAA",
"ViewState": "AQIAAMAAAAAAAAAAAAAkwD4BAAAKAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-04-24T07:18:22.772Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 13,
"DocumentIndex": 15,
"Title": "ClientModel.cs",
"DocumentMoniker": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Models\\ClientModel.cs",
"RelativeDocumentMoniker": "JiangsuEarthquake\\Models\\ClientModel.cs",
@ -206,19 +241,18 @@
},
{
"$type": "Document",
"DocumentIndex": 8,
"DocumentIndex": 12,
"Title": "SystemControlView.xaml",
"DocumentMoniker": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Views\\SystemControlView.xaml",
"RelativeDocumentMoniker": "JiangsuEarthquake\\Views\\SystemControlView.xaml",
"ToolTip": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Views\\SystemControlView.xaml",
"RelativeToolTip": "JiangsuEarthquake\\Views\\SystemControlView.xaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2024-05-09T08:34:40.529Z",
"EditorCaption": ""
"WhenOpened": "2024-05-09T08:34:40.529Z"
},
{
"$type": "Document",
"DocumentIndex": 7,
"DocumentIndex": 11,
"Title": "MainViewModel.cs",
"DocumentMoniker": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\ViewModels\\MainViewModel.cs",
"RelativeDocumentMoniker": "JiangsuEarthquake\\ViewModels\\MainViewModel.cs",
@ -226,20 +260,18 @@
"RelativeToolTip": "JiangsuEarthquake\\ViewModels\\MainViewModel.cs",
"ViewState": "AQIAAD0QAAAAAAAAAAAUwFMQAAAYAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-03-12T06:03:03.53Z",
"EditorCaption": ""
"WhenOpened": "2024-03-12T06:03:03.53Z"
},
{
"$type": "Document",
"DocumentIndex": 9,
"DocumentIndex": 13,
"Title": "RealTimeDataView.xaml",
"DocumentMoniker": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Views\\RealTimeDataView.xaml",
"RelativeDocumentMoniker": "JiangsuEarthquake\\Views\\RealTimeDataView.xaml",
"ToolTip": "F:\\Code\\JSEQ\\20240301_JSEQ_upperpc\\JiangsuEarthquake\\JiangsuEarthquake\\Views\\RealTimeDataView.xaml",
"RelativeToolTip": "JiangsuEarthquake\\Views\\RealTimeDataView.xaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2024-05-16T03:27:31.661Z",
"EditorCaption": ""
"WhenOpened": "2024-05-16T03:27:31.661Z"
}
]
}

View File

@ -297,6 +297,60 @@ namespace JiangsuEarthquake.Common
#endregion
#region CRC16-8005
private static readonly ushort[] _table = new ushort[256]
{
0,32773,32783,10,32795,30,20,32785,32819,54,60,32825,40,32813,32807,34,
32867,102,108,32873,120,32893,32887,114,80,32853,32863,90,32843,78,68,32833,
32963,198,204,32969,216,32989,32983,210,240,33013,33023,250,33003,238,228,32993,
160,32933,32943,170,32955,190,180,32945,32915,150,156,32921,136,32909,32903,130,
33155,390,396,33161,408,33181,33175,402,432,33205,33215,442,33195,430,420,33185,
480,33253,33263,490,33275,510,500,33265,33235,470,476,33241,456,33229,33223,450,
320,33093,33103,330,33115,350,340,33105,33139,374,380,33145,360,33133,33127,354,
33059,294,300,33065,312,33085,33079,306,272,33045,33055,282,33035,270,260,33025,
33539,774,780,33545,792,33565,33559,786,816,33589,33599,826,33579,814,804,33569,
864,33637,33647,874,33659,894,884,33649,33619,854,860,33625,840,33613,33607,834,
960,33733,33743,970,33755,990,980,33745,33779,1014,1020,33785,1000,33773,33767,994,
33699,934,940,33705,952,33725,33719,946,912,33685,33695,922,33675,910,900,33665,
640,33413,33423,650,33435,670,660,33425,33459,694,700,33465,680,33453,33447,674,
33507,742,748,33513,760,33533,33527,754,720,33493,33503,730,33483,718,708,33473,
33347,582,588,33353,600,33373,33367,594,624,33397,33407,634,33387,622,612,33377,
544,33317,33327,554,33339,574,564,33329,33299,534,540,33305,520,33293,33287,514
};
//public static void CRC16()
//{
// ushort temp;
// for (int i = 0; i < 256; ++i)
// {
// temp = (ushort)(i << 8);
// for (int j = 0; j < 8; ++j)
// {
// if ((temp & 0x8000) != 0)
// {
// temp = (ushort)((temp << 1) ^ 0x8005);
// }
// else
// {
// temp <<= 1;
// }
// }
// _table[i] = temp;
// }
//}
public static ushort ComputeChecksum(byte[] buffer)
{
ushort crc = 0;
for (int i = 0; i < buffer.Length; ++i)
{
crc = (ushort)((crc << 8) ^ _table[(crc >> 8) ^ buffer[i]]);
}
return crc;
}
#endregion
#region 16ASCII
/// <summary>
/// 16进制转字符串ASCII
@ -385,8 +439,8 @@ namespace JiangsuEarthquake.Common
#region
private static Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
/// <summary>
/// 获取配置文件
/// </summary>
@ -404,8 +458,8 @@ namespace JiangsuEarthquake.Common
return null;
}
}
/// <summary>
/// 更新配置文件信息
/// </summary>
@ -439,8 +493,8 @@ namespace JiangsuEarthquake.Common
/// <returns></returns>
[System.Runtime.InteropServices.DllImportAttribute("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize", ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Ansi, SetLastError = true)]
private static extern int SetProcessWorkingSetSize(IntPtr process, int minimumWorkingSetSize, int maximumWorkingSetSize);
public static void ClearMemory(object o)
{
GC.Collect();

View File

@ -13,6 +13,8 @@ using System.Text.RegularExpressions;
using System.Threading.Tasks;
using OperationResult = JiangsuEarthquake.Common.OperationResult;
using HandyControl.Tools.Extension;
using System.Windows.Forms;
using System.Collections.ObjectModel;
namespace JiangsuEarthquake.Models.FTP
{
@ -276,14 +278,28 @@ namespace JiangsuEarthquake.Models.FTP
using (var sr = new StreamReader(stream))
{
string line = null;
int index = 1;
while ((line = sr.ReadLine()) != null)
{
var parts = line.Split(new[] { ' ' }, 9, StringSplitOptions.RemoveEmptyEntries);
string fmsgTime;
if (IsAllDigits(parts[7]))
fmsgTime = Convert.ToDateTime(parts[7] + parts[5] + parts[6]).ToString("yyyy/MM/dd");
else
fmsgTime = Convert.ToDateTime(DateTime.Now.Year.ToString() + parts[5] + parts[6]).ToString("yyyy/MM/dd");
DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo();
dtFormat.ShortDatePattern = "yyyy/MM/dd";
var fileInfo = new FTPModel
{
Index = index++,
FileName = parts[8],
FileSize = (parts[4]=="4096"?"": parts[4]+"Bytes"),
CreateTime = DateTime.ParseExact(parts[5] + " " + parts[6] + " " + parts[7], "yyyy-MM-dd HH:mm:ss", null)
FileSize = parts[4] == "4096" ? "" : parts[4] + "Bytes",
CreateTime = Convert.ToDateTime(fmsgTime, dtFormat),
FilePath = ftpRemotePath + "/" + parts[8],
IsDirectory = line.StartsWith('d') ? true : false
};
fileList.Add(fileInfo);
@ -357,6 +373,18 @@ namespace JiangsuEarthquake.Models.FTP
}
}
/// <summary>
/// 判断字符串是否全是数字
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static bool IsAllDigits(string str)
{
return str.All(char.IsDigit);
}
/// <summary>
/// 下载
/// </summary>

View File

@ -1,6 +1,7 @@
using JiangsuEarthquake.Common;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

View File

@ -9,6 +9,14 @@ namespace JiangsuEarthquake.Models.FTP
{
public class FTPModel : NotifyBase
{
private int index;
public int Index
{
get { return index; }
set { index = value; this.DoNotify(); }
}
private string filename;
public string FileName

View File

@ -289,10 +289,8 @@
<Grid Grid.Row="1">
<DataGrid x:Name="BoosterStationStateDataGrid" ItemsSource="{Binding ftpList.FTPList}"
AutoGenerateColumns="False" CanUserSortColumns="True" Margin="15,0,15,0"
CanUserAddRows="False" CanUserDeleteRows="False" Background="Transparent"
CanUserReorderColumns="False" CanUserResizeColumns="True" IsHitTestVisible="True"
CanUserResizeRows="False" BorderThickness="0" Grid.RowSpan="2" IsReadOnly="True">
CanUserSortColumns="True" Margin="15,0,15,0" AutoGenerateColumns="False"
Background="Transparent" BorderThickness="0" Grid.RowSpan="2" IsReadOnly="True">
<DataGrid.Resources>
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
@ -336,8 +334,8 @@
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<!--<DataGridTextColumn Binding="{Binding Index}" Width="0.4*" Header="编号"
CanUserSort="False" CellStyle="{StaticResource DataGridCellCenter}"/>-->
<DataGridTextColumn Binding="{Binding Index}" Width="0.4*" Header="编号"
CanUserSort="False" CellStyle="{StaticResource DataGridCellCenter}"/>
<DataGridTextColumn Binding="{Binding FileName}" Width="*" Header="文件名称"
CanUserSort="False" CellStyle="{StaticResource DataGridCellCenter}"/>
<DataGridTextColumn Binding="{Binding CreateTime, StringFormat='yyyy/MM/dd'}" Width="*" Header="修改日期"

View File

@ -266,7 +266,7 @@
<hc:TransitioningContentControl Grid.Row="2">
<DataGrid Grid.Row="2" Name="FTPFloderDataGrid" HeadersVisibility="All" RowHeaderWidth="60" AutoGenerateColumns="False"
ItemsSource="{Binding ftpList.FTPList}" IsReadOnly="True"
ItemsSource="{Binding ftpList.FTPList}" IsReadOnly="True" CanUserResizeColumns="False"
MouseDoubleClick="FTPFloderDataGrid_MouseDoubleClick">
<DataGrid.RowHeaderTemplate>
<DataTemplate>
@ -549,7 +549,7 @@
<hc:TransitioningContentControl Grid.Row="2">
<DataGrid Grid.Row="2" Name="LocalFloderDataGrid" HeadersVisibility="All" RowHeaderWidth="60" AutoGenerateColumns="False"
ItemsSource="{Binding ftpList.LocalList}" IsReadOnly="True" CanUserResizeColumns="False"
ItemsSource="{Binding ftpList.LocalList}" IsReadOnly="True" CanUserSortColumns="True" CanUserResizeColumns="False"
MouseDoubleClick="LocalFloderDataGrid_MouseDoubleClick">
<DataGrid.RowHeaderTemplate>
<DataTemplate>

View File

@ -24,6 +24,7 @@ using static MaterialDesignThemes.Wpf.Theme;
using MessageBox = System.Windows.MessageBox;
using UserControl = System.Windows.Controls.UserControl;
using HandyControl.Tools.Extension;
using System.Collections.ObjectModel;
namespace JiangsuEarthquake.Views.UserControls
{
@ -268,7 +269,7 @@ namespace JiangsuEarthquake.Views.UserControls
list.Add(File_list[i]);
}
}
ftpList.FTPList = list;
}
catch (Exception ex)
@ -287,6 +288,9 @@ namespace JiangsuEarthquake.Views.UserControls
/// <param name="e"></param>
private void FTPFloderDataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (FTPFloderDataGrid.SelectedItem == null)
return;
ftpList.datagrid1Path += ((FTPModel)FTPFloderDataGrid.SelectedItem).FileName + "/";
RefreshFTPList(ftpList.datagrid1Path);
ReturnHighFTPBtn.IsEnabled = true;
@ -407,6 +411,9 @@ namespace JiangsuEarthquake.Views.UserControls
/// <param name="e"></param>
private void LocalFloderDataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (LocalFloderDataGrid.SelectedItem == null)
return;
if (!((FTPModel)LocalFloderDataGrid.SelectedItem).IsDirectory)
return;
RefreshLocalList(((FTPModel)LocalFloderDataGrid.SelectedItem).FilePath + "\\");
@ -537,5 +544,13 @@ namespace JiangsuEarthquake.Views.UserControls
else
HandyControl.Controls.Dialog.Show(new FTPConnectSstView(2));
}
private void FTPFloderDataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
if ( e.Column.Header.ToString() == "Index" || e.Column.Header.ToString() == "FilePath" || e.Column.Header.ToString() == "IsDirectory")
{
e.Cancel = true;
}
}
}
}

View File

@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("JiangsuEarthquake")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e17cf9ebf68de5c1486c9b9f44706af5b8081519")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+1f9421e63e1a4b9f5b247fbab30bc7ce9d01f216")]
[assembly: System.Reflection.AssemblyProductAttribute("JiangsuEarthquake")]
[assembly: System.Reflection.AssemblyTitleAttribute("JiangsuEarthquake")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
f5f03ef9b327955afd7e0f4e2489d237f5d6cefd1f986b2e95c6fd8cba9d775f
45dc32378f233e9f4bad2b41f41153e2f92ba04759aaac8410a4ce5804a2e608

View File

@ -1,4 +1,4 @@
#pragma checksum "..\..\..\..\Views\SystemStateDataView.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "3990F4314229F166872F04273EBCBD0E16EEC306"
#pragma checksum "..\..\..\..\Views\SystemStateDataView.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "AAA92F69FF76C7C83414C0D278DE5D70FC976A9E"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
@ -82,7 +82,7 @@ namespace JiangsuEarthquake.Views {
#line hidden
#line 350 "..\..\..\..\Views\SystemStateDataView.xaml"
#line 348 "..\..\..\..\Views\SystemStateDataView.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button RefreshFileBtn;
@ -90,7 +90,7 @@ namespace JiangsuEarthquake.Views {
#line hidden
#line 366 "..\..\..\..\Views\SystemStateDataView.xaml"
#line 364 "..\..\..\..\Views\SystemStateDataView.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button FTPSettingBtn;
@ -98,7 +98,7 @@ namespace JiangsuEarthquake.Views {
#line hidden
#line 416 "..\..\..\..\Views\SystemStateDataView.xaml"
#line 414 "..\..\..\..\Views\SystemStateDataView.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button RefreshDataBtn;
@ -106,7 +106,7 @@ namespace JiangsuEarthquake.Views {
#line hidden
#line 433 "..\..\..\..\Views\SystemStateDataView.xaml"
#line 431 "..\..\..\..\Views\SystemStateDataView.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button DownloadDataBtn;
@ -114,7 +114,7 @@ namespace JiangsuEarthquake.Views {
#line hidden
#line 453 "..\..\..\..\Views\SystemStateDataView.xaml"
#line 451 "..\..\..\..\Views\SystemStateDataView.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock DownloadDataMsg;

View File

@ -1,4 +1,4 @@
#pragma checksum "..\..\..\..\Views\SystemStateDataView.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "3990F4314229F166872F04273EBCBD0E16EEC306"
#pragma checksum "..\..\..\..\Views\SystemStateDataView.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "AAA92F69FF76C7C83414C0D278DE5D70FC976A9E"
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
@ -82,7 +82,7 @@ namespace JiangsuEarthquake.Views {
#line hidden
#line 350 "..\..\..\..\Views\SystemStateDataView.xaml"
#line 348 "..\..\..\..\Views\SystemStateDataView.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button RefreshFileBtn;
@ -90,7 +90,7 @@ namespace JiangsuEarthquake.Views {
#line hidden
#line 366 "..\..\..\..\Views\SystemStateDataView.xaml"
#line 364 "..\..\..\..\Views\SystemStateDataView.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button FTPSettingBtn;
@ -98,7 +98,7 @@ namespace JiangsuEarthquake.Views {
#line hidden
#line 416 "..\..\..\..\Views\SystemStateDataView.xaml"
#line 414 "..\..\..\..\Views\SystemStateDataView.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button RefreshDataBtn;
@ -106,7 +106,7 @@ namespace JiangsuEarthquake.Views {
#line hidden
#line 433 "..\..\..\..\Views\SystemStateDataView.xaml"
#line 431 "..\..\..\..\Views\SystemStateDataView.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.Button DownloadDataBtn;
@ -114,7 +114,7 @@ namespace JiangsuEarthquake.Views {
#line hidden
#line 453 "..\..\..\..\Views\SystemStateDataView.xaml"
#line 451 "..\..\..\..\Views\SystemStateDataView.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBlock DownloadDataMsg;