From 23615584a6043e0efa45e1bf647e332ba7249e6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B5=D0=BD=D0=B8=D1=81=20=D0=9A=D1=83=D0=B7=D0=BD?= =?UTF-8?q?=D0=B5=D1=86=D0=BE=D0=B2?= Date: Mon, 11 Sep 2023 16:48:03 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B0=D0=BD=20piv.cs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- piv.cs | 78 ++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 52 insertions(+), 26 deletions(-) diff --git a/piv.cs b/piv.cs index 131d4a4..a3b22b3 100644 --- a/piv.cs +++ b/piv.cs @@ -1,7 +1,7 @@ using System; /// -/// Ноавя версия ПИВ 1.22 +/// Ноавя версия ПИВ 1.23 /// namespace PIV @@ -821,6 +821,10 @@ namespace PIV } public static class OES2BVM { + private const UInt16 _len_pack = 32; + private static UInt16 _len_data = _len_pack - 8; + private static UInt16 _len_crc = _len_pack - 2; + private static Byte _num_pack = 1; private static Byte _dir_pack = 2; private static Byte _addr_pack = 2; @@ -938,12 +942,8 @@ namespace PIV public static float usAZ; public static float usUM; public static UInt16 CRC16; - public static UInt16 CalcCRC() - { - return CONST.CRC16(ref Data, 30); - } - public static Byte[] Data = new Byte[32]; + public static Byte[] Data = new Byte[_len_pack]; public static void MakeData() { Array.Copy(BitConverter.GetBytes(Start), 0, Data, 0, 1); @@ -958,8 +958,8 @@ namespace PIV Array.Copy(BitConverter.GetBytes(usAZ), 0, Data, 22, 4); Array.Copy(BitConverter.GetBytes(usUM), 0, Data, 26, 4); - UInt16 _crc16 = CONST.CRC16(ref Data, 30); - Array.Copy(BitConverter.GetBytes(_crc16), 0, Data, 30, 2); + UInt16 _crc16 = CONST.CRC16(ref Data, _len_crc); + Array.Copy(BitConverter.GetBytes(_crc16), 0, Data, _len_crc, 2); } public static void GetData() { @@ -984,7 +984,7 @@ namespace PIV } public static class BVM2OES { - private const UInt16 _len_pack = 42; + private const UInt16 _len_pack = 60; private static UInt16 _len_data = _len_pack - 8; private static UInt16 _len_crc = _len_pack - 2; @@ -1094,21 +1094,27 @@ namespace PIV } } } - public static float ustAZ; - public static float ustUM; - public static UInt16 X; - public static UInt16 Y; - public static Byte lx; - public static Byte ly; - public static float AZ; - public static float UM; - public static Int16 Xrks; - public static Int16 Yrks; + public static float ustAZ; // Установочные поправки по АЗ + public static float ustUM; // Установочные поправки по УМ + public static UInt16 X; // Координата центра цели по горизонтали в растре + public static UInt16 Y; // Координата центра цели по вертикали в растре + public static Byte lx; // Размер цели по горизонтали в растре эталонного изображения + public static Byte ly; // Размер цели по вертикали в растре эталонного изображения + public static float AZ; // Сигнал управления центром визирования ОЭС + public static float UM; // Сигнал управления центром визирования ОЭС + public static Int16 Xrks; // Скорректированная координата центра цели по горизонтали + public static Int16 Yrks; // Скорректированная координата центра цели по вертикали + /// + /// новый ПИВ 1.23 + /// + public static Int32 Shirota; // Широта БЛА + public static Int32 Dolgota; // Долгота БЛА + public static Int32 Vysota; // Высота БЛА + public static Int16 Kren; // Крен БЛА + public static Int16 Tangaj; // Тангаж БЛА + public static Int16 Kurs; // Курс БЛА + public static UInt16 CRC16; - public static UInt16 CalcCRC() - { - return CONST.CRC16(ref Data, _len_crc); - } public static Byte[] Data = new Byte[_len_pack]; public static void MakeData() @@ -1130,8 +1136,18 @@ namespace PIV Array.Copy(BitConverter.GetBytes(UM), 0, Data, 32, 4); Array.Copy(BitConverter.GetBytes(Xrks), 0, Data, 36, 2); Array.Copy(BitConverter.GetBytes(Yrks), 0, Data, 38, 2); - UInt16 _crc16 = CONST.CRC16(ref Data, 40); - Array.Copy(BitConverter.GetBytes(_crc16), 0, Data, 40, 2); + /// + /// новый ПИВ 1.23 + /// + Array.Copy(BitConverter.GetBytes(Shirota), 0, Data, 40, 4); + Array.Copy(BitConverter.GetBytes(Dolgota), 0, Data, 44, 4); + Array.Copy(BitConverter.GetBytes(Vysota), 0, Data, 48, 4); + Array.Copy(BitConverter.GetBytes(Kren), 0, Data, 52, 2); + Array.Copy(BitConverter.GetBytes(Tangaj), 0, Data, 54, 2); + Array.Copy(BitConverter.GetBytes(Kurs), 0, Data, 56, 2); + + UInt16 _crc16 = CONST.CRC16(ref Data, _len_crc); + Array.Copy(BitConverter.GetBytes(_crc16), 0, Data, _len_crc, 2); } public static void GetData() { @@ -1152,7 +1168,17 @@ namespace PIV UM = BitConverter.ToSingle(Data, 32); Xrks = BitConverter.ToInt16(Data, 36); Yrks = BitConverter.ToInt16(Data, 38); - CRC16 = BitConverter.ToUInt16(Data, 40); + /// + /// новый ПИВ 1.23 + /// + Shirota = BitConverter.ToInt32(Data, 40); + Dolgota = BitConverter.ToInt32(Data, 44); + Vysota = BitConverter.ToInt32(Data, 48); + Kren = BitConverter.ToInt16(Data, 52); + Tangaj = BitConverter.ToInt16(Data, 54); + Kurs = BitConverter.ToInt16(Data, 56); + + CRC16 = BitConverter.ToUInt16(Data, 58); } public static void ClearData() {