Browse Source

Переделан piv.cs

20230911
Денис Кузнецов 3 years ago
parent
commit
23615584a6
  1. 78
      piv.cs

78
piv.cs

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
using System;
/// <summary>
/// Ноавя версия ПИВ 1.22
/// Ноавя версия ПИВ 1.23
/// </summary>
namespace PIV
@ -821,6 +821,10 @@ 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 @@ -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 @@ -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 @@ -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 @@ -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; // Скорректированная координата центра цели по вертикали
/// <summary>
/// новый ПИВ 1.23
/// </summary>
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 @@ -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);
/// <summary>
/// новый ПИВ 1.23
/// </summary>
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 @@ -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);
/// <summary>
/// новый ПИВ 1.23
/// </summary>
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()
{

Loading…
Cancel
Save