📄 program.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.IO;
using System.Runtime.InteropServices;
namespace ConsoleApplication1
{
class Program
{
public enum eSCANMODE
{
NONE, //无扫描
PPI, //PPI扫描
RHI, //RHI扫描
VOL //VOL扫描
}
[StructLayout(LayoutKind.Sequential,Pack =1)]
public struct tagREPORT
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public byte[] sRadarType1; //雷达型号
public float fVersion; //文件版本
public byte ucYear1; //上报时间的年千百位(19-20)
public byte ucYear2; //上报时间的年十个位(00-99)
public byte ucMonth; //上报时间的月(1-12)
public byte ucDay; //上报时间的日(1-31)
public byte ucHour; //上报时间的时(0-23)
public byte ucMinute; //上报时间的分(0-59)
public byte ucSecond; //上报时间的秒(0-59)
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 30)]
public char[] sCountry; //国家名
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public char[] sProvince; //省名
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 40)]
public char[] sStation; //站名
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
public char[] sStationNumber; //区站号
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public char[] sRadarType2; //雷达型号
public ushort usLongitudeDegree; //经度(度)
public byte ucLongitudeMinute; //经度(分)
public byte ucLongitudeSecond; //经度(秒)
public ushort usLatitudeDegree; //纬度(度)
public byte ucLatitudeMinute; //纬度(分)
public byte ucLatitudeSecond; //纬度(秒)
public float fHeight; //海拔高度(m)
public eSCANMODE ScanMode; //扫描模式
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
public byte[] sVOLMode; //体扫模式(当VOL时) PM1-降水模式1 PM2-降水模式2 GM-警戒模式 UM-用户模式
public bool bRemoteControl; //遥控状态 TRUE-遥控 FALSE-本控
public bool bFilter; //滤波状态 TRUE-有 FALSE-无
public float fPower; //发射功率(kW)
public float fNoise; //噪声电平(dB)
public float fAntennaGain; //天线增益(dB)
public float fHorizontalBeamWidth; //水平波束宽度(°)
public float fVerticalBeamWidth; //垂直波束宽度(°)
public float fAmountLoss; //损耗(dB)
public float fBandWidth; //中频带宽(MHz)
public float fPulseWidth; //脉冲宽度(us)
public float fWavelength; //波长(m)
public float fC; //雷达常数
}
static void Main(string[] args)
{
FileStream fs = new FileStream("Z_R_DWRN_SRSI_C5_Z9931_20070716084525.bin", FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
byte[] b = br.ReadBytes((int)fs.Length);
IntPtr intprt = GCHandle.Alloc(b, GCHandleType.Pinned).AddrOfPinnedObject();
tagREPORT t = (tagREPORT)Marshal.PtrToStructure(intprt, typeof(tagREPORT));
br.Close();
fs.Close();
Console.WriteLine("雷达常数=" + t.fC);
Console.WriteLine("海拔高度=" + t.fHeight);
Console.WriteLine("0200");
Console.WriteLine("0200");
Console.WriteLine("0200");
Console.WriteLine("0200");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -