home work

This commit is contained in:
2021-06-03 06:08:59 +05:00
parent 0250037f11
commit f9fcb14e47
78 changed files with 615 additions and 661 deletions

View File

@@ -71,7 +71,9 @@ namespace DataClient
//Work with socket functions
/// <summary>Получить неизвестное количество байт.</summary>
/// <param name="socket">Открытый сетевой поток.</param>
/// <param name="ns">Открытый сетевой поток.</param>
/// <param name="awaitInterval">Время ожидания между проверккми буфера.</param>
/// <param name="tryCounts">Количество проверок буфера.</param>
/// <returns>Массив байт.</returns>
private byte[] ReceiveBytesUnknown(NetworkStream ns, int awaitInterval = 1, int tryCounts = 3)
{
@@ -131,6 +133,18 @@ namespace DataClient
} while (tryCount < tryCounts);
throw new Exception("Can't get all bytes.");
}
/// <summary>Отправить массив байт на СТП.</summary>
/// <param name="ns">Открытый сетевой поток.</param>
/// <param name="arr">Массив байт.</param>
/// <returns>Результат отправки.</returns>
private bool SendBytes(NetworkStream ns, byte[] arr)
{
if (!ns.CanWrite) throw new Exception("NetworkStream not access to Write.");
if (!ns.Socket.Connected) throw new Exception("NetworkStream not connected to server.");
try { ns.Write(arr, 0, arr.Length); }
catch { return false; }
return true;
}
//Support functions
/// <summary>Формирование массива байт на отправку.</summary>
@@ -145,7 +159,7 @@ namespace DataClient
res.AddRange(BitConverter.GetBytes(code));
if (prefix != null)
res.AddRange(prefix);
if(val != null)
if (val != null)
{
res.AddRange(BitConverter.GetBytes((uint)val.Length));
res.AddRange(enc.GetBytes(val));
@@ -185,10 +199,10 @@ namespace DataClient
{
if (!Connected()) throw new Exception("Connection not exist.");
var ns = tcpC.GetStream();
if (!ns.CanWrite) throw new Exception("NetworkStream not access to Write.");
if (!ns.Socket.Connected) throw new Exception("NetworkStream not connected to server.");
ns.Write(send, 0, send.Length);
SendBytes(ns, send);
}
/// <summary>Получить неизвестное количество байт.</summary>
/// <returns>Массив байт.</returns>
public byte[] ReceiveBytes()
{
var res = new List<byte>();
@@ -197,6 +211,9 @@ namespace DataClient
res.AddRange(ReceiveBytesUnknown(ns));
return res.ToArray();
}
/// <summary>Получить определенное количество байт.</summary>
/// <param name="size">Количество байт.</param>
/// <returns>Массив байт.</returns>
public byte[] ReceiveBytes(int size)
{
var res = new List<byte>();
@@ -205,7 +222,6 @@ namespace DataClient
res.AddRange(ReceiveBytesFixSize(ns, size));
return res.ToArray();
}
/// <summary>Получение файла данных (байтами) с СТП.</summary>
/// <param name="date">Дата. Из неё формируется строка в формате YYYMMDD</param>
/// <param name="vdp">Номер печи. 00 - общецеховые параметры.</param>
@@ -213,11 +229,14 @@ namespace DataClient
/// <returns>Обработанный массив байт.</returns>
public byte[] GetFile(DateTime date, int vdp, int idx)
{
if (!Connected()) throw new Exception("Connection not exist.");
var res = new List<byte>();
bool flag_connection = !Connected();
if (!Connected()) Connect();
if (!Connected()) throw new Exception("Can't create connection.");
var str = date.ToString("yyyyMMdd") + vdp.ToString("D2") + (idx % 16).ToString("X1");
return res.ToArray();
SendBytes(CreateCode((uint)Code.download_nh, null, str));
var res = ReceiveBytes();
if (flag_connection) Close();
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": []
}