work
This commit is contained in:
		
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -8,7 +8,7 @@
 | 
				
			|||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
 | 
				
			||||||
    <DocumentationFile></DocumentationFile>
 | 
					    <DocumentationFile>D:\GIT\ASCKU_PC\DataClient\DataClient.xml</DocumentationFile>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										221
									
								
								DataClient/DataClient.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										221
									
								
								DataClient/DataClient.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,221 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0"?>
 | 
				
			||||||
 | 
					<doc>
 | 
				
			||||||
 | 
					    <assembly>
 | 
				
			||||||
 | 
					        <name>DataClient</name>
 | 
				
			||||||
 | 
					    </assembly>
 | 
				
			||||||
 | 
					    <members>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.NETClient.Status">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
									Статус процесса выполнения запроса.
 | 
				
			||||||
 | 
									Предполагается использовать только на больших
 | 
				
			||||||
 | 
									загрузках и в ассинхронных задачах
 | 
				
			||||||
 | 
								</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="T:DataClient.NETClient.Code">
 | 
				
			||||||
 | 
					            <summary>Коды для работы с СТП.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.NETClient.Ip">
 | 
				
			||||||
 | 
					            <summary>IP адрес СТП.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.NETClient.Port">
 | 
				
			||||||
 | 
					            <summary>Порт СТП.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.NETClient.RetryCount">
 | 
				
			||||||
 | 
					            <summary>Количество попыток переподключения.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.NETClient.RetryInterval">
 | 
				
			||||||
 | 
					            <summary>Время в секундах между попытками переподключения.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.#ctor">
 | 
				
			||||||
 | 
					            <summary>Основной конструктор класса NetClient. Ip-адрес - 127.0.0.1; Порт - 1070;</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.#ctor(System.String,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Конструктор класса NetClient с параметрами.</summary><param name="ip">Ip-адрес сервера.</param><param name="port">Порт сервера.</param>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.ReceiveBytesFull(System.Net.Sockets.NetworkStream,System.Int32,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Получение неопределенного количество байт с сервера. Количество ограничено максимальным значением типа UInt.</summary><param name="ns">Открытый сетевой поток.</param><param name="awaitInterval">Время ожидания между проверками буфера.</param><param name="tryCounts">Количество проверок буфера.</param><returns>Массив байт.</returns><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Соединение с сервером закрыто.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Стрим недоступен для Чтения.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.TimeoutException">
 | 
				
			||||||
 | 
									Сервер сбросил соединение.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.ReceiveBytesFixSize(System.Net.Sockets.NetworkStream,System.UInt32,System.Int32,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Получение определенного количество байт с сервера.</summary><param name="ns">Открытый сетевой поток.</param><param name="size">Кол-во получаемых байт.</param><param name="awaitInterval">Время ожидания между проверками буфера.</param><param name="tryCounts">Количество проверок буфера.</param><returns>Массив байт. Может быть меньше заданного количества.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Размер байт не должен равняться нулю.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Стрим недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.TimeoutException">
 | 
				
			||||||
 | 
									Сервер сбросил соединение.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.SendBytes(System.Net.Sockets.NetworkStream,System.Byte[])">
 | 
				
			||||||
 | 
					            <summary>Отправка массива байт на СТП.</summary><param name="ns">Открытый сетевой поток.</param><param name="arr">Массив байт.</param><returns>Результат отправки.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Размер байт не должен равняться нулю.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Стрим недоступен для записи.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.CreateCode(System.UInt32,System.String,System.Byte[],System.Byte[])">
 | 
				
			||||||
 | 
					            <summary>Формирование массива байт на отправку.</summary><param name="code">Код комманды. Конвертируется в 4 байта. (0x00 0x00 0x00 0x00)</param><param name="val">Передаваемая строка.</param><param name="prefix">Байты перед передаваемой строкой.</param><param name="postfix">Байты после передаваемой строкой.</param><returns>Массив байт для отправки на СТП.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Connect">
 | 
				
			||||||
 | 
					            <summary>Открытие соединения к серверу.</summary><remarks>Информирует только о подключении к серверу. Исключения опускает.</remarks><returns>Состояние подключения.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Connected">
 | 
				
			||||||
 | 
					            <summary>Проверка подключения.</summary><returns>Состояние подключения.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Close">
 | 
				
			||||||
 | 
					            <summary>Закрыть подключение.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.SendBytes(System.Byte[])">
 | 
				
			||||||
 | 
					            <summary>Отправка массива байт на СТП.</summary><param name="send">Массив байт для отправки.</param><returns>Результат отправки.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Размер байт не должен равняться нулю.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.ReceiveBytes">
 | 
				
			||||||
 | 
					            <summary>Получение неизвестного количество байт.</summary><remarks>Возвращает null, если что-то пошло не так.</remarks><returns>Массив байт.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.ReceiveBytes(System.UInt32)">
 | 
				
			||||||
 | 
					            <summary>Получение определенного количество байт.</summary><param name="size">Количество байт.</param><remarks>Возвращает null, если что-то пошло не так.</remarks><returns>Массив байт определенного размера. Может массив быть меньше, если в буфере не будет достаточно данных.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.My_Connect">
 | 
				
			||||||
 | 
					            <summary>Внутренняя функция для создания подключения.</summary><returns>Возвращает флаг необходимости закрытия соединения.</returns><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.My_Close(System.Boolean)">
 | 
				
			||||||
 | 
					            <summary>Внетренняя функция для закрытия соединения.</summary><param name="needClose">Флаг о необходимости закрыть соединение.</param>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.GetFile(DataClient.NETClient.Code,System.DateTime,System.Int32,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Внутренняя функция получения файлов.</summary><param name="code">Код, который будет отправлен на сервер.</param><param name="date">Дата. Из неё формируется строка в формате YYYMMDD.</param><param name="vdp">Номер печи. 00 - общецеховые параметры.</param><param name="idx">Индекс файла. От 0 до 15.</param><returns>Массив байт, соответствующий запрашиваемому файлу.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Неверный код, для получения файла.
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Full_Download_NH(System.DateTime,System.Int32,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Получение файла данных (байтами) с СТП.</summary><param name="date">Дата. Из неё формируется строка в формате YYYMMDD.</param><param name="vdp">Номер печи. 00 - общецеховые параметры.</param><param name="idx">Индекс файла. От 0 до 15.</param><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>Обработанный массив байт.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Неверный код, для получения файла.
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Full_Download(System.DateTime,System.Int32,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Получение файла данных (байтами) с СТП.</summary><param name="date">Дата. Из неё формируется строка в формате YYYMMDD.</param><param name="vdp">Номер печи. 00 - общецеховые параметры.</param><param name="idx">Индекс файла. От 0 до 15.</param><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>Обработанный массив байт.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Неверный код, для получения файла.
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Full_By_Name(System.String)">
 | 
				
			||||||
 | 
					            <summary>Получение файла данных (байтами) с СТП.</summary><param name="val">Название команды.</param><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>Массив байт, соответствующий этой команде. Может вернуть null.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Full_Dir_Browse(System.String)">
 | 
				
			||||||
 | 
					            <summary>Получение структуры файлов и папок в запрашиваемой директории.</summary><param name="dir">Путь, структуру которого надо отобразить.</param><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>Массив строк. Полные пути к файлам и папкам. Может вернуть null.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Неверный флаг окончания строки.
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="T:DataClient.STPClient">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            Класс для связи с СТП. Содержит все инструменты, для получения данных.
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.STPClient.UseServer">
 | 
				
			||||||
 | 
					            <summary>Номер сервера, используемого по умолчанию.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.STPClient.ListServers">
 | 
				
			||||||
 | 
					            <summary>Массив серверов, инициализированных в экземпляре класса.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.GetServerIdByName(System.String)">
 | 
				
			||||||
 | 
					            <summary>Получение номера сервера по его названию.</summary>
 | 
				
			||||||
 | 
					            <param name="name">Название сервера.</param>
 | 
				
			||||||
 | 
					            <returns>Номер сервера в списке серверов.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.GetServerNameById(System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Получение название сервера по его номеру.</summary>
 | 
				
			||||||
 | 
					            <param name="id">Номер сервера в списке серверов.</param>
 | 
				
			||||||
 | 
					            <returns>Название сервера.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.CheckDataServer(System.String,System.Int32,System.String)">
 | 
				
			||||||
 | 
					            <summary>Проверка параметров серевера перед их добавлением в список.</summary>
 | 
				
			||||||
 | 
					            <param name="ip">IP адресс сервера.</param>
 | 
				
			||||||
 | 
					            <param name="port">Порт сервера.</param>
 | 
				
			||||||
 | 
					            <param name="dir">Путь к архиву.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.AddServer(System.String,System.String,System.Int32,System.String)">
 | 
				
			||||||
 | 
					            <summary>Добавление сервера в список серверов.</summary>
 | 
				
			||||||
 | 
					            <param name="name">Название сервера</param>
 | 
				
			||||||
 | 
					            <param name="ip">IP адресс сервера.</param>
 | 
				
			||||||
 | 
					            <param name="port">Порт сервера.</param>
 | 
				
			||||||
 | 
					            <param name="dir">Путь к архиву.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.ChangeServerById(System.Int32,System.String,System.String,System.Int32,System.String)">
 | 
				
			||||||
 | 
					            <summary>Изменение сервера в списке серверов по его номеру.</summary>
 | 
				
			||||||
 | 
					            <param name="id">Номер сервера в списке серверов.</param>
 | 
				
			||||||
 | 
					            <param name="name">Название сервера.</param>
 | 
				
			||||||
 | 
					            <param name="ip">IP адресс сервера.</param>
 | 
				
			||||||
 | 
					            <param name="port">Порт сервера.</param>
 | 
				
			||||||
 | 
					            <param name="dir">Путь к архиву.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.ChangeServerByName(System.String,System.String,System.Int32,System.String)">
 | 
				
			||||||
 | 
					            <summary>Изменение сервера в списке серверов по его названию.</summary>
 | 
				
			||||||
 | 
					            <param name="name">Название сервера.</param>
 | 
				
			||||||
 | 
					            <param name="ip">IP адресс сервера.</param>
 | 
				
			||||||
 | 
					            <param name="port">Порт сервера.</param>
 | 
				
			||||||
 | 
					            <param name="dir">Путь к архиву.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.RemoveServerById(System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Удаление сервера из списка серверов по его номеру.</summary>
 | 
				
			||||||
 | 
					            <param name="id">Номер сервера в списке серверов.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.RemoveServerByName(System.String)">
 | 
				
			||||||
 | 
					            <summary>Удаление сервера из списка серверов по его названию.</summary>
 | 
				
			||||||
 | 
					            <param name="name">Название сервера.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.Config">
 | 
				
			||||||
 | 
					            <summary>Чтение конфигурационнного файла и установка параметров по умолчанию.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.#ctor">
 | 
				
			||||||
 | 
					            <summary>Создание экземпляра класса.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.#ctor(System.String)">
 | 
				
			||||||
 | 
					            <summary>Создание экземпляра класса с указанием конфигурационного файла.</summary>
 | 
				
			||||||
 | 
					            <param name="confDir">Путь к файлу конфигурации.</param>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					    </members>
 | 
				
			||||||
 | 
					</doc>
 | 
				
			||||||
							
								
								
									
										240
									
								
								DataClient/DataClientSrc.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										240
									
								
								DataClient/DataClientSrc.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,240 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8" ?>
 | 
				
			||||||
 | 
					<docs>
 | 
				
			||||||
 | 
						<NET>
 | 
				
			||||||
 | 
							<m n="Close">
 | 
				
			||||||
 | 
								<summary>Закрыть подключение.</summary>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="Code">
 | 
				
			||||||
 | 
								<summary>Коды для работы с СТП.</summary>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="Connect">
 | 
				
			||||||
 | 
								<summary>Открытие соединения к серверу.</summary>
 | 
				
			||||||
 | 
								<remarks>Информирует только о подключении к серверу. Исключения опускает.</remarks>
 | 
				
			||||||
 | 
								<returns>Состояние подключения.</returns>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="Connected">
 | 
				
			||||||
 | 
								<summary>Проверка подключения.</summary>
 | 
				
			||||||
 | 
								<returns>Состояние подключения.</returns>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="CreateCode">
 | 
				
			||||||
 | 
								<summary>Формирование массива байт на отправку.</summary>
 | 
				
			||||||
 | 
								<param name="code">Код комманды. Конвертируется в 4 байта. (0x00 0x00 0x00 0x00)</param>
 | 
				
			||||||
 | 
								<param name="val">Передаваемая строка.</param>
 | 
				
			||||||
 | 
								<param name="prefix">Байты перед передаваемой строкой.</param>
 | 
				
			||||||
 | 
								<param name="postfix">Байты после передаваемой строкой.</param>
 | 
				
			||||||
 | 
								<returns>Массив байт для отправки на СТП.</returns>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="Full_Download">
 | 
				
			||||||
 | 
								<summary>Получение файла данных (байтами) с СТП.</summary>
 | 
				
			||||||
 | 
								<param name="date">Дата. Из неё формируется строка в формате YYYMMDD.</param>
 | 
				
			||||||
 | 
								<param name="vdp">Номер печи. 00 - общецеховые параметры.</param>
 | 
				
			||||||
 | 
								<param name="idx">Индекс файла. От 0 до 15.</param>
 | 
				
			||||||
 | 
								<remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks>
 | 
				
			||||||
 | 
								<returns>Обработанный массив байт.</returns>
 | 
				
			||||||
 | 
								<exception cref="ArgumentException">
 | 
				
			||||||
 | 
									Неверный код, для получения файла.
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
								<exception cref="IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
								<exception cref="InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="Full_Download_NH">
 | 
				
			||||||
 | 
								<summary>Получение файла данных (байтами) с СТП.</summary>
 | 
				
			||||||
 | 
								<param name="date">Дата. Из неё формируется строка в формате YYYMMDD.</param>
 | 
				
			||||||
 | 
								<param name="vdp">Номер печи. 00 - общецеховые параметры.</param>
 | 
				
			||||||
 | 
								<param name="idx">Индекс файла. От 0 до 15.</param>
 | 
				
			||||||
 | 
								<remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks>
 | 
				
			||||||
 | 
								<returns>Обработанный массив байт.</returns>
 | 
				
			||||||
 | 
								<exception cref="ArgumentException">
 | 
				
			||||||
 | 
									Неверный код, для получения файла.
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
								<exception cref="IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
								<exception cref="InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="GetFile">
 | 
				
			||||||
 | 
								<summary>Внутренняя функция получения файлов.</summary>
 | 
				
			||||||
 | 
								<param name="code">Код, который будет отправлен на сервер.</param>
 | 
				
			||||||
 | 
								<param name="date">Дата. Из неё формируется строка в формате YYYMMDD.</param>
 | 
				
			||||||
 | 
								<param name="vdp">Номер печи. 00 - общецеховые параметры.</param>
 | 
				
			||||||
 | 
								<param name="idx">Индекс файла. От 0 до 15.</param>
 | 
				
			||||||
 | 
								<returns>Массив байт, соответствующий запрашиваемому файлу.</returns>
 | 
				
			||||||
 | 
								<exception cref="ArgumentException">
 | 
				
			||||||
 | 
									Неверный код, для получения файла.
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
								<exception cref="IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
								<exception cref="InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="Ip">
 | 
				
			||||||
 | 
								<summary>IP адрес СТП.</summary>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="My_Close">
 | 
				
			||||||
 | 
								<summary>Внетренняя функция для закрытия соединения.</summary>
 | 
				
			||||||
 | 
								<param name="needClose">Флаг о необходимости закрыть соединение.</param>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="My_Connect">
 | 
				
			||||||
 | 
								<summary>Внутренняя функция для создания подключения.</summary>
 | 
				
			||||||
 | 
								<returns>Возвращает флаг необходимости закрытия соединения.</returns>
 | 
				
			||||||
 | 
								<exception cref="InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="NETClient1">
 | 
				
			||||||
 | 
								<summary>Основной конструктор класса NetClient. Ip-адрес - 127.0.0.1; Порт - 1070;</summary>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="NETClient2">
 | 
				
			||||||
 | 
								<summary>Конструктор класса NetClient с параметрами.</summary>
 | 
				
			||||||
 | 
								<param name="ip">Ip-адрес сервера.</param>
 | 
				
			||||||
 | 
								<param name="port">Порт сервера.</param>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="Port">
 | 
				
			||||||
 | 
								<summary>Порт СТП.</summary>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="ReceiveBytes1">
 | 
				
			||||||
 | 
								<summary>Получение неизвестного количество байт.</summary>
 | 
				
			||||||
 | 
								<remarks>Возвращает null, если что-то пошло не так.</remarks>
 | 
				
			||||||
 | 
								<returns>Массив байт.</returns>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="ReceiveBytes2">
 | 
				
			||||||
 | 
								<summary>Получение определенного количество байт.</summary>
 | 
				
			||||||
 | 
								<param name="size">Количество байт.</param>
 | 
				
			||||||
 | 
								<remarks>Возвращает null, если что-то пошло не так.</remarks>
 | 
				
			||||||
 | 
								<returns>Массив байт определенного размера. Может массив быть меньше, если в буфере не будет достаточно данных.</returns>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="ReceiveBytesFixSize">
 | 
				
			||||||
 | 
								<summary>Получение определенного количество байт с сервера.</summary>
 | 
				
			||||||
 | 
								<param name="ns">Открытый сетевой поток.</param>
 | 
				
			||||||
 | 
								<param name="size">Кол-во получаемых байт.</param>
 | 
				
			||||||
 | 
								<param name="awaitInterval">Время ожидания между проверками буфера.</param>
 | 
				
			||||||
 | 
								<param name="tryCounts">Количество проверок буфера.</param>
 | 
				
			||||||
 | 
								<returns>Массив байт. Может быть меньше заданного количества.</returns>
 | 
				
			||||||
 | 
								<exception cref="ArgumentException">
 | 
				
			||||||
 | 
									Размер байт не должен равняться нулю.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
								<exception cref="IOException">
 | 
				
			||||||
 | 
									Стрим недоступен для записи.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
								<exception cref="TimeoutException">
 | 
				
			||||||
 | 
									Сервер сбросил соединение.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="ReceiveBytesFull">
 | 
				
			||||||
 | 
								<summary>Получение неопределенного количество байт с сервера. Количество ограничено максимальным значением типа UInt.</summary>
 | 
				
			||||||
 | 
								<param name="ns">Открытый сетевой поток.</param>
 | 
				
			||||||
 | 
								<param name="awaitInterval">Время ожидания между проверками буфера.</param>
 | 
				
			||||||
 | 
								<param name="tryCounts">Количество проверок буфера.</param>
 | 
				
			||||||
 | 
								<returns>Массив байт.</returns>
 | 
				
			||||||
 | 
								<exception cref="InvalidOperationException">
 | 
				
			||||||
 | 
									Соединение с сервером закрыто.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
								<exception cref="IOException">
 | 
				
			||||||
 | 
									Стрим недоступен для Чтения.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
								<exception cref="TimeoutException">
 | 
				
			||||||
 | 
									Сервер сбросил соединение.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="RetryCount">
 | 
				
			||||||
 | 
								<summary>Количество попыток переподключения.</summary>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="RetryInterval">
 | 
				
			||||||
 | 
								<summary>Время в секундах между попытками переподключения.</summary>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="SendBytes1">
 | 
				
			||||||
 | 
								<summary>Отправка массива байт на СТП.</summary>
 | 
				
			||||||
 | 
								<param name="ns">Открытый сетевой поток.</param>
 | 
				
			||||||
 | 
								<param name="arr">Массив байт.</param>
 | 
				
			||||||
 | 
								<returns>Результат отправки.</returns>
 | 
				
			||||||
 | 
								<exception cref="ArgumentException">
 | 
				
			||||||
 | 
									Размер байт не должен равняться нулю.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
								<exception cref="IOException">
 | 
				
			||||||
 | 
									Стрим недоступен для записи.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="SendBytes2">
 | 
				
			||||||
 | 
								<summary>Отправка массива байт на СТП.</summary>
 | 
				
			||||||
 | 
								<param name="send">Массив байт для отправки.</param>
 | 
				
			||||||
 | 
								<returns>Результат отправки.</returns>
 | 
				
			||||||
 | 
								<exception cref="ArgumentException">
 | 
				
			||||||
 | 
									Размер байт не должен равняться нулю.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
								<exception cref="IOException">
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="Status">
 | 
				
			||||||
 | 
								<summary>
 | 
				
			||||||
 | 
									Статус процесса выполнения запроса.
 | 
				
			||||||
 | 
									Предполагается использовать только на больших
 | 
				
			||||||
 | 
									загрузках и в ассинхронных задачах
 | 
				
			||||||
 | 
								</summary>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							<m n="Full_By_Name">
 | 
				
			||||||
 | 
								<summary>Получение файла данных (байтами) с СТП.</summary>
 | 
				
			||||||
 | 
								<param name="val">Название команды.</param>
 | 
				
			||||||
 | 
								<remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks>
 | 
				
			||||||
 | 
								<returns>Массив байт, соответствующий этой команде. Может вернуть null.</returns>
 | 
				
			||||||
 | 
								<exception cref="ArgumentException">
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
								<exception cref="IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
								<exception cref="InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
							</m>
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							<m n="Full_Dir_Browse">
 | 
				
			||||||
 | 
								<summary>Получение структуры файлов и папок в запрашиваемой директории.</summary>
 | 
				
			||||||
 | 
								<param name="dir">Путь, структуру которого надо отобразить.</param>
 | 
				
			||||||
 | 
								<remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks>
 | 
				
			||||||
 | 
								<returns>Массив строк. Полные пути к файлам и папкам. Может вернуть null.</returns>
 | 
				
			||||||
 | 
								<exception cref="ArgumentException">
 | 
				
			||||||
 | 
									Неверный флаг окончания строки.
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
								<exception cref="IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
								<exception cref="InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</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=""></m>
 | 
				
			||||||
 | 
							<m n=""></m>
 | 
				
			||||||
 | 
						</NET>
 | 
				
			||||||
 | 
					</docs>
 | 
				
			||||||
@@ -7,6 +7,7 @@ using System.Text;
 | 
				
			|||||||
using System.Threading.Tasks;
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
using NLog;
 | 
					using NLog;
 | 
				
			||||||
using DataClient.Struct;
 | 
					using DataClient.Struct;
 | 
				
			||||||
 | 
					using System.IO;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace DataClient
 | 
					namespace DataClient
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -15,8 +16,7 @@ namespace DataClient
 | 
				
			|||||||
		private Logger log = LogManager.GetCurrentClassLogger();
 | 
							private Logger log = LogManager.GetCurrentClassLogger();
 | 
				
			||||||
		private Encoding enc;
 | 
							private Encoding enc;
 | 
				
			||||||
		private TcpClient tcpC = null;
 | 
							private TcpClient tcpC = null;
 | 
				
			||||||
		/// <summary>Статус процесса выполнения запроса.
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="Status"]/*' />
 | 
				
			||||||
		/// Предполагается использовать только на больших загрузках и в ассинхронных задачах.</summary>
 | 
					 | 
				
			||||||
		public double Status
 | 
							public double Status
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			get
 | 
								get
 | 
				
			||||||
@@ -31,7 +31,6 @@ namespace DataClient
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		private NetStatus stat = new NetStatus();
 | 
							private NetStatus stat = new NetStatus();
 | 
				
			||||||
		/// <summary>Коды для работы с СТП.</summary>
 | 
					 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
0x00 0x00 0x00 0x00 - 0000 - version
 | 
					0x00 0x00 0x00 0x00 - 0000 - version
 | 
				
			||||||
0x01 0x00 0x00 0x00 - 0001 - file list
 | 
					0x01 0x00 0x00 0x00 - 0001 - file list
 | 
				
			||||||
@@ -40,7 +39,7 @@ namespace DataClient
 | 
				
			|||||||
0x05 0x00 0x00 0x00 - 0005 - pasp find
 | 
					0x05 0x00 0x00 0x00 - 0005 - pasp find
 | 
				
			||||||
0x06 0x00 0x00 0x00 - 0006 - prog list
 | 
					0x06 0x00 0x00 0x00 - 0006 - prog list
 | 
				
			||||||
0x07 0x00 0x00 0x00 - 0007 - prog download
 | 
					0x07 0x00 0x00 0x00 - 0007 - prog download
 | 
				
			||||||
0x08 0x00 0x00 0x00 - 0008 - server time
 | 
					
 | 
				
			||||||
0x09 0x00 0x00 0x00 - 0009 - download usov
 | 
					0x09 0x00 0x00 0x00 - 0009 - download usov
 | 
				
			||||||
0x0A 0x00 0x00 0x00 - 0010 - slit history
 | 
					0x0A 0x00 0x00 0x00 - 0010 - slit history
 | 
				
			||||||
0x0B 0x00 0x00 0x00 - 0011 - keep alive
 | 
					0x0B 0x00 0x00 0x00 - 0011 - keep alive
 | 
				
			||||||
@@ -54,7 +53,6 @@ namespace DataClient
 | 
				
			|||||||
- pasp browse2
 | 
					- pasp browse2
 | 
				
			||||||
- arch history
 | 
					- arch history
 | 
				
			||||||
- download usov nhv
 | 
					- download usov nhv
 | 
				
			||||||
0x17 0x00 0x00 0x00 - 0023 - dir browse
 | 
					 | 
				
			||||||
- vdp sim med
 | 
					- vdp sim med
 | 
				
			||||||
- vdp flags
 | 
					- vdp flags
 | 
				
			||||||
0x1A 0x00 0x00 0x00 - 0026 - user flags
 | 
					0x1A 0x00 0x00 0x00 - 0026 - user flags
 | 
				
			||||||
@@ -109,14 +107,15 @@ namespace DataClient
 | 
				
			|||||||
- by name
 | 
					- by name
 | 
				
			||||||
- test
 | 
					- test
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="Code"]/*' />
 | 
				
			||||||
		public enum Code : uint
 | 
							public enum Code : uint
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			download = 2,
 | 
								download = 2,
 | 
				
			||||||
 | 
								server_time = 8,
 | 
				
			||||||
			download_nh = 21,
 | 
								download_nh = 21,
 | 
				
			||||||
 | 
								dir_browse = 23,
 | 
				
			||||||
			by_name = uint.MaxValue,
 | 
								by_name = uint.MaxValue,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
			TCP_COM_VERSION = 0,
 | 
								TCP_COM_VERSION = 0,
 | 
				
			||||||
			TCP_COM_FILE_LIST = 1,
 | 
								TCP_COM_FILE_LIST = 1,
 | 
				
			||||||
			TCP_COM_PASP_BROWSE = 3,
 | 
								TCP_COM_PASP_BROWSE = 3,
 | 
				
			||||||
@@ -124,7 +123,7 @@ namespace DataClient
 | 
				
			|||||||
			TCP_COM_PASP_FIND = 5,
 | 
								TCP_COM_PASP_FIND = 5,
 | 
				
			||||||
			TCP_COM_PROG_LIST = 6,
 | 
								TCP_COM_PROG_LIST = 6,
 | 
				
			||||||
			TCP_COM_PROG_DOWNLOAD = 7,
 | 
								TCP_COM_PROG_DOWNLOAD = 7,
 | 
				
			||||||
			TCP_COM_SERVER_TIME = 8,
 | 
					
 | 
				
			||||||
			TCP_COM_DOWNLOAD_USOV = 9,
 | 
								TCP_COM_DOWNLOAD_USOV = 9,
 | 
				
			||||||
			TCP_COM_SLIT_HISTORY = 10,
 | 
								TCP_COM_SLIT_HISTORY = 10,
 | 
				
			||||||
			TCP_COM_KEEP_ALIVE = 11,
 | 
								TCP_COM_KEEP_ALIVE = 11,
 | 
				
			||||||
@@ -138,7 +137,6 @@ namespace DataClient
 | 
				
			|||||||
			TCP_COM_PASP_BROWSE2 = 19,
 | 
								TCP_COM_PASP_BROWSE2 = 19,
 | 
				
			||||||
			TCP_COM_ARCH_HISTORY = 20,
 | 
								TCP_COM_ARCH_HISTORY = 20,
 | 
				
			||||||
			TCP_COM_DOWNLOAD_USOV_NH = 22,
 | 
								TCP_COM_DOWNLOAD_USOV_NH = 22,
 | 
				
			||||||
			TCP_COM_DIR_BROWSE = 23,
 | 
					 | 
				
			||||||
			TCP_COM_VDP_SIM_MED = 24,
 | 
								TCP_COM_VDP_SIM_MED = 24,
 | 
				
			||||||
			TCP_COM_VDP_FLAGS = 25,
 | 
								TCP_COM_VDP_FLAGS = 25,
 | 
				
			||||||
			TCP_COM_USER_FLAGS = 26,
 | 
								TCP_COM_USER_FLAGS = 26,
 | 
				
			||||||
@@ -191,28 +189,28 @@ namespace DataClient
 | 
				
			|||||||
			TCP_COM_GET_CUR_PARAMS_5 = 73,
 | 
								TCP_COM_GET_CUR_PARAMS_5 = 73,
 | 
				
			||||||
			TCP_COM_FIX_DB_CYCLE = 74,
 | 
								TCP_COM_FIX_DB_CYCLE = 74,
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		/// <summary>IP адрес СТП.</summary>
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="Ip"]/*' />
 | 
				
			||||||
		public string Ip
 | 
							public string Ip
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			get { return ip; }
 | 
								get { return ip; }
 | 
				
			||||||
			set { ip = (IPAddress.TryParse(value, out _)) ? value : ip; }
 | 
								set { ip = (IPAddress.TryParse(value, out _)) ? value : ip; }
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		private string ip = "127.0.0.1";
 | 
							private string ip = "127.0.0.1";
 | 
				
			||||||
		/// <summary>Порт СТП.</summary>
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="Port"]/*' />
 | 
				
			||||||
		public int Port
 | 
							public int Port
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			get { return port; }
 | 
								get { return port; }
 | 
				
			||||||
			set { port = (value < 1) ? 1 : (value > 65535) ? 65535 : value; }
 | 
								set { port = (value < 1) ? 1 : (value > 65535) ? 65535 : value; }
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		private int port = 1070;
 | 
							private int port = 1070;
 | 
				
			||||||
		/// <summary>Количество попыток переподключения.</summary>
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="RetryCount"]/*' />
 | 
				
			||||||
		public int RetryCount
 | 
							public int RetryCount
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			get { return retryCount; }
 | 
								get { return retryCount; }
 | 
				
			||||||
			set { retryCount = value < 1 ? 1 : value; }
 | 
								set { retryCount = value < 1 ? 1 : value; }
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		private int retryCount = 3;
 | 
							private int retryCount = 3;
 | 
				
			||||||
		/// <summary>Время в секундах между попытками переподключения.</summary>
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="RetryInterval"]/*' />
 | 
				
			||||||
		public int RetryInterval
 | 
							public int RetryInterval
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			get { return retryInterval; }
 | 
								get { return retryInterval; }
 | 
				
			||||||
@@ -220,14 +218,15 @@ namespace DataClient
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		private int retryInterval = 1;
 | 
							private int retryInterval = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
		//Construction
 | 
							//Construction
 | 
				
			||||||
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="NETClient1"]/*' />
 | 
				
			||||||
		public NETClient()
 | 
							public NETClient()
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
 | 
								Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
 | 
				
			||||||
			enc = Encoding.GetEncoding(866);
 | 
								enc = Encoding.GetEncoding(866);
 | 
				
			||||||
			tcpC = new TcpClient(new IPEndPoint(IPAddress.Parse(ip), port));
 | 
								tcpC = new TcpClient(new IPEndPoint(IPAddress.Parse(ip), port));
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="NETClient2"]/*' />
 | 
				
			||||||
		public NETClient(string ip, int port)
 | 
							public NETClient(string ip, int port)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
 | 
								Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
 | 
				
			||||||
@@ -238,89 +237,52 @@ namespace DataClient
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//Work with socket functions
 | 
							//Work with socket functions
 | 
				
			||||||
		/// <summary>Получить неизвестное количество байт.</summary>
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="ReceiveBytesFull"]/*' />
 | 
				
			||||||
		/// <param name="ns">Открытый сетевой поток.</param>
 | 
							private byte[] ReceiveBytesFull(NetworkStream ns, int awaitInterval = 1, int tryCounts = 3)
 | 
				
			||||||
		/// <param name="awaitInterval">Время ожидания между проверккми буфера.</param>
 | 
					 | 
				
			||||||
		/// <param name="tryCounts">Количество проверок буфера.</param>
 | 
					 | 
				
			||||||
		/// <returns>Массив байт.</returns>
 | 
					 | 
				
			||||||
		private byte[] ReceiveBytesUnknown(NetworkStream ns, int awaitInterval = 1, int tryCounts = 3)
 | 
					 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			tryCounts = (tryCounts < 1) ? 1 : tryCounts;
 | 
								try{ return ReceiveBytesFixSize(ns, uint.MaxValue, awaitInterval, tryCounts); }
 | 
				
			||||||
			awaitInterval = (awaitInterval < 1) ? 1 : awaitInterval;
 | 
								catch { throw; }
 | 
				
			||||||
			var res = new List<byte>();
 | 
					 | 
				
			||||||
			if (!ns.CanRead) throw new InvalidOperationException("NetworkStream not access to Read.");
 | 
					 | 
				
			||||||
			if (!ns.Socket.Connected) throw new InvalidOperationException("NetworkStream not connected to server.");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			int tryCount = 0;
 | 
					 | 
				
			||||||
			do
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				if (!ns.Socket.Connected) throw new InvalidOperationException("Server drop connection.");
 | 
					 | 
				
			||||||
				if (!ns.DataAvailable)
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					tryCount++;
 | 
					 | 
				
			||||||
					Task.Delay(awaitInterval * 1000).Wait();
 | 
					 | 
				
			||||||
					continue;
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
				tryCount = 0;
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="ReceiveBytesFixSize"]/*' />
 | 
				
			||||||
				var buf = new byte[1024];
 | 
					 | 
				
			||||||
				var length = ns.Read(buf, 0, buf.Length);
 | 
					 | 
				
			||||||
				for (var i = 0; i < length; i++) res.Add(buf[i]);
 | 
					 | 
				
			||||||
			} while (tryCount < tryCounts);
 | 
					 | 
				
			||||||
			return res.ToArray();
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		/// <summary>Получить определенное количество байт.</summary>
 | 
					 | 
				
			||||||
		/// <param name="ns">Открытый сетевой поток.</param>
 | 
					 | 
				
			||||||
		/// <param name="size">Кол-во получаемый байт.</param>
 | 
					 | 
				
			||||||
		/// <returns>Массив байт, равный заданному кол-ву.</returns>
 | 
					 | 
				
			||||||
		private byte[] ReceiveBytesFixSize(NetworkStream ns, uint size, int awaitInterval = 1, int tryCounts = 3)
 | 
							private byte[] ReceiveBytesFixSize(NetworkStream ns, uint size, int awaitInterval = 1, int tryCounts = 3)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			tryCounts = (tryCounts < 1) ? 1 : tryCounts;
 | 
								tryCounts = (tryCounts < 1) ? 1 : tryCounts;
 | 
				
			||||||
			awaitInterval = (awaitInterval < 1) ? 1 : awaitInterval;
 | 
								awaitInterval = (awaitInterval < 1) ? 1 : awaitInterval;
 | 
				
			||||||
			if (size == 0) throw new ArgumentException("Size can't be zero.");
 | 
								if (size == 0) throw new ArgumentException("Size can't be zero.");
 | 
				
			||||||
			if (!ns.CanRead) throw new InvalidOperationException("NetworkStream not access to Read.");
 | 
					 | 
				
			||||||
			if (!ns.Socket.Connected) throw new InvalidOperationException("NetworkStream not connected to server.");
 | 
								if (!ns.Socket.Connected) throw new InvalidOperationException("NetworkStream not connected to server.");
 | 
				
			||||||
			var res = new byte[size];
 | 
								if (!ns.CanRead) throw new IOException("NetworkStream not access to Read.");
 | 
				
			||||||
			var countSize = 0;
 | 
								var res = new List<byte>();
 | 
				
			||||||
 | 
					 | 
				
			||||||
			int tryCount = 0;
 | 
								int tryCount = 0;
 | 
				
			||||||
			do
 | 
								do
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				if (!ns.Socket.Connected) throw new InvalidOperationException("Server drop connection.");
 | 
									if (!ns.Socket.Connected) throw new TimeoutException("Server drop connection.");
 | 
				
			||||||
				if (!ns.DataAvailable)
 | 
									if (!ns.DataAvailable)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					tryCount++;
 | 
					 | 
				
			||||||
					Task.Delay(awaitInterval * 1000).Wait();
 | 
										Task.Delay(awaitInterval * 1000).Wait();
 | 
				
			||||||
 | 
										tryCount++;
 | 
				
			||||||
					continue;
 | 
										continue;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				tryCount = 0;
 | 
									tryCount = 0;
 | 
				
			||||||
				var buf = new byte[size - countSize];
 | 
									var sz = ((size - res.Count) > 1024) ? 1024 : (size - res.Count);
 | 
				
			||||||
 | 
									var buf = new byte[sz];
 | 
				
			||||||
				var length = ns.Read(buf, 0, buf.Length);
 | 
									var length = ns.Read(buf, 0, buf.Length);
 | 
				
			||||||
				for (var i = 0; i < length; i++) res[countSize++] = buf[i];
 | 
									for (var i = 0; i < length; i++) res.Add(buf[i]);
 | 
				
			||||||
				if (countSize == size)
 | 
									if (res.Count == size) return res.ToArray();
 | 
				
			||||||
					return res;
 | 
					 | 
				
			||||||
			} while (tryCount < tryCounts);
 | 
								} while (tryCount < tryCounts);
 | 
				
			||||||
			return res;
 | 
								return res.ToArray();
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		/// <summary>Отправить массив байт на СТП.</summary>
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="SendBytes1"]/*' />
 | 
				
			||||||
		/// <param name="ns">Открытый сетевой поток.</param>
 | 
					 | 
				
			||||||
		/// <param name="arr">Массив байт.</param>
 | 
					 | 
				
			||||||
		/// <returns>Результат отправки.</returns>
 | 
					 | 
				
			||||||
		private bool SendBytes(NetworkStream ns, byte[] arr)
 | 
							private bool SendBytes(NetworkStream ns, byte[] arr)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
			if (!ns.CanWrite) throw new InvalidOperationException("NetworkStream not access to Write.");
 | 
					 | 
				
			||||||
			if (!ns.Socket.Connected) throw new InvalidOperationException("NetworkStream not connected to server.");
 | 
								if (!ns.Socket.Connected) throw new InvalidOperationException("NetworkStream not connected to server.");
 | 
				
			||||||
 | 
								if (!ns.CanWrite) throw new IOException("NetworkStream not access to Write.");
 | 
				
			||||||
			try { ns.Write(arr, 0, arr.Length); }
 | 
								try { ns.Write(arr, 0, arr.Length); }
 | 
				
			||||||
			catch { return false; }
 | 
								catch { return false; }
 | 
				
			||||||
			return true;
 | 
								return true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//Support functions
 | 
							//Support functions
 | 
				
			||||||
		/// <summary>Формирование массива байт на отправку.</summary>
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="CreateCode"]/*' />
 | 
				
			||||||
		/// <param name="code">Код комманды. Конвертируется в 4 байта. (0x00 0x00 0x00 0x00)</param>
 | 
					 | 
				
			||||||
		/// <param name="prefix">Байты перед передаваемой строкой.</param>
 | 
					 | 
				
			||||||
		/// <param name="val">Передаваемая строка.</param>
 | 
					 | 
				
			||||||
		/// <param name="postfix">Байты после передаваемой строкой.</param>
 | 
					 | 
				
			||||||
		/// <returns>Массив байт для отправки на СТП.</returns>
 | 
					 | 
				
			||||||
		public byte[] CreateCode(uint code, string val = null, byte[] prefix = null, byte[] postfix = null)
 | 
							public byte[] CreateCode(uint code, string val = null, byte[] prefix = null, byte[] postfix = null)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			var res = new List<byte>();
 | 
								var res = new List<byte>();
 | 
				
			||||||
@@ -339,8 +301,7 @@ namespace DataClient
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//Main functions
 | 
							//Main functions
 | 
				
			||||||
		/// <summary>Открыть подключение.</summary>
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="Connect"]/*' />
 | 
				
			||||||
		/// <returns>Результат выполнения функции.</returns>
 | 
					 | 
				
			||||||
		public bool Connect()
 | 
							public bool Connect()
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			if (Connected()) return true;
 | 
								if (Connected()) return true;
 | 
				
			||||||
@@ -349,80 +310,61 @@ namespace DataClient
 | 
				
			|||||||
			catch { return false; }
 | 
								catch { return false; }
 | 
				
			||||||
			return Connected();
 | 
								return Connected();
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		/// <summary>Проверка подключения.</summary>
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="Connected"]/*' />
 | 
				
			||||||
		/// <returns>Возвращает состояние подключения.</returns>
 | 
							public bool Connected() { return (tcpC != null && tcpC.Connected); }
 | 
				
			||||||
		public bool Connected()
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="Close"]/*' />
 | 
				
			||||||
 | 
							public void Close() { if (tcpC != null && !tcpC.Connected) tcpC.Close(); }
 | 
				
			||||||
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="SendBytes2"]/*' />
 | 
				
			||||||
 | 
							public bool SendBytes(byte[] send)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			return (tcpC != null && tcpC.Connected);
 | 
								if (!Connected()) return false;
 | 
				
			||||||
 | 
								try { return SendBytes(tcpC.GetStream(), send); }
 | 
				
			||||||
 | 
								catch { throw; }
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		/// <summary>Закрыть подключение.</summary>
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="ReceiveBytes1"]/*' />
 | 
				
			||||||
		public void Close()
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			if (tcpC != null && !tcpC.Connected)
 | 
					 | 
				
			||||||
				tcpC.Close();
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		/// <summary>Отправка массива байт на СТП.</summary>
 | 
					 | 
				
			||||||
		/// <param name="send">Массив байт для отправки.</param>
 | 
					 | 
				
			||||||
		public void SendBytes(byte[] send)
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
			if (!Connected()) throw new InvalidOperationException("Connection not exist.");
 | 
					 | 
				
			||||||
			var ns = tcpC.GetStream();
 | 
					 | 
				
			||||||
			SendBytes(ns, send);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		/// <summary>Получить неизвестное количество байт.</summary>
 | 
					 | 
				
			||||||
		/// <returns>Массив байт.</returns>
 | 
					 | 
				
			||||||
		public byte[] ReceiveBytes()
 | 
							public byte[] ReceiveBytes()
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			var res = new List<byte>();
 | 
								if (!Connected()) return null;
 | 
				
			||||||
			if (!Connected()) throw new InvalidOperationException("Connection not exist.");
 | 
								try { return ReceiveBytesFull(tcpC.GetStream()); }
 | 
				
			||||||
			var ns = tcpC.GetStream();
 | 
								catch { return null; }
 | 
				
			||||||
			res.AddRange(ReceiveBytesUnknown(ns));
 | 
					 | 
				
			||||||
			return res.ToArray();
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		/// <summary>Получить определенное количество байт.</summary>
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="ReceiveBytes2"]/*' />
 | 
				
			||||||
		/// <param name="size">Количество байт.</param>
 | 
					 | 
				
			||||||
		/// <returns>Массив байт.</returns>
 | 
					 | 
				
			||||||
		public byte[] ReceiveBytes(uint size)
 | 
							public byte[] ReceiveBytes(uint size)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			var res = new List<byte>();
 | 
								if (!Connected()) return null;
 | 
				
			||||||
			if (!Connected()) throw new Exception("Connection not exist.");
 | 
								try { return ReceiveBytesFixSize(tcpC.GetStream(), size); }
 | 
				
			||||||
			var ns = tcpC.GetStream();
 | 
								catch { return null; }
 | 
				
			||||||
			res.AddRange(ReceiveBytesFixSize(ns, size));
 | 
					 | 
				
			||||||
			return res.ToArray();
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//SubMain functions
 | 
							//SubMain functions
 | 
				
			||||||
		/// <summary>Внутренняя функция получения файлов.</summary>
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="My_Connect"]/*' />
 | 
				
			||||||
		/// <param name="code">Код, который будет отправлен на сервер.</param>
 | 
							private bool My_Connect()
 | 
				
			||||||
		/// <param name="date">Дата. Из неё формируется строка в формате YYYMMDD</param>
 | 
							{
 | 
				
			||||||
		/// <param name="vdp">Номер печи. 00 - общецеховые параметры.</param>
 | 
								if (stat.stat == NetStatus.Status.in_progress) throw new IOException("Previous method not finished.");
 | 
				
			||||||
		/// <param name="idx">Индекс файла. От 0 до 15.</param>
 | 
								stat.stat = NetStatus.Status.in_progress;
 | 
				
			||||||
		/// <returns></returns>
 | 
								if (Connected()) return false;
 | 
				
			||||||
 | 
								if (!Connect()) { throw new InvalidOperationException("Can't create connection."); }
 | 
				
			||||||
 | 
								return true;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="My_Close"]/*' />
 | 
				
			||||||
 | 
							private void My_Close(bool needClose)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (needClose) Close();
 | 
				
			||||||
 | 
								stat.stat = NetStatus.Status.complete;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="GetFile"]/*' />
 | 
				
			||||||
		private byte[] GetFile(Code code, DateTime date, int vdp, int idx)
 | 
							private byte[] GetFile(Code code, DateTime date, int vdp, int idx)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			if (code != Code.download_nh && code != Code.download)
 | 
								if (code != Code.download_nh && code != Code.download) throw new ArgumentException("Wrong code for this method.");
 | 
				
			||||||
				throw new ArgumentException("Wrong code for this method.");
 | 
								bool needCloseConeection = false;
 | 
				
			||||||
			if (stat.stat == NetStatus.Status.in_progress)
 | 
								try { needCloseConeection = My_Connect(); }
 | 
				
			||||||
				throw new InvalidOperationException("Previous method not finished.");
 | 
								catch { My_Close(needCloseConeection); throw; }
 | 
				
			||||||
			stat.stat = NetStatus.Status.in_progress;
 | 
					 | 
				
			||||||
			bool flag_connection = !Connected();
 | 
					 | 
				
			||||||
			if (flag_connection) Connect();
 | 
					 | 
				
			||||||
			if (!Connected())
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				stat.stat = NetStatus.Status.complete;
 | 
					 | 
				
			||||||
				throw new InvalidOperationException("Can't create connection.");
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			var str = date.ToString("yyyyMMdd") + "." + vdp.ToString("D2") + (idx % 16).ToString("X1");
 | 
								var str = date.ToString("yyyyMMdd") + "." + vdp.ToString("D2") + (idx % 16).ToString("X1");
 | 
				
			||||||
			try { SendBytes(CreateCode((uint)code, str)); }
 | 
					 | 
				
			||||||
			catch (Exception e)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				stat.stat = NetStatus.Status.complete;
 | 
					 | 
				
			||||||
				if (flag_connection) Close();
 | 
					 | 
				
			||||||
				throw new InvalidOperationException("Can't send code.", e);
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								try { if(SendBytes(CreateCode((uint)code, str))) throw new IOException("Can't send bytes to server."); }
 | 
				
			||||||
 | 
								catch { My_Close(needCloseConeection); throw; }
 | 
				
			||||||
			var res = new List<byte>();
 | 
								var res = new List<byte>();
 | 
				
			||||||
			var flag_end = false;
 | 
								var endCycle = false;
 | 
				
			||||||
			try
 | 
								try
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				do
 | 
									do
 | 
				
			||||||
@@ -431,86 +373,138 @@ namespace DataClient
 | 
				
			|||||||
					switch (tmp[0])
 | 
										switch (tmp[0])
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						case 0x00:
 | 
											case 0x00:
 | 
				
			||||||
							stat.stat = NetStatus.Status.complete;
 | 
											case 0xff:
 | 
				
			||||||
							flag_end = true;
 | 
												endCycle = true;
 | 
				
			||||||
							break;
 | 
												break;
 | 
				
			||||||
						case 0x01:
 | 
											case 0x01:
 | 
				
			||||||
							var blockSize = BitConverter.ToUInt32(ReceiveBytes(4));
 | 
												res.AddRange(ReceiveBytes(BitConverter.ToUInt32(ReceiveBytes(4))));
 | 
				
			||||||
							res.AddRange(ReceiveBytes(blockSize));
 | 
					 | 
				
			||||||
							stat.size = (uint)res.Count;
 | 
												stat.size = (uint)res.Count;
 | 
				
			||||||
							break;
 | 
												break;
 | 
				
			||||||
						case 0x02:
 | 
											case 0x02:
 | 
				
			||||||
							var fullSize = BitConverter.ToUInt32(ReceiveBytes(4));
 | 
												stat.fullSize = BitConverter.ToUInt32(ReceiveBytes(4));
 | 
				
			||||||
							stat.fullSize = fullSize;
 | 
					 | 
				
			||||||
							break;
 | 
					 | 
				
			||||||
						case 0xff:
 | 
					 | 
				
			||||||
							stat.stat = NetStatus.Status.complete;
 | 
					 | 
				
			||||||
							flag_end = true;
 | 
					 | 
				
			||||||
							break;
 | 
												break;
 | 
				
			||||||
 | 
											default:
 | 
				
			||||||
 | 
												ReceiveBytes();
 | 
				
			||||||
 | 
												throw new ArgumentException("Wront flag when get files.");
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				} while (!flag_end);
 | 
									} while (!endCycle);
 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			catch (Exception e)
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				throw new InvalidOperationException("Can't download file.", e);
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			finally
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				stat.stat = NetStatus.Status.complete;
 | 
					 | 
				
			||||||
				if (flag_connection) Close();
 | 
					 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
								catch { My_Close(needCloseConeection); throw; }
 | 
				
			||||||
 | 
								finally { My_Close(needCloseConeection); }
 | 
				
			||||||
			return res.ToArray();
 | 
								return res.ToArray();
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//COMMANDS FUNCTIONS
 | 
							//COMMANDS FUNCTIONS
 | 
				
			||||||
		/// <summary>Получение файла данных (байтами) с СТП.</summary>
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="Full_Download_NH"]/*' />
 | 
				
			||||||
		/// <param name="date">Дата. Из неё формируется строка в формате YYYMMDD</param>
 | 
					 | 
				
			||||||
		/// <param name="vdp">Номер печи. 00 - общецеховые параметры.</param>
 | 
					 | 
				
			||||||
		/// <param name="idx">Индекс файла. От 0 до 15.</param>
 | 
					 | 
				
			||||||
		/// <returns>Обработанный массив байт.</returns>
 | 
					 | 
				
			||||||
		public byte[] Full_Download_NH(DateTime date, int vdp, int idx)
 | 
							public byte[] Full_Download_NH(DateTime date, int vdp, int idx)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			try { return GetFile(Code.download_nh, date, vdp, idx); }
 | 
								try { return GetFile(Code.download_nh, date, vdp, idx); }
 | 
				
			||||||
			catch { throw; }
 | 
								catch { throw; }
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		/// <summary>Получение файла данных (байтами) с СТП.</summary>
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="Full_Download"]/*' />
 | 
				
			||||||
		/// <param name="date">Дата. Из неё формируется строка в формате YYYMMDD</param>
 | 
					 | 
				
			||||||
		/// <param name="vdp">Номер печи. 00 - общецеховые параметры.</param>
 | 
					 | 
				
			||||||
		/// <param name="idx">Индекс файла. От 0 до 15.</param>
 | 
					 | 
				
			||||||
		/// <returns>Обработанный массив байт.</returns>
 | 
					 | 
				
			||||||
		public byte[] Full_Download(DateTime date, int vdp, int idx)
 | 
							public byte[] Full_Download(DateTime date, int vdp, int idx)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			try { return GetFile(Code.download, date, vdp, idx); }
 | 
								try { return GetFile(Code.download, date, vdp, idx); }
 | 
				
			||||||
			catch { throw; }
 | 
								catch { throw; }
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="Full_By_Name"]/*' />
 | 
				
			||||||
		public byte[] Full_By_Name(string val)
 | 
							public byte[] Full_By_Name(string val)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			if (string.IsNullOrEmpty(val)) return null;
 | 
								if (string.IsNullOrEmpty(val)) return null;
 | 
				
			||||||
			bool flag_connection = !Connected();
 | 
								bool needCloseConeection = false;
 | 
				
			||||||
			if (flag_connection) Connect();
 | 
								try { needCloseConeection = My_Connect(); }
 | 
				
			||||||
			if (!Connected()) { throw new InvalidOperationException("Can't create connection."); }
 | 
								catch { My_Close(needCloseConeection); throw; }
 | 
				
			||||||
			try { SendBytes(CreateCode((uint)Code.by_name, val)); }
 | 
					
 | 
				
			||||||
			catch (Exception e)
 | 
								try { if(!SendBytes(CreateCode((uint)Code.by_name, val))) throw new IOException("Can't send bytes to server."); }
 | 
				
			||||||
			{
 | 
								catch { My_Close(needCloseConeection); throw; }
 | 
				
			||||||
				if (flag_connection) Close();
 | 
					
 | 
				
			||||||
				throw new InvalidOperationException("Can't send code.", e);
 | 
								byte[] res = null;
 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			try
 | 
								try
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				var tmp = ReceiveBytes(1);
 | 
									var tmp = ReceiveBytes(1);
 | 
				
			||||||
				return tmp[0] switch
 | 
									switch (tmp[0])
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					0x00 => null,
 | 
										case 0x00: break;
 | 
				
			||||||
					0x01 => ReceiveBytes(4),
 | 
										case 0x01: res = ReceiveBytes(4); break;
 | 
				
			||||||
					_ => throw new InvalidOperationException("Wrong answer from server."),
 | 
										default: ReceiveBytes(); break;
 | 
				
			||||||
				};
 | 
									};
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			catch (Exception e) { throw new InvalidOperationException("Can't receive code.", e); }
 | 
								catch { My_Close(needCloseConeection); throw; }
 | 
				
			||||||
			finally { if (flag_connection) Close(); }
 | 
								finally { My_Close(needCloseConeection); }
 | 
				
			||||||
 | 
								return res;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		public string[] Full_Dir_Browse(string dir)
 | 
							/// <include file='DataClientSrc.xml' path='docs/NET/m[@n="Full_Dir_Browse"]/*' />
 | 
				
			||||||
 | 
							public string[] Full_Dir_Browse(string dir = "")
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
 | 
								dir = (string.IsNullOrEmpty(dir)) ? "" : dir;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								bool needCloseConeection = false;
 | 
				
			||||||
 | 
								try { needCloseConeection = My_Connect(); }
 | 
				
			||||||
 | 
								catch { My_Close(needCloseConeection); throw; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								try { if (!SendBytes(CreateCode((uint)Code.dir_browse, dir, new byte[] { 0x00 }))) throw new IOException("Can't send bytes to server."); }
 | 
				
			||||||
 | 
								catch { My_Close(needCloseConeection); throw; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								var res = new List<string>();
 | 
				
			||||||
 | 
								try
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									bool endCycle = false;
 | 
				
			||||||
 | 
									do
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										var tmp = ReceiveBytes(1);
 | 
				
			||||||
 | 
										switch (tmp[0])
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											case 0x00:
 | 
				
			||||||
 | 
												res = null;
 | 
				
			||||||
 | 
												endCycle = true;
 | 
				
			||||||
 | 
												break;
 | 
				
			||||||
 | 
											case 0x01:
 | 
				
			||||||
 | 
												var str = enc.GetString(ReceiveBytes(BitConverter.ToUInt32(ReceiveBytes(4))));
 | 
				
			||||||
 | 
												if (str != "." && str != ".." && str != "error")
 | 
				
			||||||
 | 
													if (dir == "") res.Add(str);
 | 
				
			||||||
 | 
													else res.Add(dir + "/" + str);
 | 
				
			||||||
 | 
												tmp = ReceiveBytes(1);
 | 
				
			||||||
 | 
												if (tmp[0] != 0x00) throw new ArgumentException("Wrong get end line.");
 | 
				
			||||||
 | 
												break;
 | 
				
			||||||
 | 
											case 0xff:
 | 
				
			||||||
 | 
												endCycle = true;
 | 
				
			||||||
 | 
												break;
 | 
				
			||||||
 | 
											default:
 | 
				
			||||||
 | 
												res = null;
 | 
				
			||||||
 | 
												ReceiveBytes();
 | 
				
			||||||
 | 
												endCycle = true;
 | 
				
			||||||
 | 
												break;
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									} while (!endCycle);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								catch { My_Close(needCloseConeection); throw; }
 | 
				
			||||||
 | 
								finally { My_Close(needCloseConeection); }
 | 
				
			||||||
 | 
								return res?.ToArray();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public DateTime Full_Server_Time()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								bool needCloseConeection = false;
 | 
				
			||||||
 | 
								try { needCloseConeection = My_Connect(); }
 | 
				
			||||||
 | 
								catch { My_Close(needCloseConeection); throw; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								try { if (!SendBytes(CreateCode((uint)Code.server_time))) throw new IOException("Can't send bytes to server."); }
 | 
				
			||||||
 | 
								catch { My_Close(needCloseConeection); throw; }
 | 
				
			||||||
 | 
								int year, month, day, hour, minute, second;
 | 
				
			||||||
 | 
								try
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									var buf = ReceiveBytes(2);
 | 
				
			||||||
 | 
									year = buf[0] | buf[1] << 8;
 | 
				
			||||||
 | 
									month = ReceiveBytes(1)[0];
 | 
				
			||||||
 | 
									day = ReceiveBytes(1)[0];
 | 
				
			||||||
 | 
									hour = ReceiveBytes(1)[0];
 | 
				
			||||||
 | 
									minute = ReceiveBytes(1)[0];
 | 
				
			||||||
 | 
									second = ReceiveBytes(1)[0];
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								catch { My_Close(needCloseConeection); throw; }
 | 
				
			||||||
 | 
								finally { My_Close(needCloseConeection); }
 | 
				
			||||||
 | 
								return new DateTime(year, month, day, hour, minute, second);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										221
									
								
								DataClient/bin/Debug/net5.0/DataClient.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										221
									
								
								DataClient/bin/Debug/net5.0/DataClient.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,221 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0"?>
 | 
				
			||||||
 | 
					<doc>
 | 
				
			||||||
 | 
					    <assembly>
 | 
				
			||||||
 | 
					        <name>DataClient</name>
 | 
				
			||||||
 | 
					    </assembly>
 | 
				
			||||||
 | 
					    <members>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.NETClient.Status">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
									Статус процесса выполнения запроса.
 | 
				
			||||||
 | 
									Предполагается использовать только на больших
 | 
				
			||||||
 | 
									загрузках и в ассинхронных задачах
 | 
				
			||||||
 | 
								</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="T:DataClient.NETClient.Code">
 | 
				
			||||||
 | 
					            <summary>Коды для работы с СТП.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.NETClient.Ip">
 | 
				
			||||||
 | 
					            <summary>IP адрес СТП.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.NETClient.Port">
 | 
				
			||||||
 | 
					            <summary>Порт СТП.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.NETClient.RetryCount">
 | 
				
			||||||
 | 
					            <summary>Количество попыток переподключения.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.NETClient.RetryInterval">
 | 
				
			||||||
 | 
					            <summary>Время в секундах между попытками переподключения.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.#ctor">
 | 
				
			||||||
 | 
					            <summary>Основной конструктор класса NetClient. Ip-адрес - 127.0.0.1; Порт - 1070;</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.#ctor(System.String,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Конструктор класса NetClient с параметрами.</summary><param name="ip">Ip-адрес сервера.</param><param name="port">Порт сервера.</param>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.ReceiveBytesFull(System.Net.Sockets.NetworkStream,System.Int32,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Получение неопределенного количество байт с сервера. Количество ограничено максимальным значением типа UInt.</summary><param name="ns">Открытый сетевой поток.</param><param name="awaitInterval">Время ожидания между проверками буфера.</param><param name="tryCounts">Количество проверок буфера.</param><returns>Массив байт.</returns><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Соединение с сервером закрыто.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Стрим недоступен для Чтения.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.TimeoutException">
 | 
				
			||||||
 | 
									Сервер сбросил соединение.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.ReceiveBytesFixSize(System.Net.Sockets.NetworkStream,System.UInt32,System.Int32,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Получение определенного количество байт с сервера.</summary><param name="ns">Открытый сетевой поток.</param><param name="size">Кол-во получаемых байт.</param><param name="awaitInterval">Время ожидания между проверками буфера.</param><param name="tryCounts">Количество проверок буфера.</param><returns>Массив байт. Может быть меньше заданного количества.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Размер байт не должен равняться нулю.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Стрим недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.TimeoutException">
 | 
				
			||||||
 | 
									Сервер сбросил соединение.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.SendBytes(System.Net.Sockets.NetworkStream,System.Byte[])">
 | 
				
			||||||
 | 
					            <summary>Отправка массива байт на СТП.</summary><param name="ns">Открытый сетевой поток.</param><param name="arr">Массив байт.</param><returns>Результат отправки.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Размер байт не должен равняться нулю.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Стрим недоступен для записи.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.CreateCode(System.UInt32,System.String,System.Byte[],System.Byte[])">
 | 
				
			||||||
 | 
					            <summary>Формирование массива байт на отправку.</summary><param name="code">Код комманды. Конвертируется в 4 байта. (0x00 0x00 0x00 0x00)</param><param name="val">Передаваемая строка.</param><param name="prefix">Байты перед передаваемой строкой.</param><param name="postfix">Байты после передаваемой строкой.</param><returns>Массив байт для отправки на СТП.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Connect">
 | 
				
			||||||
 | 
					            <summary>Открытие соединения к серверу.</summary><remarks>Информирует только о подключении к серверу. Исключения опускает.</remarks><returns>Состояние подключения.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Connected">
 | 
				
			||||||
 | 
					            <summary>Проверка подключения.</summary><returns>Состояние подключения.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Close">
 | 
				
			||||||
 | 
					            <summary>Закрыть подключение.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.SendBytes(System.Byte[])">
 | 
				
			||||||
 | 
					            <summary>Отправка массива байт на СТП.</summary><param name="send">Массив байт для отправки.</param><returns>Результат отправки.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Размер байт не должен равняться нулю.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.ReceiveBytes">
 | 
				
			||||||
 | 
					            <summary>Получение неизвестного количество байт.</summary><remarks>Возвращает null, если что-то пошло не так.</remarks><returns>Массив байт.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.ReceiveBytes(System.UInt32)">
 | 
				
			||||||
 | 
					            <summary>Получение определенного количество байт.</summary><param name="size">Количество байт.</param><remarks>Возвращает null, если что-то пошло не так.</remarks><returns>Массив байт определенного размера. Может массив быть меньше, если в буфере не будет достаточно данных.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.My_Connect">
 | 
				
			||||||
 | 
					            <summary>Внутренняя функция для создания подключения.</summary><returns>Возвращает флаг необходимости закрытия соединения.</returns><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.My_Close(System.Boolean)">
 | 
				
			||||||
 | 
					            <summary>Внетренняя функция для закрытия соединения.</summary><param name="needClose">Флаг о необходимости закрыть соединение.</param>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.GetFile(DataClient.NETClient.Code,System.DateTime,System.Int32,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Внутренняя функция получения файлов.</summary><param name="code">Код, который будет отправлен на сервер.</param><param name="date">Дата. Из неё формируется строка в формате YYYMMDD.</param><param name="vdp">Номер печи. 00 - общецеховые параметры.</param><param name="idx">Индекс файла. От 0 до 15.</param><returns>Массив байт, соответствующий запрашиваемому файлу.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Неверный код, для получения файла.
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Full_Download_NH(System.DateTime,System.Int32,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Получение файла данных (байтами) с СТП.</summary><param name="date">Дата. Из неё формируется строка в формате YYYMMDD.</param><param name="vdp">Номер печи. 00 - общецеховые параметры.</param><param name="idx">Индекс файла. От 0 до 15.</param><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>Обработанный массив байт.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Неверный код, для получения файла.
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Full_Download(System.DateTime,System.Int32,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Получение файла данных (байтами) с СТП.</summary><param name="date">Дата. Из неё формируется строка в формате YYYMMDD.</param><param name="vdp">Номер печи. 00 - общецеховые параметры.</param><param name="idx">Индекс файла. От 0 до 15.</param><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>Обработанный массив байт.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Неверный код, для получения файла.
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Full_By_Name(System.String)">
 | 
				
			||||||
 | 
					            <summary>Получение файла данных (байтами) с СТП.</summary><param name="val">Название команды.</param><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>Массив байт, соответствующий этой команде. Может вернуть null.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Full_Dir_Browse(System.String)">
 | 
				
			||||||
 | 
					            <summary>Получение структуры файлов и папок в запрашиваемой директории.</summary><param name="dir">Путь, структуру которого надо отобразить.</param><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>Массив строк. Полные пути к файлам и папкам. Может вернуть null.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Неверный флаг окончания строки.
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="T:DataClient.STPClient">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            Класс для связи с СТП. Содержит все инструменты, для получения данных.
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.STPClient.UseServer">
 | 
				
			||||||
 | 
					            <summary>Номер сервера, используемого по умолчанию.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.STPClient.ListServers">
 | 
				
			||||||
 | 
					            <summary>Массив серверов, инициализированных в экземпляре класса.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.GetServerIdByName(System.String)">
 | 
				
			||||||
 | 
					            <summary>Получение номера сервера по его названию.</summary>
 | 
				
			||||||
 | 
					            <param name="name">Название сервера.</param>
 | 
				
			||||||
 | 
					            <returns>Номер сервера в списке серверов.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.GetServerNameById(System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Получение название сервера по его номеру.</summary>
 | 
				
			||||||
 | 
					            <param name="id">Номер сервера в списке серверов.</param>
 | 
				
			||||||
 | 
					            <returns>Название сервера.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.CheckDataServer(System.String,System.Int32,System.String)">
 | 
				
			||||||
 | 
					            <summary>Проверка параметров серевера перед их добавлением в список.</summary>
 | 
				
			||||||
 | 
					            <param name="ip">IP адресс сервера.</param>
 | 
				
			||||||
 | 
					            <param name="port">Порт сервера.</param>
 | 
				
			||||||
 | 
					            <param name="dir">Путь к архиву.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.AddServer(System.String,System.String,System.Int32,System.String)">
 | 
				
			||||||
 | 
					            <summary>Добавление сервера в список серверов.</summary>
 | 
				
			||||||
 | 
					            <param name="name">Название сервера</param>
 | 
				
			||||||
 | 
					            <param name="ip">IP адресс сервера.</param>
 | 
				
			||||||
 | 
					            <param name="port">Порт сервера.</param>
 | 
				
			||||||
 | 
					            <param name="dir">Путь к архиву.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.ChangeServerById(System.Int32,System.String,System.String,System.Int32,System.String)">
 | 
				
			||||||
 | 
					            <summary>Изменение сервера в списке серверов по его номеру.</summary>
 | 
				
			||||||
 | 
					            <param name="id">Номер сервера в списке серверов.</param>
 | 
				
			||||||
 | 
					            <param name="name">Название сервера.</param>
 | 
				
			||||||
 | 
					            <param name="ip">IP адресс сервера.</param>
 | 
				
			||||||
 | 
					            <param name="port">Порт сервера.</param>
 | 
				
			||||||
 | 
					            <param name="dir">Путь к архиву.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.ChangeServerByName(System.String,System.String,System.Int32,System.String)">
 | 
				
			||||||
 | 
					            <summary>Изменение сервера в списке серверов по его названию.</summary>
 | 
				
			||||||
 | 
					            <param name="name">Название сервера.</param>
 | 
				
			||||||
 | 
					            <param name="ip">IP адресс сервера.</param>
 | 
				
			||||||
 | 
					            <param name="port">Порт сервера.</param>
 | 
				
			||||||
 | 
					            <param name="dir">Путь к архиву.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.RemoveServerById(System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Удаление сервера из списка серверов по его номеру.</summary>
 | 
				
			||||||
 | 
					            <param name="id">Номер сервера в списке серверов.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.RemoveServerByName(System.String)">
 | 
				
			||||||
 | 
					            <summary>Удаление сервера из списка серверов по его названию.</summary>
 | 
				
			||||||
 | 
					            <param name="name">Название сервера.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.Config">
 | 
				
			||||||
 | 
					            <summary>Чтение конфигурационнного файла и установка параметров по умолчанию.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.#ctor">
 | 
				
			||||||
 | 
					            <summary>Создание экземпляра класса.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.#ctor(System.String)">
 | 
				
			||||||
 | 
					            <summary>Создание экземпляра класса с указанием конфигурационного файла.</summary>
 | 
				
			||||||
 | 
					            <param name="confDir">Путь к файлу конфигурации.</param>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					    </members>
 | 
				
			||||||
 | 
					</doc>
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							@@ -3,7 +3,6 @@ D:\GIT\ASCKU_PC\DataClient\bin\Debug\net5.0\DataClient.deps.json
 | 
				
			|||||||
D:\GIT\ASCKU_PC\DataClient\bin\Debug\net5.0\DataClient.dll
 | 
					D:\GIT\ASCKU_PC\DataClient\bin\Debug\net5.0\DataClient.dll
 | 
				
			||||||
D:\GIT\ASCKU_PC\DataClient\bin\Debug\net5.0\ref\DataClient.dll
 | 
					D:\GIT\ASCKU_PC\DataClient\bin\Debug\net5.0\ref\DataClient.dll
 | 
				
			||||||
D:\GIT\ASCKU_PC\DataClient\bin\Debug\net5.0\DataClient.pdb
 | 
					D:\GIT\ASCKU_PC\DataClient\bin\Debug\net5.0\DataClient.pdb
 | 
				
			||||||
D:\GIT\ASCKU_PC\DataClient\obj\Debug\net5.0\DataClient.csprojAssemblyReference.cache
 | 
					 | 
				
			||||||
D:\GIT\ASCKU_PC\DataClient\obj\Debug\net5.0\DataClient.GeneratedMSBuildEditorConfig.editorconfig
 | 
					D:\GIT\ASCKU_PC\DataClient\obj\Debug\net5.0\DataClient.GeneratedMSBuildEditorConfig.editorconfig
 | 
				
			||||||
D:\GIT\ASCKU_PC\DataClient\obj\Debug\net5.0\DataClient.AssemblyInfoInputs.cache
 | 
					D:\GIT\ASCKU_PC\DataClient\obj\Debug\net5.0\DataClient.AssemblyInfoInputs.cache
 | 
				
			||||||
D:\GIT\ASCKU_PC\DataClient\obj\Debug\net5.0\DataClient.AssemblyInfo.cs
 | 
					D:\GIT\ASCKU_PC\DataClient\obj\Debug\net5.0\DataClient.AssemblyInfo.cs
 | 
				
			||||||
@@ -11,3 +10,5 @@ D:\GIT\ASCKU_PC\DataClient\obj\Debug\net5.0\DataClient.csproj.CoreCompileInputs.
 | 
				
			|||||||
D:\GIT\ASCKU_PC\DataClient\obj\Debug\net5.0\DataClient.dll
 | 
					D:\GIT\ASCKU_PC\DataClient\obj\Debug\net5.0\DataClient.dll
 | 
				
			||||||
D:\GIT\ASCKU_PC\DataClient\obj\Debug\net5.0\ref\DataClient.dll
 | 
					D:\GIT\ASCKU_PC\DataClient\obj\Debug\net5.0\ref\DataClient.dll
 | 
				
			||||||
D:\GIT\ASCKU_PC\DataClient\obj\Debug\net5.0\DataClient.pdb
 | 
					D:\GIT\ASCKU_PC\DataClient\obj\Debug\net5.0\DataClient.pdb
 | 
				
			||||||
 | 
					D:\GIT\ASCKU_PC\DataClient\bin\Debug\net5.0\DataClient.xml
 | 
				
			||||||
 | 
					D:\GIT\ASCKU_PC\DataClient\obj\Debug\net5.0\DataClient.csprojAssemblyReference.cache
 | 
				
			||||||
 
 | 
				
			|||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										1
									
								
								DataClients/DataClientSrc.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								DataClients/DataClientSrc.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8" ?> 
 | 
				
			||||||
@@ -7,6 +7,8 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
 | 
				
			||||||
    <WarningLevel>0</WarningLevel>
 | 
					    <WarningLevel>0</WarningLevel>
 | 
				
			||||||
 | 
					    <DocumentationFile>D:\GIT\ASCKU_PC\DataClients\DataClients.xml</DocumentationFile>
 | 
				
			||||||
 | 
					    <DefineConstants>TRACE</DefineConstants>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1 +1 @@
 | 
				
			|||||||
dcd43f965ba9bd3497fc087ead8b4421f1313830
 | 
					871cac96c3ed0d819a49dc12bad5bc0845a6eb38
 | 
				
			||||||
 
 | 
				
			|||||||
										
											Binary file not shown.
										
									
								
							@@ -1,83 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "format": 1,
 | 
					 | 
				
			||||||
  "restore": {
 | 
					 | 
				
			||||||
    "D:\\GIT\\ASCKU_PC\\STPClient\\STPClient.csproj": {}
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "projects": {
 | 
					 | 
				
			||||||
    "D:\\GIT\\ASCKU_PC\\STPClient\\STPClient.csproj": {
 | 
					 | 
				
			||||||
      "version": "0.0.3",
 | 
					 | 
				
			||||||
      "restore": {
 | 
					 | 
				
			||||||
        "projectUniqueName": "D:\\GIT\\ASCKU_PC\\STPClient\\STPClient.csproj",
 | 
					 | 
				
			||||||
        "projectName": "DataClient",
 | 
					 | 
				
			||||||
        "projectPath": "D:\\GIT\\ASCKU_PC\\STPClient\\STPClient.csproj",
 | 
					 | 
				
			||||||
        "packagesPath": "C:\\Users\\google\\.nuget\\packages\\",
 | 
					 | 
				
			||||||
        "outputPath": "D:\\GIT\\ASCKU_PC\\STPClient\\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"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "configFilePaths": [
 | 
					 | 
				
			||||||
          "C:\\Users\\google\\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"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "originalTargetFrameworks": [
 | 
					 | 
				
			||||||
          "net5.0"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "sources": {
 | 
					 | 
				
			||||||
          "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
 | 
					 | 
				
			||||||
          "https://api.nuget.org/v3/index.json": {}
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "frameworks": {
 | 
					 | 
				
			||||||
          "net5.0": {
 | 
					 | 
				
			||||||
            "targetAlias": "net5.0",
 | 
					 | 
				
			||||||
            "projectReferences": {}
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "warningProperties": {
 | 
					 | 
				
			||||||
          "warnAsError": [
 | 
					 | 
				
			||||||
            "NU1605"
 | 
					 | 
				
			||||||
          ]
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "frameworks": {
 | 
					 | 
				
			||||||
        "net5.0": {
 | 
					 | 
				
			||||||
          "targetAlias": "net5.0",
 | 
					 | 
				
			||||||
          "dependencies": {
 | 
					 | 
				
			||||||
            "NLog": {
 | 
					 | 
				
			||||||
              "target": "Package",
 | 
					 | 
				
			||||||
              "version": "[4.7.10, )"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "NLog.Extensions.Logging": {
 | 
					 | 
				
			||||||
              "target": "Package",
 | 
					 | 
				
			||||||
              "version": "[1.7.2, )"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "Newtonsoft.Json": {
 | 
					 | 
				
			||||||
              "target": "Package",
 | 
					 | 
				
			||||||
              "version": "[13.0.1, )"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "imports": [
 | 
					 | 
				
			||||||
            "net461",
 | 
					 | 
				
			||||||
            "net462",
 | 
					 | 
				
			||||||
            "net47",
 | 
					 | 
				
			||||||
            "net471",
 | 
					 | 
				
			||||||
            "net472",
 | 
					 | 
				
			||||||
            "net48"
 | 
					 | 
				
			||||||
          ],
 | 
					 | 
				
			||||||
          "assetTargetFallback": true,
 | 
					 | 
				
			||||||
          "warn": true,
 | 
					 | 
				
			||||||
          "frameworkReferences": {
 | 
					 | 
				
			||||||
            "Microsoft.NETCore.App": {
 | 
					 | 
				
			||||||
              "privateAssets": "all"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.201\\RuntimeIdentifierGraph.json"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,21 +0,0 @@
 | 
				
			|||||||
<?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\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>
 | 
					 | 
				
			||||||
    <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
 | 
					 | 
				
			||||||
    <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.9.0</NuGetToolVersion>
 | 
					 | 
				
			||||||
  </PropertyGroup>
 | 
					 | 
				
			||||||
  <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
 | 
					 | 
				
			||||||
    <SourceRoot Include="C:\Users\google\.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>
 | 
					 | 
				
			||||||
  </PropertyGroup>
 | 
					 | 
				
			||||||
</Project>
 | 
					 | 
				
			||||||
@@ -1,6 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
 | 
					 | 
				
			||||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
					 | 
				
			||||||
  <PropertyGroup>
 | 
					 | 
				
			||||||
    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
 | 
					 | 
				
			||||||
  </PropertyGroup>
 | 
					 | 
				
			||||||
</Project>
 | 
					 | 
				
			||||||
@@ -1,444 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "version": 3,
 | 
					 | 
				
			||||||
  "targets": {
 | 
					 | 
				
			||||||
    "net5.0": {
 | 
					 | 
				
			||||||
      "Microsoft.Extensions.Configuration.Abstractions/5.0.0": {
 | 
					 | 
				
			||||||
        "type": "package",
 | 
					 | 
				
			||||||
        "dependencies": {
 | 
					 | 
				
			||||||
          "Microsoft.Extensions.Primitives": "5.0.0"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "compile": {
 | 
					 | 
				
			||||||
          "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll": {}
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "runtime": {
 | 
					 | 
				
			||||||
          "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll": {}
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "Microsoft.Extensions.DependencyInjection/5.0.0": {
 | 
					 | 
				
			||||||
        "type": "package",
 | 
					 | 
				
			||||||
        "dependencies": {
 | 
					 | 
				
			||||||
          "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "compile": {
 | 
					 | 
				
			||||||
          "lib/net5.0/Microsoft.Extensions.DependencyInjection.dll": {}
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "runtime": {
 | 
					 | 
				
			||||||
          "lib/net5.0/Microsoft.Extensions.DependencyInjection.dll": {}
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
 | 
					 | 
				
			||||||
        "type": "package",
 | 
					 | 
				
			||||||
        "compile": {
 | 
					 | 
				
			||||||
          "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {}
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "runtime": {
 | 
					 | 
				
			||||||
          "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {}
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "Microsoft.Extensions.Logging/5.0.0": {
 | 
					 | 
				
			||||||
        "type": "package",
 | 
					 | 
				
			||||||
        "dependencies": {
 | 
					 | 
				
			||||||
          "Microsoft.Extensions.DependencyInjection": "5.0.0",
 | 
					 | 
				
			||||||
          "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
 | 
					 | 
				
			||||||
          "Microsoft.Extensions.Logging.Abstractions": "5.0.0",
 | 
					 | 
				
			||||||
          "Microsoft.Extensions.Options": "5.0.0"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "compile": {
 | 
					 | 
				
			||||||
          "lib/netstandard2.1/Microsoft.Extensions.Logging.dll": {}
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "runtime": {
 | 
					 | 
				
			||||||
          "lib/netstandard2.1/Microsoft.Extensions.Logging.dll": {}
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "Microsoft.Extensions.Logging.Abstractions/5.0.0": {
 | 
					 | 
				
			||||||
        "type": "package",
 | 
					 | 
				
			||||||
        "compile": {
 | 
					 | 
				
			||||||
          "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": {}
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "runtime": {
 | 
					 | 
				
			||||||
          "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": {}
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "Microsoft.Extensions.Options/5.0.0": {
 | 
					 | 
				
			||||||
        "type": "package",
 | 
					 | 
				
			||||||
        "dependencies": {
 | 
					 | 
				
			||||||
          "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
 | 
					 | 
				
			||||||
          "Microsoft.Extensions.Primitives": "5.0.0"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "compile": {
 | 
					 | 
				
			||||||
          "lib/net5.0/Microsoft.Extensions.Options.dll": {}
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "runtime": {
 | 
					 | 
				
			||||||
          "lib/net5.0/Microsoft.Extensions.Options.dll": {}
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "Microsoft.Extensions.Primitives/5.0.0": {
 | 
					 | 
				
			||||||
        "type": "package",
 | 
					 | 
				
			||||||
        "compile": {
 | 
					 | 
				
			||||||
          "lib/netcoreapp3.0/Microsoft.Extensions.Primitives.dll": {}
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "runtime": {
 | 
					 | 
				
			||||||
          "lib/netcoreapp3.0/Microsoft.Extensions.Primitives.dll": {}
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "Newtonsoft.Json/13.0.1": {
 | 
					 | 
				
			||||||
        "type": "package",
 | 
					 | 
				
			||||||
        "compile": {
 | 
					 | 
				
			||||||
          "lib/netstandard2.0/Newtonsoft.Json.dll": {}
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "runtime": {
 | 
					 | 
				
			||||||
          "lib/netstandard2.0/Newtonsoft.Json.dll": {}
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "NLog/4.7.10": {
 | 
					 | 
				
			||||||
        "type": "package",
 | 
					 | 
				
			||||||
        "compile": {
 | 
					 | 
				
			||||||
          "lib/netstandard2.0/NLog.dll": {}
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "runtime": {
 | 
					 | 
				
			||||||
          "lib/netstandard2.0/NLog.dll": {}
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "NLog.Extensions.Logging/1.7.2": {
 | 
					 | 
				
			||||||
        "type": "package",
 | 
					 | 
				
			||||||
        "dependencies": {
 | 
					 | 
				
			||||||
          "Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
 | 
					 | 
				
			||||||
          "Microsoft.Extensions.Logging": "5.0.0",
 | 
					 | 
				
			||||||
          "NLog": "4.7.9"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "compile": {
 | 
					 | 
				
			||||||
          "lib/net5.0/NLog.Extensions.Logging.dll": {}
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "runtime": {
 | 
					 | 
				
			||||||
          "lib/net5.0/NLog.Extensions.Logging.dll": {}
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "libraries": {
 | 
					 | 
				
			||||||
    "Microsoft.Extensions.Configuration.Abstractions/5.0.0": {
 | 
					 | 
				
			||||||
      "sha512": "ETjSBHMp3OAZ4HxGQYpwyGsD8Sw5FegQXphi0rpoGMT74S4+I2mm7XJEswwn59XAaKOzC15oDSOWEE8SzDCd6Q==",
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "path": "microsoft.extensions.configuration.abstractions/5.0.0",
 | 
					 | 
				
			||||||
      "files": [
 | 
					 | 
				
			||||||
        ".nupkg.metadata",
 | 
					 | 
				
			||||||
        ".signature.p7s",
 | 
					 | 
				
			||||||
        "Icon.png",
 | 
					 | 
				
			||||||
        "LICENSE.TXT",
 | 
					 | 
				
			||||||
        "THIRD-PARTY-NOTICES.TXT",
 | 
					 | 
				
			||||||
        "lib/net461/Microsoft.Extensions.Configuration.Abstractions.dll",
 | 
					 | 
				
			||||||
        "lib/net461/Microsoft.Extensions.Configuration.Abstractions.xml",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.xml",
 | 
					 | 
				
			||||||
        "microsoft.extensions.configuration.abstractions.5.0.0.nupkg.sha512",
 | 
					 | 
				
			||||||
        "microsoft.extensions.configuration.abstractions.nuspec",
 | 
					 | 
				
			||||||
        "useSharedDesignerContext.txt",
 | 
					 | 
				
			||||||
        "version.txt"
 | 
					 | 
				
			||||||
      ]
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "Microsoft.Extensions.DependencyInjection/5.0.0": {
 | 
					 | 
				
			||||||
      "sha512": "Rc2kb/p3Ze6cP6rhFC3PJRdWGbLvSHZc0ev7YlyeU6FmHciDMLrhoVoTUEzKPhN5ZjFgKF1Cf5fOz8mCMIkvpA==",
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "path": "microsoft.extensions.dependencyinjection/5.0.0",
 | 
					 | 
				
			||||||
      "files": [
 | 
					 | 
				
			||||||
        ".nupkg.metadata",
 | 
					 | 
				
			||||||
        ".signature.p7s",
 | 
					 | 
				
			||||||
        "Icon.png",
 | 
					 | 
				
			||||||
        "LICENSE.TXT",
 | 
					 | 
				
			||||||
        "THIRD-PARTY-NOTICES.TXT",
 | 
					 | 
				
			||||||
        "lib/net461/Microsoft.Extensions.DependencyInjection.dll",
 | 
					 | 
				
			||||||
        "lib/net461/Microsoft.Extensions.DependencyInjection.xml",
 | 
					 | 
				
			||||||
        "lib/net5.0/Microsoft.Extensions.DependencyInjection.dll",
 | 
					 | 
				
			||||||
        "lib/net5.0/Microsoft.Extensions.DependencyInjection.xml",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.xml",
 | 
					 | 
				
			||||||
        "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll",
 | 
					 | 
				
			||||||
        "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.xml",
 | 
					 | 
				
			||||||
        "microsoft.extensions.dependencyinjection.5.0.0.nupkg.sha512",
 | 
					 | 
				
			||||||
        "microsoft.extensions.dependencyinjection.nuspec",
 | 
					 | 
				
			||||||
        "useSharedDesignerContext.txt",
 | 
					 | 
				
			||||||
        "version.txt"
 | 
					 | 
				
			||||||
      ]
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
 | 
					 | 
				
			||||||
      "sha512": "ORj7Zh81gC69TyvmcUm9tSzytcy8AVousi+IVRAI8nLieQjOFryRusSFh7+aLk16FN9pQNqJAiMd7BTKINK0kA==",
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "path": "microsoft.extensions.dependencyinjection.abstractions/5.0.0",
 | 
					 | 
				
			||||||
      "files": [
 | 
					 | 
				
			||||||
        ".nupkg.metadata",
 | 
					 | 
				
			||||||
        ".signature.p7s",
 | 
					 | 
				
			||||||
        "Icon.png",
 | 
					 | 
				
			||||||
        "LICENSE.TXT",
 | 
					 | 
				
			||||||
        "THIRD-PARTY-NOTICES.TXT",
 | 
					 | 
				
			||||||
        "lib/net461/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
 | 
					 | 
				
			||||||
        "lib/net461/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
 | 
					 | 
				
			||||||
        "microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512",
 | 
					 | 
				
			||||||
        "microsoft.extensions.dependencyinjection.abstractions.nuspec",
 | 
					 | 
				
			||||||
        "useSharedDesignerContext.txt",
 | 
					 | 
				
			||||||
        "version.txt"
 | 
					 | 
				
			||||||
      ]
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "Microsoft.Extensions.Logging/5.0.0": {
 | 
					 | 
				
			||||||
      "sha512": "MgOwK6tPzB6YNH21wssJcw/2MKwee8b2gI7SllYfn6rvTpIrVvVS5HAjSU2vqSku1fwqRvWP0MdIi14qjd93Aw==",
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "path": "microsoft.extensions.logging/5.0.0",
 | 
					 | 
				
			||||||
      "files": [
 | 
					 | 
				
			||||||
        ".nupkg.metadata",
 | 
					 | 
				
			||||||
        ".signature.p7s",
 | 
					 | 
				
			||||||
        "Icon.png",
 | 
					 | 
				
			||||||
        "LICENSE.TXT",
 | 
					 | 
				
			||||||
        "THIRD-PARTY-NOTICES.TXT",
 | 
					 | 
				
			||||||
        "lib/net461/Microsoft.Extensions.Logging.dll",
 | 
					 | 
				
			||||||
        "lib/net461/Microsoft.Extensions.Logging.xml",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/Microsoft.Extensions.Logging.dll",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/Microsoft.Extensions.Logging.xml",
 | 
					 | 
				
			||||||
        "lib/netstandard2.1/Microsoft.Extensions.Logging.dll",
 | 
					 | 
				
			||||||
        "lib/netstandard2.1/Microsoft.Extensions.Logging.xml",
 | 
					 | 
				
			||||||
        "microsoft.extensions.logging.5.0.0.nupkg.sha512",
 | 
					 | 
				
			||||||
        "microsoft.extensions.logging.nuspec",
 | 
					 | 
				
			||||||
        "useSharedDesignerContext.txt",
 | 
					 | 
				
			||||||
        "version.txt"
 | 
					 | 
				
			||||||
      ]
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "Microsoft.Extensions.Logging.Abstractions/5.0.0": {
 | 
					 | 
				
			||||||
      "sha512": "NxP6ahFcBnnSfwNBi2KH2Oz8Xl5Sm2krjId/jRR3I7teFphwiUoUeZPwTNA21EX+5PtjqmyAvKaOeBXcJjcH/w==",
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "path": "microsoft.extensions.logging.abstractions/5.0.0",
 | 
					 | 
				
			||||||
      "files": [
 | 
					 | 
				
			||||||
        ".nupkg.metadata",
 | 
					 | 
				
			||||||
        ".signature.p7s",
 | 
					 | 
				
			||||||
        "Icon.png",
 | 
					 | 
				
			||||||
        "LICENSE.TXT",
 | 
					 | 
				
			||||||
        "THIRD-PARTY-NOTICES.TXT",
 | 
					 | 
				
			||||||
        "lib/net461/Microsoft.Extensions.Logging.Abstractions.dll",
 | 
					 | 
				
			||||||
        "lib/net461/Microsoft.Extensions.Logging.Abstractions.xml",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml",
 | 
					 | 
				
			||||||
        "microsoft.extensions.logging.abstractions.5.0.0.nupkg.sha512",
 | 
					 | 
				
			||||||
        "microsoft.extensions.logging.abstractions.nuspec",
 | 
					 | 
				
			||||||
        "useSharedDesignerContext.txt",
 | 
					 | 
				
			||||||
        "version.txt"
 | 
					 | 
				
			||||||
      ]
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "Microsoft.Extensions.Options/5.0.0": {
 | 
					 | 
				
			||||||
      "sha512": "CBvR92TCJ5uBIdd9/HzDSrxYak+0W/3+yxrNg8Qm6Bmrkh5L+nu6m3WeazQehcZ5q1/6dDA7J5YdQjim0165zg==",
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "path": "microsoft.extensions.options/5.0.0",
 | 
					 | 
				
			||||||
      "files": [
 | 
					 | 
				
			||||||
        ".nupkg.metadata",
 | 
					 | 
				
			||||||
        ".signature.p7s",
 | 
					 | 
				
			||||||
        "Icon.png",
 | 
					 | 
				
			||||||
        "LICENSE.TXT",
 | 
					 | 
				
			||||||
        "THIRD-PARTY-NOTICES.TXT",
 | 
					 | 
				
			||||||
        "lib/net461/Microsoft.Extensions.Options.dll",
 | 
					 | 
				
			||||||
        "lib/net461/Microsoft.Extensions.Options.xml",
 | 
					 | 
				
			||||||
        "lib/net5.0/Microsoft.Extensions.Options.dll",
 | 
					 | 
				
			||||||
        "lib/net5.0/Microsoft.Extensions.Options.xml",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/Microsoft.Extensions.Options.dll",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/Microsoft.Extensions.Options.xml",
 | 
					 | 
				
			||||||
        "microsoft.extensions.options.5.0.0.nupkg.sha512",
 | 
					 | 
				
			||||||
        "microsoft.extensions.options.nuspec",
 | 
					 | 
				
			||||||
        "useSharedDesignerContext.txt",
 | 
					 | 
				
			||||||
        "version.txt"
 | 
					 | 
				
			||||||
      ]
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "Microsoft.Extensions.Primitives/5.0.0": {
 | 
					 | 
				
			||||||
      "sha512": "cI/VWn9G1fghXrNDagX9nYaaB/nokkZn0HYAawGaELQrl8InSezfe9OnfPZLcJq3esXxygh3hkq2c3qoV3SDyQ==",
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "path": "microsoft.extensions.primitives/5.0.0",
 | 
					 | 
				
			||||||
      "files": [
 | 
					 | 
				
			||||||
        ".nupkg.metadata",
 | 
					 | 
				
			||||||
        ".signature.p7s",
 | 
					 | 
				
			||||||
        "Icon.png",
 | 
					 | 
				
			||||||
        "LICENSE.TXT",
 | 
					 | 
				
			||||||
        "THIRD-PARTY-NOTICES.TXT",
 | 
					 | 
				
			||||||
        "lib/net461/Microsoft.Extensions.Primitives.dll",
 | 
					 | 
				
			||||||
        "lib/net461/Microsoft.Extensions.Primitives.xml",
 | 
					 | 
				
			||||||
        "lib/netcoreapp3.0/Microsoft.Extensions.Primitives.dll",
 | 
					 | 
				
			||||||
        "lib/netcoreapp3.0/Microsoft.Extensions.Primitives.xml",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml",
 | 
					 | 
				
			||||||
        "microsoft.extensions.primitives.5.0.0.nupkg.sha512",
 | 
					 | 
				
			||||||
        "microsoft.extensions.primitives.nuspec",
 | 
					 | 
				
			||||||
        "useSharedDesignerContext.txt",
 | 
					 | 
				
			||||||
        "version.txt"
 | 
					 | 
				
			||||||
      ]
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "Newtonsoft.Json/13.0.1": {
 | 
					 | 
				
			||||||
      "sha512": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==",
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "path": "newtonsoft.json/13.0.1",
 | 
					 | 
				
			||||||
      "files": [
 | 
					 | 
				
			||||||
        ".nupkg.metadata",
 | 
					 | 
				
			||||||
        ".signature.p7s",
 | 
					 | 
				
			||||||
        "LICENSE.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/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.1.nupkg.sha512",
 | 
					 | 
				
			||||||
        "newtonsoft.json.nuspec",
 | 
					 | 
				
			||||||
        "packageIcon.png"
 | 
					 | 
				
			||||||
      ]
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "NLog/4.7.10": {
 | 
					 | 
				
			||||||
      "sha512": "rcegW7kYOCjl7wX0SzsqpPBqnJ51JKi1WkYb6QBVX0Wc5IgH19Pv4t/co+T0s06OS0Ne44xgkY/mHg0PdrmJow==",
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "path": "nlog/4.7.10",
 | 
					 | 
				
			||||||
      "files": [
 | 
					 | 
				
			||||||
        ".nupkg.metadata",
 | 
					 | 
				
			||||||
        ".signature.p7s",
 | 
					 | 
				
			||||||
        "lib/monoandroid44/NLog.dll",
 | 
					 | 
				
			||||||
        "lib/monoandroid44/NLog.xml",
 | 
					 | 
				
			||||||
        "lib/net35/NLog.dll",
 | 
					 | 
				
			||||||
        "lib/net35/NLog.xml",
 | 
					 | 
				
			||||||
        "lib/net40-client/NLog.dll",
 | 
					 | 
				
			||||||
        "lib/net40-client/NLog.xml",
 | 
					 | 
				
			||||||
        "lib/net45/NLog.dll",
 | 
					 | 
				
			||||||
        "lib/net45/NLog.xml",
 | 
					 | 
				
			||||||
        "lib/netstandard1.3/NLog.dll",
 | 
					 | 
				
			||||||
        "lib/netstandard1.3/NLog.xml",
 | 
					 | 
				
			||||||
        "lib/netstandard1.5/NLog.dll",
 | 
					 | 
				
			||||||
        "lib/netstandard1.5/NLog.xml",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/NLog.dll",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/NLog.xml",
 | 
					 | 
				
			||||||
        "lib/sl4/NLog.dll",
 | 
					 | 
				
			||||||
        "lib/sl4/NLog.xml",
 | 
					 | 
				
			||||||
        "lib/sl5/NLog.dll",
 | 
					 | 
				
			||||||
        "lib/sl5/NLog.xml",
 | 
					 | 
				
			||||||
        "lib/wp8/NLog.dll",
 | 
					 | 
				
			||||||
        "lib/wp8/NLog.xml",
 | 
					 | 
				
			||||||
        "lib/xamarinios10/NLog.dll",
 | 
					 | 
				
			||||||
        "lib/xamarinios10/NLog.xml",
 | 
					 | 
				
			||||||
        "nlog.4.7.10.nupkg.sha512",
 | 
					 | 
				
			||||||
        "nlog.nuspec"
 | 
					 | 
				
			||||||
      ]
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "NLog.Extensions.Logging/1.7.2": {
 | 
					 | 
				
			||||||
      "sha512": "0y1QziAUCdePQc4itPOQF3xDcs0iE9NHlIK0hE0eA0+Ef6E9dnJDPveNu7w2ckYaDfJIFHpOoLK8sZmNEyiBCw==",
 | 
					 | 
				
			||||||
      "type": "package",
 | 
					 | 
				
			||||||
      "path": "nlog.extensions.logging/1.7.2",
 | 
					 | 
				
			||||||
      "files": [
 | 
					 | 
				
			||||||
        ".nupkg.metadata",
 | 
					 | 
				
			||||||
        ".signature.p7s",
 | 
					 | 
				
			||||||
        "N.png",
 | 
					 | 
				
			||||||
        "lib/net451/NLog.Extensions.Logging.dll",
 | 
					 | 
				
			||||||
        "lib/net451/NLog.Extensions.Logging.xml",
 | 
					 | 
				
			||||||
        "lib/net461/NLog.Extensions.Logging.dll",
 | 
					 | 
				
			||||||
        "lib/net461/NLog.Extensions.Logging.xml",
 | 
					 | 
				
			||||||
        "lib/net5.0/NLog.Extensions.Logging.dll",
 | 
					 | 
				
			||||||
        "lib/net5.0/NLog.Extensions.Logging.xml",
 | 
					 | 
				
			||||||
        "lib/netcoreapp3.0/NLog.Extensions.Logging.dll",
 | 
					 | 
				
			||||||
        "lib/netcoreapp3.0/NLog.Extensions.Logging.xml",
 | 
					 | 
				
			||||||
        "lib/netstandard1.3/NLog.Extensions.Logging.dll",
 | 
					 | 
				
			||||||
        "lib/netstandard1.3/NLog.Extensions.Logging.xml",
 | 
					 | 
				
			||||||
        "lib/netstandard1.5/NLog.Extensions.Logging.dll",
 | 
					 | 
				
			||||||
        "lib/netstandard1.5/NLog.Extensions.Logging.xml",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/NLog.Extensions.Logging.dll",
 | 
					 | 
				
			||||||
        "lib/netstandard2.0/NLog.Extensions.Logging.xml",
 | 
					 | 
				
			||||||
        "nlog.extensions.logging.1.7.2.nupkg.sha512",
 | 
					 | 
				
			||||||
        "nlog.extensions.logging.nuspec"
 | 
					 | 
				
			||||||
      ]
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "projectFileDependencyGroups": {
 | 
					 | 
				
			||||||
    "net5.0": [
 | 
					 | 
				
			||||||
      "NLog >= 4.7.10",
 | 
					 | 
				
			||||||
      "NLog.Extensions.Logging >= 1.7.2",
 | 
					 | 
				
			||||||
      "Newtonsoft.Json >= 13.0.1"
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "packageFolders": {
 | 
					 | 
				
			||||||
    "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": {}
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  "project": {
 | 
					 | 
				
			||||||
    "version": "0.0.3",
 | 
					 | 
				
			||||||
    "restore": {
 | 
					 | 
				
			||||||
      "projectUniqueName": "D:\\GIT\\ASCKU_PC\\STPClient\\STPClient.csproj",
 | 
					 | 
				
			||||||
      "projectName": "DataClient",
 | 
					 | 
				
			||||||
      "projectPath": "D:\\GIT\\ASCKU_PC\\STPClient\\STPClient.csproj",
 | 
					 | 
				
			||||||
      "packagesPath": "C:\\Users\\google\\.nuget\\packages\\",
 | 
					 | 
				
			||||||
      "outputPath": "D:\\GIT\\ASCKU_PC\\STPClient\\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"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "configFilePaths": [
 | 
					 | 
				
			||||||
        "C:\\Users\\google\\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"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "originalTargetFrameworks": [
 | 
					 | 
				
			||||||
        "net5.0"
 | 
					 | 
				
			||||||
      ],
 | 
					 | 
				
			||||||
      "sources": {
 | 
					 | 
				
			||||||
        "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
 | 
					 | 
				
			||||||
        "https://api.nuget.org/v3/index.json": {}
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "frameworks": {
 | 
					 | 
				
			||||||
        "net5.0": {
 | 
					 | 
				
			||||||
          "targetAlias": "net5.0",
 | 
					 | 
				
			||||||
          "projectReferences": {}
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "warningProperties": {
 | 
					 | 
				
			||||||
        "warnAsError": [
 | 
					 | 
				
			||||||
          "NU1605"
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "frameworks": {
 | 
					 | 
				
			||||||
      "net5.0": {
 | 
					 | 
				
			||||||
        "targetAlias": "net5.0",
 | 
					 | 
				
			||||||
        "dependencies": {
 | 
					 | 
				
			||||||
          "NLog": {
 | 
					 | 
				
			||||||
            "target": "Package",
 | 
					 | 
				
			||||||
            "version": "[4.7.10, )"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "NLog.Extensions.Logging": {
 | 
					 | 
				
			||||||
            "target": "Package",
 | 
					 | 
				
			||||||
            "version": "[1.7.2, )"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "Newtonsoft.Json": {
 | 
					 | 
				
			||||||
            "target": "Package",
 | 
					 | 
				
			||||||
            "version": "[13.0.1, )"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "imports": [
 | 
					 | 
				
			||||||
          "net461",
 | 
					 | 
				
			||||||
          "net462",
 | 
					 | 
				
			||||||
          "net47",
 | 
					 | 
				
			||||||
          "net471",
 | 
					 | 
				
			||||||
          "net472",
 | 
					 | 
				
			||||||
          "net48"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "assetTargetFallback": true,
 | 
					 | 
				
			||||||
        "warn": true,
 | 
					 | 
				
			||||||
        "frameworkReferences": {
 | 
					 | 
				
			||||||
          "Microsoft.NETCore.App": {
 | 
					 | 
				
			||||||
            "privateAssets": "all"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.201\\RuntimeIdentifierGraph.json"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,19 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "version": 2,
 | 
					 | 
				
			||||||
  "dgSpecHash": "EmbwZ7SwMJWgbFue8nyHBdE4ncOyGFZrHWPrhJnnAGQ3ZcXtnfZ3crT7OVc5RbuLASujwv+C2eky/VDZVjvtGg==",
 | 
					 | 
				
			||||||
  "success": true,
 | 
					 | 
				
			||||||
  "projectFilePath": "D:\\GIT\\ASCKU_PC\\STPClient\\STPClient.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"
 | 
					 | 
				
			||||||
  ],
 | 
					 | 
				
			||||||
  "logs": []
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							@@ -14,11 +14,15 @@ namespace Test2
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	class Program
 | 
						class Program
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 | 
							static bool cycle = true;
 | 
				
			||||||
		static void Main(string[] args)
 | 
							static void Main(string[] args)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			LogConf();
 | 
								LogConf();
 | 
				
			||||||
			T3();
 | 
								var t = new Task(() => T1());
 | 
				
			||||||
			Console.WriteLine("Hello World!");
 | 
								t.Start();
 | 
				
			||||||
 | 
								Console.ReadKey();
 | 
				
			||||||
 | 
								cycle = false;
 | 
				
			||||||
 | 
								//Console.WriteLine("Hello World!");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		static void LogConf()
 | 
							static void LogConf()
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
@@ -52,6 +56,28 @@ namespace Test2
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		static void T1()
 | 
							static void T1()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								var t = new NETClient("10.10.45.151", 1070);
 | 
				
			||||||
 | 
								while (cycle)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									var arr = t.Full_Server_Time();
 | 
				
			||||||
 | 
									Console.WriteLine(arr.ToString("yyyy.MM.dd HH.mm.ss"));
 | 
				
			||||||
 | 
									Task.Delay(1000).Wait();
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							static void OLD4()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								var t = new NETClient("10.10.45.151", 1070);
 | 
				
			||||||
 | 
								var task1 = new Task(() => t.Full_Download(new DateTime(2021, 06, 04), 33, 1));
 | 
				
			||||||
 | 
								var task2 = new Task(() => t.Full_Download(new DateTime(2021, 06, 04), 34, 1));
 | 
				
			||||||
 | 
								task1.Start();
 | 
				
			||||||
 | 
								task1.GetAwaiter().GetResult();
 | 
				
			||||||
 | 
								task2.Start();
 | 
				
			||||||
 | 
								task2.GetAwaiter().GetResult();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							static void OLD1()
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			var t = new NETClient("10.10.45.151", 1070);
 | 
								var t = new NETClient("10.10.45.151", 1070);
 | 
				
			||||||
			var task = new Task<byte[]>(() => t.Full_Download_NH(new DateTime(2021, 06, 02), 12, 1));
 | 
								var task = new Task<byte[]>(() => t.Full_Download_NH(new DateTime(2021, 06, 02), 12, 1));
 | 
				
			||||||
@@ -69,7 +95,7 @@ namespace Test2
 | 
				
			|||||||
				file.Write(res, 0, res.Length);
 | 
									file.Write(res, 0, res.Length);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		static void T3()
 | 
							static void OLD2()
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			string[] tes = {
 | 
								string[] tes = {
 | 
				
			||||||
				"version",
 | 
									"version",
 | 
				
			||||||
@@ -166,6 +192,26 @@ namespace Test2
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							static void OLD3()
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								var rnd = new Random();
 | 
				
			||||||
 | 
								var t = new NETClient("10.10.45.151", 1070);
 | 
				
			||||||
 | 
								string[] a = null;
 | 
				
			||||||
 | 
								int c = 0;
 | 
				
			||||||
 | 
								for (var i = 0; i < 8; i++)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (a == null || a.Length == 0)
 | 
				
			||||||
 | 
										a = t.Full_Dir_Browse();
 | 
				
			||||||
 | 
									else
 | 
				
			||||||
 | 
										a = t.Full_Dir_Browse(a[c]);
 | 
				
			||||||
 | 
									Console.WriteLine((i + 1).ToString() + " test:");
 | 
				
			||||||
 | 
									if (a != null)
 | 
				
			||||||
 | 
										foreach (var e in a) Console.WriteLine(e);
 | 
				
			||||||
 | 
									else
 | 
				
			||||||
 | 
										Console.WriteLine("NULL");
 | 
				
			||||||
 | 
									c = (a == null) ? 0 : rnd.Next(0, a.Length);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										221
									
								
								Test2/bin/Debug/net5.0/DataClient.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										221
									
								
								Test2/bin/Debug/net5.0/DataClient.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,221 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0"?>
 | 
				
			||||||
 | 
					<doc>
 | 
				
			||||||
 | 
					    <assembly>
 | 
				
			||||||
 | 
					        <name>DataClient</name>
 | 
				
			||||||
 | 
					    </assembly>
 | 
				
			||||||
 | 
					    <members>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.NETClient.Status">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
									Статус процесса выполнения запроса.
 | 
				
			||||||
 | 
									Предполагается использовать только на больших
 | 
				
			||||||
 | 
									загрузках и в ассинхронных задачах
 | 
				
			||||||
 | 
								</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="T:DataClient.NETClient.Code">
 | 
				
			||||||
 | 
					            <summary>Коды для работы с СТП.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.NETClient.Ip">
 | 
				
			||||||
 | 
					            <summary>IP адрес СТП.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.NETClient.Port">
 | 
				
			||||||
 | 
					            <summary>Порт СТП.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.NETClient.RetryCount">
 | 
				
			||||||
 | 
					            <summary>Количество попыток переподключения.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.NETClient.RetryInterval">
 | 
				
			||||||
 | 
					            <summary>Время в секундах между попытками переподключения.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.#ctor">
 | 
				
			||||||
 | 
					            <summary>Основной конструктор класса NetClient. Ip-адрес - 127.0.0.1; Порт - 1070;</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.#ctor(System.String,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Конструктор класса NetClient с параметрами.</summary><param name="ip">Ip-адрес сервера.</param><param name="port">Порт сервера.</param>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.ReceiveBytesFull(System.Net.Sockets.NetworkStream,System.Int32,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Получение неопределенного количество байт с сервера. Количество ограничено максимальным значением типа UInt.</summary><param name="ns">Открытый сетевой поток.</param><param name="awaitInterval">Время ожидания между проверками буфера.</param><param name="tryCounts">Количество проверок буфера.</param><returns>Массив байт.</returns><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Соединение с сервером закрыто.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Стрим недоступен для Чтения.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.TimeoutException">
 | 
				
			||||||
 | 
									Сервер сбросил соединение.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.ReceiveBytesFixSize(System.Net.Sockets.NetworkStream,System.UInt32,System.Int32,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Получение определенного количество байт с сервера.</summary><param name="ns">Открытый сетевой поток.</param><param name="size">Кол-во получаемых байт.</param><param name="awaitInterval">Время ожидания между проверками буфера.</param><param name="tryCounts">Количество проверок буфера.</param><returns>Массив байт. Может быть меньше заданного количества.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Размер байт не должен равняться нулю.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Стрим недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.TimeoutException">
 | 
				
			||||||
 | 
									Сервер сбросил соединение.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.SendBytes(System.Net.Sockets.NetworkStream,System.Byte[])">
 | 
				
			||||||
 | 
					            <summary>Отправка массива байт на СТП.</summary><param name="ns">Открытый сетевой поток.</param><param name="arr">Массив байт.</param><returns>Результат отправки.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Размер байт не должен равняться нулю.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Стрим недоступен для записи.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.CreateCode(System.UInt32,System.String,System.Byte[],System.Byte[])">
 | 
				
			||||||
 | 
					            <summary>Формирование массива байт на отправку.</summary><param name="code">Код комманды. Конвертируется в 4 байта. (0x00 0x00 0x00 0x00)</param><param name="val">Передаваемая строка.</param><param name="prefix">Байты перед передаваемой строкой.</param><param name="postfix">Байты после передаваемой строкой.</param><returns>Массив байт для отправки на СТП.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Connect">
 | 
				
			||||||
 | 
					            <summary>Открытие соединения к серверу.</summary><remarks>Информирует только о подключении к серверу. Исключения опускает.</remarks><returns>Состояние подключения.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Connected">
 | 
				
			||||||
 | 
					            <summary>Проверка подключения.</summary><returns>Состояние подключения.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Close">
 | 
				
			||||||
 | 
					            <summary>Закрыть подключение.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.SendBytes(System.Byte[])">
 | 
				
			||||||
 | 
					            <summary>Отправка массива байт на СТП.</summary><param name="send">Массив байт для отправки.</param><returns>Результат отправки.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Размер байт не должен равняться нулю.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.ReceiveBytes">
 | 
				
			||||||
 | 
					            <summary>Получение неизвестного количество байт.</summary><remarks>Возвращает null, если что-то пошло не так.</remarks><returns>Массив байт.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.ReceiveBytes(System.UInt32)">
 | 
				
			||||||
 | 
					            <summary>Получение определенного количество байт.</summary><param name="size">Количество байт.</param><remarks>Возвращает null, если что-то пошло не так.</remarks><returns>Массив байт определенного размера. Может массив быть меньше, если в буфере не будет достаточно данных.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.My_Connect">
 | 
				
			||||||
 | 
					            <summary>Внутренняя функция для создания подключения.</summary><returns>Возвращает флаг необходимости закрытия соединения.</returns><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.My_Close(System.Boolean)">
 | 
				
			||||||
 | 
					            <summary>Внетренняя функция для закрытия соединения.</summary><param name="needClose">Флаг о необходимости закрыть соединение.</param>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.GetFile(DataClient.NETClient.Code,System.DateTime,System.Int32,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Внутренняя функция получения файлов.</summary><param name="code">Код, который будет отправлен на сервер.</param><param name="date">Дата. Из неё формируется строка в формате YYYMMDD.</param><param name="vdp">Номер печи. 00 - общецеховые параметры.</param><param name="idx">Индекс файла. От 0 до 15.</param><returns>Массив байт, соответствующий запрашиваемому файлу.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Неверный код, для получения файла.
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Full_Download_NH(System.DateTime,System.Int32,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Получение файла данных (байтами) с СТП.</summary><param name="date">Дата. Из неё формируется строка в формате YYYMMDD.</param><param name="vdp">Номер печи. 00 - общецеховые параметры.</param><param name="idx">Индекс файла. От 0 до 15.</param><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>Обработанный массив байт.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Неверный код, для получения файла.
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Full_Download(System.DateTime,System.Int32,System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Получение файла данных (байтами) с СТП.</summary><param name="date">Дата. Из неё формируется строка в формате YYYMMDD.</param><param name="vdp">Номер печи. 00 - общецеховые параметры.</param><param name="idx">Индекс файла. От 0 до 15.</param><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>Обработанный массив байт.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Неверный код, для получения файла.
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Full_By_Name(System.String)">
 | 
				
			||||||
 | 
					            <summary>Получение файла данных (байтами) с СТП.</summary><param name="val">Название команды.</param><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>Массив байт, соответствующий этой команде. Может вернуть null.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.NETClient.Full_Dir_Browse(System.String)">
 | 
				
			||||||
 | 
					            <summary>Получение структуры файлов и папок в запрашиваемой директории.</summary><param name="dir">Путь, структуру которого надо отобразить.</param><remarks>Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.</remarks><returns>Массив строк. Полные пути к файлам и папкам. Может вернуть null.</returns><exception cref="T:System.ArgumentException">
 | 
				
			||||||
 | 
									Неверный флаг окончания строки.
 | 
				
			||||||
 | 
									Неверный флаг во время получения файла.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.IO.IOException">
 | 
				
			||||||
 | 
									Предыдущий запрос не закончен.
 | 
				
			||||||
 | 
									Поток недоступен для записи.
 | 
				
			||||||
 | 
								</exception><exception cref="T:System.InvalidOperationException">
 | 
				
			||||||
 | 
									Не получилось соединиться с сервером.
 | 
				
			||||||
 | 
								</exception>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="T:DataClient.STPClient">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            Класс для связи с СТП. Содержит все инструменты, для получения данных.
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.STPClient.UseServer">
 | 
				
			||||||
 | 
					            <summary>Номер сервера, используемого по умолчанию.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="P:DataClient.STPClient.ListServers">
 | 
				
			||||||
 | 
					            <summary>Массив серверов, инициализированных в экземпляре класса.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.GetServerIdByName(System.String)">
 | 
				
			||||||
 | 
					            <summary>Получение номера сервера по его названию.</summary>
 | 
				
			||||||
 | 
					            <param name="name">Название сервера.</param>
 | 
				
			||||||
 | 
					            <returns>Номер сервера в списке серверов.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.GetServerNameById(System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Получение название сервера по его номеру.</summary>
 | 
				
			||||||
 | 
					            <param name="id">Номер сервера в списке серверов.</param>
 | 
				
			||||||
 | 
					            <returns>Название сервера.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.CheckDataServer(System.String,System.Int32,System.String)">
 | 
				
			||||||
 | 
					            <summary>Проверка параметров серевера перед их добавлением в список.</summary>
 | 
				
			||||||
 | 
					            <param name="ip">IP адресс сервера.</param>
 | 
				
			||||||
 | 
					            <param name="port">Порт сервера.</param>
 | 
				
			||||||
 | 
					            <param name="dir">Путь к архиву.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.AddServer(System.String,System.String,System.Int32,System.String)">
 | 
				
			||||||
 | 
					            <summary>Добавление сервера в список серверов.</summary>
 | 
				
			||||||
 | 
					            <param name="name">Название сервера</param>
 | 
				
			||||||
 | 
					            <param name="ip">IP адресс сервера.</param>
 | 
				
			||||||
 | 
					            <param name="port">Порт сервера.</param>
 | 
				
			||||||
 | 
					            <param name="dir">Путь к архиву.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.ChangeServerById(System.Int32,System.String,System.String,System.Int32,System.String)">
 | 
				
			||||||
 | 
					            <summary>Изменение сервера в списке серверов по его номеру.</summary>
 | 
				
			||||||
 | 
					            <param name="id">Номер сервера в списке серверов.</param>
 | 
				
			||||||
 | 
					            <param name="name">Название сервера.</param>
 | 
				
			||||||
 | 
					            <param name="ip">IP адресс сервера.</param>
 | 
				
			||||||
 | 
					            <param name="port">Порт сервера.</param>
 | 
				
			||||||
 | 
					            <param name="dir">Путь к архиву.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.ChangeServerByName(System.String,System.String,System.Int32,System.String)">
 | 
				
			||||||
 | 
					            <summary>Изменение сервера в списке серверов по его названию.</summary>
 | 
				
			||||||
 | 
					            <param name="name">Название сервера.</param>
 | 
				
			||||||
 | 
					            <param name="ip">IP адресс сервера.</param>
 | 
				
			||||||
 | 
					            <param name="port">Порт сервера.</param>
 | 
				
			||||||
 | 
					            <param name="dir">Путь к архиву.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.RemoveServerById(System.Int32)">
 | 
				
			||||||
 | 
					            <summary>Удаление сервера из списка серверов по его номеру.</summary>
 | 
				
			||||||
 | 
					            <param name="id">Номер сервера в списке серверов.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.RemoveServerByName(System.String)">
 | 
				
			||||||
 | 
					            <summary>Удаление сервера из списка серверов по его названию.</summary>
 | 
				
			||||||
 | 
					            <param name="name">Название сервера.</param>
 | 
				
			||||||
 | 
					            <returns>Результат выполнения функции.</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.Config">
 | 
				
			||||||
 | 
					            <summary>Чтение конфигурационнного файла и установка параметров по умолчанию.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.#ctor">
 | 
				
			||||||
 | 
					            <summary>Создание экземпляра класса.</summary>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:DataClient.STPClient.#ctor(System.String)">
 | 
				
			||||||
 | 
					            <summary>Создание экземпляра класса с указанием конфигурационного файла.</summary>
 | 
				
			||||||
 | 
					            <param name="confDir">Путь к файлу конфигурации.</param>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					    </members>
 | 
				
			||||||
 | 
					</doc>
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -28,3 +28,4 @@ D:\GIT\ASCKU_PC\Test2\obj\Debug\net5.0\Test2.pdb
 | 
				
			|||||||
D:\GIT\ASCKU_PC\Test2\obj\Debug\net5.0\Test2.genruntimeconfig.cache
 | 
					D:\GIT\ASCKU_PC\Test2\obj\Debug\net5.0\Test2.genruntimeconfig.cache
 | 
				
			||||||
D:\GIT\ASCKU_PC\Test2\bin\Debug\net5.0\DataClient.dll
 | 
					D:\GIT\ASCKU_PC\Test2\bin\Debug\net5.0\DataClient.dll
 | 
				
			||||||
D:\GIT\ASCKU_PC\Test2\bin\Debug\net5.0\DataClient.pdb
 | 
					D:\GIT\ASCKU_PC\Test2\bin\Debug\net5.0\DataClient.pdb
 | 
				
			||||||
 | 
					D:\GIT\ASCKU_PC\Test2\bin\Debug\net5.0\DataClient.xml
 | 
				
			||||||
 
 | 
				
			|||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user