⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 program.cs

📁 读取雷达站上传的新一代天气雷达报警信息及参数文件。
💻 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 + -