home work

This commit is contained in:
2021-06-04 22:16:00 +05:00
parent 4f4ff1a25a
commit d699af66bb
75 changed files with 701 additions and 672 deletions

View File

@@ -96,6 +96,9 @@
Не получилось соединиться с сервером.
</exception>
</m>
<m n="NETClient0">
<summary>Класс для связи с СТП сервером по проботоколу TCP.</summary>
</m>
<m n="NETClient1">
<summary>Основной конструктор класса NetClient. Ip-адрес - 127.0.0.1; Порт - 1070;</summary>
</m>
@@ -203,7 +206,6 @@
Не получилось соединиться с сервером.
</exception>
</m>
<m n="Full_Dir_Browse">
<summary>Получение структуры файлов и папок в запрашиваемой директории.</summary>
<param name="dir">Путь, структуру которого надо отобразить.</param>
@@ -221,19 +223,50 @@
Не получилось соединиться с сервером.
</exception>
</m>
<m n=""></m>
<m n=""></m>
<m n=""></m>
<m n=""></m>
<m n=""></m>
<m n=""></m>
<m n=""></m>
<m n=""></m>
<m n=""></m>
<m n=""></m>
<m n=""></m>
<m n=""></m>
<m n="Full_Server_Time">
<summary>Получение текущее время на сервере.</summary>
<remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks>
<returns>Текущее время на сервере.</returns>
<exception cref="ArgumentException">
Неверный флаг окончания строки.
Неверный флаг во время получения файла.
</exception>
<exception cref="IOException">
Предыдущий запрос не закончен.
Поток недоступен для записи.
</exception>
<exception cref="InvalidOperationException">
Не получилось соединиться с сервером.
</exception>
</m>
<m n="Full_Version">
<summary>Получение текущую версию сервера.</summary>
<remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks>
<returns>строку с названием версии сервера.</returns>
<exception cref="ArgumentException">
Неверный флаг окончания строки.
Неверный флаг во время получения файла.
</exception>
<exception cref="IOException">
Предыдущий запрос не закончен.
Поток недоступен для записи.
</exception>
<exception cref="InvalidOperationException">
Не получилось соединиться с сервером.
</exception>
</m>
<m n="Full_Keep_Alive">
<summary>Отправка команды для поддержания соединения.</summary>
<remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks>
<exception cref="IOException">
Предыдущий запрос не закончен.
Поток недоступен для записи.
</exception>
<exception cref="InvalidOperationException">
Не получилось соединиться с сервером.
</exception>
</m>
<m n=""></m>
<m n=""></m>
</NET>

View File

