Пример #1
0
        private string ParsePara(byte[] myReadBuffer)
        {
            BSSParameter p = new BSSParameter();

            byte[] b = new byte[56];
            Buffer.BlockCopy(myReadBuffer, 8, b, 0, 56);
            if (p.Parse(b))
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("设备序列号:" + p.DeviceID);
                sb.AppendLine("左舷发射中心频率:" + p.PortCentralFq);
                sb.AppendLine("右舷发射中心频率:" + p.StarBoardCentralFq);
                sb.AppendLine("脉冲长度:" + p.Ls);
                sb.AppendLine("左舷发射信号带宽:" + p.PortBandWidth);
                sb.AppendLine("右舷发射信号带宽:" + p.StarBoardBandWidth);
                sb.AppendLine("接收延时:" + p.RcvDelay);
                sb.AppendLine("探测距离:" + p.Range);
                sb.AppendLine("工作周期:" + p.Period);
                sb.AppendLine("AD数据采样率:" + p.ADSamples);
                sb.AppendLine("控制标识:" + p.Flag);
                sb.AppendLine("TVG延时:" + p.TVGDelay);
                sb.AppendLine("TVG更新速率:" + p.TVGReRate);
                sb.AppendLine("TVG比例因子:" + p.TvgBeta);
                sb.AppendLine("TVG吸收衰减:" + p.TvgAlpha);
                sb.AppendLine("TVG起始增益:" + p.TvgG);
                sb.AppendLine("命令标识:" + p.Com);
                sb.AppendLine("返回数据类型标识:" + p.RetID);
                sb.AppendLine("固定TVG:" + p.FixedTVG);
                return(sb.ToString());
            }
            else
            {
                return(@"参数解析不正确");
            }
        }
Пример #2
0
 public static byte[] SetupLowBSS(BSSParameter para)
 {
     byte[] pkg = new byte[65];
     Buffer.BlockCopy(BitConverter.GetBytes((int)ComID.SetupLowBSS), 0, pkg, 0, 2);
     Buffer.BlockCopy(BitConverter.GetBytes(Version), 0, pkg, 2, 2);
     Buffer.BlockCopy(BitConverter.GetBytes(9), 0, pkg, 4, 4);
     Buffer.BlockCopy(para.Pack(), 0, pkg, 8, 56);
     pkg[64] = 0;//校验
     return(pkg);
 }
Пример #3
0
        private void SaveXTF(List <BSSObject> datalist, BSSParameter parameter)
        {
            if (XtfFile.WriteOpened == false)
            {
                XtfFile.Create();
                XtfFile.Write(Header.pack());
            }
            DateTime dt = DateTime.Now;

            PingHeader.Year               = (ushort)dt.Year;
            PingHeader.Month              = (byte)dt.Month;
            PingHeader.Day                = (byte)dt.Day;
            PingHeader.Hour               = (byte)dt.Hour;
            PingHeader.Minute             = (byte)dt.Minute;
            PingHeader.Second             = (byte)dt.Second;
            PingHeader.HSeconds           = (byte)(dt.Millisecond / 10);
            PingHeader.PingNumber         = datalist[0].FrameNo;
            PingHeader.NumbytesThisRecord = 256;
            foreach (var bssObject in datalist)
            {
                if (bssObject.DataBytes == 0)
                {
                    continue;
                }
                PingHeader.NumbytesThisRecord += 64;//pingchannel header length
                PingHeader.NumbytesThisRecord += (uint)bssObject.DataBytes;
            }
            PingHeader.SensorSpeed     = GPS.Speed;
            PingHeader.SensorHeading   = GPS.Heading;
            PingHeader.ShipXcoordinate = GPS.Longitude;
            PingHeader.ShipYcoordinate = GPS.Latitude;
            XtfFile.Write(PingHeader.pack());
            foreach (var bssObject in datalist)
            {
                if (bssObject.DataBytes == 0)
                {
                    continue;
                }
                if (bssObject.ID == (uint)ObjectID.PortLowBssData)
                {
                    PingchanHeader.ChannelNumber = 0;
                    PingchanHeader.SlantRange    = parameter.Range;
                    PingchanHeader.NumSamples    = (uint)bssObject.DataBytes / Header.ChanInfo[0].bytesPerSample;
                    XtfFile.Write(PingchanHeader.Pack());
                }
                else if (bssObject.ID == (uint)ObjectID.StartboardLowBssData)
                {
                    PingchanHeader.ChannelNumber = 1;
                    PingchanHeader.SlantRange    = parameter.Range;
                    PingchanHeader.NumSamples    = (uint)bssObject.DataBytes / Header.ChanInfo[1].bytesPerSample;
                    XtfFile.Write(PingchanHeader.Pack());
                }
                else if (bssObject.ID == (uint)ObjectID.PortHighBssData)
                {
                    PingchanHeader.ChannelNumber = 2;
                    PingchanHeader.SlantRange    = parameter.Range;
                    PingchanHeader.NumSamples    = (uint)bssObject.DataBytes / Header.ChanInfo[2].bytesPerSample;
                    XtfFile.Write(PingchanHeader.Pack());
                }
                else if (bssObject.ID == (uint)ObjectID.StartboardHighBssData)
                {
                    PingchanHeader.ChannelNumber = 3;
                    PingchanHeader.SlantRange    = parameter.Range;
                    PingchanHeader.NumSamples    = (uint)bssObject.DataBytes / Header.ChanInfo[3].bytesPerSample;
                    XtfFile.Write(PingchanHeader.Pack());
                }
                XtfFile.Write(bssObject.BssBytes);
            }
        }
Пример #4
0
 public BSSResultData()
 {
     Parameter = new BSSParameter();
     Data      = new DtObject();
 }
