上位机串口接收GPS数据解析经纬度时间显示并自动保存成excel文档

该项目应用中,需要通过C#上位机串口接收GPRMC格式的GPS信息,解析后在界面上显示,并自动保存为Excel文档。文章详细介绍了串口设置、数据解析及Excel保存的实现过程,提供了源码下载链接供学习。
摘要由CSDN通过智能技术生成

项目应用场景:

提示:项目里需要将杂乱的GPS代码解析并显示出来,并且实现自动保存成excel形式的文档,方便查看


问题描述:

串口接收: GPRMC格式的GPS信息,包含推荐最小定位信息。

消息格式为:
$GPRMC,HHMMSS.SS,A,DDMM.MMM,N,DDDMM.MMM,W,Z.Z,Y.Y,DDMMYY,D.D,V *CC:


上位机开发:

上位机界面
界面


开发思路与源码:

第一部分:串口的基本设置

基础设置,包括串口号,波特率等等,打开串口设置
1.初始设计和打开串口按钮点击事件

   private string saveFileName = null;
        private string FilePath = null;    // 打开文件路径
        private string gpsinformation;
        private object thisLock = new object();    // 锁住线程        
        public event SerialPortEventHandler comReceiveDataEvent = null;  // 定义串口接收数据响应事件
        // 数据状态  
        private static int receCount = 0;    // 接收数据量


        public SerialDebug()
        {
   
            InitializeComponent();
            InitializeSerialSet(); // 初始化串口设置          

        }

        /// <summary>
        /// 串口初始化设置
        /// </summary>

        public void InitializeSerialSet()
        {
   
            InitializePorts();   // 初始化串口号
            // 初始化波特率
            comboBox_BandRate.Text = comboBox_BandRate.Items[3].ToString();
            // 初始化校验位
            comboBox_Check.Text = comboBox_Check.Items[0].ToString();
            // 初始化数据位
            comboBox_Data.Text = comboBox_Data.Items[0].ToString();
            // 初始化停止位
            comboBox_Stop.Text = comboBox_Stop.Items[0].ToString();

        }

        /// <summary>
        /// 可用串口扫描,并且显示可用串口
        /// </summary>
        public void InitializePorts()
        {
   
            comboBox_Serial.Items.Clear();   // 清空原来的信息
            // 返回可用串口号,形式:COM3
            string[] arraysPostsNames = SerialPort.GetPortNames();  // 获取所有可用的串口号          
            if (arraysPostsNames.Length > 0)
            // 检查串口号是否正确
            {
   

                Array.Sort(arraysPostsNames);  // 使用默认进行排序,从小到大肾虚
                for (int i = 0; i < arraysPostsNames.Length; i++)
                {
   
                    comboBox_Serial.Items.Add(arraysPostsNames[i]);  // 将所有可用串口加载到串口显示框当中
                }
                comboBox_Serial.Text = arraysPostsNames[0];   // 默认选择第一个串口

                comboBox_Serial.Enabled = true;   // 打开选择框
                // 设置状态栏属性
                toolStripStatus_Port.Text = "串口号:" + comboBox_Serial.Text;  // 设置状态栏的情况                   
                toolStripStatus_Port.ForeColor = Color.Black; // 设置为红色

            }
            else
            {
   
                toolStripStatus_Port.Text = "没有可用串口";  // 设置状态栏的情况                   
                toolStripStatus_Port.ForeColor = Color.Red; // 设置为红色
                comboBox_Serial.Text = "None";   // 提示没有可用串口
                comboBox_Serial.Enabled = false;   // 禁止打开串口选择框
            }
        }

        /// <summary>
        /// 串口读取数据响应方法
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void serialPortMonitor_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
   
            ReceiveData();
            //Thread.Sleep(60000);//线程挂起,单位为毫秒,延时一分钟接收数据
           // delay(10000);
        }
  private void button_OK_Click(object sender, EventArgs e)
        {
   
            if (serialPort1 =
  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
车载导航定位系统硬件设计原理介绍: 本设计主要由监控中心和数据采集两大部分组。监控中心采用了通用的PC机,由监控人员发送的命令经Internet、GPRS 无线传输给LPC1769(LPC1769数据手册)处理器,由处理器对监控中心发送来的命令进行判断并决定何时传输采集信息给监控中心;数据采集部分以NXP 公司的LPC1769芯片作为核心控制单元,将GPS 和DS18B20(DS18B20数据手册)采集回来的信息进行运算与处理,再通过GPRS将经LPC1769芯片处理后的数据通过GPRS网络、Internet 无线传输给监控中心,同时将数据存放到PC机的SQL Server 2000数据库中,并以Google Earth(GpsGoogleEarth)的形式呈献给监控人员。 基于Google Earth的软件设计解析: 基于Google Earth的软件的编写主要有两种方式:一种是内嵌Google Earth,另一种是外挂Google Earth。 内嵌Google Earth就是将Google Earth的三维卫星地图的显示窗口挂钩于本设计软件的窗体中,以实现GPS、GPRS和Google Earth的一体化集,进而实现了卫星地图的GPS定位导航。 外挂Google Earth是通过将软件外挂在Google Earth中实现定位导航。本设计中采用的是内嵌的方式来编写基于Google Earth的软件。软件实现后的界面以及三维卫星地图如图所示。 上位机软件界面:实现了googleearth的内嵌,后台挂了数据库,存储定位及温度等信息 作品演示视频: 附件内容包括: 上位机vc6.0源代码(程序运行需安装googleearth软件); 下位机源代码; 用户手册; 车载GPS导航定位系统设计分析报告;
GPS是全球定位系统(Global Positioning System)的简称,它通过卫星定位技术可以准确地获取地理位置信息。而GPS数据解析上位机是指通过软件或硬件设备将GPS接收到的原始数据进行解析和处理,以便用户能够方便地查看和利用这些定位信息。 首先,GPS数据解析上位机需要能够接收GPS设备发送的原始数据。这些原始数据往往以NMEA(National Marine Electronics Association)格式发送,包括经纬度、海拔、速度等信息。上位机可以通过串口、USB或无线方式与GPS设备进行通信,接收到原始数据后可以进行进一步的解析处理。 其次,上位机需要解析和提取GPS数据中的关键信息。例如,经纬度信息可以转换地图上的具体位置,海拔和速度信息可以用于测量高度和速度等。解析过程可以通过特定的算法或库来实现,例如使用Python中的PySerial库来读取串口数据,并使用NMEA库来解析NMEA格式的数据。 最后,解析出的GPS数据可以通过上位机软件界面以合适的方式展示给用户。上位机可以提供图形化界面,将定位信息显示在地图上,并提供相应的操作功能,例如放大、缩小、标记等。同时,上位机也可以将解析出的数据保存到文件或数据库中,以便用户日后查询和分析使用。 总之,GPS数据解析上位机是一个将GPS原始数据进行处理和解析的系统,通过它用户可以方便地获取和利用GPS定位信息。无论是用于导航、测量、地图绘制还是其他应用领域,GPS数据解析上位机都发挥着重要的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值