Browse Source

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

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

78
piv.cs

@ -1,7 +1,7 @@
using System; using System;
/// <summary> /// <summary>
/// Ноавя версия ПИВ 1.22 /// Ноавя версия ПИВ 1.23
/// </summary> /// </summary>
namespace PIV namespace PIV
@ -821,6 +821,10 @@ namespace PIV
} }
public static class OES2BVM 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 _num_pack = 1;
private static Byte _dir_pack = 2; private static Byte _dir_pack = 2;
private static Byte _addr_pack = 2; private static Byte _addr_pack = 2;
@ -938,12 +942,8 @@ namespace PIV
public static float usAZ; public static float usAZ;
public static float usUM; public static float usUM;
public static UInt16 CRC16; 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() public static void MakeData()
{ {
Array.Copy(BitConverter.GetBytes(Start), 0, Data, 0, 1); 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(usAZ), 0, Data, 22, 4);
Array.Copy(BitConverter.GetBytes(usUM), 0, Data, 26, 4); Array.Copy(BitConverter.GetBytes(usUM), 0, Data, 26, 4);
UInt16 _crc16 = CONST.CRC16(ref Data, 30); UInt16 _crc16 = CONST.CRC16(ref Data, _len_crc);
Array.Copy(BitConverter.GetBytes(_crc16), 0, Data, 30, 2); Array.Copy(BitConverter.GetBytes(_crc16), 0, Data, _len_crc, 2);
} }
public static void GetData() public static void GetData()
{ {
@ -984,7 +984,7 @@ namespace PIV
} }
public static class BVM2OES 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_data = _len_pack - 8;
private static UInt16 _len_crc = _len_pack - 2; private static UInt16 _len_crc = _len_pack - 2;
@ -1094,21 +1094,27 @@ namespace PIV
} }
} }
} }
public static float ustAZ; public static float ustAZ; // Установочные поправки по АЗ
public static float ustUM; public static float ustUM; // Установочные поправки по УМ
public static UInt16 X; public static UInt16 X; // Координата центра цели по горизонтали в растре
public static UInt16 Y; public static UInt16 Y; // Координата центра цели по вертикали в растре
public static Byte lx; public static Byte lx; // Размер цели по горизонтали в растре эталонного изображения
public static Byte ly; public static Byte ly; // Размер цели по вертикали в растре эталонного изображения
public static float AZ; public static float AZ; // Сигнал управления центром визирования ОЭС
public static float UM; public static float UM; // Сигнал управления центром визирования ОЭС
public static Int16 Xrks; public static Int16 Xrks; // Скорректированная координата центра цели по горизонтали
public static Int16 Yrks; 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 CRC16;
public static UInt16 CalcCRC()
{
return CONST.CRC16(ref Data, _len_crc);
}
public static Byte[] Data = new Byte[_len_pack]; public static Byte[] Data = new Byte[_len_pack];
public static void MakeData() public static void MakeData()
@ -1130,8 +1136,18 @@ namespace PIV
Array.Copy(BitConverter.GetBytes(UM), 0, Data, 32, 4); Array.Copy(BitConverter.GetBytes(UM), 0, Data, 32, 4);
Array.Copy(BitConverter.GetBytes(Xrks), 0, Data, 36, 2); Array.Copy(BitConverter.GetBytes(Xrks), 0, Data, 36, 2);
Array.Copy(BitConverter.GetBytes(Yrks), 0, Data, 38, 2); Array.Copy(BitConverter.GetBytes(Yrks), 0, Data, 38, 2);
UInt16 _crc16 = CONST.CRC16(ref Data, 40); /// <summary>
Array.Copy(BitConverter.GetBytes(_crc16), 0, Data, 40, 2); /// новый ПИВ 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() public static void GetData()
{ {
@ -1152,7 +1168,17 @@ namespace PIV
UM = BitConverter.ToSingle(Data, 32); UM = BitConverter.ToSingle(Data, 32);
Xrks = BitConverter.ToInt16(Data, 36); Xrks = BitConverter.ToInt16(Data, 36);
Yrks = BitConverter.ToInt16(Data, 38); 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() public static void ClearData()
{ {

Loading…
Cancel
Save