diff --git a/.vs/ASCKU Projects/DesignTimeBuild/.dtbcache.v2 b/.vs/ASCKU Projects/DesignTimeBuild/.dtbcache.v2
index 009e236..be8e563 100644
Binary files a/.vs/ASCKU Projects/DesignTimeBuild/.dtbcache.v2 and b/.vs/ASCKU Projects/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/.vs/ASCKU Projects/v16/.suo b/.vs/ASCKU Projects/v16/.suo
index 604faf5..62e8628 100644
Binary files a/.vs/ASCKU Projects/v16/.suo and b/.vs/ASCKU Projects/v16/.suo differ
diff --git a/DataClient/DataClient.csproj b/DataClient/DataClient.csproj
index 015554f..2d125e6 100644
--- a/DataClient/DataClient.csproj
+++ b/DataClient/DataClient.csproj
@@ -8,7 +8,7 @@
-
+ D:\GIT\ASCKU_PC\DataClient\DataClient.xml
diff --git a/DataClient/DataClient.xml b/DataClient/DataClient.xml
new file mode 100644
index 0000000..7bbaf56
--- /dev/null
+++ b/DataClient/DataClient.xml
@@ -0,0 +1,221 @@
+
+
+
+ DataClient
+
+
+
+
+ Статус процесса выполнения запроса.
+ Предполагается использовать только на больших
+ загрузках и в ассинхронных задачах
+
+
+
+ Коды для работы с СТП.
+
+
+ IP адрес СТП.
+
+
+ Порт СТП.
+
+
+ Количество попыток переподключения.
+
+
+ Время в секундах между попытками переподключения.
+
+
+ Основной конструктор класса NetClient. Ip-адрес - 127.0.0.1; Порт - 1070;
+
+
+ Конструктор класса NetClient с параметрами.Ip-адрес сервера.Порт сервера.
+
+
+ Получение неопределенного количество байт с сервера. Количество ограничено максимальным значением типа UInt.Открытый сетевой поток.Время ожидания между проверками буфера.Количество проверок буфера.Массив байт.
+ Соединение с сервером закрыто.
+
+ Стрим недоступен для Чтения.
+
+ Сервер сбросил соединение.
+
+
+
+ Получение определенного количество байт с сервера.Открытый сетевой поток.Кол-во получаемых байт.Время ожидания между проверками буфера.Количество проверок буфера.Массив байт. Может быть меньше заданного количества.
+ Размер байт не должен равняться нулю.
+
+ Стрим недоступен для записи.
+
+ Сервер сбросил соединение.
+
+
+
+ Отправка массива байт на СТП.Открытый сетевой поток.Массив байт.Результат отправки.
+ Размер байт не должен равняться нулю.
+
+ Стрим недоступен для записи.
+
+
+
+ Формирование массива байт на отправку.Код комманды. Конвертируется в 4 байта. (0x00 0x00 0x00 0x00)Передаваемая строка.Байты перед передаваемой строкой.Байты после передаваемой строкой.Массив байт для отправки на СТП.
+
+
+ Открытие соединения к серверу.Информирует только о подключении к серверу. Исключения опускает.Состояние подключения.
+
+
+ Проверка подключения.Состояние подключения.
+
+
+ Закрыть подключение.
+
+
+ Отправка массива байт на СТП.Массив байт для отправки.Результат отправки.
+ Размер байт не должен равняться нулю.
+
+ Поток недоступен для записи.
+
+
+
+ Получение неизвестного количество байт.Возвращает null, если что-то пошло не так.Массив байт.
+
+
+ Получение определенного количество байт.Количество байт.Возвращает null, если что-то пошло не так.Массив байт определенного размера. Может массив быть меньше, если в буфере не будет достаточно данных.
+
+
+ Внутренняя функция для создания подключения.Возвращает флаг необходимости закрытия соединения.
+ Не получилось соединиться с сервером.
+
+
+
+ Внетренняя функция для закрытия соединения.Флаг о необходимости закрыть соединение.
+
+
+ Внутренняя функция получения файлов.Код, который будет отправлен на сервер.Дата. Из неё формируется строка в формате YYYMMDD.Номер печи. 00 - общецеховые параметры.Индекс файла. От 0 до 15.Массив байт, соответствующий запрашиваемому файлу.
+ Неверный код, для получения файла.
+ Неверный флаг во время получения файла.
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+ Не получилось соединиться с сервером.
+
+
+
+ Получение файла данных (байтами) с СТП.Дата. Из неё формируется строка в формате YYYMMDD.Номер печи. 00 - общецеховые параметры.Индекс файла. От 0 до 15.Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.Обработанный массив байт.
+ Неверный код, для получения файла.
+ Неверный флаг во время получения файла.
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+ Не получилось соединиться с сервером.
+
+
+
+ Получение файла данных (байтами) с СТП.Дата. Из неё формируется строка в формате YYYMMDD.Номер печи. 00 - общецеховые параметры.Индекс файла. От 0 до 15.Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.Обработанный массив байт.
+ Неверный код, для получения файла.
+ Неверный флаг во время получения файла.
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+ Не получилось соединиться с сервером.
+
+
+
+ Получение файла данных (байтами) с СТП.Название команды.Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.Массив байт, соответствующий этой команде. Может вернуть null.
+ Неверный флаг во время получения файла.
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+ Не получилось соединиться с сервером.
+
+
+
+ Получение структуры файлов и папок в запрашиваемой директории.Путь, структуру которого надо отобразить.Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.Массив строк. Полные пути к файлам и папкам. Может вернуть null.
+ Неверный флаг окончания строки.
+ Неверный флаг во время получения файла.
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+ Не получилось соединиться с сервером.
+
+
+
+
+ Класс для связи с СТП. Содержит все инструменты, для получения данных.
+
+
+
+ Номер сервера, используемого по умолчанию.
+
+
+ Массив серверов, инициализированных в экземпляре класса.
+
+
+ Получение номера сервера по его названию.
+ Название сервера.
+ Номер сервера в списке серверов.
+
+
+ Получение название сервера по его номеру.
+ Номер сервера в списке серверов.
+ Название сервера.
+
+
+ Проверка параметров серевера перед их добавлением в список.
+ IP адресс сервера.
+ Порт сервера.
+ Путь к архиву.
+ Результат выполнения функции.
+
+
+ Добавление сервера в список серверов.
+ Название сервера
+ IP адресс сервера.
+ Порт сервера.
+ Путь к архиву.
+ Результат выполнения функции.
+
+
+ Изменение сервера в списке серверов по его номеру.
+ Номер сервера в списке серверов.
+ Название сервера.
+ IP адресс сервера.
+ Порт сервера.
+ Путь к архиву.
+ Результат выполнения функции.
+
+
+ Изменение сервера в списке серверов по его названию.
+ Название сервера.
+ IP адресс сервера.
+ Порт сервера.
+ Путь к архиву.
+ Результат выполнения функции.
+
+
+ Удаление сервера из списка серверов по его номеру.
+ Номер сервера в списке серверов.
+ Результат выполнения функции.
+
+
+ Удаление сервера из списка серверов по его названию.
+ Название сервера.
+ Результат выполнения функции.
+
+
+ Чтение конфигурационнного файла и установка параметров по умолчанию.
+
+
+ Создание экземпляра класса.
+
+
+ Создание экземпляра класса с указанием конфигурационного файла.
+ Путь к файлу конфигурации.
+
+
+
diff --git a/DataClient/DataClientSrc.xml b/DataClient/DataClientSrc.xml
new file mode 100644
index 0000000..7586bb3
--- /dev/null
+++ b/DataClient/DataClientSrc.xml
@@ -0,0 +1,240 @@
+
+
+
+
+ Закрыть подключение.
+
+
+ Коды для работы с СТП.
+
+
+ Открытие соединения к серверу.
+ Информирует только о подключении к серверу. Исключения опускает.
+ Состояние подключения.
+
+
+ Проверка подключения.
+ Состояние подключения.
+
+
+ Формирование массива байт на отправку.
+ Код комманды. Конвертируется в 4 байта. (0x00 0x00 0x00 0x00)
+ Передаваемая строка.
+ Байты перед передаваемой строкой.
+ Байты после передаваемой строкой.
+ Массив байт для отправки на СТП.
+
+
+ Получение файла данных (байтами) с СТП.
+ Дата. Из неё формируется строка в формате YYYMMDD.
+ Номер печи. 00 - общецеховые параметры.
+ Индекс файла. От 0 до 15.
+ Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.
+ Обработанный массив байт.
+
+ Неверный код, для получения файла.
+ Неверный флаг во время получения файла.
+
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+
+ Не получилось соединиться с сервером.
+
+
+
+ Получение файла данных (байтами) с СТП.
+ Дата. Из неё формируется строка в формате YYYMMDD.
+ Номер печи. 00 - общецеховые параметры.
+ Индекс файла. От 0 до 15.
+ Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.
+ Обработанный массив байт.
+
+ Неверный код, для получения файла.
+ Неверный флаг во время получения файла.
+
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+
+ Не получилось соединиться с сервером.
+
+
+
+ Внутренняя функция получения файлов.
+ Код, который будет отправлен на сервер.
+ Дата. Из неё формируется строка в формате YYYMMDD.
+ Номер печи. 00 - общецеховые параметры.
+ Индекс файла. От 0 до 15.
+ Массив байт, соответствующий запрашиваемому файлу.
+
+ Неверный код, для получения файла.
+ Неверный флаг во время получения файла.
+
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+
+ Не получилось соединиться с сервером.
+
+
+
+
+ IP адрес СТП.
+
+
+ Внетренняя функция для закрытия соединения.
+ Флаг о необходимости закрыть соединение.
+
+
+ Внутренняя функция для создания подключения.
+ Возвращает флаг необходимости закрытия соединения.
+
+ Не получилось соединиться с сервером.
+
+
+
+ Основной конструктор класса NetClient. Ip-адрес - 127.0.0.1; Порт - 1070;
+
+
+ Конструктор класса NetClient с параметрами.
+ Ip-адрес сервера.
+ Порт сервера.
+
+
+ Порт СТП.
+
+
+ Получение неизвестного количество байт.
+ Возвращает null, если что-то пошло не так.
+ Массив байт.
+
+
+ Получение определенного количество байт.
+ Количество байт.
+ Возвращает null, если что-то пошло не так.
+ Массив байт определенного размера. Может массив быть меньше, если в буфере не будет достаточно данных.
+
+
+ Получение определенного количество байт с сервера.
+ Открытый сетевой поток.
+ Кол-во получаемых байт.
+ Время ожидания между проверками буфера.
+ Количество проверок буфера.
+ Массив байт. Может быть меньше заданного количества.
+
+ Размер байт не должен равняться нулю.
+
+
+ Стрим недоступен для записи.
+
+
+ Сервер сбросил соединение.
+
+
+
+ Получение неопределенного количество байт с сервера. Количество ограничено максимальным значением типа UInt.
+ Открытый сетевой поток.
+ Время ожидания между проверками буфера.
+ Количество проверок буфера.
+ Массив байт.
+
+ Соединение с сервером закрыто.
+
+
+ Стрим недоступен для Чтения.
+
+
+ Сервер сбросил соединение.
+
+
+
+ Количество попыток переподключения.
+
+
+ Время в секундах между попытками переподключения.
+
+
+ Отправка массива байт на СТП.
+ Открытый сетевой поток.
+ Массив байт.
+ Результат отправки.
+
+ Размер байт не должен равняться нулю.
+
+
+ Стрим недоступен для записи.
+
+
+
+ Отправка массива байт на СТП.
+ Массив байт для отправки.
+ Результат отправки.
+
+ Размер байт не должен равняться нулю.
+
+
+ Поток недоступен для записи.
+
+
+
+
+ Статус процесса выполнения запроса.
+ Предполагается использовать только на больших
+ загрузках и в ассинхронных задачах
+
+
+
+ Получение файла данных (байтами) с СТП.
+ Название команды.
+ Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.
+ Массив байт, соответствующий этой команде. Может вернуть null.
+
+ Неверный флаг во время получения файла.
+
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+
+ Не получилось соединиться с сервером.
+
+
+
+
+ Получение структуры файлов и папок в запрашиваемой директории.
+ Путь, структуру которого надо отобразить.
+ Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.
+ Массив строк. Полные пути к файлам и папкам. Может вернуть null.
+
+ Неверный флаг окончания строки.
+ Неверный флаг во время получения файла.
+
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+
+ Не получилось соединиться с сервером.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DataClient/NETClient.cs b/DataClient/NETClient.cs
index c29e3d0..744c13d 100644
--- a/DataClient/NETClient.cs
+++ b/DataClient/NETClient.cs
@@ -7,6 +7,7 @@ using System.Text;
using System.Threading.Tasks;
using NLog;
using DataClient.Struct;
+using System.IO;
namespace DataClient
{
@@ -15,8 +16,7 @@ namespace DataClient
private Logger log = LogManager.GetCurrentClassLogger();
private Encoding enc;
private TcpClient tcpC = null;
- /// Статус процесса выполнения запроса.
- /// Предполагается использовать только на больших загрузках и в ассинхронных задачах.
+ ///
public double Status
{
get
@@ -31,7 +31,6 @@ namespace DataClient
}
}
private NetStatus stat = new NetStatus();
- /// Коды для работы с СТП.
/*
0x00 0x00 0x00 0x00 - 0000 - version
0x01 0x00 0x00 0x00 - 0001 - file list
@@ -40,7 +39,7 @@ namespace DataClient
0x05 0x00 0x00 0x00 - 0005 - pasp find
0x06 0x00 0x00 0x00 - 0006 - prog list
0x07 0x00 0x00 0x00 - 0007 - prog download
-0x08 0x00 0x00 0x00 - 0008 - server time
+
0x09 0x00 0x00 0x00 - 0009 - download usov
0x0A 0x00 0x00 0x00 - 0010 - slit history
0x0B 0x00 0x00 0x00 - 0011 - keep alive
@@ -54,7 +53,6 @@ namespace DataClient
- pasp browse2
- arch history
- download usov nhv
-0x17 0x00 0x00 0x00 - 0023 - dir browse
- vdp sim med
- vdp flags
0x1A 0x00 0x00 0x00 - 0026 - user flags
@@ -109,14 +107,15 @@ namespace DataClient
- by name
- test
*/
+ ///
public enum Code : uint
{
download = 2,
+ server_time = 8,
download_nh = 21,
-
+ dir_browse = 23,
by_name = uint.MaxValue,
-
TCP_COM_VERSION = 0,
TCP_COM_FILE_LIST = 1,
TCP_COM_PASP_BROWSE = 3,
@@ -124,7 +123,7 @@ namespace DataClient
TCP_COM_PASP_FIND = 5,
TCP_COM_PROG_LIST = 6,
TCP_COM_PROG_DOWNLOAD = 7,
- TCP_COM_SERVER_TIME = 8,
+
TCP_COM_DOWNLOAD_USOV = 9,
TCP_COM_SLIT_HISTORY = 10,
TCP_COM_KEEP_ALIVE = 11,
@@ -138,7 +137,6 @@ namespace DataClient
TCP_COM_PASP_BROWSE2 = 19,
TCP_COM_ARCH_HISTORY = 20,
TCP_COM_DOWNLOAD_USOV_NH = 22,
- TCP_COM_DIR_BROWSE = 23,
TCP_COM_VDP_SIM_MED = 24,
TCP_COM_VDP_FLAGS = 25,
TCP_COM_USER_FLAGS = 26,
@@ -191,28 +189,28 @@ namespace DataClient
TCP_COM_GET_CUR_PARAMS_5 = 73,
TCP_COM_FIX_DB_CYCLE = 74,
}
- /// IP адрес СТП.
+ ///
public string Ip
{
get { return ip; }
set { ip = (IPAddress.TryParse(value, out _)) ? value : ip; }
}
private string ip = "127.0.0.1";
- /// Порт СТП.
+ ///
public int Port
{
get { return port; }
set { port = (value < 1) ? 1 : (value > 65535) ? 65535 : value; }
}
private int port = 1070;
- /// Количество попыток переподключения.
+ ///
public int RetryCount
{
get { return retryCount; }
set { retryCount = value < 1 ? 1 : value; }
}
private int retryCount = 3;
- /// Время в секундах между попытками переподключения.
+ ///
public int RetryInterval
{
get { return retryInterval; }
@@ -220,14 +218,15 @@ namespace DataClient
}
private int retryInterval = 1;
-
//Construction
+ ///
public NETClient()
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
enc = Encoding.GetEncoding(866);
tcpC = new TcpClient(new IPEndPoint(IPAddress.Parse(ip), port));
}
+ ///
public NETClient(string ip, int port)
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
@@ -238,89 +237,52 @@ namespace DataClient
}
//Work with socket functions
- /// Получить неизвестное количество байт.
- /// Открытый сетевой поток.
- /// Время ожидания между проверккми буфера.
- /// Количество проверок буфера.
- /// Массив байт.
- private byte[] ReceiveBytesUnknown(NetworkStream ns, int awaitInterval = 1, int tryCounts = 3)
+ ///
+ private byte[] ReceiveBytesFull(NetworkStream ns, int awaitInterval = 1, int tryCounts = 3)
{
- tryCounts = (tryCounts < 1) ? 1 : tryCounts;
- awaitInterval = (awaitInterval < 1) ? 1 : awaitInterval;
- var res = new List();
- 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;
- 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();
+ try{ return ReceiveBytesFixSize(ns, uint.MaxValue, awaitInterval, tryCounts); }
+ catch { throw; }
}
- /// Получить определенное количество байт.
- /// Открытый сетевой поток.
- /// Кол-во получаемый байт.
- /// Массив байт, равный заданному кол-ву.
+ ///
private byte[] ReceiveBytesFixSize(NetworkStream ns, uint size, int awaitInterval = 1, int tryCounts = 3)
{
tryCounts = (tryCounts < 1) ? 1 : tryCounts;
awaitInterval = (awaitInterval < 1) ? 1 : awaitInterval;
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.");
- var res = new byte[size];
- var countSize = 0;
-
+ if (!ns.CanRead) throw new IOException("NetworkStream not access to Read.");
+ var res = new List();
int tryCount = 0;
do
{
- if (!ns.Socket.Connected) throw new InvalidOperationException("Server drop connection.");
+ if (!ns.Socket.Connected) throw new TimeoutException("Server drop connection.");
if (!ns.DataAvailable)
{
- tryCount++;
Task.Delay(awaitInterval * 1000).Wait();
+ tryCount++;
continue;
}
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);
- for (var i = 0; i < length; i++) res[countSize++] = buf[i];
- if (countSize == size)
- return res;
+ for (var i = 0; i < length; i++) res.Add(buf[i]);
+ if (res.Count == size) return res.ToArray();
} while (tryCount < tryCounts);
- return res;
+ return res.ToArray();
}
- /// Отправить массив байт на СТП.
- /// Открытый сетевой поток.
- /// Массив байт.
- /// Результат отправки.
+ ///
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.CanWrite) throw new IOException("NetworkStream not access to Write.");
try { ns.Write(arr, 0, arr.Length); }
catch { return false; }
return true;
}
//Support functions
- /// Формирование массива байт на отправку.
- /// Код комманды. Конвертируется в 4 байта. (0x00 0x00 0x00 0x00)
- /// Байты перед передаваемой строкой.
- /// Передаваемая строка.
- /// Байты после передаваемой строкой.
- /// Массив байт для отправки на СТП.
+ ///
public byte[] CreateCode(uint code, string val = null, byte[] prefix = null, byte[] postfix = null)
{
var res = new List();
@@ -339,8 +301,7 @@ namespace DataClient
}
//Main functions
- /// Открыть подключение.
- /// Результат выполнения функции.
+ ///
public bool Connect()
{
if (Connected()) return true;
@@ -349,80 +310,61 @@ namespace DataClient
catch { return false; }
return Connected();
}
- /// Проверка подключения.
- /// Возвращает состояние подключения.
- public bool Connected()
+ ///
+ public bool Connected() { return (tcpC != null && tcpC.Connected); }
+ ///
+ public void Close() { if (tcpC != null && !tcpC.Connected) tcpC.Close(); }
+ ///
+ public bool SendBytes(byte[] send)
{
- return (tcpC != null && tcpC.Connected);
+ if (!Connected()) return false;
+ try { return SendBytes(tcpC.GetStream(), send); }
+ catch { throw; }
}
- /// Закрыть подключение.
- public void Close()
- {
- if (tcpC != null && !tcpC.Connected)
- tcpC.Close();
- }
- /// Отправка массива байт на СТП.
- /// Массив байт для отправки.
- public void SendBytes(byte[] send)
- {
- if (!Connected()) throw new InvalidOperationException("Connection not exist.");
- var ns = tcpC.GetStream();
- SendBytes(ns, send);
- }
- /// Получить неизвестное количество байт.
- /// Массив байт.
+ ///
public byte[] ReceiveBytes()
{
- var res = new List();
- if (!Connected()) throw new InvalidOperationException("Connection not exist.");
- var ns = tcpC.GetStream();
- res.AddRange(ReceiveBytesUnknown(ns));
- return res.ToArray();
+ if (!Connected()) return null;
+ try { return ReceiveBytesFull(tcpC.GetStream()); }
+ catch { return null; }
}
- /// Получить определенное количество байт.
- /// Количество байт.
- /// Массив байт.
+ ///
public byte[] ReceiveBytes(uint size)
{
- var res = new List();
- if (!Connected()) throw new Exception("Connection not exist.");
- var ns = tcpC.GetStream();
- res.AddRange(ReceiveBytesFixSize(ns, size));
- return res.ToArray();
+ if (!Connected()) return null;
+ try { return ReceiveBytesFixSize(tcpC.GetStream(), size); }
+ catch { return null; }
}
//SubMain functions
- /// Внутренняя функция получения файлов.
- /// Код, который будет отправлен на сервер.
- /// Дата. Из неё формируется строка в формате YYYMMDD
- /// Номер печи. 00 - общецеховые параметры.
- /// Индекс файла. От 0 до 15.
- ///
+ ///
+ private bool My_Connect()
+ {
+ if (stat.stat == NetStatus.Status.in_progress) throw new IOException("Previous method not finished.");
+ stat.stat = NetStatus.Status.in_progress;
+ if (Connected()) return false;
+ if (!Connect()) { throw new InvalidOperationException("Can't create connection."); }
+ return true;
+ }
+ ///
+ private void My_Close(bool needClose)
+ {
+ if (needClose) Close();
+ stat.stat = NetStatus.Status.complete;
+ }
+ ///
private byte[] GetFile(Code code, DateTime date, int vdp, int idx)
{
- if (code != Code.download_nh && code != Code.download)
- throw new ArgumentException("Wrong code for this method.");
- if (stat.stat == NetStatus.Status.in_progress)
- throw new InvalidOperationException("Previous method not finished.");
- 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.");
- }
+ if (code != Code.download_nh && code != Code.download) throw new ArgumentException("Wrong code for this method.");
+ bool needCloseConeection = false;
+ try { needCloseConeection = My_Connect(); }
+ catch { My_Close(needCloseConeection); throw; }
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();
- var flag_end = false;
+ var endCycle = false;
try
{
do
@@ -431,86 +373,138 @@ namespace DataClient
switch (tmp[0])
{
case 0x00:
- stat.stat = NetStatus.Status.complete;
- flag_end = true;
+ case 0xff:
+ endCycle = true;
break;
case 0x01:
- var blockSize = BitConverter.ToUInt32(ReceiveBytes(4));
- res.AddRange(ReceiveBytes(blockSize));
+ res.AddRange(ReceiveBytes(BitConverter.ToUInt32(ReceiveBytes(4))));
stat.size = (uint)res.Count;
break;
case 0x02:
- var fullSize = BitConverter.ToUInt32(ReceiveBytes(4));
- stat.fullSize = fullSize;
- break;
- case 0xff:
- stat.stat = NetStatus.Status.complete;
- flag_end = true;
+ stat.fullSize = BitConverter.ToUInt32(ReceiveBytes(4));
break;
+ default:
+ ReceiveBytes();
+ throw new ArgumentException("Wront flag when get files.");
}
- } while (!flag_end);
- }
- catch (Exception e)
- {
- throw new InvalidOperationException("Can't download file.", e);
- }
- finally
- {
- stat.stat = NetStatus.Status.complete;
- if (flag_connection) Close();
+ } while (!endCycle);
}
+ catch { My_Close(needCloseConeection); throw; }
+ finally { My_Close(needCloseConeection); }
return res.ToArray();
}
//COMMANDS FUNCTIONS
- /// Получение файла данных (байтами) с СТП.
- /// Дата. Из неё формируется строка в формате YYYMMDD
- /// Номер печи. 00 - общецеховые параметры.
- /// Индекс файла. От 0 до 15.
- /// Обработанный массив байт.
+ ///
public byte[] Full_Download_NH(DateTime date, int vdp, int idx)
{
try { return GetFile(Code.download_nh, date, vdp, idx); }
catch { throw; }
}
- /// Получение файла данных (байтами) с СТП.
- /// Дата. Из неё формируется строка в формате YYYMMDD
- /// Номер печи. 00 - общецеховые параметры.
- /// Индекс файла. От 0 до 15.
- /// Обработанный массив байт.
+ ///
public byte[] Full_Download(DateTime date, int vdp, int idx)
{
try { return GetFile(Code.download, date, vdp, idx); }
catch { throw; }
}
+ ///
public byte[] Full_By_Name(string val)
{
if (string.IsNullOrEmpty(val)) return null;
- bool flag_connection = !Connected();
- if (flag_connection) Connect();
- if (!Connected()) { throw new InvalidOperationException("Can't create connection."); }
- try { SendBytes(CreateCode((uint)Code.by_name, val)); }
- catch (Exception e)
- {
- if (flag_connection) Close();
- throw new InvalidOperationException("Can't send code.", e);
- }
+ bool needCloseConeection = false;
+ try { needCloseConeection = My_Connect(); }
+ catch { My_Close(needCloseConeection); throw; }
+
+ try { if(!SendBytes(CreateCode((uint)Code.by_name, val))) throw new IOException("Can't send bytes to server."); }
+ catch { My_Close(needCloseConeection); throw; }
+
+ byte[] res = null;
try
{
var tmp = ReceiveBytes(1);
- return tmp[0] switch
+ switch (tmp[0])
{
- 0x00 => null,
- 0x01 => ReceiveBytes(4),
- _ => throw new InvalidOperationException("Wrong answer from server."),
+ case 0x00: break;
+ case 0x01: res = ReceiveBytes(4); break;
+ default: ReceiveBytes(); break;
};
}
- catch (Exception e) { throw new InvalidOperationException("Can't receive code.", e); }
- finally { if (flag_connection) Close(); }
+ catch { My_Close(needCloseConeection); throw; }
+ finally { My_Close(needCloseConeection); }
+ return res;
}
- public string[] Full_Dir_Browse(string dir)
+ ///
+ 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();
+ 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);
+ }
+
}
}
diff --git a/DataClient/bin/Debug/net5.0/DataClient.dll b/DataClient/bin/Debug/net5.0/DataClient.dll
index d82d1d2..2d146cb 100644
Binary files a/DataClient/bin/Debug/net5.0/DataClient.dll and b/DataClient/bin/Debug/net5.0/DataClient.dll differ
diff --git a/DataClient/bin/Debug/net5.0/DataClient.pdb b/DataClient/bin/Debug/net5.0/DataClient.pdb
index c7e8e3d..87e5fb8 100644
Binary files a/DataClient/bin/Debug/net5.0/DataClient.pdb and b/DataClient/bin/Debug/net5.0/DataClient.pdb differ
diff --git a/DataClient/bin/Debug/net5.0/DataClient.xml b/DataClient/bin/Debug/net5.0/DataClient.xml
new file mode 100644
index 0000000..7bbaf56
--- /dev/null
+++ b/DataClient/bin/Debug/net5.0/DataClient.xml
@@ -0,0 +1,221 @@
+
+
+
+ DataClient
+
+
+
+
+ Статус процесса выполнения запроса.
+ Предполагается использовать только на больших
+ загрузках и в ассинхронных задачах
+
+
+
+ Коды для работы с СТП.
+
+
+ IP адрес СТП.
+
+
+ Порт СТП.
+
+
+ Количество попыток переподключения.
+
+
+ Время в секундах между попытками переподключения.
+
+
+ Основной конструктор класса NetClient. Ip-адрес - 127.0.0.1; Порт - 1070;
+
+
+ Конструктор класса NetClient с параметрами.Ip-адрес сервера.Порт сервера.
+
+
+ Получение неопределенного количество байт с сервера. Количество ограничено максимальным значением типа UInt.Открытый сетевой поток.Время ожидания между проверками буфера.Количество проверок буфера.Массив байт.
+ Соединение с сервером закрыто.
+
+ Стрим недоступен для Чтения.
+
+ Сервер сбросил соединение.
+
+
+
+ Получение определенного количество байт с сервера.Открытый сетевой поток.Кол-во получаемых байт.Время ожидания между проверками буфера.Количество проверок буфера.Массив байт. Может быть меньше заданного количества.
+ Размер байт не должен равняться нулю.
+
+ Стрим недоступен для записи.
+
+ Сервер сбросил соединение.
+
+
+
+ Отправка массива байт на СТП.Открытый сетевой поток.Массив байт.Результат отправки.
+ Размер байт не должен равняться нулю.
+
+ Стрим недоступен для записи.
+
+
+
+ Формирование массива байт на отправку.Код комманды. Конвертируется в 4 байта. (0x00 0x00 0x00 0x00)Передаваемая строка.Байты перед передаваемой строкой.Байты после передаваемой строкой.Массив байт для отправки на СТП.
+
+
+ Открытие соединения к серверу.Информирует только о подключении к серверу. Исключения опускает.Состояние подключения.
+
+
+ Проверка подключения.Состояние подключения.
+
+
+ Закрыть подключение.
+
+
+ Отправка массива байт на СТП.Массив байт для отправки.Результат отправки.
+ Размер байт не должен равняться нулю.
+
+ Поток недоступен для записи.
+
+
+
+ Получение неизвестного количество байт.Возвращает null, если что-то пошло не так.Массив байт.
+
+
+ Получение определенного количество байт.Количество байт.Возвращает null, если что-то пошло не так.Массив байт определенного размера. Может массив быть меньше, если в буфере не будет достаточно данных.
+
+
+ Внутренняя функция для создания подключения.Возвращает флаг необходимости закрытия соединения.
+ Не получилось соединиться с сервером.
+
+
+
+ Внетренняя функция для закрытия соединения.Флаг о необходимости закрыть соединение.
+
+
+ Внутренняя функция получения файлов.Код, который будет отправлен на сервер.Дата. Из неё формируется строка в формате YYYMMDD.Номер печи. 00 - общецеховые параметры.Индекс файла. От 0 до 15.Массив байт, соответствующий запрашиваемому файлу.
+ Неверный код, для получения файла.
+ Неверный флаг во время получения файла.
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+ Не получилось соединиться с сервером.
+
+
+
+ Получение файла данных (байтами) с СТП.Дата. Из неё формируется строка в формате YYYMMDD.Номер печи. 00 - общецеховые параметры.Индекс файла. От 0 до 15.Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.Обработанный массив байт.
+ Неверный код, для получения файла.
+ Неверный флаг во время получения файла.
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+ Не получилось соединиться с сервером.
+
+
+
+ Получение файла данных (байтами) с СТП.Дата. Из неё формируется строка в формате YYYMMDD.Номер печи. 00 - общецеховые параметры.Индекс файла. От 0 до 15.Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.Обработанный массив байт.
+ Неверный код, для получения файла.
+ Неверный флаг во время получения файла.
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+ Не получилось соединиться с сервером.
+
+
+
+ Получение файла данных (байтами) с СТП.Название команды.Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.Массив байт, соответствующий этой команде. Может вернуть null.
+ Неверный флаг во время получения файла.
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+ Не получилось соединиться с сервером.
+
+
+
+ Получение структуры файлов и папок в запрашиваемой директории.Путь, структуру которого надо отобразить.Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.Массив строк. Полные пути к файлам и папкам. Может вернуть null.
+ Неверный флаг окончания строки.
+ Неверный флаг во время получения файла.
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+ Не получилось соединиться с сервером.
+
+
+
+
+ Класс для связи с СТП. Содержит все инструменты, для получения данных.
+
+
+
+ Номер сервера, используемого по умолчанию.
+
+
+ Массив серверов, инициализированных в экземпляре класса.
+
+
+ Получение номера сервера по его названию.
+ Название сервера.
+ Номер сервера в списке серверов.
+
+
+ Получение название сервера по его номеру.
+ Номер сервера в списке серверов.
+ Название сервера.
+
+
+ Проверка параметров серевера перед их добавлением в список.
+ IP адресс сервера.
+ Порт сервера.
+ Путь к архиву.
+ Результат выполнения функции.
+
+
+ Добавление сервера в список серверов.
+ Название сервера
+ IP адресс сервера.
+ Порт сервера.
+ Путь к архиву.
+ Результат выполнения функции.
+
+
+ Изменение сервера в списке серверов по его номеру.
+ Номер сервера в списке серверов.
+ Название сервера.
+ IP адресс сервера.
+ Порт сервера.
+ Путь к архиву.
+ Результат выполнения функции.
+
+
+ Изменение сервера в списке серверов по его названию.
+ Название сервера.
+ IP адресс сервера.
+ Порт сервера.
+ Путь к архиву.
+ Результат выполнения функции.
+
+
+ Удаление сервера из списка серверов по его номеру.
+ Номер сервера в списке серверов.
+ Результат выполнения функции.
+
+
+ Удаление сервера из списка серверов по его названию.
+ Название сервера.
+ Результат выполнения функции.
+
+
+ Чтение конфигурационнного файла и установка параметров по умолчанию.
+
+
+ Создание экземпляра класса.
+
+
+ Создание экземпляра класса с указанием конфигурационного файла.
+ Путь к файлу конфигурации.
+
+
+
diff --git a/DataClient/bin/Debug/net5.0/ref/DataClient.dll b/DataClient/bin/Debug/net5.0/ref/DataClient.dll
index 7a25400..e48227e 100644
Binary files a/DataClient/bin/Debug/net5.0/ref/DataClient.dll and b/DataClient/bin/Debug/net5.0/ref/DataClient.dll differ
diff --git a/DataClient/obj/Debug/net5.0/DataClient.csproj.FileListAbsolute.txt b/DataClient/obj/Debug/net5.0/DataClient.csproj.FileListAbsolute.txt
index a8405e3..094c045 100644
--- a/DataClient/obj/Debug/net5.0/DataClient.csproj.FileListAbsolute.txt
+++ b/DataClient/obj/Debug/net5.0/DataClient.csproj.FileListAbsolute.txt
@@ -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\ref\DataClient.dll
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.AssemblyInfoInputs.cache
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\ref\DataClient.dll
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
diff --git a/DataClient/obj/Debug/net5.0/DataClient.csprojAssemblyReference.cache b/DataClient/obj/Debug/net5.0/DataClient.csprojAssemblyReference.cache
index f13f76b..9d8e86a 100644
Binary files a/DataClient/obj/Debug/net5.0/DataClient.csprojAssemblyReference.cache and b/DataClient/obj/Debug/net5.0/DataClient.csprojAssemblyReference.cache differ
diff --git a/DataClient/obj/Debug/net5.0/DataClient.dll b/DataClient/obj/Debug/net5.0/DataClient.dll
index d82d1d2..2d146cb 100644
Binary files a/DataClient/obj/Debug/net5.0/DataClient.dll and b/DataClient/obj/Debug/net5.0/DataClient.dll differ
diff --git a/DataClient/obj/Debug/net5.0/DataClient.pdb b/DataClient/obj/Debug/net5.0/DataClient.pdb
index c7e8e3d..87e5fb8 100644
Binary files a/DataClient/obj/Debug/net5.0/DataClient.pdb and b/DataClient/obj/Debug/net5.0/DataClient.pdb differ
diff --git a/DataClient/obj/Debug/net5.0/ref/DataClient.dll b/DataClient/obj/Debug/net5.0/ref/DataClient.dll
index 7a25400..e48227e 100644
Binary files a/DataClient/obj/Debug/net5.0/ref/DataClient.dll and b/DataClient/obj/Debug/net5.0/ref/DataClient.dll differ
diff --git a/DataClients/DataClientSrc.xml b/DataClients/DataClientSrc.xml
new file mode 100644
index 0000000..7dde50e
--- /dev/null
+++ b/DataClients/DataClientSrc.xml
@@ -0,0 +1 @@
+
diff --git a/DataClients/DataClients.csproj b/DataClients/DataClients.csproj
index 187f5c3..14d3c4c 100644
--- a/DataClients/DataClients.csproj
+++ b/DataClients/DataClients.csproj
@@ -7,6 +7,8 @@
0
+ D:\GIT\ASCKU_PC\DataClients\DataClients.xml
+ TRACE
diff --git a/DataClients/obj/Debug/netstandard2.0/DataClients.csproj.CoreCompileInputs.cache b/DataClients/obj/Debug/netstandard2.0/DataClients.csproj.CoreCompileInputs.cache
index 2f65ae3..c3bbc9e 100644
--- a/DataClients/obj/Debug/netstandard2.0/DataClients.csproj.CoreCompileInputs.cache
+++ b/DataClients/obj/Debug/netstandard2.0/DataClients.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-dcd43f965ba9bd3497fc087ead8b4421f1313830
+871cac96c3ed0d819a49dc12bad5bc0845a6eb38
diff --git a/DataClients/obj/Debug/netstandard2.0/DataClients.csprojAssemblyReference.cache b/DataClients/obj/Debug/netstandard2.0/DataClients.csprojAssemblyReference.cache
index da845a5..02d63d6 100644
Binary files a/DataClients/obj/Debug/netstandard2.0/DataClients.csprojAssemblyReference.cache and b/DataClients/obj/Debug/netstandard2.0/DataClients.csprojAssemblyReference.cache differ
diff --git a/STPClient/obj/STPClient.csproj.nuget.dgspec.json b/STPClient/obj/STPClient.csproj.nuget.dgspec.json
deleted file mode 100644
index 739367c..0000000
--- a/STPClient/obj/STPClient.csproj.nuget.dgspec.json
+++ /dev/null
@@ -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"
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/STPClient/obj/STPClient.csproj.nuget.g.props b/STPClient/obj/STPClient.csproj.nuget.g.props
deleted file mode 100644
index 471ec1a..0000000
--- a/STPClient/obj/STPClient.csproj.nuget.g.props
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
- True
- NuGet
- $(MSBuildThisFileDirectory)project.assets.json
- $(UserProfile)\.nuget\packages\
- 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
- PackageReference
- 5.9.0
-
-
-
-
-
-
-
-
- $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
-
-
\ No newline at end of file
diff --git a/STPClient/obj/STPClient.csproj.nuget.g.targets b/STPClient/obj/STPClient.csproj.nuget.g.targets
deleted file mode 100644
index 53cfaa1..0000000
--- a/STPClient/obj/STPClient.csproj.nuget.g.targets
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
- $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
-
-
\ No newline at end of file
diff --git a/STPClient/obj/project.assets.json b/STPClient/obj/project.assets.json
deleted file mode 100644
index 49cb284..0000000
--- a/STPClient/obj/project.assets.json
+++ /dev/null
@@ -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"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/STPClient/obj/project.nuget.cache b/STPClient/obj/project.nuget.cache
deleted file mode 100644
index 6b5a519..0000000
--- a/STPClient/obj/project.nuget.cache
+++ /dev/null
@@ -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": []
-}
\ No newline at end of file
diff --git a/SupportClasses/obj/Debug/netstandard2.0/SupportClasses.csprojAssemblyReference.cache b/SupportClasses/obj/Debug/netstandard2.0/SupportClasses.csprojAssemblyReference.cache
index bfdce24..4d66f8f 100644
Binary files a/SupportClasses/obj/Debug/netstandard2.0/SupportClasses.csprojAssemblyReference.cache and b/SupportClasses/obj/Debug/netstandard2.0/SupportClasses.csprojAssemblyReference.cache differ
diff --git a/Test2/Program.cs b/Test2/Program.cs
index dafaa7f..c58b2ec 100644
--- a/Test2/Program.cs
+++ b/Test2/Program.cs
@@ -14,11 +14,15 @@ namespace Test2
{
class Program
{
+ static bool cycle = true;
static void Main(string[] args)
{
LogConf();
- T3();
- Console.WriteLine("Hello World!");
+ var t = new Task(() => T1());
+ t.Start();
+ Console.ReadKey();
+ cycle = false;
+ //Console.WriteLine("Hello World!");
}
static void LogConf()
{
@@ -52,6 +56,28 @@ namespace Test2
}
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 task = new Task(() => t.Full_Download_NH(new DateTime(2021, 06, 02), 12, 1));
@@ -69,7 +95,7 @@ namespace Test2
file.Write(res, 0, res.Length);
}
}
- static void T3()
+ static void OLD2()
{
string[] tes = {
"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);
+ }
+ }
}
}
diff --git a/Test2/bin/Debug/net5.0/DataClient.dll b/Test2/bin/Debug/net5.0/DataClient.dll
index d82d1d2..2d146cb 100644
Binary files a/Test2/bin/Debug/net5.0/DataClient.dll and b/Test2/bin/Debug/net5.0/DataClient.dll differ
diff --git a/Test2/bin/Debug/net5.0/DataClient.pdb b/Test2/bin/Debug/net5.0/DataClient.pdb
index c7e8e3d..87e5fb8 100644
Binary files a/Test2/bin/Debug/net5.0/DataClient.pdb and b/Test2/bin/Debug/net5.0/DataClient.pdb differ
diff --git a/Test2/bin/Debug/net5.0/DataClient.xml b/Test2/bin/Debug/net5.0/DataClient.xml
new file mode 100644
index 0000000..7bbaf56
--- /dev/null
+++ b/Test2/bin/Debug/net5.0/DataClient.xml
@@ -0,0 +1,221 @@
+
+
+
+ DataClient
+
+
+
+
+ Статус процесса выполнения запроса.
+ Предполагается использовать только на больших
+ загрузках и в ассинхронных задачах
+
+
+
+ Коды для работы с СТП.
+
+
+ IP адрес СТП.
+
+
+ Порт СТП.
+
+
+ Количество попыток переподключения.
+
+
+ Время в секундах между попытками переподключения.
+
+
+ Основной конструктор класса NetClient. Ip-адрес - 127.0.0.1; Порт - 1070;
+
+
+ Конструктор класса NetClient с параметрами.Ip-адрес сервера.Порт сервера.
+
+
+ Получение неопределенного количество байт с сервера. Количество ограничено максимальным значением типа UInt.Открытый сетевой поток.Время ожидания между проверками буфера.Количество проверок буфера.Массив байт.
+ Соединение с сервером закрыто.
+
+ Стрим недоступен для Чтения.
+
+ Сервер сбросил соединение.
+
+
+
+ Получение определенного количество байт с сервера.Открытый сетевой поток.Кол-во получаемых байт.Время ожидания между проверками буфера.Количество проверок буфера.Массив байт. Может быть меньше заданного количества.
+ Размер байт не должен равняться нулю.
+
+ Стрим недоступен для записи.
+
+ Сервер сбросил соединение.
+
+
+
+ Отправка массива байт на СТП.Открытый сетевой поток.Массив байт.Результат отправки.
+ Размер байт не должен равняться нулю.
+
+ Стрим недоступен для записи.
+
+
+
+ Формирование массива байт на отправку.Код комманды. Конвертируется в 4 байта. (0x00 0x00 0x00 0x00)Передаваемая строка.Байты перед передаваемой строкой.Байты после передаваемой строкой.Массив байт для отправки на СТП.
+
+
+ Открытие соединения к серверу.Информирует только о подключении к серверу. Исключения опускает.Состояние подключения.
+
+
+ Проверка подключения.Состояние подключения.
+
+
+ Закрыть подключение.
+
+
+ Отправка массива байт на СТП.Массив байт для отправки.Результат отправки.
+ Размер байт не должен равняться нулю.
+
+ Поток недоступен для записи.
+
+
+
+ Получение неизвестного количество байт.Возвращает null, если что-то пошло не так.Массив байт.
+
+
+ Получение определенного количество байт.Количество байт.Возвращает null, если что-то пошло не так.Массив байт определенного размера. Может массив быть меньше, если в буфере не будет достаточно данных.
+
+
+ Внутренняя функция для создания подключения.Возвращает флаг необходимости закрытия соединения.
+ Не получилось соединиться с сервером.
+
+
+
+ Внетренняя функция для закрытия соединения.Флаг о необходимости закрыть соединение.
+
+
+ Внутренняя функция получения файлов.Код, который будет отправлен на сервер.Дата. Из неё формируется строка в формате YYYMMDD.Номер печи. 00 - общецеховые параметры.Индекс файла. От 0 до 15.Массив байт, соответствующий запрашиваемому файлу.
+ Неверный код, для получения файла.
+ Неверный флаг во время получения файла.
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+ Не получилось соединиться с сервером.
+
+
+
+ Получение файла данных (байтами) с СТП.Дата. Из неё формируется строка в формате YYYMMDD.Номер печи. 00 - общецеховые параметры.Индекс файла. От 0 до 15.Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.Обработанный массив байт.
+ Неверный код, для получения файла.
+ Неверный флаг во время получения файла.
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+ Не получилось соединиться с сервером.
+
+
+
+ Получение файла данных (байтами) с СТП.Дата. Из неё формируется строка в формате YYYMMDD.Номер печи. 00 - общецеховые параметры.Индекс файла. От 0 до 15.Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.Обработанный массив байт.
+ Неверный код, для получения файла.
+ Неверный флаг во время получения файла.
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+ Не получилось соединиться с сервером.
+
+
+
+ Получение файла данных (байтами) с СТП.Название команды.Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.Массив байт, соответствующий этой команде. Может вернуть null.
+ Неверный флаг во время получения файла.
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+ Не получилось соединиться с сервером.
+
+
+
+ Получение структуры файлов и папок в запрашиваемой директории.Путь, структуру которого надо отобразить.Выполняет автоподключение, если оно не установлено. Не все ошибки описаны в документации.Массив строк. Полные пути к файлам и папкам. Может вернуть null.
+ Неверный флаг окончания строки.
+ Неверный флаг во время получения файла.
+
+ Предыдущий запрос не закончен.
+ Поток недоступен для записи.
+
+ Не получилось соединиться с сервером.
+
+
+
+
+ Класс для связи с СТП. Содержит все инструменты, для получения данных.
+
+
+
+ Номер сервера, используемого по умолчанию.
+
+
+ Массив серверов, инициализированных в экземпляре класса.
+
+
+ Получение номера сервера по его названию.
+ Название сервера.
+ Номер сервера в списке серверов.
+
+
+ Получение название сервера по его номеру.
+ Номер сервера в списке серверов.
+ Название сервера.
+
+
+ Проверка параметров серевера перед их добавлением в список.
+ IP адресс сервера.
+ Порт сервера.
+ Путь к архиву.
+ Результат выполнения функции.
+
+
+ Добавление сервера в список серверов.
+ Название сервера
+ IP адресс сервера.
+ Порт сервера.
+ Путь к архиву.
+ Результат выполнения функции.
+
+
+ Изменение сервера в списке серверов по его номеру.
+ Номер сервера в списке серверов.
+ Название сервера.
+ IP адресс сервера.
+ Порт сервера.
+ Путь к архиву.
+ Результат выполнения функции.
+
+
+ Изменение сервера в списке серверов по его названию.
+ Название сервера.
+ IP адресс сервера.
+ Порт сервера.
+ Путь к архиву.
+ Результат выполнения функции.
+
+
+ Удаление сервера из списка серверов по его номеру.
+ Номер сервера в списке серверов.
+ Результат выполнения функции.
+
+
+ Удаление сервера из списка серверов по его названию.
+ Название сервера.
+ Результат выполнения функции.
+
+
+ Чтение конфигурационнного файла и установка параметров по умолчанию.
+
+
+ Создание экземпляра класса.
+
+
+ Создание экземпляра класса с указанием конфигурационного файла.
+ Путь к файлу конфигурации.
+
+
+
diff --git a/Test2/bin/Debug/net5.0/Test2.dll b/Test2/bin/Debug/net5.0/Test2.dll
index 66f9e02..a50aeed 100644
Binary files a/Test2/bin/Debug/net5.0/Test2.dll and b/Test2/bin/Debug/net5.0/Test2.dll differ
diff --git a/Test2/bin/Debug/net5.0/Test2.pdb b/Test2/bin/Debug/net5.0/Test2.pdb
index 71e6a59..aad5f86 100644
Binary files a/Test2/bin/Debug/net5.0/Test2.pdb and b/Test2/bin/Debug/net5.0/Test2.pdb differ
diff --git a/Test2/bin/Debug/net5.0/ref/Test2.dll b/Test2/bin/Debug/net5.0/ref/Test2.dll
index baa4471..8660f4b 100644
Binary files a/Test2/bin/Debug/net5.0/ref/Test2.dll and b/Test2/bin/Debug/net5.0/ref/Test2.dll differ
diff --git a/Test2/obj/Debug/net5.0/Test2.csproj.FileListAbsolute.txt b/Test2/obj/Debug/net5.0/Test2.csproj.FileListAbsolute.txt
index 7af7a15..4146f0e 100644
--- a/Test2/obj/Debug/net5.0/Test2.csproj.FileListAbsolute.txt
+++ b/Test2/obj/Debug/net5.0/Test2.csproj.FileListAbsolute.txt
@@ -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\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.xml
diff --git a/Test2/obj/Debug/net5.0/Test2.csprojAssemblyReference.cache b/Test2/obj/Debug/net5.0/Test2.csprojAssemblyReference.cache
index 4515da9..be50597 100644
Binary files a/Test2/obj/Debug/net5.0/Test2.csprojAssemblyReference.cache and b/Test2/obj/Debug/net5.0/Test2.csprojAssemblyReference.cache differ
diff --git a/Test2/obj/Debug/net5.0/Test2.dll b/Test2/obj/Debug/net5.0/Test2.dll
index 66f9e02..a50aeed 100644
Binary files a/Test2/obj/Debug/net5.0/Test2.dll and b/Test2/obj/Debug/net5.0/Test2.dll differ
diff --git a/Test2/obj/Debug/net5.0/Test2.pdb b/Test2/obj/Debug/net5.0/Test2.pdb
index 71e6a59..aad5f86 100644
Binary files a/Test2/obj/Debug/net5.0/Test2.pdb and b/Test2/obj/Debug/net5.0/Test2.pdb differ
diff --git a/Test2/obj/Debug/net5.0/ref/Test2.dll b/Test2/obj/Debug/net5.0/ref/Test2.dll
index baa4471..8660f4b 100644
Binary files a/Test2/obj/Debug/net5.0/ref/Test2.dll and b/Test2/obj/Debug/net5.0/ref/Test2.dll differ