C# 高级开发应用:GPS+北斗 antenna 实现精准定位 C#实现

概述:

北斗卫星导航系统(以下简称北斗系统)是中国着眼于国家安全和经济社会发展需要,自主建设运行的全球卫星导航系统,是为全球用户提供全天候、全天时、高精度的定位、导航和授时服务的国家重要时空基础设施。 

  北斗系统提供服务以来,已在交通运输、农林渔业、水文监测、气象测报、通信授时、电力调度、救灾减灾、公共安全等领域得到广泛应用,服务国家重要基础设施,产生了显著的经济效益和社会效益。基于北斗系统的导航服务已被电子商务、移动智能终端制造、位置服务等厂商采用,广泛进入中国大众消费、共享经济和民生领域,应用的新模式、新业态、新经济不断涌现,深刻改变着人们的生产生活方式。中国将持续推进北斗应用与产业化发展,服务国家现代化建设和百姓日常生活,为全球科技、经济和社会发展做出贡献。

1、硬件基本连接图

基本硬件包括:北斗+GPS天线、GPS-1000模块、232转485模块、稳压电源

C# 高级开发应用:GPS+北斗 antenna 实现精准定位 C#实现_第1张图片

串口通讯服务器

C# 高级开发应用:GPS+北斗 antenna 实现精准定位 C#实现_第2张图片

串口服务器是为RS-232终端到TCP/IP之间完成数据转换的通讯接口协议转换器。提供RS-232终端与TCP/IP网络的数据双向透明传输,提供串口转TCP/IP功能,RS-232TCP/IP的解决方案。可以让RS-232串口设备立即联接网络。

2、北斗+GPS天线产品说明

频率范围:

1575(MHz)

输出阻抗:

50(Ω)

型号:

0009

长度:

5000(mm)

增益:

30DBI

品牌:

SEYA

工作电压:

5(V)

仕研北斗+gps天线包含了gps、无源陶瓷天线和低噪声放大器,接收gps l1bd b1频段的信号,具有体积小、耗电低等特点,适用于车载导航仪手持机等设备。

1.介质天线技术指标

技术要求

技术指标

频率(frequency

1561±41575±5 mhz

带宽(band width)

≥25mhz

增益(gain

4dbi

输出驻波比(output vswr

1.5maximum

极化(polarization

右旋圆极化(right hand circular polarization(rhcp)

阻抗(impendance)

50w

2天线技术指标(包括陶瓷天线和lna

技术要求

技术指标

频率(frequency

1561±41575±5 mhz

增益(gain)(不含馈线)

34dbi

带内增益平坦度(passbandripple)

1561 m±1.5mhz : <1db

1575.42m±1.5mhz : <1db

lna输出1db压缩点(1db compressionpointoutput

>-10dbm

带外抑制(out of band rejection

dc~1400mhz: 35dbc min

1400~1475mhz30dbc min

1475~1525mhz25dbc min

1625~1640mhz30dbc min

1640~2000mhz32dbc min

2000~3000mhz20dbc min

噪声系数(noise figure)

≤1.2db

输出驻波比(output vswr)

≤2:1

输出阻抗(output impedence):

50w

供电电压(prime power

3v5v

供电电流(power consumption

<25ma在全部环境条件下

工作温度(operational temperature

-35~+75°c

储存温度(storage temperature

-40~+75°c

天线外形尺寸(size

50*40*1648*36*13

防水性能(waterproof

ip66ip67

线缆及长度 cable & length

rg174或其他,35±0.1 m或其他指定长度

接头 connector

smabncsmcmmcxmcxbnc

3、数据采集系统构件

虚拟串口:可以实现本机串口和网口的映射。

C# 高级开发应用:GPS+北斗 antenna 实现精准定位 C#实现_第3张图片

本机可以通过打开虚拟串口进行与远程设备的通信。

C# 高级开发应用:GPS+北斗 antenna 实现精准定位 C#实现_第4张图片

#region 打开串口

            try

            {

                if (serialPort_COM1.IsOpen)

                {

                    serialPort_COM1.Close();

                }

                //北斗定位的串口-IP-虚拟串口

                serialPort_COM1.PortName =  "COM1";

                serialPort_COM1.Open();

            }

            catch (Exception ex)

            {

                。。。。

            }

            #endregion

        ///

        /// 串口1接收数据处理 GPS坐标

        ///

        /// sender">

        /// e">

        private void serialPort_COM1_DataReceived(object sender, SerialDataReceivedEventArgs e)

        {

            Control.CheckForIllegalCrossThreadCalls = false;

            Thread.Sleep(100);

            Byte[] readBuffer = null;

            try

            {

                Control.CheckForIllegalCrossThreadCalls = false;

                Thread.Sleep(100);

                if (serialPort_COM1.BytesToRead == 0)

                {

                    return;

                }

                readBuffer = new Byte[serialPort_COM1.BytesToRead];

                //读取数据

                serialPort_COM1.Read(readBuffer, 0, readBuffer.Length);

                serialPort_COM1.DiscardInBuffer();

                //byte[]转字符串

                string commandstr = bytesTOstring(readBuffer);

                //叉车 回复信息  06 04 28 00 01 07 E4 00 0C 00 1C 00 0E 00 07 00 2B 42 0F D0 AC 00 4E 42 F0 5D 85 00 45 3E F5 3F 7D 43 40 40 00 02 C8 06 6E 00 00 AB B8

                //               09 04 28 00 00 07 E5 00 03 00 09 00 0B 00 0B 00 05 42 B4 00 00 00 4E 00 00 00 00 00 45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BC 15

                //               09 04 28 00 00 07 E5 00 03 00 08 00 08 00 32 00 36 42 10 41 AB 00 4E 42 F0 26 01 00 45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E0 B8

                //               09 04 28 00 00 07 E5 00 03 00 09 00 0B 00 33 00 2D 42 B4 00 00 00 4E 00 00 00 00 00 45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BC 77;

                if (readBuffer[0] == 0x06 || readBuffer[0] == 0x07 || readBuffer[0] == 0x08 || readBuffer[0] == 0x09)

                {

                    #region 获取叉车

                    //叉车车牌号

                    string _DrivingName = "";

                    switch (readBuffer[0])

                    {

                        case 0x06:

                            _DrivingName = "A18470";

                            break;

                        case 0x07:

                            _DrivingName = "A52282";

                            break;

                        case 0x08:

                            _DrivingName = "A82479";

                            break;

                        case 0x09:

                            _DrivingName = "A27310";

                            break;

                    }

                    //经度

                    string Longitude = ByteToFloat(readBuffer, 23).ToString();

                    //纬度

                    string Latitude = ByteToFloat(readBuffer, 17).ToString();

                    

            //根据经纬度范围 经度(1192-1221  维度(353 - 337)判断车辆位置

             

 }

        

你可能感兴趣的:(北斗定位,c#,经验分享)