@@ -11,6 +11,7 @@ using System.IO;
namespace DataClient
{
/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="NETClient0"]/*' />
public class NETClient
{
private Logger log = LogManager.GetCurrentClassLogger();
@@ -32,17 +33,16 @@ namespace DataClient
}
private NetStatus stat = new NetStatus();
/*
0x00 0x00 0x00 0x00 - 0000 - version
0x01 0x00 0x00 0x00 - 0001 - file list
0x03 0x00 0x00 0x00 - 0003 - pasp browse
0x04 0x00 0x00 0x00 - 0004 - pasp download
0x05 0x00 0x00 0x00 - 0005 - pasp find
0x06 0x00 0x00 0x00 - 0006 - prog list
0x07 0x00 0x00 0x00 - 0007 - prog download
0x09 0x00 0x00 0x00 - 0009 - download usov
0x0A 0x00 0x00 0x00 - 0010 - slit history
0x0B 0x00 0x00 0x00 - 0011 - keep alive
- vdp cycle
- vdp active
- vdp last cycle
@@ -110,23 +110,32 @@ namespace DataClient
/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="Code"]/*' />
public enum Code : uint
{
/// <summary>Версия.</summary>
version = 0,
/// <summary>Загрузка.</summary>
download = 2,
/// <summary>Загрузка паспорта.</summary>
pasp_download = 4,
/// <summary>Время сервера.</summary>
server_time = 8,
/// <summary>Оставаться на связи.</summary>
keep_alive = 11,
/// <summary>Загрузка (nh).</summary>
download_nh = 21,
/// <summary>Структура директории.</summary>
dir_browse = 23,
/// <summary>Поиск команды по имени.</summary>
by_name = uint.MaxValue,
TCP_COM_VERSION = 0,
TCP_COM_FILE_LIST = 1,
TCP_COM_PASP_BROWSE = 3,
TCP_COM_PASP_DOWNLOAD = 4,
TCP_COM_PASP_FIND = 5,
TCP_COM_PROG_LIST = 6,
TCP_COM_PROG_DOWNLOAD = 7,
TCP_COM_DOWNLOAD_USOV = 9,
TCP_COM_SLIT_HISTORY = 10,
TCP_COM_KEEP_ALIVE = 11,
TCP_COM_VDP_CYCLE = 12,
TCP_COM_VDP_ACTIVE = 13,
TCP_COM_VDP_LAST_CYCLE = 14,
@@ -481,7 +490,7 @@ namespace DataClient
finally { My_Close(needCloseConeection); }
return res?.ToArray();
}
/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="Full_Server_Time"]/*' />
public DateTime Full_Server_Time()
{
bool needCloseConeection = false;
@@ -505,6 +514,58 @@ namespace DataClient
finally { My_Close(needCloseConeection); }
return new DateTime(year, month, day, hour, minute, second);
}
/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="Full_Version"]/*' />
public string Full_Version()
{
bool needCloseConeection = false;
try { needCloseConeection = My_Connect(); }
catch { My_Close(needCloseConeection); throw; }
try { if (!SendBytes(CreateCode((uint)Code.version))) throw new IOException("Can't send bytes to server."); }
catch { My_Close(needCloseConeection); throw; }
string str = null;
try
{
str = enc.GetString(ReceiveBytes(BitConverter.ToUInt32(ReceiveBytes(4))));
if (ReceiveBytes(1)[0] != 0x00) throw new ArgumentException("Wrong get end line.");
}
catch { My_Close(needCloseConeection); throw; }
finally { My_Close(needCloseConeection); }
return str;
}
/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="Full_Keep_Alive"]/*' />
public void Full_Keep_Alive()
{
bool needCloseConeection = false;
try { needCloseConeection = My_Connect(); }
catch { My_Close(needCloseConeection); throw; }
try { if (!SendBytes(CreateCode((uint)Code.keep_alive))) throw new IOException("Can't send bytes to server."); }
catch { My_Close(needCloseConeection); throw; }
My_Close(needCloseConeection);
}
public byte[] Full_Pasp_Download(string file)
{
if (string.IsNullOrEmpty(file)) throw new ArgumentException("Path to file can't be null or empty.");
bool needCloseConeection = false;
try { needCloseConeection = My_Connect(); }
catch { My_Close(needCloseConeection); throw; }
try { if (!SendBytes(CreateCode((uint)Code.pasp_download, file))) throw new IOException("Can't send bytes to server."); }
catch { My_Close(needCloseConeection); throw; }
byte[] res = null;
try
{
res = ReceiveBytes();
}
catch { My_Close(needCloseConeection); throw; }
finally { My_Close(needCloseConeection); }
return res;
}
}
}

View File

@@ -1,25 +1,24 @@
{
"format": 1,
"restore": {
"D:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj": {}
"F:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj": {}
},
"projects": {
"D:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj": {
"F:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj": {
"version": "0.0.3",
"restore": {
"projectUniqueName": "D:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj",
"projectUniqueName": "F:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj",
"projectName": "DataClient",
"projectPath": "D:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj",
"packagesPath": "C:\\Users\\google\\.nuget\\packages\\",
"outputPath": "D:\\GIT\\ASCKU_PC\\DataClient\\obj\\",
"projectPath": "F:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj",
"packagesPath": "C:\\Users\\Admin\\.nuget\\packages\\",
"outputPath": "F:\\GIT\\ASCKU_PC\\DataClient\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\",
"C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\"
],
"configFilePaths": [
"C:\\Users\\google\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Users\\Admin\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config"
@@ -75,7 +74,7 @@
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.201\\RuntimeIdentifierGraph.json"
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.300\\RuntimeIdentifierGraph.json"
}
}
}

View File

@@ -5,15 +5,14 @@
<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\google\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages;C:\Program Files (x86)\Microsoft\Xamarin\NuGet\;C:\Program Files\dotnet\sdk\NuGetFallbackFolder</NuGetPackageFolders>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Admin\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages;C:\Program Files (x86)\Microsoft\Xamarin\NuGet\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.9.0</NuGetToolVersion>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.10.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\google\.nuget\packages\" />
<SourceRoot Include="C:\Users\Admin\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft\Xamarin\NuGet\" />
<SourceRoot Include="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\" />
</ItemGroup>
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>

View File

@@ -361,27 +361,25 @@
]
},
"packageFolders": {
"C:\\Users\\google\\.nuget\\packages\\": {},
"C:\\Users\\Admin\\.nuget\\packages\\": {},
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {},
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\": {},
"C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder": {}
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\": {}
},
"project": {
"version": "0.0.3",
"restore": {
"projectUniqueName": "D:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj",
"projectUniqueName": "F:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj",
"projectName": "DataClient",
"projectPath": "D:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj",
"packagesPath": "C:\\Users\\google\\.nuget\\packages\\",
"outputPath": "D:\\GIT\\ASCKU_PC\\DataClient\\obj\\",
"projectPath": "F:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj",
"packagesPath": "C:\\Users\\Admin\\.nuget\\packages\\",
"outputPath": "F:\\GIT\\ASCKU_PC\\DataClient\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\",
"C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
"C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\"
],
"configFilePaths": [
"C:\\Users\\google\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Users\\Admin\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config"
@@ -437,7 +435,7 @@
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.201\\RuntimeIdentifierGraph.json"
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.300\\RuntimeIdentifierGraph.json"
}
}
}

View File

@@ -1,19 +1,19 @@
{
"version": 2,
"dgSpecHash": "fLzCMyL0TTYR6ScHYw8lseE4tuHRjlfRhsrbzgdqw/qeVRrQYigyT797G0cUiPOmrt1GVD0KWz3n3AZIE22bzQ==",
"dgSpecHash": "lCVOnkDSpCDkY6mFU39PPTK/8UioIwkzLSm5l9U0BI9kmvrQU3GBEeKlZLkvo3I3Vmgv8BfwOMFxbII4ikrnzA==",
"success": true,
"projectFilePath": "D:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj",
"projectFilePath": "F:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj",
"expectedPackageFiles": [
"C:\\Users\\google\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\5.0.0\\microsoft.extensions.configuration.abstractions.5.0.0.nupkg.sha512",
"C:\\Users\\google\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\5.0.0\\microsoft.extensions.dependencyinjection.5.0.0.nupkg.sha512",
"C:\\Users\\google\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\5.0.0\\microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512",
"C:\\Users\\google\\.nuget\\packages\\microsoft.extensions.logging\\5.0.0\\microsoft.extensions.logging.5.0.0.nupkg.sha512",
"C:\\Users\\google\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\5.0.0\\microsoft.extensions.logging.abstractions.5.0.0.nupkg.sha512",
"C:\\Users\\google\\.nuget\\packages\\microsoft.extensions.options\\5.0.0\\microsoft.extensions.options.5.0.0.nupkg.sha512",
"C:\\Users\\google\\.nuget\\packages\\microsoft.extensions.primitives\\5.0.0\\microsoft.extensions.primitives.5.0.0.nupkg.sha512",
"C:\\Users\\google\\.nuget\\packages\\newtonsoft.json\\13.0.1\\newtonsoft.json.13.0.1.nupkg.sha512",
"C:\\Users\\google\\.nuget\\packages\\nlog\\4.7.10\\nlog.4.7.10.nupkg.sha512",
"C:\\Users\\google\\.nuget\\packages\\nlog.extensions.logging\\1.7.2\\nlog.extensions.logging.1.7.2.nupkg.sha512"
"C:\\Users\\Admin\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\5.0.0\\microsoft.extensions.configuration.abstractions.5.0.0.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\5.0.0\\microsoft.extensions.dependencyinjection.5.0.0.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\5.0.0\\microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\microsoft.extensions.logging\\5.0.0\\microsoft.extensions.logging.5.0.0.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\5.0.0\\microsoft.extensions.logging.abstractions.5.0.0.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\microsoft.extensions.options\\5.0.0\\microsoft.extensions.options.5.0.0.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\microsoft.extensions.primitives\\5.0.0\\microsoft.extensions.primitives.5.0.0.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\newtonsoft.json\\13.0.1\\newtonsoft.json.13.0.1.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\nlog\\4.7.10\\nlog.4.7.10.nupkg.sha512",
"C:\\Users\\Admin\\.nuget\\packages\\nlog.extensions.logging\\1.7.2\\nlog.extensions.logging.1.7.2.nupkg.sha512"
],
"logs": []
}