C#编写,GPS串口数据读取后如何进行解析?并存入本地数据库或EXCEL文件?

问题描述

本人小白一只,还望各位大神谅解。拟通过笔记本的USB串口连接GPS天线读入数据,并进行解析后将需要数据存入本地数据库或者EXCEL文件,需要的内容是“经度”、“纬度”、“速度”、“时间”。最好是本地数据库。下楼是部分代码,请各位大神帮忙编写程序。谢谢了!!

解决方案

解决方案二:
privatevoidserialPort1_DataReceived(objectsender,SerialDataReceivedEventArgse){stringre;re=serialPort1.ReadExisting();}//GPS数据采集提取publicstringGetGPS(stringstrGPS,stringstrFind){///从GPS中读取的数据中,找出想要的数据///GPSstring原始字符串,///strFind要查找的内容,X:经度,Y:纬度,T:时间,V:速度,是数字从1开始,即以“,”分隔的位置///返回查找到指定位置的字符串stringhanderStr="$GPRMC";//GPS串头intfindHander=strGPS.IndexOf(handerStr);//看是否含有GPS串头if(findHander<0){return"-1";}else{strGPS=strGPS.Substring(findHander,strGPS.Length-findHander);string[]ArryTmp=strGPS.Split(",".ToCharArray());//原始字符串try{if(ArryTmp[2]=="V"){return"V";//没有信号}else{switch(strFind){case"X":returnDM2DD(ArryTmp[5]);case"Y":returnDM2DD(ArryTmp[3]);case"T":returnT2Time(ArryTmp[9],ArryTmp[1]);case"V":returnConvert.ToString(Convert.ToDouble(ArryTmp[7])*1.852);default:return"V";}}}catch{return"V";}}}publicstringT2Time(stringstrDate,stringstrTime){stringdT="20"+strDate.Substring(4,2)+"-"+strDate.Substring(2,2)+"-"+strDate.Substring(0,2);stringTT=Convert.ToString(Convert.ToInt32(strTime.Substring(0,2)))+":"+strTime.Substring(2,2)+":"+strTime.Substring(4,2);DateTimeT=Convert.ToDateTime(dT+""+TT);T=T.AddHours(8);returnT.ToString();}publicstringDM2DD(stringDegreeMinutes){//转换NMEA协议的“度分”格式为十进制“度度”格式stringsDegree;stringsMinute;stringsReturn="";if(DegreeMinutes.IndexOf(".")==4){//DegreeMinutes=Replace(DegreeMinutes,".","")//DM2DD=CDbl(Left(DegreeMinutes,2))+CDbl(Left(CStr(CDbl(Right(DegreeMinutes,Len(DegreeMinutes)-2))/60),8))/10000DegreeMinutes=DegreeMinutes.Replace(".","");doublesDegree1=Convert.ToDouble(DegreeMinutes.Substring(0,2));doublesDegree2=Convert.ToDouble(DegreeMinutes.Substring(2,DegreeMinutes.Length-2));stringsTmp=Convert.ToString(sDegree2/60);sDegree2=Convert.ToDouble(sTmp.Substring(0,sTmp.Length));sDegree2=sDegree2/10000;sDegree=Convert.ToString(sDegree1+sDegree2);if(sDegree.Length>11)sDegree=sDegree.Substring(0,11);sReturn=sDegree;}elseif(DegreeMinutes.IndexOf(".")==5){//DegreeMinutes=Replace(DegreeMinutes,".","")//DM2DD=CDbl(Left(DegreeMinutes,2))+CDbl(Left(CStr(CDbl(Right(DegreeMinutes,Len(DegreeMinutes)-2))/60),8))/10000DegreeMinutes=DegreeMinutes.Replace(".","");doublesMinute1=Convert.ToDouble(DegreeMinutes.Substring(0,3));doublesMinute2=Convert.ToDouble(DegreeMinutes.Substring(3,DegreeMinutes.Length-3));stringsTmp=Convert.ToString(sMinute2/60);sMinute2=Convert.ToDouble(sTmp.Substring(0,sTmp.Length));sMinute2=sMinute2/10000;sMinute=Convert.ToString(sMinute1+sMinute2);if(sMinute.Length>10)sMinute=sMinute.Substring(0,10);sReturn=sMinute;}returnsReturn;}

时间: 2024-11-03 08:48:27

C#编写,GPS串口数据读取后如何进行解析?并存入本地数据库或EXCEL文件?的相关文章

文件读取-c语言,用fgets将文件的数据读取后,如何对返回的数据进行操作,例如排序

