diff --git a/.vs/ASCKU Projects/v16/.suo b/.vs/ASCKU Projects/v16/.suo index c930130..1037340 100644 Binary files a/.vs/ASCKU Projects/v16/.suo and b/.vs/ASCKU Projects/v16/.suo differ diff --git a/DataClient/NETClient.cs b/DataClient/NETClient.cs index 628aec5..35351ca 100644 --- a/DataClient/NETClient.cs +++ b/DataClient/NETClient.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Net; +using System.Net.Sockets; using System.Text; using System.Threading.Tasks; using NLog; @@ -13,44 +14,51 @@ namespace DataClient private Logger log = LogManager.GetCurrentClassLogger(); private Encoding enc; private string ip = "127.0.0.1"; + /// IP адрес СТП. public string Ip { get { return ip; } - set - { - if (!IPAddress.TryParse(value, out _)) - throw new Exception("Wrong ip address."); - else - ip = value; - } + set { ip = (IPAddress.TryParse(value, out _)) ? value : ip; } } private int port = 1070; + /// Порт СТП. public int Port { get { return port; } - set - { - if (value < 1 && value > 65535) - throw new Exception("Wrong port."); - else - port = value; - } + set { port = (value < 1) ? 1 : (value > 65535) ? 65535 : value; } } - - private enum Code : uint + private int retryCount = 3; + /// Количество попыток переподключения. + public int RetryCount { - check_command = 4294967295, + get { return retryCount; } + set { retryCount = value < 1 ? 1 : value; } + } + private int retryInterval = 1; + /// Время в секундах между попытками переподключения. + public int RetryInterval + { + get { return retryInterval; } + set { retryInterval = (value < 1) ? 1 : value; } + } + private TcpClient tcpC = null; + /// Коды для работы с СТП. + public enum Code : uint + { + check_command = uint.MaxValue, version = 0, pasp_download = 4, download_nh = 21, dir_browse = 23, user_flags = 26 } + //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) { @@ -58,21 +66,158 @@ namespace DataClient enc = Encoding.GetEncoding(866); Ip = ip; Port = port; + tcpC = new TcpClient(); } - //Work with socket functions - public byte[] CreateCode(uint code, byte[] prefix = null, string val = null, byte[] postfix = null) + /// Получить неизвестное количество байт. + /// Открытый сетевой поток. + /// Массив байт. + private byte[] ReceiveBytesUnknown(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 Exception("NetworkStream not access to Read."); + if (!ns.Socket.Connected) throw new Exception("NetworkStream not connected to server."); + int tryCount = 0; + do + { + if (!ns.Socket.Connected) throw new Exception("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(); } + /// Получить определенное количество байт. + /// Открытый сетевой поток. + /// Кол-во получаемый байт. + /// Массив байт, равный заданному кол-ву. + private byte[] ReceiveBytesFixSize(NetworkStream ns, int size, int awaitInterval = 1, int tryCounts = 3) + { + tryCounts = (tryCounts < 1) ? 1 : tryCounts; + awaitInterval = (awaitInterval < 1) ? 1 : awaitInterval; + if (size <= 0) throw new Exception("Size can't be less or zero."); + if (!ns.CanRead) throw new Exception("NetworkStream not access to Read."); + if (!ns.Socket.Connected) throw new Exception("NetworkStream not connected to server."); + var res = new byte[size]; + var countSize = 0; + + int tryCount = 0; + do + { + if (!ns.Socket.Connected) throw new Exception("Server drop connection."); + if (!ns.DataAvailable) + { + tryCount++; + Task.Delay(awaitInterval * 1000).Wait(); + continue; + } + tryCount = 0; + var buf = new byte[size - countSize]; + var length = ns.Read(buf, 0, buf.Length); + for (var i = 0; i < length; i++) res[countSize++] = buf[i]; + if (countSize == size) + return res; + } while (tryCount < tryCounts); + throw new Exception("Can't get all bytes."); + } //Support functions - + /// Формирование массива байт на отправку. + /// Код комманды. Конвертируется в 4 байта. (0x00 0x00 0x00 0x00) + /// Байты перед передаваемой строкой. + /// Передаваемая строка. + /// Байты после передаваемой строкой. + /// Массив байт для отправки на СТП. + public byte[] CreateCode(uint code, byte[] prefix = null, string val = null, byte[] postfix = null) + { + var res = new List(); + res.AddRange(BitConverter.GetBytes(code)); + if (prefix != null) + res.AddRange(prefix); + if(val != null) + { + res.AddRange(BitConverter.GetBytes((uint)val.Length)); + res.AddRange(enc.GetBytes(val)); + res.Add(0x00); + } + if (postfix != null) + res.AddRange(postfix); + return res.ToArray(); + } //Main functions + /// Открыть подключение. + /// Результат выполнения функции. + public bool Connect() + { + if (Connected()) return true; + if (tcpC == null) tcpC = new TcpClient(); + try { tcpC.Connect(new IPEndPoint(IPAddress.Parse(ip), port)); } + catch { return false; } + return Connected(); + } + /// Проверка подключения. + /// Возвращает состояние подключения. + public bool Connected() + { + return (tcpC != null && tcpC.Connected); + } + /// Закрыть подключение. + public void Close() + { + if (tcpC != null && !tcpC.Connected) + tcpC.Close(); + } + /// Отправка массива байт на СТП. + /// Массив байт для отправки. + public void SendBytes(byte[] send) + { + if (!Connected()) throw new Exception("Connection not exist."); + var ns = tcpC.GetStream(); + if (!ns.CanWrite) throw new Exception("NetworkStream not access to Write."); + if (!ns.Socket.Connected) throw new Exception("NetworkStream not connected to server."); + ns.Write(send, 0, send.Length); + } + public byte[] ReceiveBytes() + { + var res = new List(); + if (!Connected()) throw new Exception("Connection not exist."); + var ns = tcpC.GetStream(); + res.AddRange(ReceiveBytesUnknown(ns)); + return res.ToArray(); + } + public byte[] ReceiveBytes(int 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(); + } + /// Получение файла данных (байтами) с СТП. + /// Дата. Из неё формируется строка в формате YYYMMDD + /// Номер печи. 00 - общецеховые параметры. + /// Индекс файла. От 0 до 15. + /// Обработанный массив байт. + public byte[] GetFile(DateTime date, int vdp, int idx) + { + if (!Connected()) throw new Exception("Connection not exist."); + var res = new List(); + var str = date.ToString("yyyyMMdd") + vdp.ToString("D2") + (idx % 16).ToString("X1"); + + return res.ToArray(); + } } } diff --git a/DataClients/NetClient.cs b/DataClients/NetClient.cs index a8b912a..929030c 100644 --- a/DataClients/NetClient.cs +++ b/DataClients/NetClient.cs @@ -10,7 +10,7 @@ namespace DataClients { public class NetClient { - private string ServerStr = "10.10.45.152"; + private string ServerStr = "10.10.45.151"; private int PortStr = 1070; private IPEndPoint IpPoint; diff --git a/DataClients/bin/Debug/netstandard2.0/DataClients.dll b/DataClients/bin/Debug/netstandard2.0/DataClients.dll index ddeda4e..6a54370 100644 Binary files a/DataClients/bin/Debug/netstandard2.0/DataClients.dll and b/DataClients/bin/Debug/netstandard2.0/DataClients.dll differ diff --git a/DataClients/bin/Debug/netstandard2.0/DataClients.pdb b/DataClients/bin/Debug/netstandard2.0/DataClients.pdb index e0af495..e100cdd 100644 Binary files a/DataClients/bin/Debug/netstandard2.0/DataClients.pdb and b/DataClients/bin/Debug/netstandard2.0/DataClients.pdb differ diff --git a/DataClients/obj/Debug/netstandard2.0/DataClients.csprojAssemblyReference.cache b/DataClients/obj/Debug/netstandard2.0/DataClients.csprojAssemblyReference.cache index 56a73bf..3b3624c 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/DataClients/obj/Debug/netstandard2.0/DataClients.dll b/DataClients/obj/Debug/netstandard2.0/DataClients.dll index ddeda4e..6a54370 100644 Binary files a/DataClients/obj/Debug/netstandard2.0/DataClients.dll and b/DataClients/obj/Debug/netstandard2.0/DataClients.dll differ diff --git a/DataClients/obj/Debug/netstandard2.0/DataClients.pdb b/DataClients/obj/Debug/netstandard2.0/DataClients.pdb index e0af495..e100cdd 100644 Binary files a/DataClients/obj/Debug/netstandard2.0/DataClients.pdb and b/DataClients/obj/Debug/netstandard2.0/DataClients.pdb differ diff --git a/Mailing/bin/Debug/netcoreapp3.1/DataClients.dll b/Mailing/bin/Debug/netcoreapp3.1/DataClients.dll index ddeda4e..6a54370 100644 Binary files a/Mailing/bin/Debug/netcoreapp3.1/DataClients.dll and b/Mailing/bin/Debug/netcoreapp3.1/DataClients.dll differ diff --git a/Mailing/bin/Debug/netcoreapp3.1/DataClients.pdb b/Mailing/bin/Debug/netcoreapp3.1/DataClients.pdb index e0af495..e100cdd 100644 Binary files a/Mailing/bin/Debug/netcoreapp3.1/DataClients.pdb and b/Mailing/bin/Debug/netcoreapp3.1/DataClients.pdb differ diff --git a/Mailing/bin/Debug/netcoreapp3.1/Mailing.dll b/Mailing/bin/Debug/netcoreapp3.1/Mailing.dll index 6d04539..4a12412 100644 Binary files a/Mailing/bin/Debug/netcoreapp3.1/Mailing.dll and b/Mailing/bin/Debug/netcoreapp3.1/Mailing.dll differ diff --git a/Mailing/bin/Debug/netcoreapp3.1/Mailing.pdb b/Mailing/bin/Debug/netcoreapp3.1/Mailing.pdb index 23afad1..7e8e75b 100644 Binary files a/Mailing/bin/Debug/netcoreapp3.1/Mailing.pdb and b/Mailing/bin/Debug/netcoreapp3.1/Mailing.pdb differ diff --git a/Mailing/obj/Debug/netcoreapp3.1/Mailing.csprojAssemblyReference.cache b/Mailing/obj/Debug/netcoreapp3.1/Mailing.csprojAssemblyReference.cache index 445f539..41e2603 100644 Binary files a/Mailing/obj/Debug/netcoreapp3.1/Mailing.csprojAssemblyReference.cache and b/Mailing/obj/Debug/netcoreapp3.1/Mailing.csprojAssemblyReference.cache differ diff --git a/Mailing/obj/Debug/netcoreapp3.1/Mailing.dll b/Mailing/obj/Debug/netcoreapp3.1/Mailing.dll index 6d04539..4a12412 100644 Binary files a/Mailing/obj/Debug/netcoreapp3.1/Mailing.dll and b/Mailing/obj/Debug/netcoreapp3.1/Mailing.dll differ diff --git a/Mailing/obj/Debug/netcoreapp3.1/Mailing.pdb b/Mailing/obj/Debug/netcoreapp3.1/Mailing.pdb index 23afad1..7e8e75b 100644 Binary files a/Mailing/obj/Debug/netcoreapp3.1/Mailing.pdb and b/Mailing/obj/Debug/netcoreapp3.1/Mailing.pdb differ diff --git a/Tests/Program.cs b/Tests/Program.cs index f40f1bc..f364b6c 100644 --- a/Tests/Program.cs +++ b/Tests/Program.cs @@ -369,8 +369,8 @@ namespace Tests static void test14() { var total = new List<(ushort, Protect)>(); - var ts = new DateTime(2021, 05, 17); - var te = new DateTime(2021, 05, 28); + var ts = new DateTime(2021, 05, 28); + var te = new DateTime(2021, 06, 02); var a = new STPClient(); var vdp = new ushort[] { 3, 4, 5, 6, 8, 10, 17, 18, 33, 39, 40, 43, 44 }; foreach(var v in vdp) diff --git a/Tests/bin/Debug/netcoreapp3.1/03.txt b/Tests/bin/Debug/netcoreapp3.1/03.txt index 653f8e3..a4ebc7d 100644 --- a/Tests/bin/Debug/netcoreapp3.1/03.txt +++ b/Tests/bin/Debug/netcoreapp3.1/03.txt @@ -1,18 +1,10 @@ -2021-05-17 22:19:34.5 035 Отс. связь ГМП 01 -2021-05-17 22:19:36.2 035 Отс. связь ГМП 00 -2021-05-18 14:42:13.5 035 Отс. связь ГМП 01 -2021-05-18 14:42:19.0 035 Отс. связь ГМП 00 -2021-05-18 20:24:00.3 035 Отс. связь ГМП 01 -2021-05-18 20:24:05.8 035 Отс. связь ГМП 00 -2021-05-22 19:44:46.4 035 Отс. связь ГМП 01 -2021-05-23 03:12:37.2 035 Отс. связь ГМП 00 -2021-05-24 20:56:41.0 035 Отс. связь ГМП 01 -2021-05-24 20:56:46.5 035 Отс. связь ГМП 00 -2021-05-25 20:42:30.1 035 Отс. связь ГМП 01 -2021-05-25 20:42:35.6 035 Отс. связь ГМП 00 -2021-05-26 00:00:00.3 105 Отс. связь AB 01 -2021-05-26 00:00:00.6 105 Отс. связь AB 00 -2021-05-27 06:42:07.1 035 Отс. связь ГМП 01 -2021-05-27 06:42:12.6 035 Отс. связь ГМП 00 -2021-05-27 14:51:46.2 035 Отс. связь ГМП 01 -2021-05-27 14:51:51.7 035 Отс. связь ГМП 00 +2021-05-28 00:27:18.7 035 Отс. связь ГМП 01 +2021-05-28 00:27:24.2 035 Отс. связь ГМП 00 +2021-05-28 13:42:09.7 035 Отс. связь ГМП 01 +2021-05-28 13:42:24.0 035 Отс. связь ГМП 00 +2021-05-30 11:50:55.4 105 Отс. связь AB 01 +2021-05-30 11:50:55.8 105 Отс. связь AB 00 +2021-06-01 03:51:51.6 035 Отс. связь ГМП 01 +2021-06-01 03:51:57.1 035 Отс. связь ГМП 00 +2021-06-01 11:45:01.7 035 Отс. связь ГМП 01 +2021-06-01 11:45:07.2 035 Отс. связь ГМП 00 diff --git a/Tests/bin/Debug/netcoreapp3.1/04.txt b/Tests/bin/Debug/netcoreapp3.1/04.txt deleted file mode 100644 index 0de3bad..0000000 --- a/Tests/bin/Debug/netcoreapp3.1/04.txt +++ /dev/null @@ -1,2 +0,0 @@ -2021-05-26 11:44:42.8 035 Отс. связь ГМП 01 -2021-05-26 11:44:43.4 035 Отс. связь ГМП 00 diff --git a/Tests/bin/Debug/netcoreapp3.1/10.txt b/Tests/bin/Debug/netcoreapp3.1/10.txt index 72f9ba8..ef93287 100644 --- a/Tests/bin/Debug/netcoreapp3.1/10.txt +++ b/Tests/bin/Debug/netcoreapp3.1/10.txt @@ -1,8 +1,8 @@ -2021-05-17 09:58:39.9 035 Отс. связь ГМП 01 -2021-05-17 10:07:04.5 035 Отс. связь ГМП 00 -2021-05-22 01:00:38.6 035 Отс. связь ГМП 01 -2021-05-22 01:00:44.1 035 Отс. связь ГМП 00 -2021-05-22 12:14:53.7 035 Отс. связь ГМП 01 -2021-05-22 12:14:59.2 035 Отс. связь ГМП 00 -2021-05-25 14:01:20.3 035 Отс. связь ГМП 01 -2021-05-25 14:01:32.1 035 Отс. связь ГМП 00 +2021-05-28 14:44:43.7 035 Отс. связь ГМП 01 +2021-05-28 14:48:39.7 035 Отс. связь ГМП 00 +2021-05-28 14:49:13.8 035 Отс. связь ГМП 01 +2021-05-28 14:49:57.0 035 Отс. связь ГМП 00 +2021-05-31 16:33:30.7 035 Отс. связь ГМП 01 +2021-05-31 16:33:46.1 035 Отс. связь ГМП 00 +2021-06-01 11:08:32.1 035 Отс. связь ГМП 01 +2021-06-01 11:08:39.0 035 Отс. связь ГМП 00 diff --git a/Tests/bin/Debug/netcoreapp3.1/17.txt b/Tests/bin/Debug/netcoreapp3.1/17.txt deleted file mode 100644 index f8b8313..0000000 --- a/Tests/bin/Debug/netcoreapp3.1/17.txt +++ /dev/null @@ -1,2 +0,0 @@ -2021-05-17 11:25:48.1 035 Отс. связь ГМП 01 -2021-05-17 11:25:52.7 035 Отс. связь ГМП 00 diff --git a/Tests/bin/Debug/netcoreapp3.1/33.txt b/Tests/bin/Debug/netcoreapp3.1/33.txt deleted file mode 100644 index 0666f64..0000000 --- a/Tests/bin/Debug/netcoreapp3.1/33.txt +++ /dev/null @@ -1,2 +0,0 @@ -2021-05-21 09:32:21.8 035 Отс. связь ГМП 01 -2021-05-21 09:32:23.9 035 Отс. связь ГМП 00 diff --git a/Tests/bin/Debug/netcoreapp3.1/DataClients.dll b/Tests/bin/Debug/netcoreapp3.1/DataClients.dll index ddeda4e..6a54370 100644 Binary files a/Tests/bin/Debug/netcoreapp3.1/DataClients.dll and b/Tests/bin/Debug/netcoreapp3.1/DataClients.dll differ diff --git a/Tests/bin/Debug/netcoreapp3.1/DataClients.pdb b/Tests/bin/Debug/netcoreapp3.1/DataClients.pdb index e0af495..e100cdd 100644 Binary files a/Tests/bin/Debug/netcoreapp3.1/DataClients.pdb and b/Tests/bin/Debug/netcoreapp3.1/DataClients.pdb differ diff --git a/Tests/bin/Debug/netcoreapp3.1/Mailing.dll b/Tests/bin/Debug/netcoreapp3.1/Mailing.dll index 6d04539..4a12412 100644 Binary files a/Tests/bin/Debug/netcoreapp3.1/Mailing.dll and b/Tests/bin/Debug/netcoreapp3.1/Mailing.dll differ diff --git a/Tests/bin/Debug/netcoreapp3.1/Mailing.pdb b/Tests/bin/Debug/netcoreapp3.1/Mailing.pdb index 23afad1..7e8e75b 100644 Binary files a/Tests/bin/Debug/netcoreapp3.1/Mailing.pdb and b/Tests/bin/Debug/netcoreapp3.1/Mailing.pdb differ diff --git a/Tests/bin/Debug/netcoreapp3.1/Tests.dll b/Tests/bin/Debug/netcoreapp3.1/Tests.dll index 05c3a10..98c87eb 100644 Binary files a/Tests/bin/Debug/netcoreapp3.1/Tests.dll and b/Tests/bin/Debug/netcoreapp3.1/Tests.dll differ diff --git a/Tests/bin/Debug/netcoreapp3.1/Tests.pdb b/Tests/bin/Debug/netcoreapp3.1/Tests.pdb index bf6df4b..9f512cb 100644 Binary files a/Tests/bin/Debug/netcoreapp3.1/Tests.pdb and b/Tests/bin/Debug/netcoreapp3.1/Tests.pdb differ diff --git a/Tests/bin/Debug/netcoreapp3.1/total.txt b/Tests/bin/Debug/netcoreapp3.1/total.txt index 742afe7..e5f9d04 100644 --- a/Tests/bin/Debug/netcoreapp3.1/total.txt +++ b/Tests/bin/Debug/netcoreapp3.1/total.txt @@ -1,32 +1,18 @@ -2021-05-17 09:58:39.9 035 Отс. связь ГМП 01 <- vdp10 -2021-05-17 10:07:04.5 035 Отс. связь ГМП 00 <- vdp10 -2021-05-17 11:25:48.1 035 Отс. связь ГМП 01 <- vdp17 -2021-05-17 11:25:52.7 035 Отс. связь ГМП 00 <- vdp17 -2021-05-17 22:19:34.5 035 Отс. связь ГМП 01 <- vdp03 -2021-05-17 22:19:36.2 035 Отс. связь ГМП 00 <- vdp03 -2021-05-18 14:42:13.5 035 Отс. связь ГМП 01 <- vdp03 -2021-05-18 14:42:19.0 035 Отс. связь ГМП 00 <- vdp03 -2021-05-18 20:24:00.3 035 Отс. связь ГМП 01 <- vdp03 -2021-05-18 20:24:05.8 035 Отс. связь ГМП 00 <- vdp03 -2021-05-21 09:32:21.8 035 Отс. связь ГМП 01 <- vdp33 -2021-05-21 09:32:23.9 035 Отс. связь ГМП 00 <- vdp33 -2021-05-22 01:00:38.6 035 Отс. связь ГМП 01 <- vdp10 -2021-05-22 01:00:44.1 035 Отс. связь ГМП 00 <- vdp10 -2021-05-22 12:14:53.7 035 Отс. связь ГМП 01 <- vdp10 -2021-05-22 12:14:59.2 035 Отс. связь ГМП 00 <- vdp10 -2021-05-22 19:44:46.4 035 Отс. связь ГМП 01 <- vdp03 -2021-05-23 03:12:37.2 035 Отс. связь ГМП 00 <- vdp03 -2021-05-24 20:56:41.0 035 Отс. связь ГМП 01 <- vdp03 -2021-05-24 20:56:46.5 035 Отс. связь ГМП 00 <- vdp03 -2021-05-25 14:01:20.3 035 Отс. связь ГМП 01 <- vdp10 -2021-05-25 14:01:32.1 035 Отс. связь ГМП 00 <- vdp10 -2021-05-25 20:42:30.1 035 Отс. связь ГМП 01 <- vdp03 -2021-05-25 20:42:35.6 035 Отс. связь ГМП 00 <- vdp03 -2021-05-26 00:00:00.3 105 Отс. связь AB 01 <- vdp03 -2021-05-26 00:00:00.6 105 Отс. связь AB 00 <- vdp03 -2021-05-26 11:44:42.8 035 Отс. связь ГМП 01 <- vdp04 -2021-05-26 11:44:43.4 035 Отс. связь ГМП 00 <- vdp04 -2021-05-27 06:42:07.1 035 Отс. связь ГМП 01 <- vdp03 -2021-05-27 06:42:12.6 035 Отс. связь ГМП 00 <- vdp03 -2021-05-27 14:51:46.2 035 Отс. связь ГМП 01 <- vdp03 -2021-05-27 14:51:51.7 035 Отс. связь ГМП 00 <- vdp03 +2021-05-28 00:27:18.7 035 Отс. связь ГМП 01 <- vdp03 +2021-05-28 00:27:24.2 035 Отс. связь ГМП 00 <- vdp03 +2021-05-28 13:42:09.7 035 Отс. связь ГМП 01 <- vdp03 +2021-05-28 13:42:24.0 035 Отс. связь ГМП 00 <- vdp03 +2021-05-28 14:44:43.7 035 Отс. связь ГМП 01 <- vdp10 +2021-05-28 14:48:39.7 035 Отс. связь ГМП 00 <- vdp10 +2021-05-28 14:49:13.8 035 Отс. связь ГМП 01 <- vdp10 +2021-05-28 14:49:57.0 035 Отс. связь ГМП 00 <- vdp10 +2021-05-30 11:50:55.4 105 Отс. связь AB 01 <- vdp03 +2021-05-30 11:50:55.8 105 Отс. связь AB 00 <- vdp03 +2021-05-31 16:33:30.7 035 Отс. связь ГМП 01 <- vdp10 +2021-05-31 16:33:46.1 035 Отс. связь ГМП 00 <- vdp10 +2021-06-01 03:51:51.6 035 Отс. связь ГМП 01 <- vdp03 +2021-06-01 03:51:57.1 035 Отс. связь ГМП 00 <- vdp03 +2021-06-01 11:08:32.1 035 Отс. связь ГМП 01 <- vdp10 +2021-06-01 11:08:39.0 035 Отс. связь ГМП 00 <- vdp10 +2021-06-01 11:45:01.7 035 Отс. связь ГМП 01 <- vdp03 +2021-06-01 11:45:07.2 035 Отс. связь ГМП 00 <- vdp03 diff --git a/Tests/obj/Debug/netcoreapp3.1/Tests.csprojAssemblyReference.cache b/Tests/obj/Debug/netcoreapp3.1/Tests.csprojAssemblyReference.cache index 65970dd..e18355d 100644 Binary files a/Tests/obj/Debug/netcoreapp3.1/Tests.csprojAssemblyReference.cache and b/Tests/obj/Debug/netcoreapp3.1/Tests.csprojAssemblyReference.cache differ diff --git a/Tests/obj/Debug/netcoreapp3.1/Tests.dll b/Tests/obj/Debug/netcoreapp3.1/Tests.dll index 05c3a10..98c87eb 100644 Binary files a/Tests/obj/Debug/netcoreapp3.1/Tests.dll and b/Tests/obj/Debug/netcoreapp3.1/Tests.dll differ diff --git a/Tests/obj/Debug/netcoreapp3.1/Tests.pdb b/Tests/obj/Debug/netcoreapp3.1/Tests.pdb index bf6df4b..9f512cb 100644 Binary files a/Tests/obj/Debug/netcoreapp3.1/Tests.pdb and b/Tests/obj/Debug/netcoreapp3.1/Tests.pdb differ