Пример #5
0
 public static byte[] SetupLowBSS(BSSParameter para)
 {
     byte[] pkg = new byte[65];
     Buffer.BlockCopy(BitConverter.GetBytes((int)ComID.SetupLowBSS), 0, pkg, 0, 2);
     Buffer.BlockCopy(BitConverter.GetBytes(Version), 0, pkg, 2, 2);
     Buffer.BlockCopy(BitConverter.GetBytes(9), 0, pkg, 4, 4);
     Buffer.BlockCopy(para.Pack(), 0, pkg, 8, 56);
     pkg[64] = 0;//校验
     return pkg;
 }
Пример #6
0
 public BSSResultData()
 {
     Parameter =new BSSParameter();
     Data = new DtObject();
 }
Пример #7
0
 private string ParsePara(byte[] myReadBuffer)
 {
     BSSParameter p =new BSSParameter();
     byte[] b = new byte[56];
     Buffer.BlockCopy(myReadBuffer,8,b,0,56);
     if (p.Parse(b))
     {
         
         StringBuilder sb = new StringBuilder();
         sb.AppendLine("设备序列号:"+p.DeviceID);
         sb.AppendLine("左舷发射中心频率:" + p.PortCentralFq);
         sb.AppendLine("右舷发射中心频率:" + p.StarBoardCentralFq);
         sb.AppendLine("脉冲长度:" + p.Ls);
         sb.AppendLine("左舷发射信号带宽:" + p.PortBandWidth);
         sb.AppendLine("右舷发射信号带宽:" + p.StarBoardBandWidth);
         sb.AppendLine("接收延时:" + p.RcvDelay);
         sb.AppendLine("探测距离:" + p.Range);
         sb.AppendLine("工作周期:" + p.Period);
         sb.AppendLine("AD数据采样率:" + p.ADSamples);
         sb.AppendLine("控制标识:" + p.Flag);
         sb.AppendLine("TVG延时:" + p.TVGDelay);
         sb.AppendLine("TVG更新速率:" + p.TVGReRate);
         sb.AppendLine("TVG比例因子:" + p.TvgBeta);
         sb.AppendLine("TVG吸收衰减:" + p.TvgAlpha);
         sb.AppendLine("TVG起始增益:" + p.TvgG);
         sb.AppendLine("命令标识:" + p.Com);
         sb.AppendLine("返回数据类型标识:" + p.RetID);
         sb.AppendLine("固定TVG:" + p.FixedTVG);
         return sb.ToString();
     }
     else
     {
         return @"参数解析不正确";
     }
 }
Пример #8
0
        private void SaveXTF(List<BSSObject> datalist, BSSParameter parameter)
        {
            if (XtfFile.WriteOpened == false)
            {
                XtfFile.Create();
                XtfFile.Write(Header.pack());
            }
            DateTime dt = DateTime.Now;
            PingHeader.Year = (ushort)dt.Year;
            PingHeader.Month = (byte)dt.Month;
            PingHeader.Day = (byte)dt.Day;
            PingHeader.Hour = (byte)dt.Hour;
            PingHeader.Minute = (byte)dt.Minute;
            PingHeader.Second = (byte)dt.Second;
            PingHeader.HSeconds = (byte)(dt.Millisecond/ 10);
            PingHeader.PingNumber = datalist[0].FrameNo;
            PingHeader.NumbytesThisRecord = 256;
            foreach (var bssObject in datalist)
            {
                if (bssObject.DataBytes == 0)
                    continue;
                PingHeader.NumbytesThisRecord += 64;//pingchannel header length
                PingHeader.NumbytesThisRecord += (uint)bssObject.DataBytes;
            }
            PingHeader.SensorSpeed = GPS.Speed;
            PingHeader.SensorHeading = GPS.Heading;
            PingHeader.ShipXcoordinate = GPS.Longitude;
            PingHeader.ShipYcoordinate = GPS.Latitude;
            XtfFile.Write(PingHeader.pack());
            foreach (var bssObject in datalist)
            {
                if (bssObject.DataBytes==0)
                    continue;
                if (bssObject.ID == (uint) ObjectID.PortLowBssData)
                {
                    PingchanHeader.ChannelNumber = 0;
                    PingchanHeader.SlantRange = parameter.Range;
                    PingchanHeader.NumSamples = (uint)bssObject.DataBytes/Header.ChanInfo[0].bytesPerSample;
                    XtfFile.Write(PingchanHeader.Pack());
                    
                }
                else if (bssObject.ID == (uint)ObjectID.StartboardLowBssData)
                {
                    PingchanHeader.ChannelNumber = 1;
                    PingchanHeader.SlantRange = parameter.Range;
                    PingchanHeader.NumSamples = (uint)bssObject.DataBytes / Header.ChanInfo[1].bytesPerSample;
                    XtfFile.Write(PingchanHeader.Pack());
                    
                }
                else if (bssObject.ID == (uint)ObjectID.PortHighBssData)
                {
                    PingchanHeader.ChannelNumber = 2;
                    PingchanHeader.SlantRange = parameter.Range;
                    PingchanHeader.NumSamples = (uint)bssObject.DataBytes / Header.ChanInfo[2].bytesPerSample;
                    XtfFile.Write(PingchanHeader.Pack());

                }
                else if (bssObject.ID == (uint)ObjectID.StartboardHighBssData)
                {
                    PingchanHeader.ChannelNumber = 3;
                    PingchanHeader.SlantRange = parameter.Range;
                    PingchanHeader.NumSamples = (uint)bssObject.DataBytes / Header.ChanInfo[3].bytesPerSample;
                    XtfFile.Write(PingchanHeader.Pack());
                }
                XtfFile.Write(bssObject.BssBytes);
            }
        }