问题描述 c语言,用fgets将文件的数据读取后,如何对返回的数据进行操作,例如排序 代码如下,我做法是 将fgets(readline, N, fp) 返回的readline 用atoi函数转为整型后赋给数组list,然后对list数组中的数据进行排序. 但实际运行下来,没有得到想要的结果,从printf结果看,atoi函数未能将readline 中的值转为整型,请各位大虾不吝指教,如何才能拿到fgets返回的readline的值,然后进行排序? #define N 256 #define S

c# 串口通信-C#串口数据读取问题求助

问题描述 C#串口数据读取问题求助 用C#中的一个serialport类读取cc2431传感器通过usb(com口)传来的数据,程序代码如下 void comm_DataReceived(object sender, SerialDataReceivedEventArgs e) { int n = comm.BytesToRead;//先记录下来,避免某种原因,人为的原因,操作几次之间时间长,缓存不一致 byte[] buf = new byte[n];//声明一个临时数组存储当前来的串口数据

位置-接收串口数据并进行处理和画图上位机软件看不到文件

问题描述 接收串口数据并进行处理和画图上位机软件看不到文件 我在下载这个软件时,显示下载成功,但是都没出现保存文件的位置界面出来,直接就跳出了一个下载成功的提示,在电脑上也收不到下载的文件

C#串口数据读取速度很慢,但串口调试助手工具数据变化很快,怎么解决啊?

问题描述 我用FPGA向C#上位机串口实时连续发送数据,并在testbox控件中显示出来,当所发数据内容改变时,上位机串口数据的显示会维持原来的数一段时间很慢才变化,而利用串口调试助手可以看到,串口接收到的数据确实很快就变化了,不明白C#的串口为什么会那么长时间才变化.急求各位大神大牛帮忙解决,小弟学生党一枚,初学C#,缺少经验,也请大家帮帮忙,跪谢了!! 解决方案 解决方案二:第一,两个是不是采用的相同波特率?其次,你的textbox显示变更是在发送成功前还是成功后?解决方案三:private

《数据科学:R语言实现》——2.5 使用Excel文件

2.5 使用Excel文件 Excel是另一种存储和分析数据的常用工具.当然,我们可以把Excel文件转化为CSV文件或者其他文件格式.你也可以在R中安装加载xlsx程序包,来读取和处理Excel数据. 准备工作 在本教程中,你需要给开发环境安装R,同时确保计算机可以访问互联网. 实现步骤 执行下列步骤,读取Excel文档. 1.首先,安装加载xlsx程序包: 2.访问www.data.worldbank.org/topic/economy-and-growth 找到世界经济指标Excel文件,

数据读取后,页面循环布局问题,各位大哥帮帮忙,小弟很菜!!!

问题描述 <tableborder="0"cellpadding="0"cellspacing="0"width=710align=center><tr><%for(inti=0;i<2&&i<dt.Rows.Count;i++){%><tdwidth="20%"align="center"style="height:190px

java 开发Webservice客户端获取服务端数据存入本地数据库

问题描述 之前没有接触过webService现在需要写个webService的客户端去获取服务端的数据,然后再存入到本机的数据库中,不知道该如何实现这个是开发的报表功能,现在报表的数据是本机自己建的表,但实际的数据要从别的几个系统中取出,再存入本机的数据库,所以想请问下实现过程是什么,谢谢 解决方案 解决方案二:可以用cxf或者axis2生成客户端.然后客户端里再实现数据的插入操作解决方案三:找个axis根据wsdl直接生成客户端,生成的客户端里面会带有接口的本地存根,这时就相当于调用本地的接口

“java用jexcelapi读取excel文件在jsp上显示并修改,然后保存回原来读进的excel文件”的问题

问题描述 想通过jexcelapi读取excel文件在jsp上显示并修改,然后把修改后的结果保存回原来读进的excel文件.现在可以读取excel文件,通过设置页面的显示类型为"application/vnd.ms-excel",在jsp页面显示读取的excel文件,然后修改数据.现在的问题是:一:怎么才能把修改的数据重新写回刚才读进的那个excel文件.二:如果无法写回去的话,是不是不能把excel文件在jsp页面这样显示,必须把读进的数据转换成对应的table,然后修改table里

在数据库或excel中存在两列数据,如何自动实现生成图形化

问题描述 在数据库或excel中存在两列数据,如何自动实现生成图形化 在数据库或excel中存在两列数据,比如a对应ba对应c,b对应c.自动实现生成图形化,用方框和箭头表示,数据不重复.应该怎么做呀 解决方案 遍历数据,首先找到所有的节点,以方框的形式画出来,并且记下坐标.然后再读取关系数据,根据坐标绘制箭头.为了图形美观,你需要对这些节点排序,找到总交叉或者线长最小的,当然穷举可以做到,不过当数据量大的时候,你就需要用诸如退火算法或者遗传算法之类的启发式算法来求解了. 解决方案二: exce